0x60806040526136a6806100136000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c806388188a1811610146578063ba730e53116100c3578063d6febde811610087578063d6febde814610ab1578063d79875eb14610ad4578063db006a7514610af7578063dd62ed3e14610b14578063e231bff014610b42578063fd138dc914610b4a5761025e565b8063ba730e5314610a56578063bafb8e8314610a73578063c3764e0314610a7b578063c4d66de814610a83578063d4532dfd14610aa95761025e565b80639af1d35a1161010a5780639af1d35a1461097b578063a457c2d7146109ae578063a492fbc6146109da578063a9059cbb146109f7578063b104e4f214610a235761025e565b806388188a18146107c35780638a311e79146107cb578063935b7dbd146107d357806395d89b411461080557806398415a391461080d5761025e565b806338907118116101df578063612debbd116101a3578063612debbd146106a05780636cee6da2146106bd57806370a08231146106c55780637a82a198146106eb5780637bdc6aba1461071757806384da92a71461071f5761025e565b806338907118146105775780633950935114610596578063537f5312146105c25780635d1ca631146106665780635f6108ff1461066e5761025e565b80631624f6c6116102265780631624f6c6146103d157806318160ddd1461050157806323b872dd1461051b5780632d7ecd1114610551578063313ce567146105595761025e565b806306fdde031461026357806307b5204e146102e057806308d4db1414610332578063095ea7b31461036d578063147ed350146103ad575b600080fd5b61026b610b52565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a557818101518382015260200161028d565b50505050905090810190601f1680156102d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e8610be9565b60408051998a5260208a019890985261ffff909616888801526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b61034f6004803603602081101561034857600080fd5b5035610c17565b60408051938452602084019290925282820152519081900360600190f35b6103996004803603604081101561038357600080fd5b506001600160a01b038135169060200135610cd3565b604080519115158252519081900360200190f35b6103b5610cf1565b604080516001600160a01b039092168252519081900360200190f35b6104ff600480360360608110156103e757600080fd5b810190602081018135600160201b81111561040157600080fd5b82018360208201111561041357600080fd5b803590602001918460018302840111600160201b8311171561043457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561048657600080fd5b82018360208201111561049857600080fd5b803590602001918460018302840111600160201b831117156104b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff169150610d019050565b005b610509610ddd565b60408051918252519081900360200190f35b6103996004803603606081101561053157600080fd5b506001600160a01b03813581169160208101359091169060400135610de3565b610399610e70565b610561610e7a565b6040805160ff9092168252519081900360200190f35b6104ff6004803603602081101561058d57600080fd5b50351515610e83565b610399600480360360408110156105ac57600080fd5b506001600160a01b038135169060200135610faf565b6104ff600480360360208110156105d857600080fd5b810190602081018135600160201b8111156105f257600080fd5b82018360208201111561060457600080fd5b803590602001918460018302840111600160201b8311171561062557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611003945050505050565b61050961117b565b6104ff6004803603606081101561068457600080fd5b506001600160a01b0381351690602081013590604001356111f8565b6104ff600480360360208110156106b657600080fd5b50356112d6565b610509611431565b610509600480360360208110156106db57600080fd5b50356001600160a01b0316611438565b6104ff6004803603604081101561070157600080fd5b506001600160a01b038135169060200135611453565b610509611530565b6104ff6004803603602081101561073557600080fd5b810190602081018135600160201b81111561074f57600080fd5b82018360208201111561076157600080fd5b803590602001918460018302840111600160201b8311171561078257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611576945050505050565b6103b5611651565b6103b5611661565b6104ff600480360360608110156107e957600080fd5b506001600160a01b038135169060208101359060400135611671565b61026b611684565b6104ff600480360361016081101561082457600080fd5b810190602081018135600160201b81111561083e57600080fd5b82018360208201111561085057600080fd5b803590602001918460018302840111600160201b8311171561087157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156108c357600080fd5b8201836020820111156108d557600080fd5b803590602001918460018302840111600160201b831117156108f657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350505060208101359060408101359060608101359061ffff608082013516906001600160a01b0360a082013581169160c081013582169160e0820135169061010001356116e5565b6109836117ee565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b610399600480360360408110156109c457600080fd5b506001600160a01b038135169060200135611805565b61034f600480360360208110156109f057600080fd5b5035611873565b61039960048036036040811015610a0d57600080fd5b506001600160a01b038135169060200135611976565b6104ff60048036036080811015610a3957600080fd5b508035906020810135906040810135906060013561ffff1661198a565b61034f60048036036020811015610a6c57600080fd5b5035611b08565b610509611bb7565b6103b5611bc7565b6104ff60048036036020811015610a9957600080fd5b50356001600160a01b0316611bd7565b6103b5611c96565b6104ff60048036036040811015610ac757600080fd5b5080359060200135611ca6565b6104ff60048036036040811015610aea57600080fd5b5080359060200135611cbe565b6104ff60048036036020811015610b0d57600080fd5b5035611cd0565b61050960048036036040811015610b2a57600080fd5b506001600160a01b0381358116916020013516611ce4565b610509611d0f565b6103b5611d16565b60ce8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b505050505090505b90565b61010d5461010e5461010f5461011054610111546101125461011354610114546101155461ffff9096169589565b6000806000610c24611bb7565b610c3857505061010e549050600080610ccc565b6000610c42611d26565b61011054909150600090610c5c908363ffffffff611d4616565b90506000610c70838863ffffffff611d8f16565b61011054909150600090610c8a908363ffffffff611d4616565b90506000610c9e828563ffffffff611d8f16565b90506000610cac828b611dd1565b9050600080610cbc600084611e47565b939b509950919750505050505050505b9193909250565b6000610ce7610ce0611f03565b8484611f07565b5060015b92915050565b610104546001600160a01b031681565b600054610100900460ff1680610d1a5750610d1a611ff3565b80610d28575060005460ff16155b610d635760405162461bcd60e51b815260040180806020018281038252602e81526020018061352b602e913960400191505060405180910390fd5b600054610100900460ff16158015610d8e576000805460ff1961ff0019909116610100171660011790555b8351610da19060ce9060208701906131f8565b508251610db59060cf9060208601906131f8565b5060d0805460ff191660ff84161790558015610dd7576000805461ff00191690555b50505050565b609b5490565b6000610df0848484611ff9565b610e6684610dfc611f03565b610e6185604051806060016040528060288152602001613503602891396001600160a01b038a166000908152609a6020526040812090610e3a611f03565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61215716565b611f07565b5060019392505050565b6101075460ff1681565b60d05460ff1690565b610104546001600160a01b031680633af32abf610e9e611f03565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610ee457600080fd5b505afa158015610ef8573d6000803e3d6000fd5b505050506040513d6020811015610f0e57600080fd5b5051610f4b5760405162461bcd60e51b815260040180806020018281038252604081526020018061332b6040913960400191505060405180910390fd5b610107805460ff1916831515179055610f62611f03565b610107546040805160ff90921615158252516001600160a01b0392909216917f7082a0edf3e485c52a89d6c529ba85b20704631b0df76d088287a8651ce98e669181900360200190a25050565b6000610ce7610fbc611f03565b84610e6185609a6000610fcd611f03565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6121ee16565b610104546001600160a01b031680633af32abf61101e611f03565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561106457600080fd5b505afa158015611078573d6000803e3d6000fd5b505050506040513d602081101561108e57600080fd5b50516110cb5760405162461bcd60e51b815260040180806020018281038252604081526020018061332b6040913960400191505060405180910390fd5b60cf8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261116393909290918301828280156111585780601f1061112d57610100808354040283529160200191611158565b820191906000526020600020905b81548152906001019060200180831161113b57829003601f168201915b505050505083612248565b81516111769060cf9060208501906131f8565b505050565b6101045460408051633a468d3f60e21b815230600482015290516000926001600160a01b03169163e91a34fc916024808301926020929190829003018186803b1580156111c757600080fd5b505afa1580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051905090565b61010354604051630414816b60e31b81526000916001600160a01b0316906320a40b58908390600401808260ff16815260200191505060206040518083038186803b15801561124657600080fd5b505afa15801561125a573d6000803e3d6000fd5b505050506040513d602081101561127057600080fd5b505190506001600160a01b038116611286611f03565b6001600160a01b0316146112cb5760405162461bcd60e51b81526004018080602001828103825260388152602001806133f36038913960400191505060405180910390fd5b610dd7848484612424565b610104546001600160a01b031680633af32abf6112f1611f03565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561133757600080fd5b505afa15801561134b573d6000803e3d6000fd5b505050506040513d602081101561136157600080fd5b505161139e5760405162461bcd60e51b815260040180806020018281038252604081526020018061332b6040913960400191505060405180910390fd5b4261011654116113df5760405162461bcd60e51b81526004018080602001828103825260238152602001806132d66023913960400191505060405180910390fd5b6101168290556113ed611f03565b6001600160a01b03167f6987f9c6184734ee4168bf73e42f3f3c93d43c8bcc2f4430e9b35ffe39b72f75836040518082815260200191505060405180910390a25050565b6101165481565b6001600160a01b031660009081526099602052604090205490565b61010354604051630414816b60e31b81526000916001600160a01b0316906320a40b58908390600401808260ff16815260200191505060206040518083038186803b1580156114a157600080fd5b505afa1580156114b5573d6000803e3d6000fd5b505050506040513d60208110156114cb57600080fd5b505190506001600160a01b0381166114e1611f03565b6001600160a01b0316146115265760405162461bcd60e51b81526004018080602001828103825260388152602001806133f36038913960400191505060405180910390fd5b6111768383612613565b6101045460408051635d1ca63160e01b815290516000926001600160a01b031691635d1ca631916004808301926020929190829003018186803b1580156111c757600080fd5b610104546001600160a01b031680633af32abf611591611f03565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156115d757600080fd5b505afa1580156115eb573d6000803e3d6000fd5b505050506040513d602081101561160157600080fd5b505161163e5760405162461bcd60e51b815260040180806020018281038252604081526020018061332b6040913960400191505060405180910390fd5b81516111769060ce9060208501906131f8565b610103546001600160a01b031690565b610104546001600160a01b031690565b6111768361167d611f03565b84846127d6565b60cf8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bde5780601f10610bb357610100808354040283529160200191610bde565b600054610100900460ff16806116fe57506116fe611ff3565b8061170c575060005460ff16155b6117475760405162461bcd60e51b815260040180806020018281038252602e81526020018061352b602e913960400191505060405180910390fd5b600054610100900460ff16158015611772576000805460ff1961ff0019909116610100171660011790555b61177b83612a02565b61178484611bd7565b61178f8c8c8c610d01565b61010580546001600160a01b0319166001600160a01b0387161790556117b5308a612b1b565b6117c0888888612c0d565b6117c8612e69565b61011682905580156117e0576000805461ff00191690555b505050505050505050505050565b610108546101095461010a5461010b5461010c5485565b6000610ce7611812611f03565b84610e618560405180606001604052806025815260200161361460259139609a600061183c611f03565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61215716565b60008060008061188a61188586612e8b565b612eab565b9050600081116118cb5760405162461bcd60e51b81526004018080602001828103825260378152602001806134ab6037913960400191505060405180910390fd5b61010654610113546000916118e6919063ffffffff611d8f16565b61011054909150600090611900908363ffffffff611d4616565b90506000611914838563ffffffff611d8f16565b6101105490915060009061192e908363ffffffff611d4616565b90506000611942828563ffffffff611d8f16565b905060006119508288611dd1565b9050600080611960600284611e47565b939e909d50929b50919950505050505050505050565b6000610ce7611983611f03565b8484611ff9565b610104546001600160a01b031680633af32abf6119a5611f03565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156119eb57600080fd5b505afa1580156119ff573d6000803e3d6000fd5b505050506040513d6020811015611a1557600080fd5b5051611a525760405162461bcd60e51b815260040180806020018281038252604081526020018061332b6040913960400191505060405180910390fd5b426101165411611a935760405162461bcd60e51b81526004018080602001828103825260238152602001806132d66023913960400191505060405180910390fd5b6000611a9d610ddd565b905085811015611ab857611ab330828803612b1b565b611acc565b85811115611acc57611acc30878303612ecb565b611ad7858585612c0d565b6040517f24d9181720037ba70e166909dfd1fa58e7522668e745d8ecf612a9e45d0f11b990600090a1505050505050565b6000806000611b15610ddd565b611b1d611bb7565b1415611b3357505061010d549050600080610ccc565b6000611b3d611d26565b61011054909150600090611b57908363ffffffff611d4616565b90506000611b6b838863ffffffff6121ee16565b61011054909150600090611b85908363ffffffff611d4616565b90506000611b99848363ffffffff611d8f16565b90506000611ba7828b611dd1565b9050600080610cbc600184611e47565b6000611bc230611438565b905090565b610105546001600160a01b031690565b600054610100900460ff1680611bf05750611bf0611ff3565b80611bfe575060005460ff16155b611c395760405162461bcd60e51b815260040180806020018281038252602e81526020018061352b602e913960400191505060405180910390fd5b600054610100900460ff16158015611c64576000805460ff1961ff0019909116610100171660011790555b61010480546001600160a01b0319166001600160a01b0384161790558015611c92576000805461ff00191690555b5050565b610105546001600160a01b031681565b6000611cb0611f03565b9050611176818285856127d6565b611c92611cc9611f03565b8383612424565b611ce1611cdb611f03565b82612613565b50565b6001600160a01b039182166000908152609a6020908152604080832093909416825291909152205490565b6101065481565b610103546001600160a01b031681565b6000611bc261010d60070154611d3a611bb7565b9063ffffffff6121ee16565b6000611d8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fc7565b9392505050565b6000611d8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612157565b61011154600090819015611e155761011154611e0e90611e0190611dfc90869063ffffffff61302c16565b612e8b565b859063ffffffff611d8f16565b9050611d88565b61011254611e3f90611e3290611dfc90869063ffffffff61302c16565b859063ffffffff6121ee16565b949350505050565b60008080846002811115611e5757fe5b1415611e8f576000611e6f8461010860010154613085565b90506000611e838561010860000154613085565b9350909150611efc9050565b6001846002811115611e9d57fe5b1415611ec9576000611eb58461010860030154613085565b90506000611e838561010860020154613085565b6002846002811115611ed757fe5b1415611efc576000611eef8461010860040154613085565b600093509150611efc9050565b9250929050565b3390565b6001600160a01b038316611f4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806135ca6024913960400191505060405180910390fd5b6001600160a01b038216611f915760405162461bcd60e51b815260040180806020018281038252602281526020018061336b6022913960400191505060405180910390fd5b6001600160a01b038084166000818152609a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b303b1590565b6001600160a01b03831661203e5760405162461bcd60e51b815260040180806020018281038252602581526020018061357a6025913960400191505060405180910390fd5b6001600160a01b0382166120835760405162461bcd60e51b81526004018080602001828103825260238152602001806132916023913960400191505060405180910390fd5b6120c6816040518060600160405280602681526020016133cd602691396001600160a01b038616600090815260996020526040902054919063ffffffff61215716565b6001600160a01b0380851660009081526099602052604080822093909355908416815220546120fb908263ffffffff6121ee16565b6001600160a01b0380841660008181526099602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156121e65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121ab578181015183820152602001612193565b50505050905090810190601f1680156121d85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611d88576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061225261117b565b111561238757610104546040805163603a911360e01b8152600481019182528451604482015284516001600160a01b039093169263603a9113928692869282916024810191606490910190602087019080838360005b838110156122c05781810151838201526020016122a8565b50505050905090810190601f1680156122ed5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015612320578181015183820152602001612308565b50505050905090810190601f16801561234d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561236e57600080fd5b505af1158015612382573d6000803e3d6000fd5b505050505b7f77b7a58860aea27a91574d502d328e8ce7594f3c870cc117aab76436e45486ff816040518080602001828103825283818151815260200191508051906020019080838360005b838110156123e65781810151838201526020016123ce565b50505050905090810190601f1680156124135780820380516001836020036101000a031916815260200191505b509250505060405180910390a15050565b600080600061243285611b08565b91945092509050600061245b8261244f868663ffffffff611d8f16565b9063ffffffff611d8f16565b90508481101561249c5760405162461bcd60e51b81526004018080602001828103825260348152602001806134776034913960400191505060405180910390fd5b6124a7873088611ff9565b610105546040805163a9059cbb60e01b81526001600160a01b038a81166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156124fe57600080fd5b505af1158015612512573d6000803e3d6000fd5b505050506040513d602081101561252857600080fd5b50516125655760405162461bcd60e51b815260040180806020018281038252602b81526020018061359f602b913960400191505060405180910390fd5b6001831561258657610104546125869082906001600160a01b03168661309d565b82156125a557610103546125a59082906001600160a01b03168561309d565b876001600160a01b03166125b7611f03565b6001600160a01b03166001604080518b8152602081018a90528082018990526060810188905290517fe99e5bd0a427b1fc48c7032694e7c3097f8485cf8a5ff538e19eb9dc9ca03c319181900360800190a45050505050505050565b6101075460ff166126555760405162461bcd60e51b81526004018080602001828103825260238152602001806134546023913960400191505060405180910390fd5b600061266361188583612e8b565b90508181146126a35760405162461bcd60e51b81526004018080602001828103825260268152602001806135ee6026913960400191505060405180910390fd5b600081116126e25760405162461bcd60e51b81526004018080602001828103825260378152602001806134ab6037913960400191505060405180910390fd5b6000806126ee83611873565b92505091506126fd8584612ecb565b61010654612711908463ffffffff6121ee16565b610106556000612727838363ffffffff611d8f16565b90506002811561274a576101045461274a9082906001600160a01b03168461309d565b821561276957610103546127699082906001600160a01b03168561309d565b866001600160a01b031661277b611f03565b6001600160a01b03166002604080518a8152602081018990528082018790526060810188905290517fe99e5bd0a427b1fc48c7032694e7c3097f8485cf8a5ff538e19eb9dc9ca03c319181900360800190a450505050505050565b426101165411156128185760405162461bcd60e51b815260040180806020018281038252602981526020018061342b6029913960400191505060405180910390fd5b600080600061282685610c17565b91945092509050600061284382611d3a868663ffffffff6121ee16565b9050848111156128845760405162461bcd60e51b81526004018080602001828103825260328152602001806132f96032913960400191505060405180910390fd5b61010554604080516323b872dd60e01b81526001600160a01b038a8116600483015230602483015260448201859052915191909216916323b872dd9160648083019260209291908290030181600087803b1580156128e157600080fd5b505af11580156128f5573d6000803e3d6000fd5b505050506040513d602081101561290b57600080fd5b50516129485760405162461bcd60e51b815260040180806020018281038252602b81526020018061359f602b913960400191505060405180910390fd5b612953308988611ff9565b6000831561297457610104546129749082906001600160a01b03168661309d565b821561299357610103546129939082906001600160a01b03168561309d565b886001600160a01b03166129a5611f03565b6001600160a01b03166000604080518b8152602081018a90528082018990526060810188905290517fe99e5bd0a427b1fc48c7032694e7c3097f8485cf8a5ff538e19eb9dc9ca03c319181900360800190a4505050505050505050565b600054610100900460ff1680612a1b5750612a1b611ff3565b80612a29575060005460ff16155b612a645760405162461bcd60e51b815260040180806020018281038252602e81526020018061352b602e913960400191505060405180910390fd5b600054610100900460ff16158015612a8f576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216612aea576040805162461bcd60e51b815260206004820152601e60248201527f466f756e646174696f6e20616464726573732063616e6e6f7420626520300000604482015290519081900360640190fd5b61010380546001600160a01b0319166001600160a01b0384161790558015611c92576000805461ff00191690555050565b6001600160a01b038216612b76576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b609b54612b89908263ffffffff6121ee16565b609b556001600160a01b038216600090815260996020526040902054612bb5908263ffffffff6121ee16565b6001600160a01b03831660008181526099602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008161ffff16118015612c2657506127108161ffff16105b612c615760405162461bcd60e51b815260040180806020018281038252604081526020018061338d6040913960400191505060405180910390fd5b612c69610e7a565b60ff16600a0a612c77610ddd565b1015612cb45760405162461bcd60e51b81526004018080602001828103825260398152602001806136396039913960400191505060405180910390fd5b61010d83905561010e82905561010f805461ffff191661ffff8316908117909155600090612d0290612cf6612710612cea610ddd565b9063ffffffff61302c16565b9063ffffffff611d4616565b90506000612d1e612d11610ddd565b839063ffffffff611d8f16565b90506000612d3a83612cf684612cea898263ffffffff61302c16565b90506000612d4e848863ffffffff61302c16565b9050836000612d6782612cf6878063ffffffff61302c16565b9050828410600081612d8857612d83868663ffffffff611d8f16565b612d98565b612d98858763ffffffff611d8f16565b90506000612dac858563ffffffff611d8f16565b90508215612dcd57808281612dbd57fe5b0461011255600061011155612de2565b808281612dd657fe5b04610111556000610112555b6101125461011154600091612e029161244f908f9063ffffffff6121ee16565b90506000612e31612e11610e7a565b60ff16600a0a612cf68d612cf660028f0a8761302c90919063ffffffff16565b6101138c90556101148b90556101158190559050612e558b8263ffffffff61302c16565b610110555050505050505050505050505050565b61012c61010855600061010955609661010a81905561010b556101f461010c55565b6000610ceb612e98610e7a565b839060ff16600a0a63ffffffff611d4616565b6000610ceb612eb8610e7a565b839060ff16600a0a63ffffffff61302c16565b6001600160a01b038216612f105760405162461bcd60e51b81526004018080602001828103825260218152602001806135596021913960400191505060405180910390fd5b612f53816040518060600160405280602281526020016132b4602291396001600160a01b038516600090815260996020526040902054919063ffffffff61215716565b6001600160a01b038316600090815260996020526040902055609b54612f7f908263ffffffff611d8f16565b609b556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081836130165760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156121ab578181015183820152602001612193565b50600083858161302257fe5b0495945050505050565b60008261303b57506000610ceb565b8282028284828161304857fe5b0414611d885760405162461bcd60e51b81526004018080602001828103825260218152602001806134e26021913960400191505060405180910390fd5b6000611d88612710612cf6858563ffffffff61302c16565b610105546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156130f457600080fd5b505af1158015613108573d6000803e3d6000fd5b505050506040513d602081101561311e57600080fd5b505161315b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061359f602b913960400191505060405180910390fd5b6101055460405163f690019760e01b81526001600160a01b038481169263f69001979287929091169085906004018084600381111561319657fe5b60ff168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b1580156131db57600080fd5b505af11580156131ef573d6000803e3d6000fd5b50505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061323957805160ff1916838001178555613266565b82800160010185558215613266579182015b8281111561326657825182559160200191906001019061324b565b50613272929150613276565b5090565b610be691905b80821115613272576000815560010161327c56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d61726b65743a2054686973206d61726b657420697320616c7265616479206c6976654d61726b65743a20436f73742065786365656473206d6178696d756d2e2043616e6e6f7420636f6d706c657465206275792e53686172656457686974656c6973746564526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c697374656420726f6c6545524332303a20617070726f766520746f20746865207a65726f20616464726573734d61726b65743a20637572766544657074682073686f756c642062652067726561746572207468616e203020616e64206c657373207468616e2031303030302e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d61726b65743a2043616c6c6572206d75737420626520726567697374657265642061732047617465776179547970652e4d61726b65742e4d61726b65743a2054686973206d61726b657420686173206e6f7420676f6e65206c697665207965744d61726b65743a20546f6b656e206973206e6f742072656465656d61626c65207965744d61726b65743a20436f73742069732062656c6f77206d696e696d756d2e2043616e6e6f7420636f6d706c6574652073656c6c2e4d61726b65743a204e756d626572206f662077686f6c6520746f6b656e732073686f756c642062652067726561746572207468616e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734d61726b65743a20436f6c6c61746572616c207472616e736665722072657475726e65642066616c73652e45524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734d61726b65743a20746f6b656e416d6f756e74206d75737420626520616e20696e746567657245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d61726b65743a20746f74616c537570706c792073686f756c642062652067726561746572207468616e206f7220657175616c20746f20312ea265627a7a72315820e05ec154e874489157031ef4298ad3e10f59910a71b99a45b6bf0c04e64047d064736f6c63430005110032