60806040523480156200001157600080fd5b50604051620011043803806200110483398101604081905262000034916200023a565b604051806040016040528060048152602001630ae8aa8960e31b815250604051806040016040528060048152602001630eecae8d60e31b8152506c02863c1f5cdae42f954000000083838381600390805190602001906200009792919062000194565b508051620000ad90600490602084019062000194565b505050620000c28183620000cd60201b60201c565b50505050506200030c565b6001600160a01b038216620000ff5760405162461bcd60e51b8152600401620000f6906200026a565b60405180910390fd5b6200010d600083836200018f565b8060026000828254620001219190620002aa565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062000175908590620002a1565b60405180910390a36200018b600083836200018f565b5050565b505050565b828054620001a290620002cf565b90600052602060002090601f016020900481019282620001c6576000855562000211565b82601f10620001e157805160ff191683800117855562000211565b8280016001018555821562000211579182015b8281111562000211578251825591602001919060010190620001f4565b506200021f92915062000223565b5090565b5b808211156200021f576000815560010162000224565b6000602082840312156200024c578081fd5b81516001600160a01b038116811462000263578182fd5b9392505050565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620002ca57634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620002e457607f821691505b602082108114156200030657634e487b7160e01b600052602260045260246000fd5b50919050565b610de8806200031c6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db576100df565b806342966c681461017257806370a082311461018757806379cc67901461019a576100df565b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015f576100df565b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610122575b600080fd5b6100ec6101ee565b6040516100f9919061097a565b60405180910390f35b61011561011036600461092e565b610280565b6040516100f9919061096f565b61012a6102a2565b6040516100f99190610d0a565b6101156101453660046108f3565b6102a8565b6101526102d6565b6040516100f99190610d13565b61011561016d36600461092e565b6102db565b610185610180366004610957565b610307565b005b61012a6101953660046108a0565b61031b565b6101856101a836600461092e565b610347565b6100ec610367565b6101156101c336600461092e565b610376565b6101156101d636600461092e565b6103e1565b61012a6101e93660046108c1565b6103f9565b6060600380546101fd90610d5e565b80601f016020809104026020016040519081016040528092919081815260200182805461022990610d5e565b80156102765780601f1061024b57610100808354040283529160200191610276565b820191906000526020600020905b81548152906001019060200180831161025957829003601f168201915b5050505050905090565b60008061028b610431565b9050610298818585610435565b5060019392505050565b60025490565b6000806102b3610431565b90506102c0858285610544565b6102cb8585856105c6565b506001949350505050565b601290565b6000806102e6610431565b90506102988185856102f885896103f9565b6103029190610d21565b610435565b610318610312610431565b82610749565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b61035982610353610431565b83610544565b6103638282610749565b5050565b6060600480546101fd90610d5e565b600080610381610431565b9050600061038f82866103f9565b9050838110156103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610cad565b60405180910390fd5b6102cb8286868403610435565b6000806103ec610431565b90506102988185856105c6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610c50565b73ffffffffffffffffffffffffffffffffffffffff82166104cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610aa5565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610537908590610d0a565b60405180910390a3505050565b600061055084846103f9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c057818110156105b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610b02565b6105c08484848403610435565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610613576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610bf3565b73ffffffffffffffffffffffffffffffffffffffff8216610660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb906109eb565b61066b838383610877565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610b39565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610736908690610d0a565b60405180910390a36105c0848484610877565b73ffffffffffffffffffffffffffffffffffffffff8216610796576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610b96565b6107a282600083610877565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cb90610a48565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610867908690610d0a565b60405180910390a3610877836000845b505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461034257600080fd5b6000602082840312156108b1578081fd5b6108ba8261087c565b9392505050565b600080604083850312156108d3578081fd5b6108dc8361087c565b91506108ea6020840161087c565b90509250929050565b600080600060608486031215610907578081fd5b6109108461087c565b925061091e6020850161087c565b9150604084013590509250925092565b60008060408385031215610940578182fd5b6109498361087c565b946020939093013593505050565b600060208284031215610968578081fd5b5035919050565b901515815260200190565b6000602080835283518082850152825b818110156109a65785810183015185820160400152820161098a565b818111156109b75783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60408201527f6365000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260408201527f616c616e63650000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760408201527f207a65726f000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610d59577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b500190565b600281046001821680610d7257607f821691505b60208210811415610dac577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212200892114379f53e2c9dd43ef576745b30539b9457776108841c5a8f80464e7dc564736f6c634300080000330000000000000000000000003b2de6af50158067c8cc2fb35e47ec8183d8b085