60c06040525f600760016101000a81548160ff0219169083151502179055506001600a5f6101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff02191690831515021790555034801562000078575f80fd5b506040518060400160405280600681526020017f42454e44455200000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42454e44000000000000000000000000000000000000000000000000000000008152508160039081620000f69190620011c2565b508060049081620001089190620011c2565b5050506200012b6200011f620008ca60201b60201c565b620008d160201b60201c565b5f734752ba5dbc23f44d87826276bf6fd6b1c372ad249050620001568160016200099460201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fa91906200130b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000260573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028691906200130b565b6040518363ffffffff1660e01b8152600401620002a59291906200134c565b6020604051808303815f875af1158015620002c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e891906200130b565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a05160016200099460201b60201c565b6200034560a051600162000acb60201b60201c565b5f6200035662000b6960201b60201c565b600a62000364919062001500565b64174876e80062000376919062001550565b9050606481620003879190620015c7565b600c819055506064816200039c9190620015c7565b600b819055506103e881620003b29190620015c7565b600881905550603281620003c79190620015c7565b6009819055505f6013819055505f601481905550739926078ca71ce16709249c0da67e2d654031d12360115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c203ec1cd8296f848aaf60037ef5adb21af3162460125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506028600f5f0160026101000a81548160ff021916908360ff160217905550605a600f5f015f6101000a81548161ffff021916908361ffff160217905550620004d333600162000b7160201b60201c565b620004e630600162000b7160201b60201c565b620004fb61dead600162000b7160201b60201c565b6200052f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000b7160201b60201c565b6200056360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000b7160201b60201c565b620005763360016200099460201b60201c565b620005893060016200099460201b60201c565b6200059e61dead60016200099460201b60201c565b620005d260115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200099460201b60201c565b6200060660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200099460201b60201c565b6001601a5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008b03362000ca860201b60201c565b620008c2338262000dbc60201b60201c565b50506200181b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620009a4620008ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620009ca62000f2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a1a906200165c565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc928260405162000abf919062001698565b60405180910390a25050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f6012905090565b62000b81620008ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000ba762000f2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000c00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bf7906200165c565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000c9c919062001698565b60405180910390a25050565b62000cb8620008ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000cde62000f2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000d37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d2e906200165c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000da8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d9f9062001727565b60405180910390fd5b62000db981620008d160201b60201c565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000e2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e249062001795565b60405180910390fd5b62000e405f838362000f5460201b60201c565b8060025f82825462000e539190620017b5565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000ea79190620017b5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000f0d919062001800565b60405180910390a362000f285f838362000f5960201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000fda57607f821691505b60208210810362000ff05762000fef62000f95565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620010547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001017565b62001060868362001017565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620010aa620010a46200109e8462001078565b62001081565b62001078565b9050919050565b5f819050919050565b620010c5836200108a565b620010dd620010d482620010b1565b84845462001023565b825550505050565b5f90565b620010f3620010e5565b62001100818484620010ba565b505050565b5b8181101562001127576200111b5f82620010e9565b60018101905062001106565b5050565b601f8211156200117657620011408162000ff6565b6200114b8462001008565b810160208510156200115b578190505b620011736200116a8562001008565b83018262001105565b50505b505050565b5f82821c905092915050565b5f620011985f19846008026200117b565b1980831691505092915050565b5f620011b2838362001187565b9150826002028217905092915050565b620011cd8262000f5e565b67ffffffffffffffff811115620011e957620011e862000f68565b5b620011f5825462000fc2565b620012028282856200112b565b5f60209050601f83116001811462001238575f841562001223578287015190505b6200122f8582620011a5565b8655506200129e565b601f198416620012488662000ff6565b5f5b8281101562001271578489015182556001820191506020850194506020810190506200124a565b868310156200129157848901516200128d601f89168262001187565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620012d582620012aa565b9050919050565b620012e781620012c9565b8114620012f2575f80fd5b50565b5f815190506200130581620012dc565b92915050565b5f60208284031215620013235762001322620012a6565b5b5f6200133284828501620012f5565b91505092915050565b6200134681620012c9565b82525050565b5f604082019050620013615f8301856200133b565b6200137060208301846200133b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200140157808604811115620013d957620013d862001377565b5b6001851615620013e95780820291505b8081029050620013f985620013a4565b9450620013b9565b94509492505050565b5f826200141b5760019050620014ed565b816200142a575f9050620014ed565b81600181146200144357600281146200144e5762001484565b6001915050620014ed565b60ff84111562001463576200146262001377565b5b8360020a9150848211156200147d576200147c62001377565b5b50620014ed565b5060208310610133831016604e8410600b8410161715620014be5782820a905083811115620014b857620014b762001377565b5b620014ed565b620014cd8484846001620013b0565b92509050818404811115620014e757620014e662001377565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200150c8262001078565b91506200151983620014f4565b9250620015487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200140a565b905092915050565b5f6200155c8262001078565b9150620015698362001078565b9250828202620015798162001078565b9150828204841483151762001593576200159262001377565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620015d38262001078565b9150620015e08362001078565b925082620015f357620015f26200159a565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62001644602083620015fe565b915062001651826200160e565b602082019050919050565b5f6020820190508181035f830152620016758162001636565b9050919050565b5f8115159050919050565b62001692816200167c565b82525050565b5f602082019050620016ad5f83018462001687565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6200170f602683620015fe565b91506200171c82620016b3565b604082019050919050565b5f6020820190508181035f830152620017408162001701565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6200177d601f83620015fe565b91506200178a8262001747565b602082019050919050565b5f6020820190508181035f830152620017ae816200176f565b9050919050565b5f620017c18262001078565b9150620017ce8362001078565b9250828201905080821115620017e957620017e862001377565b5b92915050565b620017fa8162001078565b82525050565b5f602082019050620018155f830184620017ef565b92915050565b60805160a051615995620018675f395f8181611b9c01528181612673015261326601525f8181610c6b0152818161320e01528181613f9c0152818161407b01526140a201526159955ff3fe608060405260043610610275575f3560e01c806377b5312c1161014e578063d086d660116100c0578063ed66681211610079578063ed66681214610914578063f242ab411461093c578063f2fde38b14610966578063f3dc39021461098e578063fab82a8e146109b9578063ff5211bb146109e35761027c565b8063d086d66014610808578063d17f54111461081e578063dd62ed3e14610848578063e13b200714610884578063e421877b146108c4578063e6aa92c1146108ec5761027c565b80639a7a23d6116101125780639a7a23d6146106ee578063a457c2d714610716578063a9059cbb14610752578063a9fced1e1461078e578063b377f429146107ca578063b435ea79146107e05761027c565b806377b5312c1461061e578063845581401461064a5780638da5cb5b14610672578063916642f71461069c57806395d89b41146106c45761027c565b806331f81511116101e757806351f205e4116101ab57806351f205e41461053e57806357c64b28146105545780635bbb673c1461057c5780635d098b38146105a457806370a08231146105cc578063715018a6146106085761027c565b806331f8151114610458578063340527891461048557806339509351146104ad578063482bd309146104e95780634ada218b146105145761027c565b80630c1fe80c116102395780630c1fe80c1461034e57806318160ddd1461037657806323b872dd146103a05780632bac7b2f146103dc5780632ff8ef4d14610406578063313ce5671461042e5761027c565b80630150fe4c14610280578063034f97741461029657806306fdde03146102be5780630758d924146102e8578063095ea7b3146103125761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b506102946109f9565b005b3480156102a1575f80fd5b506102bc60048036038101906102b7919061419a565b610b04565b005b3480156102c9575f80fd5b506102d2610bd9565b6040516102df919061424f565b60405180910390f35b3480156102f3575f80fd5b506102fc610c69565b60405161030991906142ca565b60405180910390f35b34801561031d575f80fd5b5061033860048036038101906103339190614316565b610c8d565b604051610345919061436e565b60405180910390f35b348015610359575f80fd5b50610374600480360381019061036f919061419a565b610caa565b005b348015610381575f80fd5b5061038a610edd565b6040516103979190614396565b60405180910390f35b3480156103ab575f80fd5b506103c660048036038101906103c191906143af565b610ee6565b6040516103d3919061436e565b60405180910390f35b3480156103e7575f80fd5b506103f0610fd8565b6040516103fd9190614396565b60405180910390f35b348015610411575f80fd5b5061042c60048036038101906104279190614429565b610fde565b005b348015610439575f80fd5b50610442611100565b60405161044f9190614482565b60405180910390f35b348015610463575f80fd5b5061046c611108565b60405161047c949392919061449b565b60405180910390f35b348015610490575f80fd5b506104ab60048036038101906104a691906144de565b61113f565b005b3480156104b8575f80fd5b506104d360048036038101906104ce9190614316565b611261565b6040516104e0919061436e565b60405180910390f35b3480156104f4575f80fd5b506104fd611308565b60405161050b929190614525565b60405180910390f35b34801561051f575f80fd5b50610528611332565b604051610535919061436e565b60405180910390f35b348015610549575f80fd5b50610552611344565b005b34801561055f575f80fd5b5061057a60048036038101906105759190614429565b6113ca565b005b348015610587575f80fd5b506105a2600480360381019061059d91906144de565b6114ec565b005b3480156105af575f80fd5b506105ca60048036038101906105c5919061419a565b61160e565b005b3480156105d7575f80fd5b506105f260048036038101906105ed919061419a565b61175e565b6040516105ff9190614396565b60405180910390f35b348015610613575f80fd5b5061061c6117a3565b005b348015610629575f80fd5b5061063261182a565b6040516106419392919061454c565b60405180910390f35b348015610655575f80fd5b50610670600480360381019061066b91906144de565b61184e565b005b34801561067d575f80fd5b5061068661195a565b6040516106939190614590565b60405180910390f35b3480156106a7575f80fd5b506106c260048036038101906106bd91906144de565b611982565b005b3480156106cf575f80fd5b506106d8611a8e565b6040516106e5919061424f565b60405180910390f35b3480156106f9575f80fd5b50610714600480360381019061070f9190614429565b611b1e565b005b348015610721575f80fd5b5061073c60048036038101906107379190614316565b611c36565b604051610749919061436e565b60405180910390f35b34801561075d575f80fd5b5061077860048036038101906107739190614316565b611d1c565b604051610785919061436e565b60405180910390f35b348015610799575f80fd5b506107b460048036038101906107af919061419a565b611d39565b6040516107c1919061436e565b60405180910390f35b3480156107d5575f80fd5b506107de611e07565b005b3480156107eb575f80fd5b50610806600480360381019061080191906145a9565b611ecc565b005b348015610813575f80fd5b5061081c612075565b005b348015610829575f80fd5b50610832612139565b60405161083f919061436e565b60405180910390f35b348015610853575f80fd5b5061086e600480360381019061086991906145f9565b612165565b60405161087b9190614396565b60405180910390f35b34801561088f575f80fd5b506108aa60048036038101906108a5919061419a565b6121e7565b6040516108bb959493929190614637565b60405180910390f35b3480156108cf575f80fd5b506108ea60048036038101906108e59190614429565b612374565b005b3480156108f7575f80fd5b50610912600480360381019061090d91906146dc565b612484565b005b34801561091f575f80fd5b5061093a60048036038101906109359190614429565b61253f565b005b348015610947575f80fd5b50610950612671565b60405161095d9190614590565b60405180910390f35b348015610971575f80fd5b5061098c6004803603810190610987919061419a565b612695565b005b348015610999575f80fd5b506109a261278b565b6040516109b092919061471a565b60405180910390f35b3480156109c4575f80fd5b506109cd61279b565b6040516109da9190614590565b60405180910390f35b3480156109ee575f80fd5b506109f76127c3565b005b610a016128aa565b73ffffffffffffffffffffffffffffffffffffffff16610a1f61195a565b73ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061478b565b60405180910390fd5b5f4711610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906147f3565b60405180910390fd5b610abf61195a565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610b01573d5f803e3d5ffd5b50565b610b0c6128aa565b73ffffffffffffffffffffffffffffffffffffffff16610b2a61195a565b73ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b779061478b565b60405180910390fd5b610b8b8160016113ca565b610b96816001610fde565b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060038054610be89061483e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c149061483e565b8015610c5f5780601f10610c3657610100808354040283529160200191610c5f565b820191905f5260205f20905b815481529060010190602001808311610c4257829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610ca0610c996128aa565b84846128b1565b6001905092915050565b610cb26128aa565b73ffffffffffffffffffffffffffffffffffffffff16610cd061195a565b73ffffffffffffffffffffffffffffffffffffffff1614610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d9061478b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906148b8565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610dd29190614590565b602060405180830381865afa158015610ded573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1191906148ea565b90505f8111610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061495f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610e7961195a565b836040518363ffffffff1660e01b8152600401610e9792919061497d565b6020604051808303815f875af1158015610eb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed791906149b8565b50505050565b5f600254905090565b5f610ef2848484612a74565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f396128aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf90614a53565b60405180910390fd5b610fcc85610fc46128aa565b8584036128b1565b60019150509392505050565b60065481565b610fe66128aa565b73ffffffffffffffffffffffffffffffffffffffff1661100461195a565b73ffffffffffffffffffffffffffffffffffffffff161461105a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110519061478b565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc92826040516110f4919061436e565b60405180910390a25050565b5f6012905090565b5f805f80600a5f9054906101000a900460ff169350600a60019054906101000a900460ff169250600b549150600c54905090919293565b6111476128aa565b73ffffffffffffffffffffffffffffffffffffffff1661116561195a565b73ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b29061478b565b60405180910390fd5b60028110156111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690614abb565b60405180910390fd5b6103e861120a610edd565b826112159190614b06565b61121f9190614b74565b600c819055507fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a600c546040516112569190614396565b60405180910390a150565b5f6112fe61126d6128aa565b848460015f61127a6128aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112f99190614ba4565b6128b1565b6001905092915050565b600f805f015f9054906101000a900461ffff1690805f0160029054906101000a900460ff16905082565b600e5f9054906101000a900460ff1681565b61134c6128aa565b73ffffffffffffffffffffffffffffffffffffffff1661136a61195a565b73ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b79061478b565b60405180910390fd5b6113c8613a5f565b565b6113d26128aa565b73ffffffffffffffffffffffffffffffffffffffff166113f061195a565b73ffffffffffffffffffffffffffffffffffffffff1614611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d9061478b565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114e0919061436e565b60405180910390a25050565b6114f46128aa565b73ffffffffffffffffffffffffffffffffffffffff1661151261195a565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f9061478b565b60405180910390fd5b60058110156115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390614c47565b60405180910390fd5b6103e86115b7610edd565b826115c29190614b06565b6115cc9190614b74565b600b819055507f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace600b546040516116039190614396565b60405180910390a150565b6116166128aa565b73ffffffffffffffffffffffffffffffffffffffff1661163461195a565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116819061478b565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a36117108160016113ca565b61171b816001610fde565b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6117ab6128aa565b73ffffffffffffffffffffffffffffffffffffffff166117c961195a565b73ffffffffffffffffffffffffffffffffffffffff161461181f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118169061478b565b60405180910390fd5b6118285f613aff565b565b5f805f600760019054906101000a900460ff16925060085491506009549050909192565b6118566128aa565b73ffffffffffffffffffffffffffffffffffffffff1661187461195a565b73ffffffffffffffffffffffffffffffffffffffff16146118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061478b565b60405180910390fd5b5f6013549050601e821115611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190b90614cd5565b60405180910390fd5b816013819055507f28e297c7c282931a994191b735b01eaf17558295f761512a7047f4e1b8dc3b0b8160135460405161194e92919061471a565b60405180910390a15050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61198a6128aa565b73ffffffffffffffffffffffffffffffffffffffff166119a861195a565b73ffffffffffffffffffffffffffffffffffffffff16146119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f59061478b565b60405180910390fd5b5f6014549050601e821115611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f90614d63565b60405180910390fd5b816014819055507f5bafec153d96f8ef37761b64348732b41a6b477401d244a5070f9f82d689adce81601454604051611a8292919061471a565b60405180910390a15050565b606060048054611a9d9061483e565b80601f0160208091040260200160405190810160405280929190818152602001828054611ac99061483e565b8015611b145780601f10611aeb57610100808354040283529160200191611b14565b820191905f5260205f20905b815481529060010190602001808311611af757829003601f168201915b5050505050905090565b611b266128aa565b73ffffffffffffffffffffffffffffffffffffffff16611b4461195a565b73ffffffffffffffffffffffffffffffffffffffff1614611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b919061478b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f90614df1565b60405180910390fd5b611c328282613bc2565b5050565b5f8060015f611c436128aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490614e7f565b60405180910390fd5b611d11611d086128aa565b858584036128b1565b600191505092915050565b5f611d2f611d286128aa565b8484612a74565b6001905092915050565b5f611d426128aa565b73ffffffffffffffffffffffffffffffffffffffff16611d6061195a565b73ffffffffffffffffffffffffffffffffffffffff1614611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad9061478b565b60405180910390fd5b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b611e0f6128aa565b73ffffffffffffffffffffffffffffffffffffffff16611e2d61195a565b73ffffffffffffffffffffffffffffffffffffffff1614611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a9061478b565b60405180910390fd5b5f600a60016101000a81548160ff021916908315150217905550427f26e776fcf7ca20aa79b5b946e9b5111f47205539ece9d7a7995271dd6a8b5bad60405160405180910390a2565b611ed46128aa565b73ffffffffffffffffffffffffffffffffffffffff16611ef261195a565b73ffffffffffffffffffffffffffffffffffffffff1614611f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3f9061478b565b60405180910390fd5b6001821015611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390614f0d565b60405180910390fd5b81811015611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc690614f9b565b60405180910390fd5b82600760016101000a81548160ff02191690831515021790555061271082611ff5610edd565b611fff9190614b06565b6120099190614b74565b6008819055506127108161201b610edd565b6120259190614b06565b61202f9190614b74565b6009819055507f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c7798383836040516120689392919061454c565b60405180910390a1505050565b61207d6128aa565b73ffffffffffffffffffffffffffffffffffffffff1661209b61195a565b73ffffffffffffffffffffffffffffffffffffffff16146120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e89061478b565b60405180910390fd5b5f600a5f6101000a81548160ff021916908315150217905550427ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261660405160405180910390a2565b5f43600f5f015f9054906101000a900461ffff1661ffff1660065461215e9190614ba4565b1015905090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f805f805f60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16945060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16935060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169250600f6001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169150601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905091939590929450565b61237c6128aa565b73ffffffffffffffffffffffffffffffffffffffff1661239a61195a565b73ffffffffffffffffffffffffffffffffffffffff16146123f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e79061478b565b60405180910390fd5b80600f6001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f9eed215c527282c8ae0c56c4a40a8d4f3b6eef9c0970500d601f8627c17f8e9d8282604051612478929190614fb9565b60405180910390a15050565b61248c6128aa565b73ffffffffffffffffffffffffffffffffffffffff166124aa61195a565b73ffffffffffffffffffffffffffffffffffffffff1614612500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f79061478b565b60405180910390fd5b81600f5f015f6101000a81548161ffff021916908361ffff16021790555080600f5f0160026101000a81548160ff021916908360ff1602179055505050565b6125476128aa565b73ffffffffffffffffffffffffffffffffffffffff1661256561195a565b73ffffffffffffffffffffffffffffffffffffffff16146125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b29061478b565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550801561266d575f600f6001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61269d6128aa565b73ffffffffffffffffffffffffffffffffffffffff166126bb61195a565b73ffffffffffffffffffffffffffffffffffffffff1614612711576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127089061478b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361277f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277690615050565b60405180910390fd5b61278881613aff565b50565b5f80601354915060145490509091565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6127cb6128aa565b73ffffffffffffffffffffffffffffffffffffffff166127e961195a565b73ffffffffffffffffffffffffffffffffffffffff161461283f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128369061478b565b60405180910390fd5b6001600e5f6101000a81548160ff0219169083151502179055506001600760016101000a81548160ff02191690831515021790555043600681905550427feca0dfbda743d141662328d4d48393e344b2c60df0430297221df823f2926dba60405160405180910390a2565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361291f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612916906150de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361298d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129849061516c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a679190614396565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad9906151fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4790615288565b60405180910390fd5b5f8111612b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8990615316565b60405180910390fd5b5f8103612ba957612ba483835f613c60565b613a5a565b600a5f9054906101000a900460ff161561365857612bc561195a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612c335750612c0361195a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c6b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ca5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612cbd575060075f9054906101000a900460ff16155b1561365757600e5f9054906101000a900460ff16612db05760165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d70575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da6906153a4565b60405180910390fd5b5b43600f5f015f9054906101000a900461ffff1661ffff16600654612dd49190614ba4565b10158015612e29575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612e7c575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ed25750600f6001015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f255750601a5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612fe0576001600f6001015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f5b06a587f0284d81144c68102b959fd5e76ec4be5b5e506009940729b244b9ee32600f5f015f9054906101000a900461ffff1661ffff16600654612fc79190614ba4565b43604051612fd7939291906153c2565b60405180910390a15b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561307e575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156130d1575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613124575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156131795750600f6001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156131b9576040517ffbe86b5a0000000000000000000000000000000000000000000000000000000081526004016131b090615467565b60405180910390fd5b600a60019054906101000a900460ff161561337d576131d661195a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561325d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132b557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561337c5743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410613339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133309061551b565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561341a575060175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156134c157600c54811115613464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345b906155a9565b60405180910390fd5b600b546134708361175e565b8261347b9190614ba4565b11156134bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b390615611565b60405180910390fd5b613656565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561355e575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156135ad57600c548111156135a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161359f9061569f565b60405180910390fd5b613655565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661365457600b546136078361175e565b826136129190614ba4565b1115613653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161364a90615611565b60405180910390fd5b5b5b5b5b5b5f6136623061175e565b90505f60085482101590508080156136865750600760019054906101000a900460ff165b801561369e575060075f9054906101000a900460ff16155b80156136f0575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561373157600160075f6101000a81548160ff021916908315150217905550613717613a5f565b5f60075f6101000a81548160ff0219169083151502179055505b5f60075f9054906101000a900460ff1615905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806137df575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156137e8575f90505b5f8115613a4a57600f6001015f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561385b57505f600f5f0160029054906101000a900460ff1660ff16115b156138da5761389a606461388c600f5f0160029054906101000a900460ff1660ff1688613ed590919063ffffffff16565b613eea90919063ffffffff16565b90507f1f773dffa212e83e375ab1d2e1e9def973ede5f229477fa5604d69037c3b992d87826040516138cd92919061497d565b60405180910390a16139ee565b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561393157505f601454115b156139655761395e606461395060145488613ed590919063ffffffff16565b613eea90919063ffffffff16565b90506139ed565b60185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156139bc57505f601354115b156139ec576139e960646139db60135488613ed590919063ffffffff16565b613eea90919063ffffffff16565b90505b5b5b5f811115613a3b57613a01873083613c60565b7f6a41f86b2a18fe00e10a9bd078e790ae82c2627a6f940166bddc2db475194a5f8782604051613a3292919061497d565b60405180910390a15b8085613a4791906156bd565b94505b613a55878787613c60565b505050505b505050565b5f613a693061175e565b90505f8111613a785750613afd565b600954811115613a885760095490505b5f819050613a9581613eff565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015613af9573d5f803e3d5ffd5b5050505b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cc5906151fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d3390615288565b60405180910390fd5b613d47838383614132565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dc190615760565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613e589190614ba4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613ebc9190614396565b60405180910390a3613ecf848484614137565b50505050565b5f8183613ee29190614b06565b905092915050565b5f8183613ef79190614b74565b905092915050565b5f600267ffffffffffffffff811115613f1b57613f1a61577e565b5b604051908082528060200260200182016040528015613f495781602001602082028036833780820191505090505b50905030815f81518110613f6057613f5f6157ab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614003573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061402791906157ec565b8160018151811061403b5761403a6157ab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506140a0307f0000000000000000000000000000000000000000000000000000000000000000846128b1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401614101959493929190615907565b5f604051808303815f87803b158015614118575f80fd5b505af115801561412a573d5f803e3d5ffd5b505050505050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61416982614140565b9050919050565b6141798161415f565b8114614183575f80fd5b50565b5f8135905061419481614170565b92915050565b5f602082840312156141af576141ae61413c565b5b5f6141bc84828501614186565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156141fc5780820151818401526020810190506141e1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f614221826141c5565b61422b81856141cf565b935061423b8185602086016141df565b61424481614207565b840191505092915050565b5f6020820190508181035f8301526142678184614217565b905092915050565b5f819050919050565b5f61429261428d61428884614140565b61426f565b614140565b9050919050565b5f6142a382614278565b9050919050565b5f6142b482614299565b9050919050565b6142c4816142aa565b82525050565b5f6020820190506142dd5f8301846142bb565b92915050565b5f819050919050565b6142f5816142e3565b81146142ff575f80fd5b50565b5f81359050614310816142ec565b92915050565b5f806040838503121561432c5761432b61413c565b5b5f61433985828601614186565b925050602061434a85828601614302565b9150509250929050565b5f8115159050919050565b61436881614354565b82525050565b5f6020820190506143815f83018461435f565b92915050565b614390816142e3565b82525050565b5f6020820190506143a95f830184614387565b92915050565b5f805f606084860312156143c6576143c561413c565b5b5f6143d386828701614186565b93505060206143e486828701614186565b92505060406143f586828701614302565b9150509250925092565b61440881614354565b8114614412575f80fd5b50565b5f81359050614423816143ff565b92915050565b5f806040838503121561443f5761443e61413c565b5b5f61444c85828601614186565b925050602061445d85828601614415565b9150509250929050565b5f60ff82169050919050565b61447c81614467565b82525050565b5f6020820190506144955f830184614473565b92915050565b5f6080820190506144ae5f83018761435f565b6144bb602083018661435f565b6144c86040830185614387565b6144d56060830184614387565b95945050505050565b5f602082840312156144f3576144f261413c565b5b5f61450084828501614302565b91505092915050565b5f61ffff82169050919050565b61451f81614509565b82525050565b5f6040820190506145385f830185614516565b6145456020830184614473565b9392505050565b5f60608201905061455f5f83018661435f565b61456c6020830185614387565b6145796040830184614387565b949350505050565b61458a8161415f565b82525050565b5f6020820190506145a35f830184614581565b92915050565b5f805f606084860312156145c0576145bf61413c565b5b5f6145cd86828701614415565b93505060206145de86828701614302565b92505060406145ef86828701614302565b9150509250925092565b5f806040838503121561460f5761460e61413c565b5b5f61461c85828601614186565b925050602061462d85828601614186565b9150509250929050565b5f60a08201905061464a5f83018861435f565b614657602083018761435f565b614664604083018661435f565b614671606083018561435f565b61467e608083018461435f565b9695505050505050565b61469181614509565b811461469b575f80fd5b50565b5f813590506146ac81614688565b92915050565b6146bb81614467565b81146146c5575f80fd5b50565b5f813590506146d6816146b2565b92915050565b5f80604083850312156146f2576146f161413c565b5b5f6146ff8582860161469e565b9250506020614710858286016146c8565b9150509250929050565b5f60408201905061472d5f830185614387565b61473a6020830184614387565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6147756020836141cf565b915061478082614741565b602082019050919050565b5f6020820190508181035f8301526147a281614769565b9050919050565b7f4e6f204554482062616c616e636520746f2072657363756500000000000000005f82015250565b5f6147dd6018836141cf565b91506147e8826147a9565b602082019050919050565b5f6020820190508181035f83015261480a816147d1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061485557607f821691505b60208210810361486857614867614811565b5b50919050565b7f43616e6e6f7420726573637565206e617469766520746f6b656e7300000000005f82015250565b5f6148a2601b836141cf565b91506148ad8261486e565b602082019050919050565b5f6020820190508181035f8301526148cf81614896565b9050919050565b5f815190506148e4816142ec565b92915050565b5f602082840312156148ff576148fe61413c565b5b5f61490c848285016148d6565b91505092915050565b7f4e6f20746f6b656e2062616c616e636520746f207265736375650000000000005f82015250565b5f614949601a836141cf565b915061495482614915565b602082019050919050565b5f6020820190508181035f8301526149768161493d565b9050919050565b5f6040820190506149905f830185614581565b61499d6020830184614387565b9392505050565b5f815190506149b2816143ff565b92915050565b5f602082840312156149cd576149cc61413c565b5b5f6149da848285016149a4565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f614a3d6028836141cf565b9150614a48826149e3565b604082019050919050565b5f6020820190508181035f830152614a6a81614a31565b9050919050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e32255f82015250565b5f614aa56020836141cf565b9150614ab082614a71565b602082019050919050565b5f6020820190508181035f830152614ad281614a99565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614b10826142e3565b9150614b1b836142e3565b9250828202614b29816142e3565b91508282048414831517614b4057614b3f614ad9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614b7e826142e3565b9150614b89836142e3565b925082614b9957614b98614b47565b5b828204905092915050565b5f614bae826142e3565b9150614bb9836142e3565b9250828201905080821115614bd157614bd0614ad9565b5b92915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614c316024836141cf565b9150614c3c82614bd7565b604082019050919050565b5f6020820190508181035f830152614c5e81614c25565b9050919050565b7f546f74616c20627579206665652063616e6e6f742062652068696768657220745f8201527f68616e2033302500000000000000000000000000000000000000000000000000602082015250565b5f614cbf6027836141cf565b9150614cca82614c65565b604082019050919050565b5f6020820190508181035f830152614cec81614cb3565b9050919050565b7f546f74616c2073656c6c206665652063616e6e6f7420626520686967686572205f8201527f7468616e20333025000000000000000000000000000000000000000000000000602082015250565b5f614d4d6028836141cf565b9150614d5882614cf3565b604082019050919050565b5f6020820190508181035f830152614d7a81614d41565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f614ddb6039836141cf565b9150614de682614d81565b604082019050919050565b5f6020820190508181035f830152614e0881614dcf565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614e696025836141cf565b9150614e7482614e0f565b604082019050919050565b5f6020820190508181035f830152614e9681614e5d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e30312520746f74616c20737570706c792e000000000000000000000000602082015250565b5f614ef76034836141cf565b9150614f0282614e9d565b604082019050919050565b5f6020820190508181035f830152614f2481614eeb565b9050919050565b7f6d6178696d756d20616d6f756e742063616e74206265206869676865722074685f8201527f616e206d696e696d756d00000000000000000000000000000000000000000000602082015250565b5f614f85602a836141cf565b9150614f9082614f2b565b604082019050919050565b5f6020820190508181035f830152614fb281614f79565b9050919050565b5f604082019050614fcc5f830185614581565b614fd9602083018461435f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61503a6026836141cf565b915061504582614fe0565b604082019050919050565b5f6020820190508181035f8301526150678161502e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6150c86024836141cf565b91506150d38261506e565b604082019050919050565b5f6020820190508181035f8301526150f5816150bc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6151566022836141cf565b9150615161826150fc565b604082019050919050565b5f6020820190508181035f8301526151838161514a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6151e46025836141cf565b91506151ef8261518a565b604082019050919050565b5f6020820190508181035f830152615211816151d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6152726023836141cf565b915061527d82615218565b604082019050919050565b5f6020820190508181035f83015261529f81615266565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6153006029836141cf565b915061530b826152a6565b604082019050919050565b5f6020820190508181035f83015261532d816152f4565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f742061637469765f8201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b5f61538e6022836141cf565b915061539982615334565b604082019050919050565b5f6020820190508181035f8301526153bb81615382565b9050919050565b5f6060820190506153d55f830186614581565b6153e26020830185614387565b6153ef6040830184614387565b949350505050565b7f42616e616e61732063616e6e6f742073656e6420746f6b656e7320746f20616e5f8201527f6f746865722077616c6c65742e00000000000000000000000000000000000000602082015250565b5f615451602d836141cf565b915061545c826153f7565b604082019050919050565b5f6020820190508181035f83015261547e81615445565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6155056049836141cf565b915061551082615485565b606082019050919050565b5f6020820190508181035f830152615532816154f9565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f6155936026836141cf565b915061559e82615539565b604082019050919050565b5f6020820190508181035f8301526155c081615587565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6155fb6013836141cf565b9150615606826155c7565b602082019050919050565b5f6020820190508181035f830152615628816155ef565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f6156896027836141cf565b91506156948261562f565b604082019050919050565b5f6020820190508181035f8301526156b68161567d565b9050919050565b5f6156c7826142e3565b91506156d2836142e3565b92508282039050818111156156ea576156e9614ad9565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61574a6026836141cf565b9150615755826156f0565b604082019050919050565b5f6020820190508181035f8301526157778161573e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506157e681614170565b92915050565b5f602082840312156158015761580061413c565b5b5f61580e848285016157d8565b91505092915050565b5f819050919050565b5f61583a61583561583084615817565b61426f565b6142e3565b9050919050565b61584a81615820565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6158828161415f565b82525050565b5f6158938383615879565b60208301905092915050565b5f602082019050919050565b5f6158b582615850565b6158bf818561585a565b93506158ca8361586a565b805f5b838110156158fa5781516158e18882615888565b97506158ec8361589f565b9250506001810190506158cd565b5085935050505092915050565b5f60a08201905061591a5f830188614387565b6159276020830187615841565b818103604083015261593981866158ab565b90506159486060830185614581565b6159556080830184614387565b969550505050505056fea264697066735822122095161b1dc349a44c5460d5a6e1d5ee67779b6c9019558baf14916921b838c4a964736f6c63430008180033