61115c60115560a06040819052600060808190526200002191601291620005d0565b50601380546001600160a01b0319169055662386f26fc100006014556015805464ffffffffff1916620600031790556017805465ffffffffffff191662030001179055604080518082019091527396320782a3a4762e162cb72cde4e851c532d414181527356784c2ba9973d6544a7a790ffa7e194334e95056020820152620000af9060199060026200065f565b506040805180820190915260328082526020820152620000d490601a906002620006b7565b50348015620000e257600080fd5b50604051620046a8380380620046a8833981016040819052620001059162000711565b60198054806020026020016040519081016040528092919081815260200182805480156200015d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200013e575b5050505050601a805480602002602001604051908101604052809291908181526020018280548015620001b057602002820191906000526020600020905b8154815260200190600101908083116200019b575b505050505060405180604001604052806005815260200164576f6a616b60d81b81525060405180604001604052806005815260200164574f4a414b60d81b815250816002908051906020019062000209929190620005d0565b5080516200021f906003906020840190620005d0565b50506000805550620002313362000390565b8051825114620002a35760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620002f65760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f2070617965657300000000000060448201526064016200029a565b60005b825181101562000362576200034d8382815181106200031c576200031c62000743565b602002602001015183838151811062000339576200033962000743565b6020026020010151620003e260201b60201c565b8062000359816200076f565b915050620002f9565b5050600160105550601380546001600160a01b0319166001600160a01b0392909216919091179055620007e5565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200044f5760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016200029a565b60008111620004a15760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a2073686172657320617265203000000060448201526064016200029a565b6001600160a01b0382166000908152600b6020526040902054156200051d5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b60648201526084016200029a565b600d8054600181019091557fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020819055600954620005879082906200078d565b600955604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b828054620005de90620007a8565b90600052602060002090601f0160209004810192826200060257600085556200064d565b82601f106200061d57805160ff19168380011785556200064d565b828001600101855582156200064d579182015b828111156200064d57825182559160200191906001019062000630565b506200065b929150620006fa565b5090565b8280548282559060005260206000209081019282156200064d579160200282015b828111156200064d57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000680565b8280548282559060005260206000209081019282156200064d579160200282015b828111156200064d578251829060ff16905591602001919060010190620006d8565b5b808211156200065b5760008155600101620006fb565b6000602082840312156200072457600080fd5b81516001600160a01b03811681146200073c57600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141562000786576200078662000759565b5060010190565b60008219821115620007a357620007a362000759565b500190565b600181811c90821680620007bd57607f821691505b60208210811415620007df57634e487b7160e01b600052602260045260246000fd5b50919050565b613eb380620007f56000396000f3fe6080604052600436106103385760003560e01c806370a08231116101b0578063ce7c2ac2116100ec578063e5b07a4711610095578063ed9ec8881161006f578063ed9ec88814610a21578063f2fde38b14610a52578063f38f1dc414610a72578063f4a0a52814610a9557600080fd5b8063e5b07a47146109c6578063e69c8512146109e6578063e985e9c514610a0157600080fd5b8063d79779b2116100c6578063d79779b214610953578063e08835e314610996578063e33b7de3146109b157600080fd5b8063ce7c2ac2146108d0578063d19653fb14610913578063d26ea6c01461093357600080fd5b8063a013b88b11610159578063c87b56dd11610133578063c87b56dd1461084d578063c8b081251461086d578063cd7c032614610883578063cdece3cd146108b057600080fd5b8063a013b88b146107fa578063a22cb4651461080d578063b88d4fde1461082d57600080fd5b80638da5cb5b1161018a5780638da5cb5b1461077757806395d89b41146107a25780639852595c146107b757600080fd5b806370a0823114610722578063715018a6146107425780638b83209b1461075757600080fd5b80633d2920661161027f57806348b75044116102285780635ecf8a80116102025780635ecf8a80146106a65780636352211e146106d75780636817c76c146106f75780636c0360eb1461070d57600080fd5b806348b750441461064657806355f804b314610666578063587b797d1461068657600080fd5b806342842e0e1161025957806342842e0e146105e357806343f7e0f014610603578063471a42941461062457600080fd5b80633d292066146105505780633db67d3d14610570578063406072a91461059057600080fd5b806319165587116102e157806323cf0a22116102bb57806323cf0a22146104f4578063360ba32a146105075780633a98ef391461053b57600080fd5b806319165587146104945780631cf26684146104b457806323b872dd146104d457600080fd5b8063081812fc11610312578063081812fc1461040c578063095ea7b31461045157806318160ddd1461047157600080fd5b806301ffc9a71461039357806306fdde03146103c8578063074d16a3146103ea57600080fd5b3661038e577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770336040805173ffffffffffffffffffffffffffffffffffffffff90921682523460208301520160405180910390a1005b600080fd5b34801561039f57600080fd5b506103b36103ae36600461376a565b610ab5565b60405190151581526020015b60405180910390f35b3480156103d457600080fd5b506103dd610b9a565b6040516103bf91906137fd565b3480156103f657600080fd5b5061040a610405366004613827565b610c2c565b005b34801561041857600080fd5b5061042c610427366004613842565b610d2d565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103bf565b34801561045d57600080fd5b5061040a61046c36600461387d565b610d97565b34801561047d57600080fd5b50600154600054035b6040519081526020016103bf565b3480156104a057600080fd5b5061040a6104af3660046138a9565b610e7e565b3480156104c057600080fd5b5061040a6104cf3660046138c6565b61108c565b3480156104e057600080fd5b5061040a6104ef3660046138fb565b6111e9565b61040a610502366004613827565b6111f4565b34801561051357600080fd5b506017546105289062010000900461ffff1681565b60405161ffff90911681526020016103bf565b34801561054757600080fd5b50600954610486565b34801561055c57600080fd5b5061040a61056b366004613827565b61145f565b34801561057c57600080fd5b5061040a61058b366004613827565b61155b565b34801561059c57600080fd5b506104866105ab36600461393c565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600f6020908152604080832093909416825291909152205490565b3480156105ef57600080fd5b5061040a6105fe3660046138fb565b611655565b34801561060f57600080fd5b506015546105289062010000900461ffff1681565b34801561063057600080fd5b506015546103b390640100000000900460ff1681565b34801561065257600080fd5b5061040a61066136600461393c565b611670565b34801561067257600080fd5b5061040a610681366004613a38565b611969565b34801561069257600080fd5b5061040a6106a1366004613827565b6119e7565b3480156106b257600080fd5b506105286106c13660046138a9565b60186020526000908152604090205461ffff1681565b3480156106e357600080fd5b5061042c6106f2366004613842565b611a83565b34801561070357600080fd5b5061048660145481565b34801561071957600080fd5b506103dd611a95565b34801561072e57600080fd5b5061048661073d3660046138a9565b611b23565b34801561074e57600080fd5b5061040a611ba5565b34801561076357600080fd5b5061042c610772366004613842565b611c18565b34801561078357600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff1661042c565b3480156107ae57600080fd5b506103dd611c55565b3480156107c357600080fd5b506104866107d23660046138a9565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b61040a610808366004613827565b611c64565b34801561081957600080fd5b5061040a610828366004613a8f565b611f0d565b34801561083957600080fd5b5061040a610848366004613abd565b611ff4565b34801561085957600080fd5b506103dd610868366004613842565b61206b565b34801561087957600080fd5b5061048660115481565b34801561088f57600080fd5b5060135461042c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156108bc57600080fd5b5061040a6108cb366004613842565b612144565b3480156108dc57600080fd5b506104866108eb3660046138a9565b73ffffffffffffffffffffffffffffffffffffffff166000908152600b602052604090205490565b34801561091f57600080fd5b5061040a61092e366004613b3d565b612201565b34801561093f57600080fd5b5061040a61094e3660046138a9565b6122a2565b34801561095f57600080fd5b5061048661096e3660046138a9565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b3480156109a257600080fd5b506017546105289061ffff1681565b3480156109bd57600080fd5b50600a54610486565b3480156109d257600080fd5b5061040a6109e1366004613827565b612350565b3480156109f257600080fd5b506015546105289061ffff1681565b348015610a0d57600080fd5b506103b3610a1c36600461393c565b6123ec565b348015610a2d57600080fd5b50610528610a3c3660046138a9565b60166020526000908152604090205461ffff1681565b348015610a5e57600080fd5b5061040a610a6d3660046138a9565b612509565b348015610a7e57600080fd5b5060175461052890640100000000900461ffff1681565b348015610aa157600080fd5b5061040a610ab0366004613842565b612605565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480610b4857507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610b9457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b606060028054610ba990613b5a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd590613b5a565b8015610c225780601f10610bf757610100808354040283529160200191610c22565b820191906000526020600020905b815481529060010190602001808311610c0557829003601f168201915b5050505050905090565b60085473ffffffffffffffffffffffffffffffffffffffff163314610c985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60175461ffff9081169082161015610cf25760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206c696d6974000000000000000000000000000000000000006044820152606401610c8f565b6017805461ffff90921662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff909216919091179055565b6000610d3882612671565b610d6e576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610da282611a83565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e0a576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614801590610e375750610e3581336123ec565b155b15610e6e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e798383836126b5565b505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054610f165760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201527f73686172657300000000000000000000000000000000000000000000000000006064820152608401610c8f565b6000610f21600a5490565b610f2b9047613bdd565b90506000610f658383610f608673ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b612736565b905080610fda5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201527f647565207061796d656e740000000000000000000000000000000000000000006064820152608401610c8f565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60205260408120805483929061100f908490613bdd565b9250508190555080600a60008282546110289190613bdd565b9091555061103890508382612789565b6040805173ffffffffffffffffffffffffffffffffffffffff85168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146110f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b73ffffffffffffffffffffffffffffffffffffffff82166111565760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964206164647265737300000000000000000000000000000000006044820152606401610c8f565b60008161ffff1611801561117057506011548161ffff1611155b6111bc5760405162461bcd60e51b815260206004820152601060248201527f696e76616c6964207175616e74697479000000000000000000000000000000006044820152606401610c8f565b6111ca828261ffff166128af565b8061ffff16601160008282546111e09190613bf5565b90915550505050565b610e798383836128c9565b600260105414156112475760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8f565b6002601055601554640100000000900460ff166112a65760405162461bcd60e51b815260206004820152601060248201527f6d696e742069732064697361626c6564000000000000000000000000000000006044820152606401610c8f565b60155461ffff908116908216118015906112c657506011548161ffff1611155b6113125760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206d696e74207175616e7469747900000000000000000000006044820152606401610c8f565b6014546113239061ffff8316612c34565b3410156113725760405162461bcd60e51b815260206004820152601260248201527f696e76616c6964206d696e742076616c756500000000000000000000000000006044820152606401610c8f565b3360009081526016602052604090205460155461ffff91821691620100009091041681106113e25760405162461bcd60e51b815260206004820152601960248201527f72656163686564206d696e742077616c6c6574206c696d6974000000000000006044820152606401610c8f565b6113f0338361ffff166128af565b8161ffff16601160008282546114069190613bf5565b9091555061141690508282613c0c565b33600090815260166020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff9290921691909117905550506001601055565b60085473ffffffffffffffffffffffffffffffffffffffff1633146114c65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b60155461ffff90811690821610156115205760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964206c696d6974000000000000000000000000000000000000006044820152606401610c8f565b6015805461ffff90921662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff909216919091179055565b60085473ffffffffffffffffffffffffffffffffffffffff1633146115c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b6011548161ffff1611156116185760405162461bcd60e51b815260206004820152601760248201527f6578636565647320746f74616c2072656d61696e696e670000000000000000006044820152606401610c8f565b6017805461ffff909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff909216919091179055565b610e7983838360405180602001604052806000815250611ff4565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260409020546117085760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201527f73686172657300000000000000000000000000000000000000000000000000006064820152608401610c8f565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60205260408120546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa158015611798573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bc9190613c32565b6117c69190613bdd565b9050600061180c8383610f60878773ffffffffffffffffffffffffffffffffffffffff9182166000908152600f6020908152604080832093909416825291909152205490565b9050806118815760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201527f647565207061796d656e740000000000000000000000000000000000000000006064820152608401610c8f565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600f60209081526040808320938716835292905290812080548392906118c5908490613bdd565b909155505073ffffffffffffffffffffffffffffffffffffffff84166000908152600e6020526040812080548392906118ff908490613bdd565b909155506119109050848483612c40565b6040805173ffffffffffffffffffffffffffffffffffffffff8581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146119d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b80516119e39060129060208401906136a3565b5050565b60085473ffffffffffffffffffffffffffffffffffffffff163314611a4e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b601580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff92909216919091179055565b6000611a8e82612ccd565b5192915050565b60128054611aa290613b5a565b80601f0160208091040260200160405190810160405280929190818152602001828054611ace90613b5a565b8015611b1b5780601f10611af057610100808354040283529160200191611b1b565b820191906000526020600020905b815481529060010190602001808311611afe57829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff8216611b72576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b60085473ffffffffffffffffffffffffffffffffffffffff163314611c0c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b611c166000612e9b565b565b6000600d8281548110611c2d57611c2d613c4b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1692915050565b606060038054610ba990613b5a565b60026010541415611cb75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8f565b6002601055601554640100000000900460ff16611d165760405162461bcd60e51b815260206004820152601060248201527f6d696e742069732064697361626c6564000000000000000000000000000000006044820152606401610c8f565b60175461ffff64010000000090910481169082161115611d785760405162461bcd60e51b815260206004820152601c60248201527f696e73756666696369656e74206672656520616c6c6f636174696f6e000000006044820152606401610c8f565b60175461ffff90811690821611801590611d9857506011548161ffff1611155b611de45760405162461bcd60e51b815260206004820152601560248201527f696e76616c6964206d696e74207175616e7469747900000000000000000000006044820152606401610c8f565b3360009081526018602052604090205460175461ffff9182169162010000909104168110611e545760405162461bcd60e51b815260206004820152601e60248201527f726561636865642066726565206d696e742077616c6c6574206c696d697400006044820152606401610c8f565b611e62338361ffff166128af565b8161ffff1660116000828254611e789190613bf5565b909155505060178054839190600490611e9e908490640100000000900461ffff16613c7a565b92506101000a81548161ffff021916908361ffff1602179055508181611ec49190613c0c565b33600090815260186020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff9290921691909117905550506001601055565b73ffffffffffffffffffffffffffffffffffffffff8216331415611f5d576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611fff8484846128c9565b73ffffffffffffffffffffffffffffffffffffffff83163b1515801561202e575061202c84848484612f12565b155b15612065576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b606061207682612671565b6120c25760405162461bcd60e51b815260206004820152600d60248201527f696e76616c696420746f6b656e000000000000000000000000000000000000006044820152606401610c8f565b60006120cc613088565b90506000815111612112576040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525061213d565b8061211c84613097565b60405160200161212d929190613c9d565b6040516020818303038152906040525b9392505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146121ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b60115481106121fc5760405162461bcd60e51b815260206004820152601560248201527f67726561746572207468616e206f7220657175616c00000000000000000000006044820152606401610c8f565b601155565b60085473ffffffffffffffffffffffffffffffffffffffff1633146122685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b60158054911515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179055565b60085473ffffffffffffffffffffffffffffffffffffffff1633146123095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b601380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60085473ffffffffffffffffffffffffffffffffffffffff1633146123b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff92909216919091179055565b60135460009073ffffffffffffffffffffffffffffffffffffffff16156124ce576013546040517fc455279100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291821691841690829063c455279190602401602060405180830381865afa158015612482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a69190613cf4565b73ffffffffffffffffffffffffffffffffffffffff1614156124cc576001915050610b94565b505b73ffffffffffffffffffffffffffffffffffffffff80841660009081526007602090815260408083209386168352929052205460ff1661213d565b60085473ffffffffffffffffffffffffffffffffffffffff1633146125705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b73ffffffffffffffffffffffffffffffffffffffff81166125f95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c8f565b61260281612e9b565b50565b60085473ffffffffffffffffffffffffffffffffffffffff16331461266c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c8f565b601455565b6000805482108015610b945750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000900460ff161590565b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095473ffffffffffffffffffffffffffffffffffffffff84166000908152600b60205260408120549091839161276d9086613d11565b6127779190613d7d565b6127819190613bf5565b949350505050565b804710156127d95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610c8f565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612833576040519150601f19603f3d011682016040523d82523d6000602084013e612838565b606091505b5050905080610e795760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610c8f565b6119e38282604051806020016040528060008152506131c9565b60006128d482612ccd565b805190915060009073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061291c5750815161291c90336123ec565b8061294457503361292c84610d2d565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061297d576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146129e6576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416612a33576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a4360008484600001516126b5565b73ffffffffffffffffffffffffffffffffffffffff858116600090815260056020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000080821667ffffffffffffffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831617909255898616808652838620805493841693831660019081018416949094179055898652600490945282852080547fffffffff000000000000000000000000000000000000000000000000000000001690941774010000000000000000000000000000000000000000429092169190910217909255908601808352912054909116612bd057600054811015612bd0578251600082815260046020908152604090912080549186015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff909316929092171790555b50828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b600061213d8284613d11565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610e799084906131d6565b604080516060810182526000808252602082018190529181019190915281600054811015612e69576000818152600460209081526040918290208251606081018452905473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810467ffffffffffffffff16928201929092527c010000000000000000000000000000000000000000000000000000000090910460ff16151591810182905290612e6757805173ffffffffffffffffffffffffffffffffffffffff1615612da8579392505050565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016000818152600460209081526040918290208251606081018452905473ffffffffffffffffffffffffffffffffffffffff811680835274010000000000000000000000000000000000000000820467ffffffffffffffff16938301939093527c0100000000000000000000000000000000000000000000000000000000900460ff1615159281019290925215612e62579392505050565b612da8565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290612f6d903390899088908890600401613d91565b6020604051808303816000875af1925050508015612fc6575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612fc391810190613dda565b60015b61303a573d808015612ff4576040519150601f19603f3d011682016040523d82523d6000602084013e612ff9565b606091505b508051613032576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050949350505050565b606060128054610ba990613b5a565b6060816130d757505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561310157806130eb81613df7565b91506130fa9050600a83613d7d565b91506130db565b60008167ffffffffffffffff81111561311c5761311c613975565b6040519080825280601f01601f191660200182016040528015613146576020820181803683370190505b5090505b84156127815761315b600183613bf5565b9150613168600a86613e30565b613173906030613bdd565b60f81b81838151811061318857613188613c4b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506131c2600a86613d7d565b945061314a565b610e7983838360016132c8565b6000613238826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166135759092919063ffffffff16565b805190915015610e7957808060200190518101906132569190613e44565b610e795760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c8f565b60005473ffffffffffffffffffffffffffffffffffffffff8516613318576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8361334f576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600081815260056020908152604080832080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000811667ffffffffffffffff8083168c018116918217680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090941690921783900481168c01811690920217909155858452600490925290912080547fffffffff00000000000000000000000000000000000000000000000000000000169092177401000000000000000000000000000000000000000042909216919091021790558080850183801561346a575073ffffffffffffffffffffffffffffffffffffffff87163b15155b15613519575b604051829073ffffffffffffffffffffffffffffffffffffffff8916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46134c86000888480600101955088612f12565b6134fe576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082141561347057826000541461351457600080fd5b61356c565b5b60405160018301929073ffffffffffffffffffffffffffffffffffffffff8916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a48082141561351a575b50600055612c2d565b606061278184846000858573ffffffffffffffffffffffffffffffffffffffff85163b6135e45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c8f565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161360d9190613e61565b60006040518083038185875af1925050503d806000811461364a576040519150601f19603f3d011682016040523d82523d6000602084013e61364f565b606091505b509150915061365f82828661366a565b979650505050505050565b6060831561367957508161213d565b8251156136895782518084602001fd5b8160405162461bcd60e51b8152600401610c8f91906137fd565b8280546136af90613b5a565b90600052602060002090601f0160209004810192826136d15760008555613717565b82601f106136ea57805160ff1916838001178555613717565b82800160010185558215613717579182015b828111156137175782518255916020019190600101906136fc565b50613723929150613727565b5090565b5b808211156137235760008155600101613728565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461260257600080fd5b60006020828403121561377c57600080fd5b813561213d8161373c565b60005b838110156137a257818101518382015260200161378a565b838111156120655750506000910152565b600081518084526137cb816020860160208601613787565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061213d60208301846137b3565b803561ffff8116811461382257600080fd5b919050565b60006020828403121561383957600080fd5b61213d82613810565b60006020828403121561385457600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461260257600080fd5b6000806040838503121561389057600080fd5b823561389b8161385b565b946020939093013593505050565b6000602082840312156138bb57600080fd5b813561213d8161385b565b600080604083850312156138d957600080fd5b82356138e48161385b565b91506138f260208401613810565b90509250929050565b60008060006060848603121561391057600080fd5b833561391b8161385b565b9250602084013561392b8161385b565b929592945050506040919091013590565b6000806040838503121561394f57600080fd5b823561395a8161385b565b9150602083013561396a8161385b565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff808411156139bf576139bf613975565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715613a0557613a05613975565b81604052809350858152868686011115613a1e57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215613a4a57600080fd5b813567ffffffffffffffff811115613a6157600080fd5b8201601f81018413613a7257600080fd5b612781848235602084016139a4565b801515811461260257600080fd5b60008060408385031215613aa257600080fd5b8235613aad8161385b565b9150602083013561396a81613a81565b60008060008060808587031215613ad357600080fd5b8435613ade8161385b565b93506020850135613aee8161385b565b925060408501359150606085013567ffffffffffffffff811115613b1157600080fd5b8501601f81018713613b2257600080fd5b613b31878235602084016139a4565b91505092959194509250565b600060208284031215613b4f57600080fd5b813561213d81613a81565b600181811c90821680613b6e57607f821691505b60208210811415613ba8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613bf057613bf0613bae565b500190565b600082821015613c0757613c07613bae565b500390565b600061ffff808316818516808303821115613c2957613c29613bae565b01949350505050565b600060208284031215613c4457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061ffff83811690831681811015613c9557613c95613bae565b039392505050565b60008351613caf818460208801613787565b835190830190613cc3818360208801613787565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000009101908152600501949350505050565b600060208284031215613d0657600080fd5b815161213d8161385b565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d4957613d49613bae565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613d8c57613d8c613d4e565b500490565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613dd060808301846137b3565b9695505050505050565b600060208284031215613dec57600080fd5b815161213d8161373c565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e2957613e29613bae565b5060010190565b600082613e3f57613e3f613d4e565b500690565b600060208284031215613e5657600080fd5b815161213d81613a81565b60008251613e73818460208701613787565b919091019291505056fea264697066735822122064dbc86b2858f7fa8b689a39dbe51123f4616accc5a4a78b39f154fb7bf9b5d664736f6c634300080a0033000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1