60806040523480156200001157600080fd5b50604051620010b1380380620010b18339810160408190526200003491620001cf565b6200004385858585856200004e565b5050505050620003c8565b6004546001600160a01b031615620000ac5760405162461bcd60e51b815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015260640160405180910390fd5b600480546001600160a01b031916331790556000620000cc8682620002fc565b506001620000db8582620002fc565b50600291909155600580546001600160a01b0319166001600160a01b0393909316929092179091556003555050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013257600080fd5b81516001600160401b03808211156200014f576200014f6200010a565b604051601f8301601f19908116603f011681019082821181831017156200017a576200017a6200010a565b816040528381526020925086838588010111156200019757600080fd5b600091505b83821015620001bb57858201830151818301840152908201906200019c565b600093810190920192909252949350505050565b600080600080600060a08688031215620001e857600080fd5b85516001600160401b03808211156200020057600080fd5b6200020e89838a0162000120565b965060208801519150808211156200022557600080fd5b50620002348882890162000120565b604088015190955090506001600160a01b03811681146200025457600080fd5b6060870151608090970151959894975095949392505050565b600181811c908216806200028257607f821691505b602082108103620002a357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002f757600081815260208120601f850160051c81016020861015620002d25750805b601f850160051c820191505b81811015620002f357828155600101620002de565b5050505b505050565b81516001600160401b038111156200031857620003186200010a565b62000330816200032984546200026d565b84620002a9565b602080601f8311600181146200036857600084156200034f5750858301515b600019600386901b1c1916600185901b178555620002f3565b600085815260208120601f198616915b82811015620003995788860151825594840194600190910190840162000378565b5085821015620003b85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610cd980620003d86000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806370a082311161008157806395d89b411161005b57806395d89b41146101bd5780639b2cb5d8146101c55780639ce110d7146101ce57600080fd5b806370a082311461018457806374823132146101975780638b82d891146101aa57600080fd5b80632faf7d6b116100b25780632faf7d6b14610127578063313ce5671461016c578063437a8ae61461017b57600080fd5b806306fdde03146100d957806318160ddd146100f75780631e34c5851461010c575b600080fd5b6100e16101ee565b6040516100ee9190610673565b60405180910390f35b6402540be4005b6040519081526020016100ee565b61012561011a3660046106c1565b600291909155600355565b005b6005546101479073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ee565b604051600281526020016100ee565b6100fe60035481565b6100fe61019236600461070c565b61027c565b6101256101a53660046107e3565b61042d565b6101256101b83660046108b5565b610548565b6100e1610666565b6100fe60025481565b6004546101479073ffffffffffffffffffffffffffffffffffffffff1681565b600080546101fb90610921565b80601f016020809104026020016040519081016040528092919081815260200182805461022790610921565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b505050505081565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015260009283929116906370a0823190602401602060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103149190610974565b905060025481101561035957600a60ff8460ff1660025461033591906109bc565b61033f91906109d9565b61034991906109d9565b6002546103569190610a14565b90505b600554604080517f313ce567000000000000000000000000000000000000000000000000000000008152905160029273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa1580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed9190610a27565b6103f79190610a4a565b61040290600a610b47565b60646003548361041291906109bc565b61041c91906109d9565b61042691906109d9565b9392505050565b60045473ffffffffffffffffffffffffffffffffffffffff16156104b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015260640160405180910390fd5b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317905560006104e78682610ba1565b5060016104f48582610ba1565b50600291909155600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091556003555050565b60006105556002856109d9565b6105609060026109bc565b905060005b8181101561065e57858561057a836001610c61565b81811061058957610589610c74565b905060200201602081019061059e919061070c565b73ffffffffffffffffffffffffffffffffffffffff168686838181106105c6576105c6610c74565b90506020020160208101906105db919061070c565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868661061f6002876109d9565b81811061062e5761062e610c74565b9050602002013560405161064491815260200190565b60405180910390a3610657600282610c61565b9050610565565b505050505050565b600180546101fb90610921565b600060208083528351808285015260005b818110156106a057858101830151858201604001528201610684565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156106d457600080fd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461070757600080fd5b919050565b60006020828403121561071e57600080fd5b610426826106e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261076757600080fd5b813567ffffffffffffffff8082111561078257610782610727565b604051601f8301601f19908116603f011681019082821181831017156107aa576107aa610727565b816040528381528660208588010111156107c357600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a086880312156107fb57600080fd5b853567ffffffffffffffff8082111561081357600080fd5b61081f89838a01610756565b9650602088013591508082111561083557600080fd5b5061084288828901610756565b945050610851604087016106e3565b94979396509394606081013594506080013592915050565b60008083601f84011261087b57600080fd5b50813567ffffffffffffffff81111561089357600080fd5b6020830191508360208260051b85010111156108ae57600080fd5b9250929050565b600080600080604085870312156108cb57600080fd5b843567ffffffffffffffff808211156108e357600080fd5b6108ef88838901610869565b9096509450602087013591508082111561090857600080fd5b5061091587828801610869565b95989497509550505050565b600181811c9082168061093557607f821691505b60208210810361096e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561098657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176109d3576109d361098d565b92915050565b600082610a0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156109d3576109d361098d565b600060208284031215610a3957600080fd5b815160ff8116811461042657600080fd5b60ff82811682821603908111156109d3576109d361098d565b600181815b80851115610a9e578160001904821115610a8457610a8461098d565b80851615610a9157918102915b93841c9390800290610a68565b509250929050565b600082610ab5575060016109d3565b81610ac2575060006109d3565b8160018114610ad85760028114610ae257610afe565b60019150506109d3565b60ff841115610af357610af361098d565b50506001821b6109d3565b5060208310610133831016604e8410600b8410161715610b21575081810a6109d3565b610b2b8383610a63565b8060001904821115610b3f57610b3f61098d565b029392505050565b600061042660ff841683610aa6565b601f821115610b9c57600081815260208120601f850160051c81016020861015610b7d5750805b601f850160051c820191505b8181101561065e57828155600101610b89565b505050565b815167ffffffffffffffff811115610bbb57610bbb610727565b610bcf81610bc98454610921565b84610b56565b602080601f831160018114610c045760008415610bec5750858301515b600019600386901b1c1916600185901b17855561065e565b600085815260208120601f198616915b82811015610c3357888601518255948401946001909101908401610c14565b5085821015610c515787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156109d3576109d361098d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220b924423a1b67896bd83110ae4d5df906ce9d81b8d34b8864917a529744f861bb64736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000080ee5c641a8ffc607545219a3856562f56427fe9000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000005dc00000000000000000000000000000000000000000000000000000000000000242120427265747420486f6c64657220526577617264202d2062726574746574682e6e6574000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032436c61696d2024425245545420486f6c646572205265776172642061742068747470733a2f2f62726574746574682e6e65740000000000000000000000000000