60806040523480156200001157600080fd5b50604051806040016040528060078152602001662ab9b221b7b4b760c91b815250604051806040016040528060048152602001635553444360e01b8152508160039081620000609190620002d1565b5060046200006f8282620002d1565b5050506200008c62000086620000bf60201b60201c565b620000c3565b620000b9336200009f6012600a620004e8565b620000b3906702c68af0bb140000620004ff565b62000115565b62000580565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001475760405162461bcd60e51b81526004016200013e9062000521565b60405180910390fd5b80600260008282546200015b91906200055d565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001af90859062000573565b60405180910390a35b5050565b505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200020257607f821691505b602082108103620002175762000217620001d7565b50919050565b60006200022e6200022b8381565b90565b92915050565b6200023f836200021d565b81546008840282811b60001990911b908116901990911617825550505050565b6000620001bc81848462000234565b81811015620001b857620002846000826200025f565b6001016200026e565b601f821115620001bc576000818152602090206020601f85010481016020851015620002b65750805b620002ca6020601f8601048301826200026e565b5050505050565b81516001600160401b03811115620002ed57620002ed620001c1565b620002f98254620001ed565b620003068282856200028d565b6020601f8311600181146200033d5760008415620003245750858201515b600019600886021c198116600286021786555062000399565b600085815260208120601f198616915b828110156200036f57888501518255602094850194600190920191016200034d565b868310156200038c5784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b634e487b7160e01b600052601160045260246000fd5b80825b6001851115620003fd57808604811115620003d957620003d9620003a1565b6001851615620003e857908102905b8002620003f58560011c90565b9450620003ba565b94509492505050565b6000826200041757506001620004e1565b816200042657506000620004e1565b81600181146200043f57600281146200044a576200047e565b6001915050620004e1565b60ff8411156200045e576200045e620003a1565b8360020a915084821115620004775762000477620003a1565b50620004e1565b5060208310610133831016604e8410600b8410161715620004b6575081810a83811115620004b057620004b0620003a1565b620004e1565b620004c58484846001620003b7565b92509050818404811115620004de57620004de620003a1565b81025b9392505050565b600060ff83169250620004e1600019848462000406565b8181028082158382048514176200051a576200051a620003a1565b5092915050565b602080825281016200022e81601f81527f45524332303a206d696e7420746f20746865207a65726f206164647265737300602082015260400190565b808201808211156200022e576200022e620003a1565b818152602081016200022e565b610f2280620005906000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101ff578063a9059cbb14610212578063dd62ed3e14610225578063f2fde38b1461026b57600080fd5b806370a0823114610193578063715018a6146101c95780638da5cb5b146101d157806395d89b41146101f757600080fd5b806323b872dd116100d357806323b872dd14610149578063313ce5671461015c578063395093511461016b57806340c10f191461017e57600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610138575b600080fd5b61010261027e565b60405161010f91906108f0565b60405180910390f35b61012b610126366004610956565b610310565b60405161010f919061099d565b6002545b60405161010f91906109b1565b61012b6101573660046109bf565b61032a565b601260405161010f9190610a18565b61012b610179366004610956565b61034e565b61019161018c366004610956565b61039a565b005b61013c6101a1366004610a26565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101916103b0565b60055473ffffffffffffffffffffffffffffffffffffffff1660405161010f9190610a58565b6101026103c4565b61012b61020d366004610956565b6103d3565b61012b610220366004610956565b61043d565b61013c610233366004610a66565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b610191610279366004610a26565b61044b565b60606003805461028d90610ac8565b80601f01602080910402602001604051908101604052809291908181526020018280546102b990610ac8565b80156103065780601f106102db57610100808354040283529160200191610306565b820191906000526020600020905b8154815290600101906020018083116102e957829003601f168201915b5050505050905090565b60003361031e818585610492565b60019150505b92915050565b60003361033885828561056d565b6103438585856105fa565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061031e9082908690610395908790610b23565b610492565b6103a261071e565b6103ac8282610755565b5050565b6103b861071e565b6103c26000610805565b565b60606004805461028d90610ac8565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156104305760405162461bcd60e51b815260040161042790610b93565b60405180910390fd5b6103438286868403610492565b60003361031e8185856105fa565b61045361071e565b73ffffffffffffffffffffffffffffffffffffffff81166104865760405162461bcd60e51b815260040161042790610bfd565b61048f81610805565b50565b73ffffffffffffffffffffffffffffffffffffffff83166104c55760405162461bcd60e51b815260040161042790610c67565b73ffffffffffffffffffffffffffffffffffffffff82166104f85760405162461bcd60e51b815260040161042790610cd1565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105609085906109b1565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105f457818110156105e75760405162461bcd60e51b815260040161042790610d18565b6105f48484848403610492565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661062d5760405162461bcd60e51b815260040161042790610d82565b73ffffffffffffffffffffffffffffffffffffffff82166106605760405162461bcd60e51b815260040161042790610dec565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106a65760405162461bcd60e51b815260040161042790610e56565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107119086906109b1565b60405180910390a36105f4565b60055473ffffffffffffffffffffffffffffffffffffffff1633146103c25760405162461bcd60e51b815260040161042790610e98565b73ffffffffffffffffffffffffffffffffffffffff82166107885760405162461bcd60e51b815260040161042790610edc565b806002600082825461079a9190610b23565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107f99085906109b1565b60405180910390a35050565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005b8381101561089757818101518382015260200161087f565b50506000910152565b60006108aa825190565b8084526020840193506108c181856020860161087c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b6020808252810161090181846108a0565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610324565b61092f81610908565b811461048f57600080fd5b803561032481610926565b8061092f565b803561032481610945565b6000806040838503121561096c5761096c600080fd5b6000610978858561093a565b92505060206109898582860161094b565b9150509250929050565b8015155b82525050565b602081016103248284610993565b80610997565b6020810161032482846109ab565b6000806000606084860312156109d7576109d7600080fd5b60006109e3868661093a565b93505060206109f48682870161093a565b9250506040610a058682870161094b565b9150509250925092565b60ff8116610997565b602081016103248284610a0f565b600060208284031215610a3b57610a3b600080fd5b6000610a47848461093a565b949350505050565b61099781610908565b602081016103248284610a4f565b60008060408385031215610a7c57610a7c600080fd5b6000610a88858561093a565b92505060206109898582860161093a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600281046001821680610adc57607f821691505b602082108103610aee57610aee610a99565b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561032457610324610af4565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f000000000000000000000000000000000000000000000000000000602082015291505b5060400190565b6020808252810161032481610b36565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f646472657373000000000000000000000000000000000000000000000000000060208201529150610b8c565b6020808252810161032481610ba3565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f726573730000000000000000000000000000000000000000000000000000000060208201529150610b8c565b6020808252810161032481610c0d565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f737300000000000000000000000000000000000000000000000000000000000060208201529150610b8c565b6020808252810161032481610c77565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161032481610ce1565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f647265737300000000000000000000000000000000000000000000000000000060208201529150610b8c565b6020808252810161032481610d28565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f657373000000000000000000000000000000000000000000000000000000000060208201529150610b8c565b6020808252810161032481610d92565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e6365000000000000000000000000000000000000000000000000000060208201529150610b8c565b6020808252810161032481610dfc565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610d11565b6020808252810161032481610e66565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610d11565b6020808252810161032481610ea856fea2646970667358221220f7f063a0c4190ea25623dd6ca978c4e1cf77d90f39436dba6199552b96820f5264736f6c63430008110033