60c0604052601460808190527f5374616b656420437962657220547572746c657300000000000000000000000060a0908152620000409160019190620000ea565b506040805180820190915260068082526539a1bcb132b960d11b60209092019182526200007091600291620000ea565b50600380547381bc389d02c3054649643e590ce57faaab3bf38b6001600160a01b031991821681179092556004805490911690911790556361f869f06005556374c70ff060065568056bc75e2d63100000600755348015620000d157600080fd5b50600080546001600160a01b03191633179055620001cd565b828054620000f89062000190565b90600052602060002090601f0160209004810192826200011c576000855562000167565b82601f106200013757805160ff191683800117855562000167565b8280016001018555821562000167579182015b82811115620001675782518255916020019190600101906200014a565b506200017592915062000179565b5090565b5b808211156200017557600081556001016200017a565b600181811c90821680620001a557607f821691505b60208210811415620001c757634e487b7160e01b600052602260045260246000fd5b50919050565b611c9f80620001dd6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c87b56dd11610097578063e0308ce811610071578063e0308ce814610370578063f0dbdee014610383578063f2fde38b14610396578063fc1d9a7f146103a957600080fd5b8063c87b56dd14610337578063cff7833d1461034a578063d9c020bf1461035d57600080fd5b80638da5cb5b116100d35780638da5cb5b146102f657806395d89b4114610309578063968e72f814610311578063bfc3d84b1461032457600080fd5b806370a08231146102d2578063715018a6146102e55780637c073ede146102ed57600080fd5b8063314ca0391161016657806358d78c8c1161014057806358d78c8c146102785780636352211e1461028b5780636999ac93146102b65780636ba4c138146102bf57600080fd5b8063314ca0391461023c578063438b6300146102455780634fcd49e81461026557600080fd5b806301ffc9a7146101ae57806302ffaed1146101d657806306fdde03146101eb57806308cf8f061461020057806318160ddd1461022157806330176e1314610229575b600080fd5b6101c16101bc366004611740565b6103bc565b60405190151581526020015b60405180910390f35b6101e96101e436600461176a565b6103f3565b005b6101f361043d565b6040516101cd9190611a36565b61021361020e366004611884565b6104cb565b6040519081526020016101cd565b6102136104d6565b6101e961023736600461176a565b61069a565b61021360065481565b610258610253366004611660565b6106d7565b6040516101cd91906119f2565b6101e96102733660046116a9565b6108af565b6102136102863660046116a9565b610a6c565b61029e610299366004611884565b610ab1565b6040516001600160a01b0390911681526020016101cd565b61021360075481565b6101e96102cd3660046116a9565b610b59565b6102136102e0366004611660565b610c9e565b6101e9610dfb565b61021360055481565b60005461029e906001600160a01b031681565b6101f3610e31565b61021361031f366004611660565b610e3e565b60035461029e906001600160a01b031681565b6101f3610345366004611884565b610e55565b6101e9610358366004611660565b610f00565b6101e961036b36600461167d565b610f4c565b6101e961037e3660046116a9565b610fd4565b6101e9610391366004611660565b611199565b6101e96103a4366004611660565b6111e5565b60045461029e906001600160a01b031681565b60006380ac58cd60e01b6001600160e01b0319831614806103ed5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000546001600160a01b031633146104265760405162461bcd60e51b815260040161041d90611ab4565b60405180910390fd5b80516104399060099060208401906115c7565b5050565b6001805461044a90611b92565b80601f016020809104026020016040519081016040528092919081815260200182805461047690611b92565b80156104c35780601f10610498576101008083540402835291602001916104c3565b820191906000526020600020905b8154815290600101906020018083116104a657829003601f168201915b505050505081565b60006103ed82611281565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b0316635b5d958b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052957600080fd5b505afa15801561053d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610561919061189d565b9050805b600354604080516318160ddd60e01b8152905184926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156105a957600080fd5b505afa1580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061189d565b6105eb9190611ae9565b811161069257600354604051635d528fc360e11b8152600481018390526001600160a01b039091169063baa51f869060240160206040518083038186803b15801561063557600080fd5b505afa158015610649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066d919061171e565b15610680578261067c81611bcd565b9350505b8061068a81611bcd565b915050610565565b509092915050565b6000546001600160a01b031633146106c45760405162461bcd60e51b815260040161041d90611ab4565b80516104399060089060208401906115c7565b606060006106e483610c9e565b9050806107055760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff81111561072057610720611c3e565b604051908082528060200260200182016040528015610749578160200160208202803683370190505b509050600080600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d5919061189d565b6107e0906001611ae9565b905060005b818110156108a45760006107f882610ab1565b6001600160a01b0316148015610831575083610815600187611b34565b8151811061082557610825611c28565b60200260200101516000145b15610844578161084081611bcd565b9250505b866001600160a01b031661085782610ab1565b6001600160a01b03161415610892578084848151811061087957610879611c28565b60209081029190910101528261088e81611bcd565b9350505b8061089c81611bcd565b9150506107e5565b509195945050505050565b6003546040516339d0ab6760e21b81526001600160a01b039091169063e742ad9c906108e3903390869086906004016119b9565b60206040518083038186803b1580156108fb57600080fd5b505afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610933919061171e565b61094f5760405162461bcd60e51b815260040161041d90611a69565b61098c3383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061137492505050565b6003546040516309f9a93d60e31b81526001600160a01b0390911690634fcd49e8906109be90859085906004016119de565b600060405180830381600087803b1580156109d857600080fd5b505af11580156109ec573d6000803e3d6000fd5b5050505060005b81811015610a6757828282818110610a0d57610a0d611c28565b9050602002013560006001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480610a5f81611bcd565b9150506109f3565b505050565b6000610aaa83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061142f92505050565b9392505050565b600354604051633835054160e01b81526004810183905260009182916001600160a01b0390911690633835054190602401604080518083038186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b31919061181b565b9050600080826020015164ffffffffff1611610b4e576000610b51565b81515b949350505050565b6003546040516339d0ab6760e21b81526001600160a01b039091169063e742ad9c90610b8d903390869086906004016119b9565b60206040518083038186803b158015610ba557600080fd5b505afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd919061171e565b610bf95760405162461bcd60e51b815260040161041d90611a69565b610c363383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061137492505050565b6003546040516358361e3160e01b81526001600160a01b03909116906358361e3190610c6890859085906004016119de565b600060405180830381600087803b158015610c8257600080fd5b505af1158015610c96573d6000803e3d6000fd5b505050505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b0316635b5d958b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d27919061189d565b90506000815b600354604080516318160ddd60e01b8152905185926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610d7157600080fd5b505afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da9919061189d565b610db39190611ae9565b81116106fd57846001600160a01b0316610dcc82610ab1565b6001600160a01b03161415610de95781610de581611bcd565b9250505b80610df381611bcd565b915050610d2d565b6000546001600160a01b03163314610e255760405162461bcd60e51b815260040161041d90611ab4565b610e2f6000611478565b565b6002805461044a90611b92565b600080610e4a836106d7565b9050610aaa8161142f565b60606000610e6283610ab1565b6001600160a01b03161415610ecb5760405162461bcd60e51b815260206004820152602960248201527f455243373231493a20746f6b656e555249282920546f6b656e20646f6573206e6044820152686f742065786973742160b81b606482015260840161041d565b6008610ed6836114c8565b6009604051602001610eea93929190611986565b6040516020818303038152906040529050919050565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b815260040161041d90611ab4565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314610f985760405162461bcd60e51b815260206004820152600f60248201526e596f7520617265206e6f742043542160881b604482015260640161041d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600354604051637713a0a360e11b81526001600160a01b039091169063ee27414690611008903390869086906004016119b9565b60206040518083038186803b15801561102057600080fd5b505afa158015611034573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611058919061171e565b6110be5760405162461bcd60e51b815260206004820152603160248201527f596f7520617265206e6f7420746865206f776e6572206f7220746f6b656e20696044820152707320616c7265616479207374616b65642160781b606482015260840161041d565b600354604051631c06119d60e31b81526001600160a01b039091169063e0308ce8906110f090859085906004016119de565b600060405180830381600087803b15801561110a57600080fd5b505af115801561111e573d6000803e3d6000fd5b5050505060005b81811015610a675782828281811061113f5761113f611c28565b90506020020135336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48061119181611bcd565b915050611125565b6000546001600160a01b031633146111c35760405162461bcd60e51b815260040161041d90611ab4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461120f5760405162461bcd60e51b815260040161041d90611ab4565b6001600160a01b0381166112755760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b606482015260840161041d565b61127e81611478565b50565b600354604051633835054160e01b81526004810183905260009182916001600160a01b0390911690633835054190602401604080518083038186803b1580156112c957600080fd5b505afa1580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611301919061181b565b6020015164ffffffffff16905080158061131c575060065481115b1561132a5750600092915050565b6000426006541161133d5760065461133f565b425b9050600061134d8383611b34565b905062015180600754826113619190611b15565b61136b9190611b01565b95945050505050565b6000805b82518110156113c1576113a383828151811061139657611396611c28565b6020026020010151611281565b6113ad9083611ae9565b9150806113b981611bcd565b915050611378565b50600480546040516340c10f1960e01b81526001600160a01b0386811693820193909352602481018490529116906340c10f1990604401600060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b50505050505050565b60008060005b83518110156114715761145384828151811061139657611396611c28565b61145d9083611ae9565b91508061146981611bcd565b915050611435565b5092915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816114ec5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611516578061150081611bcd565b915061150f9050600a83611b01565b91506114f0565b60008167ffffffffffffffff81111561153157611531611c3e565b6040519080825280601f01601f19166020018201604052801561155b576020820181803683370190505b5090505b8415610b51578161156f81611b7b565b925061157e9050600a86611be8565b611589906030611ae9565b60f81b81838151811061159e5761159e611c28565b60200101906001600160f81b031916908160001a9053506115c0600a86611b01565b945061155f565b8280546115d390611b92565b90600052602060002090601f0160209004810192826115f5576000855561163b565b82601f1061160e57805160ff191683800117855561163b565b8280016001018555821561163b579182015b8281111561163b578251825591602001919060010190611620565b5061164792915061164b565b5090565b5b80821115611647576000815560010161164c565b60006020828403121561167257600080fd5b8135610aaa81611c54565b6000806040838503121561169057600080fd5b823561169b81611c54565b946020939093013593505050565b600080602083850312156116bc57600080fd5b823567ffffffffffffffff808211156116d457600080fd5b818501915085601f8301126116e857600080fd5b8135818111156116f757600080fd5b8660208260051b850101111561170c57600080fd5b60209290920196919550909350505050565b60006020828403121561173057600080fd5b81518015158114610aaa57600080fd5b60006020828403121561175257600080fd5b81356001600160e01b031981168114610aaa57600080fd5b60006020828403121561177c57600080fd5b813567ffffffffffffffff8082111561179457600080fd5b818401915084601f8301126117a857600080fd5b8135818111156117ba576117ba611c3e565b604051601f8201601f19908116603f011681019083821181831017156117e2576117e2611c3e565b816040528281528760208487010111156117fb57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006040828403121561182d57600080fd5b6040516040810181811067ffffffffffffffff8211171561185057611850611c3e565b604052825161185e81611c54565b8152602083015164ffffffffff8116811461187857600080fd5b60208201529392505050565b60006020828403121561189657600080fd5b5035919050565b6000602082840312156118af57600080fd5b5051919050565b81835260006001600160fb1b038311156118cf57600080fd5b8260051b8083602087013760009401602001938452509192915050565b8054600090600181811c908083168061190657607f831692505b602080841082141561192857634e487b7160e01b600052602260045260246000fd5b81801561193c576001811461194d5761197a565b60ff1986168952848901965061197a565b60008881526020902060005b868110156119725781548b820152908501908301611959565b505084890196505b50505050505092915050565b600061199282866118ec565b84516119a2818360208901611b4b565b6119ae818301866118ec565b979650505050505050565b6001600160a01b038416815260406020820181905260009061136b90830184866118b6565b602081526000610b516020830184866118b6565b6020808252825182820181905260009190848201906040850190845b81811015611a2a57835183529284019291840191600101611a0e565b50909695505050505050565b6020815260008251806020840152611a55816040850160208701611b4b565b601f01601f19169190910160400192915050565b6020808252602b908201527f596f7520617265206e6f7420746865206f776e6572206f7220746f6b656e206960408201526a7320756e7374616b65642160a81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611afc57611afc611bfc565b500190565b600082611b1057611b10611c12565b500490565b6000816000190483118215151615611b2f57611b2f611bfc565b500290565b600082821015611b4657611b46611bfc565b500390565b60005b83811015611b66578181015183820152602001611b4e565b83811115611b75576000848401525b50505050565b600081611b8a57611b8a611bfc565b506000190190565b600181811c90821680611ba657607f821691505b60208210811415611bc757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611be157611be1611bfc565b5060010190565b600082611bf757611bf7611c12565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461127e57600080fdfea26469706673582212204a7023342e0546e9fc2094e188bf3451dd14ffc6e954fdfbf752304dcda634ca64736f6c63430008070033