0 txs
0 calls
We do not have the source code for this contract. Sorry for the inconvenience.
We do not have the verified ABI for this contract. Here's what we could infer from the runtime bytecode by using WhatsABI:
functions
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
events
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
event signature unknown
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162005e2b38038062005e2b833981016040819052620000349162000754565b84848484848484848281816200004a3362000265565b60005b81518110156200009957620000848282815181106200007057620000706200091d565b60200260200101516200028f60201b60201c565b80620000908162000933565b9150506200004d565b50506001600160a01b031660805250620000b382620002fc565b5050600480546001600160a01b0319166001600160a01b0385161790555060005b8151518110156200020257600082600001518281518110620000fa57620000fa6200091d565b60200260200101519050620001ba81846020015184815181106200012257620001226200091d565b6020026020010151856040015185815181106200014357620001436200091d565b6020026020010151866060015186815181106200016457620001646200091d565b6020026020010151876080015187815181106200018557620001856200091d565b60200260200101518860c001518881518110620001a657620001a66200091d565b60200260200101516200032860201b60201c565b620001ec818460a001518481518110620001d857620001d86200091d565b6020026020010151620003cb60201b60201c565b5080620001f98162000933565b915050620000d4565b506040517f3b995fb49557022d683e66ab27e0339ab7db40111da9b4f57765b99e20f7868690600090a16040517f12612b4cfd87890ccdf24e503844cdea2b9f202e15478fba07494566b0f8a0e190600090a1505050505050505050506200095b565b600180546001600160a01b03191690556200028c81620003f9602090811b62002e3017901c565b50565b6200029962000449565b604051600181526001600160a01b038216907f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea29060200160405180910390a26001600160a01b03166000908152600260205260409020805460ff19166001179055565b6200030662000449565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03868116600090815260056020908152604080832080546001600160a01b031916948a16949094179093556006815291902085516200037192870190620004aa565b506001600160a01b039095166000908152600760209081526040808320805495151560ff1996871617905560088252808320805494151594861694909417909355600a905220805494151594909116939093179092555050565b6001600160a01b03918216600090815260096020526040902080546001600160a01b03191691909216179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004a85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b82805482825590600052602060002090810192821562000502579160200282015b828111156200050257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620004cb565b506200051092915062000514565b5090565b5b8082111562000510576000815560010162000515565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156200056657620005666200052b565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200059757620005976200052b565b604052919050565b60006001600160401b03821115620005bb57620005bb6200052b565b5060051b60200190565b6001600160a01b03811681146200028c57600080fd5b600082601f830112620005ed57600080fd5b815160206200060662000600836200059f565b6200056c565b82815260059290921b840181019181810190868411156200062657600080fd5b8286015b848110156200064e5780516200064081620005c5565b83529183019183016200062a565b509695505050505050565b600082601f8301126200066b57600080fd5b815160206200067e62000600836200059f565b82815260059290921b840181019181810190868411156200069e57600080fd5b8286015b848110156200064e5780516001600160401b03811115620006c35760008081fd5b620006d38986838b0101620005db565b845250918301918301620006a2565b600082601f830112620006f457600080fd5b815160206200070762000600836200059f565b82815260059290921b840181019181810190868411156200072757600080fd5b8286015b848110156200064e5780518015158114620007465760008081fd5b83529183019183016200072b565b600080600080600060a086880312156200076d57600080fd5b85516001600160401b03808211156200078557600080fd5b6200079389838a01620005db565b965060208801519150620007a782620005c5565b6040880151919550620007ba82620005c5565b6060880151919450620007cd82620005c5565b608088015191935080821115620007e357600080fd5b9087019060e0828a031215620007f857600080fd5b6200080262000541565b8251828111156200081257600080fd5b620008208b828601620005db565b8252506020830151828111156200083657600080fd5b620008448b828601620005db565b6020830152506040830151828111156200085d57600080fd5b6200086b8b82860162000659565b6040830152506060830151828111156200088457600080fd5b620008928b828601620006e2565b606083015250608083015182811115620008ab57600080fd5b620008b98b828601620006e2565b60808301525060a083015182811115620008d257600080fd5b620008e08b828601620005db565b60a08301525060c083015182811115620008f957600080fd5b620009078b828601620006e2565b60c0830152508093505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b6000600182016200095457634e487b7160e01b600052601160045260246000fd5b5060010190565b60805161549f6200098c600039600081816107a4015281816112d6015281816120030152612ace015261549f6000f3fe6080604052600436106102da5760003560e01c80639e546c38116101825780639e546c38146106ec578063adc9772e1461070c578063ae59ef9a1461072c578063af88dc471461075c578063b381cf4014610792578063b61d27f6146107c6578063b6703fcd146107d9578063b752c763146107f9578063bb0eebf914610819578063c2a672e014610839578063c42fa7f414610859578063c4e2c1e614610879578063cf6c62ea14610899578063da3e3397146108b9578063dc21545e146108d9578063dcaaa61b14610909578063ddf4078414610929578063e18b702914610949578063e23e87e01461095e578063e30c39781461097e578063e676ea9514610993578063e6a6e7a2146109c9578063eaafe247146109e9578063ec21145a14610a19578063ed1c1e0014610a99578063f2a38f6514610ab9578063f2fde38b14610ad9578063f3fef3a314610af9578063f65baefa14610b19578063f7888aec14610b2e578063fa09e63014610b4e578063ffa1ad7414610b6e57600080fd5b8062241efe146102e6578062eb8ba414610308578063077d97d71461033b578063087ed8371461034e5780631150511914610370578063125d9484146103a55780631dbdd903146103c55780631ea68c00146103e55780631f5a0bbe1461041257806324788429146104325780633419ba231461045257806334b10a6d14610472578063372500ab146104925780633ee7f9d3146104b5578063499e2319146104d55780634eb03f6e146104ea57806356912b4f1461050a57806358e331371461052a578063680580bb1461053f5780636a6278421461055f5780636a6617641461057f5780636d67436c1461059f578063715018a6146105bf57806379ba5097146105d45780637e55cc96146105e95780638d0793b7146106095780638da5cb5b146106295780639169d8331461063e57806392dce0a31461065e57806393f8bf0d1461067c5780639ac2a011146106bc57600080fd5b366102e157005b600080fd5b3480156102f257600080fd5b50610306610301366004614512565b610ba2565b005b34801561031457600080fd5b50610328610323366004614608565b610c33565b6040519081526020015b60405180910390f35b61030661034936600461468c565b610ced565b34801561035a57600080fd5b50610363610e5a565b6040516103329190614769565b34801561037c57600080fd5b5061039873eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b604051610332919061477c565b3480156103b157600080fd5b506103066103c0366004614790565b610f06565b3480156103d157600080fd5b506103286103e03660046147ad565b610f5a565b3480156103f157600080fd5b5061040561040036600461486e565b610fc9565b60405161033291906148e4565b34801561041e57600080fd5b5061030661042d366004614790565b6111b0565b34801561043e57600080fd5b5061030661044d366004614790565b611209565b34801561045e57600080fd5b5061030661046d366004614608565b61125f565b34801561047e57600080fd5b5061030661048d3660046148f7565b611277565b34801561049e57600080fd5b506104a761133e565b604051610332929190614910565b3480156104c157600080fd5b506103286104d0366004614935565b6115f8565b3480156104e157600080fd5b50610363611953565b3480156104f657600080fd5b50610306610505366004614790565b61198d565b34801561051657600080fd5b5061032861052536600461497b565b6119b7565b34801561053657600080fd5b50610328611a24565b34801561054b57600080fd5b5061032861055a3660046147ad565b611a3c565b34801561056b57600080fd5b5061030661057a366004614790565b611a9d565b34801561058b57600080fd5b5061030661059a366004614a59565b611b16565b3480156105ab57600080fd5b506103286105ba366004614b03565b611c86565b3480156105cb57600080fd5b50610306611dcf565b3480156105e057600080fd5b50610306611de3565b3480156105f557600080fd5b506104a76106043660046148f7565b611e61565b34801561061557600080fd5b50610328610624366004614b5b565b611f18565b34801561063557600080fd5b50610398611fa9565b34801561064a57600080fd5b506103066106593660046148f7565b611fb8565b34801561066a57600080fd5b50610398610679366004614790565b90565b34801561068857600080fd5b506106ac610697366004614790565b600b6020526000908152604090205460ff1681565b6040519015158152602001610332565b3480156106c857600080fd5b506106ac6106d7366004614790565b60026020526000908152604090205460ff1681565b3480156106f857600080fd5b50610328610707366004614790565b612078565b34801561071857600080fd5b50610306610727366004614bcb565b6120f5565b34801561073857600080fd5b506106ac610747366004614790565b60086020526000908152604090205460ff1681565b34801561076857600080fd5b50610398610777366004614790565b6005602052600090815260409020546001600160a01b031681565b34801561079e57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6103066107d4366004614bf7565b6121c5565b3480156107e557600080fd5b506103066107f4366004614608565b612252565b34801561080557600080fd5b50610363610814366004614790565b612277565b34801561082557600080fd5b50610405610834366004614c7f565b6122ed565b34801561084557600080fd5b50610306610854366004614bcb565b61234d565b34801561086557600080fd5b50610398610874366004614bcb565b61241d565b34801561088557600080fd5b50610306610894366004614cea565b612455565b3480156108a557600080fd5b506103286108b4366004614935565b612468565b3480156108c557600080fd5b506103066108d4366004614d2c565b6125b9565b3480156108e557600080fd5b506106ac6108f4366004614790565b600a6020526000908152604090205460ff1681565b34801561091557600080fd5b50610306610924366004614790565b6125cc565b34801561093557600080fd5b50610405610944366004614d6d565b612611565b34801561095557600080fd5b5061032861293a565b34801561096a57600080fd5b50610328610979366004614b5b565b6129b5565b34801561098a57600080fd5b50610398612a39565b34801561099f57600080fd5b506103986109ae366004614790565b6009602052600090815260409020546001600160a01b031681565b3480156109d557600080fd5b506103286109e43660046148f7565b612a48565b3480156109f557600080fd5b506106ac610a04366004614790565b60076020526000908152604090205460ff1681565b348015610a2557600080fd5b50600c54600d54600e5460408051606081018252600f5460ff818116151583526101009091046001600160a01b039081166020840152601054811693830193909352601154610a879684169580851695600160a01b9091048316941692911686565b60405161033296959493929190614ddb565b348015610aa557600080fd5b50600454610398906001600160a01b031681565b348015610ac557600080fd5b50610306610ad4366004614608565b612c3d565b348015610ae557600080fd5b50610306610af4366004614790565b612ca0565b348015610b0557600080fd5b50610306610b14366004614bcb565b612d06565b348015610b2557600080fd5b506104a7612d19565b348015610b3a57600080fd5b50610328610b49366004614608565b612da0565b348015610b5a57600080fd5b50610306610b69366004614790565b612e10565b348015610b7a57600080fd5b5060408051808201825260058152640312e302e360dc1b602082015290516103329190614e85565b33610bab611fa9565b6001600160a01b03161480610bcf57503360009081526002602052604090205460ff165b610bf45760405162461bcd60e51b8152600401610beb90614eb8565b60405180910390fd5b610c02868686868686612e80565b6040517f3b995fb49557022d683e66ab27e0339ab7db40111da9b4f57765b99e20f7868690600090a1505050505050565b6000805b6001600160a01b038416600090815260066020526040902054811015610cb9576001600160a01b03848116600090815260066020526040902080549185169183908110610c8657610c86614efe565b6000918252602090912001546001600160a01b031603610ca7579050610ce7565b80610cb181614f2a565b915050610c37565b5060405162461bcd60e51b8152602060048201526002602482015261413160f01b6044820152606401610beb565b92915050565b610cf5612f21565b8483148015610d0357508481145b610d4b5760405162461bcd60e51b8152602060048201526019602482015278082e4ceeadacadce8e640d8cadccee8d040dad2e6dac2e8c6d603b1b6044820152606401610beb565b60005b85811015610e5157600080888884818110610d6b57610d6b614efe565b9050602002016020810190610d809190614790565b6001600160a01b0316878785818110610d9b57610d9b614efe565b90506020020135868686818110610db457610db4614efe565b9050602002810190610dc69190614f43565b604051610dd4929190614f89565b60006040518083038185875af1925050503d8060008114610e11576040519150601f19603f3d011682016040523d82523d6000602084013e610e16565b606091505b5091509150818190610e3b5760405162461bcd60e51b8152600401610beb9190614e85565b5050508080610e4990614f2a565b915050610d4e565b50505050505050565b6060736a4c81bd338d34361c8351d651c1ad0d7f4adcaf63bb4630c030610e7f612f80565b600f5460ff166040516001600160e01b031960e086901b1681526001600160a01b0390931660048401529015156024830152151560448201526064015b600060405180830381865af4158015610ed9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f019190810190614ffd565b905090565b610f0e612f21565b6001600160a01b0381166000818152600b6020908152604091829020805460ff19166001908117909155915191825260008051602061544a83398151915291015b60405180910390a250565b600033610f65611fa9565b6001600160a01b03161480610f8957503360009081526002602052604090205460ff165b610fa55760405162461bcd60e51b8152600401610beb90614eb8565b6000610fb387878786612468565b9050610fbf84826120f5565b9695505050505050565b606033610fd4611fa9565b6001600160a01b03161480610ff857503360009081526002602052604090205460ff165b6110145760405162461bcd60e51b8152600401610beb90614eb8565b600c546001600160a01b031661103c5760405162461bcd60e51b8152600401610beb90615031565b600c546001600160a01b03166000908152600660205260409020546001600160401b0381111561106e5761106e614490565b604051908082528060200260200182016040528015611097578160200160208202803683370190505b50905060006110ad6110a7611a24565b85612f90565b90506110bb600f5460ff1690565b156111135760006110ca612faf565b90506110ef8482815181106110e1576110e1614efe565b602002602001015183612fe4565b83828151811061110157611101614efe565b60200260200101818152505050611195565b61111b612f80565b156111315761112a838261301a565b9150611195565b600c54600e54600091611150916001600160a01b039182169116610c33565b905061117584828151811061116757611167614efe565b60200260200101518361303c565b83828151811061118757611187614efe565b602002602001018181525050505b60115460ff16156111a9576111a947611fb8565b5092915050565b6111b8612f21565b604051600181526001600160a01b0382169060008051602061542a8339815191529060200160405180910390a26001600160a01b03166000908152600260205260409020805460ff19166001179055565b611211612f21565b604051600081526001600160a01b0382169060008051602061542a8339815191529060200160405180910390a26001600160a01b03166000908152600260205260409020805460ff19169055565b611267612f21565b61127382826000613065565b5050565b33611280611fa9565b6001600160a01b031614806112a457503360009081526002602052604090205460ff165b6112c05760405162461bcd60e51b8152600401610beb90614eb8565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015b600060405180830381600087803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b5050505050565b6060803361134a611fa9565b6001600160a01b0316148061136e57503360009081526002602052604090205460ff165b61138a5760405162461bcd60e51b8152600401610beb90614eb8565b600c546001600160a01b03166113b25760405162461bcd60e51b8152600401610beb90615031565b6113ba611953565b915081516001600160401b038111156113d5576113d5614490565b6040519080825280602002602001820160405280156113fe578160200160208202803683370190505b50905060005b825181101561145e5761142f83828151811061142257611422614efe565b6020026020010151612078565b82828151811061144157611441614efe565b60209081029190910101528061145681614f2a565b915050611404565b50600d54611474906001600160a01b0316611a9d565b6000600d54600160a01b900460ff16600681111561149457611494614dc5565b1461157f57600d54604051633860789760e01b8152736a4c81bd338d34361c8351d651c1ad0d7f4adcaf916338607897916114db916001600160a01b03169060040161477c565b602060405180830381865af41580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c919061504d565b61157f57600d5460408051637378ed7960e11b815290516001600160a01b039092169163e6f1daf29160048082019260009290919082900301818387803b15801561156657600080fd5b505af115801561157a573d6000803e3d6000fd5b505050505b60005b82518110156115f35781818151811061159d5761159d614efe565b60200260200101516115ba84838151811061142257611422614efe565b6115c4919061506a565b8282815181106115d6576115d6614efe565b6020908102919091010152806115eb81614f2a565b915050611582565b509091565b600033611603611fa9565b6001600160a01b0316148061162757503360009081526002602052604090205460ff165b6116435760405162461bcd60e51b8152600401610beb90614eb8565b6001600160a01b0385166000908152600b602052604090205460ff1661167b5760405162461bcd60e51b8152600401610beb90615081565b6001600160a01b03858116600090815260096020526040812054909116156116bd576001600160a01b03808716600090815260096020526040902054166116bf565b855b905060006116cd8787610c33565b905060006116da87612078565b6001600160a01b03891660009081526008602090815260408083205460079092529091205491925060ff9081169116156117c457801561178957604051638f15b6b560e01b8152600481018890526024810184905260448101879052600160648201526001600160a01b03851690638f15b6b5906084015b600060405180830381600087803b15801561176c57600080fd5b505af1158015611780573d6000803e3d6000fd5b5050505061187b565b60405163f1dc3cc960e01b81526004810188905260248101849052604481018790526001600160a01b0385169063f1dc3cc990606401611752565b801561180f5760405163517a55a360e01b815260048101889052600f84900b602482015260448101879052600160648201526001600160a01b0385169063517a55a390608401611752565b604051630d2680e960e11b815260048101889052600f84900b6024820152604481018790526001600160a01b03851690631a4d01d290606401600060405180830381600087803b15801561186257600080fd5b505af1158015611876573d6000803e3d6000fd5b505050505b6000826118878a612078565b611891919061506a565b6001600160a01b038b16600090815260066020526040812054919250816001600160401b038111156118c5576118c5614490565b6040519080825280602002602001820160405280156118ee578160200160208202803683370190505b5090508281878151811061190457611904614efe565b6020026020010181815250508b6001600160a01b031660008051602061540a833981519152828c60405161193992919061509d565b60405180910390a25090955050505050505b949350505050565b60405163234b8d7d60e11b8152606090736a4c81bd338d34361c8351d651c1ad0d7f4adcaf906346971afa90610ebc90309060040161477c565b611995612f21565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000336119c2611fa9565b6001600160a01b031614806119e657503360009081526002602052604090205460ff165b611a025760405162461bcd60e51b8152600401610beb90614eb8565b6000611a0f868685611c86565b9050611a1b84826120f5565b95945050505050565b600d54600090610f01906001600160a01b0316612078565b600033611a47611fa9565b6001600160a01b03161480611a6b57503360009081526002602052604090205460ff165b611a875760405162461bcd60e51b8152600401610beb90614eb8565b611a91838561234d565b610fbf868686856115f8565b33611aa6611fa9565b6001600160a01b03161480611aca57503360009081526002602052604090205460ff165b611ae65760405162461bcd60e51b8152600401610beb90614eb8565b6003546040516335313c2160e11b81526001600160a01b0390911690636a6278429061130990849060040161477c565b33611b1f611fa9565b6001600160a01b03161480611b4357503360009081526002602052604090205460ff165b611b5f5760405162461bcd60e51b8152600401610beb90614eb8565b8051600c80546001600160a01b039283166001600160a01b03199182161782556020840151600d8054919094169181168217845560408501518594909290916001600160a81b03191617600160a01b836006811115611bc057611bc0614dc5565b021790555060608201516002820180546001600160a01b03199081166001600160a01b03938416179091556080840151805160038501805460208401516001600160a81b0319909116921515610100600160a81b0319169290921761010092861692909202919091179055604090810151600485018054909316931692909217905560a0909201516005909101805460ff1916911515919091179055517f4f69b8ffd85964c34f21936e1baae46e323dde164a4537df2c6c4d662b00a66790600090a150565b600033611c91611fa9565b6001600160a01b03161480611cb557503360009081526002602052604090205460ff165b611cd15760405162461bcd60e51b8152600401610beb90614eb8565b6001600160a01b0384166000908152600b602052604090205460ff16611d095760405162461bcd60e51b8152600401610beb90615081565b6000805b6001600160a01b038616600090815260066020526040902054811015611db7576001600160a01b0386166000908152600660205260409020805473eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee919083908110611d6e57611d6e614efe565b6000918252602090912001546001600160a01b031603611da557848181518110611d9a57611d9a614efe565b602002602001015191505b80611daf81614f2a565b915050611d0d565b50611dc485858386613157565b9150505b9392505050565b611dd7612f21565b611de1600061328f565b565b3380611ded612a39565b6001600160a01b031614611e555760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610beb565b611e5e8161328f565b50565b606080736a4c81bd338d34361c8351d651c1ad0d7f4adcaf6388b55a0f30611e87612f80565b600f5460ff166040516001600160e01b031960e086901b1681526001600160a01b03909316600484015290151560248301521515604482015260648101869052608401600060405180830381865af4158015611ee7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f0f91908101906150bf565b91509150915091565b600033611f23611fa9565b6001600160a01b03161480611f4757503360009081526002602052604090205460ff165b611f635760405162461bcd60e51b8152600401610beb90614eb8565b6001600160a01b0380831660009081526005602052604081205490911690611f8d84898984612468565b9050611f9c8983838989610f5a565b9998505050505050505050565b6000546001600160a01b031690565b33611fc1611fa9565b6001600160a01b03161480611fe557503360009081526002602052604090205460ff165b6120015760405162461bcd60e51b8152600401610beb90614eb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561205c57600080fd5b505af1158015612070573d6000803e3d6000fd5b505050505050565b60405163983bc49d60e01b81526000907396d3c443659641267e05be707296e105ac990cb99063983bc49d906120b49030908690600401615179565b602060405180830381865af41580156120d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce79190615193565b336120fe611fa9565b6001600160a01b0316148061212257503360009081526002602052604090205460ff165b61213e5760405162461bcd60e51b8152600401610beb90614eb8565b60405163b6b55f2560e01b8152600481018290526001600160a01b0383169063b6b55f2590602401600060405180830381600087803b15801561218057600080fd5b505af1158015612194573d6000803e3d6000fd5b50506040517fde20bc92f9195457f9ba0ec9258c42c0814617c756a597287307a20494e83992925060009150a15050565b6121cd612f21565b600080856001600160a01b03168585856040516121eb929190614f89565b60006040518083038185875af1925050503d8060008114612228576040519150601f19603f3d011682016040523d82523d6000602084013e61222d565b606091505b5091509150818190610e515760405162461bcd60e51b8152600401610beb9190614e85565b61225a612f21565b6000612265836132a8565b9050612272838284613332565b505050565b6001600160a01b0381166000908152600660209081526040918290208054835181840281018401909452808452606093928301828280156122e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122c3575b50505050509050919050565b6060336122f8611fa9565b6001600160a01b0316148061231c57503360009081526002602052604090205460ff165b6123385760405162461bcd60e51b8152600401610beb90614eb8565b612342838561234d565b611a1b858584612611565b33612356611fa9565b6001600160a01b0316148061237a57503360009081526002602052604090205460ff165b6123965760405162461bcd60e51b8152600401610beb90614eb8565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03831690632e1a7d4d90602401600060405180830381600087803b1580156123d857600080fd5b505af11580156123ec573d6000803e3d6000fd5b50506040517f7538eecf48bef0887a2f7b5220dd296796c65ac536b1ab713d97aa41446e1fa5925060009150a15050565b6006602052816000526040600020818154811061243957600080fd5b6000918252602090912001546001600160a01b03169150829050565b61245d612f21565b612272838383613332565b600033612473611fa9565b6001600160a01b0316148061249757503360009081526002602052604090205460ff165b6124b35760405162461bcd60e51b8152600401610beb90614eb8565b6001600160a01b0385166000908152600b602052604090205460ff166124eb5760405162461bcd60e51b8152600401610beb90615081565b60006001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461251857600061251a565b835b6001600160a01b038716600090815260066020526040812054919250906001600160401b0381111561254e5761254e614490565b604051908082528060200260200182016040528015612577578160200160208202803683370190505b50905084816125868989610c33565b8151811061259657612596614efe565b6020026020010181815250506125ae87828487613157565b979650505050505050565b6125c1612f21565b612272838383613065565b6125d4612f21565b6001600160a01b0381166000818152600b60209081526040808320805460ff191690555191825260008051602061544a8339815191529101610f4f565b60603361261c611fa9565b6001600160a01b0316148061264057503360009081526002602052604090205460ff165b61265c5760405162461bcd60e51b8152600401610beb90614eb8565b6001600160a01b0384166000908152600b602052604090205460ff166126945760405162461bcd60e51b8152600401610beb90615081565b6001600160a01b03841660009081526006602052604081205490816001600160401b038111156126c6576126c6614490565b6040519080825280602002602001820160405280156126ef578160200160208202803683370190505b50905060005b82811015612775576001600160a01b0387166000908152600660205260409020805461274691908390811061272c5761272c614efe565b6000918252602090912001546001600160a01b0316612078565b82828151811061275857612758614efe565b60209081029190910101528061276d81614f2a565b9150506126f5565b506001600160a01b0386166000908152600a602052604090205460ff16156127a7576127a28686866134e4565b612821565b816002036127ba576127a2868686613591565b816003036127cd576127a286868661373f565b816004036127e0576127a28686866138b2565b60405162461bcd60e51b815260206004820152601660248201527526b4b9b9b4b7339034b6b83632b6b2b73a30ba34b7b760511b6044820152606401610beb565b6000826001600160401b0381111561283b5761283b614490565b604051908082528060200260200182016040528015612864578160200160208202803683370190505b50905060005b838110156128fe5782818151811061288457612884614efe565b60200260200101516128c5600660008b6001600160a01b03166001600160a01b03168152602001908152602001600020838154811061272c5761272c614efe565b6128cf919061506a565b8282815181106128e1576128e1614efe565b6020908102919091010152806128f681614f2a565b91505061286a565b50866001600160a01b031660008051602061540a833981519152828860405161292892919061509d565b60405180910390a29695505050505050565b6040516367e6d4ff60e01b8152600090736a4c81bd338d34361c8351d651c1ad0d7f4adcaf906367e6d4ff9061297490309060040161477c565b602060405180830381865af4158015612991573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f019190615193565b6000336129c0611fa9565b6001600160a01b031614806129e457503360009081526002602052604090205460ff165b612a005760405162461bcd60e51b8152600401610beb90614eb8565b6001600160a01b0380831660009081526005602052604081205490911690612a2b8983898985611a3c565b9050611f9c848983886115f8565b6001546001600160a01b031690565b600033612a53611fa9565b6001600160a01b03161480612a7757503360009081526002602052604090205460ff165b612a935760405162461bcd60e51b8152600401610beb90614eb8565b600c546001600160a01b0316612abb5760405162461bcd60e51b8152600401610beb90615031565b60115460ff1615612af257612af261048d7f0000000000000000000000000000000000000000000000000000000000000000612078565b600f5460ff1615612b1d57601054610ce7908390612b18906001600160a01b0316612078565b613a5a565b612b25612f80565b15612c1857600c546001600160a01b03166000908152600660205260408120546001600160401b03811115612b5c57612b5c614490565b604051908082528060200260200182016040528015612b85578160200160208202803683370190505b50905060005b600c546001600160a01b0316600090815260066020526040902054811015612c0d57600c546001600160a01b031660009081526006602052604090208054612bde91908390811061272c5761272c614efe565b828281518110612bf057612bf0614efe565b602090810291909101015280612c0581614f2a565b915050612b8b565b50611dc88382613a90565b600e54610ce7908390612c33906001600160a01b0316612078565b613ab2565b919050565b612c45612f21565b6001600160a01b03808316600090815260096020526040902080546001600160a01b0319169183169190911790556040517f12612b4cfd87890ccdf24e503844cdea2b9f202e15478fba07494566b0f8a0e190600090a15050565b612ca8612f21565b600180546001600160a01b0319166001600160a01b038316908117909155612cce611fa9565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b612d0e612f21565b611273828233613332565b606080736a4c81bd338d34361c8351d651c1ad0d7f4adcaf63de27b7c7306040518263ffffffff1660e01b8152600401612d53919061477c565b600060405180830381865af4158015612d70573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d9891908101906150bf565b915091509091565b6040516370a0823160e01b81526000906001600160a01b038416906370a0823190612dcf90859060040161477c565b602060405180830381865afa158015612dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc89190615193565b612e18612f21565b6000612e23826132a8565b9050611273828233613332565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03868116600090815260056020908152604080832080546001600160a01b031916948a1694909417909355600681529190208551612ec79287019061439c565b506001600160a01b039095166000908152600760209081526040808320805495151560ff1996871617905560088252808320805494151594861694909417909355600a905220805494151594909116939093179092555050565b33612f2a611fa9565b6001600160a01b031614611de15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610beb565b600e546001600160a01b03161590565b6000670de0b6b3a7640000612fa583856151ac565b611dc891906151cb565b600c54600f5461010090046001600160a01b039081166000908152600560205260408120549092610f01929081169116610c33565b600c54600e54600d54600f54600093611dc8936001600160a01b03918216939082169287929182169189916101009004166129b5565b600c54600d54606091611dc8916001600160a01b0391821691859116866122ed565b600c54600e54600d54600092611dc8926001600160a01b03918216929082169186911687611a3c565b80156130fb57604051636eb1769f60e11b815281906001600160a01b0385169063dd62ed3e9061309b9030908790600401615179565b602060405180830381865afa1580156130b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130dc9190615193565b106130e657505050565b6130fb6001600160a01b038416836000613adb565b61310f6001600160a01b0384168383613adb565b826001600160a01b03167feded619173dbb378903f97d44ecec898a1c4876f445ae551e063113aef58b471838360405161314a9291906151ed565b60405180910390a2505050565b6001600160a01b038085166000908152600560205260408120549091829161317f9116612078565b6001600160a01b0387166000908152600a602052604090205490915060ff16156131b4576131af86868686613c15565b613211565b6001600160a01b03861660009081526006602052604090205460028190036131e7576131e287878787613cc3565b61320f565b806003036131fb576131e287878787613e75565b806004036127e0576131e287878787613feb565b505b6001600160a01b0380871660009081526005602052604090205482916132379116612078565b613241919061506a565b9150856001600160a01b03167fdf21883620cd435343a655a765cce604ee5e962b399aed0ebbbd63a9c7e570c4868460405161327e92919061509d565b60405180910390a250949350505050565b600180546001600160a01b0319169055611e5e81612e30565b60006001600160a01b0382161561332b576040516370a0823160e01b81526001600160a01b038316906370a08231906132e590309060040161477c565b602060405180830381865afa158015613302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133269190615193565b610ce7565b4792915050565b6001600160a01b03811661337a5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610beb565b6000613385846132a8565b9050828110156133cc5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610beb565b6001600160a01b03841661347d576000826001600160a01b03168460405160006040518083038185875af1925050503d8060008114613427576040519150601f19603f3d011682016040523d82523d6000602084013e61342c565b606091505b50509050806134775760405162461bcd60e51b81526020600482015260176024820152762730ba34bb32903a3930b739b332b9103330b4b632b21760491b6044820152606401610beb565b50613491565b6134916001600160a01b0385168385614195565b836001600160a01b0316826001600160a01b03167f9207361cc2a04b9c7a06691df1eb87c6a63957ae88bf01d0d18c81e3d1272099856040516134d691815260200190565b60405180910390a350505050565b6001600160a01b0383811660009081526009602052604081205490911615613526576001600160a01b0380851660009081526009602052604090205416613528565b835b60405163350376e360e21b81529091506001600160a01b0382169063d40ddb8c906135599086908690600401615206565b600060405180830381600087803b15801561357357600080fd5b505af1158015613587573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03838116600090815260096020526040812054909116156135d3576001600160a01b03808516600090815260096020526040902054166135d5565b835b90506135df614401565b826000815181106135f2576135f2614efe565b60200260200101518160006002811061360d5761360d614efe565b602002015282518390600190811061362757613627614efe565b60200260200101518160016002811061364257613642614efe565b602090810291909101919091526001600160a01b03861660009081526008909152604090205460ff16156136d85760405163269b558160e01b81526001600160a01b0383169063269b5581906136a19087908590600190600401615242565b600060405180830381600087803b1580156136bb57600080fd5b505af11580156136cf573d6000803e3d6000fd5b50505050611337565b6040516316cd8e2760e21b81526001600160a01b03831690635b36389c906137069087908590600401615266565b600060405180830381600087803b15801561372057600080fd5b505af1158015613734573d6000803e3d6000fd5b505050505050505050565b6001600160a01b0383811660009081526009602052604081205490911615613781576001600160a01b0380851660009081526009602052604090205416613783565b835b905061378d61441f565b826000815181106137a0576137a0614efe565b6020026020010151816000600381106137bb576137bb614efe565b60200201528251839060019081106137d5576137d5614efe565b6020026020010151816001600381106137f0576137f0614efe565b602002015282518390600290811061380a5761380a614efe565b60200260200101518160026003811061382557613825614efe565b602090810291909101919091526001600160a01b03861660009081526008909152604090205460ff161561388457604051637e73239b60e11b81526001600160a01b0383169063fce64736906136a1908790859060019060040161529d565b60405163ecb586a560e01b81526001600160a01b0383169063ecb586a59061370690879085906004016152c1565b6001600160a01b03838116600090815260096020526040812054909116156138f4576001600160a01b03808516600090815260096020526040902054166138f6565b835b905061390061443d565b8260008151811061391357613913614efe565b60200260200101518160006004811061392e5761392e614efe565b602002015282518390600190811061394857613948614efe565b60200260200101518160016004811061396357613963614efe565b602002015282518390600290811061397d5761397d614efe565b60200260200101518160026004811061399857613998614efe565b60200201528251839060039081106139b2576139b2614efe565b6020026020010151816003600481106139cd576139cd614efe565b602090810291909101919091526001600160a01b03861660009081526008909152604090205460ff1615613a2c5760405163a692989560e01b81526001600160a01b0383169063a6929895906136a190879085906001906004016152f8565b604051637d49d87560e01b81526001600160a01b03831690637d49d87590613706908790859060040161531c565b600c54601054600d54600f54600093611dc8936001600160a01b0391821693908216928792918216918991610100900416611f18565b600c54600d54600091611dc8916001600160a01b0391821691859116866119b7565b600c54600e54600d54600092611dc8926001600160a01b03918216929082169186911687610f5a565b801580613b545750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90613b119030908690600401615179565b602060405180830381865afa158015613b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b529190615193565b155b613bbf5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610beb565b6122728363095ea7b360e01b8484604051602401613bde9291906151ed565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526141b4565b6001600160a01b0384811660009081526009602052604081205490911615613c57576001600160a01b0380861660009081526009602052604090205416613c59565b845b9050806001600160a01b031663b72df5de8486856040518463ffffffff1660e01b8152600401613c8a92919061509d565b6000604051808303818588803b158015613ca357600080fd5b505af1158015613cb7573d6000803e3d6000fd5b50505050505050505050565b613ccb614401565b83600081518110613cde57613cde614efe565b602002602001015181600060028110613cf957613cf9614efe565b6020020152835184906001908110613d1357613d13614efe565b602002602001015181600160028110613d2e57613d2e614efe565b602090810291909101919091526001600160a01b038681166000908152600990925260408220541615613d7b576001600160a01b0380871660009081526009602052604090205416613d7d565b855b6001600160a01b03871660009081526008602052604090205490915060ff1615613e0b5760405163ee22be2360e01b81526001600160a01b0382169063ee22be23908690613dd49086908890600190600401615330565b6000604051808303818588803b158015613ded57600080fd5b505af1158015613e01573d6000803e3d6000fd5b5050505050612070565b604051630b4c7e4d60e01b81526001600160a01b03821690630b4c7e4d908690613e3b9086908890600401615354565b6000604051808303818588803b158015613e5457600080fd5b505af1158015613e68573d6000803e3d6000fd5b5050505050505050505050565b613e7d61441f565b83600081518110613e9057613e90614efe565b602002602001015181600060038110613eab57613eab614efe565b6020020152835184906001908110613ec557613ec5614efe565b602002602001015181600160038110613ee057613ee0614efe565b6020020152835184906002908110613efa57613efa614efe565b602002602001015181600260038110613f1557613f15614efe565b602090810291909101919091526001600160a01b038681166000908152600990925260408220541615613f62576001600160a01b0380871660009081526009602052604090205416613f64565b855b6001600160a01b03871660009081526008602052604090205490915060ff1615613fbb576040516315b74c9d60e11b81526001600160a01b03821690632b6e993a908690613dd4908690889060019060040161536f565b604051634515cef360e01b81526001600160a01b03821690634515cef3908690613e3b9086908890600401615393565b613ff361443d565b8360008151811061400657614006614efe565b60200260200101518160006004811061402157614021614efe565b602002015283518490600190811061403b5761403b614efe565b60200260200101518160016004811061405657614056614efe565b602002015283518490600290811061407057614070614efe565b60200260200101518160026004811061408b5761408b614efe565b60200201528351849060039081106140a5576140a5614efe565b6020026020010151816003600481106140c0576140c0614efe565b602090810291909101919091526001600160a01b03868116600090815260099092526040822054161561410d576001600160a01b038087166000908152600960205260409020541661410f565b855b6001600160a01b03871660009081526008602052604090205490915060ff16156141665760405163dc3a2d8160e01b81526001600160a01b0382169063dc3a2d81908690613dd490869088906001906004016153ae565b60405162a6cbcd60e21b81526001600160a01b0382169063029b2f34908690613e3b90869088906004016153d2565b6122728363a9059cbb60e01b8484604051602401613bde9291906151ed565b6000614209826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166142899092919063ffffffff16565b905080516000148061422a57508080602001905181019061422a919061504d565b6122725760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610beb565b606061194b848460008585600080866001600160a01b031685876040516142b091906153ed565b60006040518083038185875af1925050503d80600081146142ed576040519150601f19603f3d011682016040523d82523d6000602084013e6142f2565b606091505b50915091506125ae878383876060831561436d578251600003614366576001600160a01b0385163b6143665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610beb565b508161194b565b61194b83838151156143825781518083602001fd5b8060405162461bcd60e51b8152600401610beb9190614e85565b8280548282559060005260206000209081019282156143f1579160200282015b828111156143f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906143bc565b506143fd92915061445b565b5090565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b5b808211156143fd576000815560010161445c565b6001600160a01b0381168114611e5e57600080fd5b8035612c3881614470565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156144ce576144ce614490565b604052919050565b60006001600160401b038211156144ef576144ef614490565b5060051b60200190565b8015158114611e5e57600080fd5b8035612c38816144f9565b60008060008060008060c0878903121561452b57600080fd5b863561453681614470565b955060208781013561454781614470565b955060408801356001600160401b0381111561456257600080fd5b8801601f81018a1361457357600080fd5b8035614586614581826144d6565b6144a6565b81815260059190911b8201830190838101908c8311156145a557600080fd5b928401925b828410156145cc5783356145bd81614470565b825292840192908401906145aa565b80985050505050506145e060608801614507565b92506145ee60808801614507565b91506145fc60a08801614507565b90509295509295509295565b6000806040838503121561461b57600080fd5b823561462681614470565b9150602083013561463681614470565b809150509250929050565b60008083601f84011261465357600080fd5b5081356001600160401b0381111561466a57600080fd5b6020830191508360208260051b850101111561468557600080fd5b9250929050565b600080600080600080606087890312156146a557600080fd5b86356001600160401b03808211156146bc57600080fd5b6146c88a838b01614641565b909850965060208901359150808211156146e157600080fd5b6146ed8a838b01614641565b9096509450604089013591508082111561470657600080fd5b5061471389828a01614641565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561475e5781516001600160a01b031687529582019590820190600101614739565b509495945050505050565b602081526000611dc86020830184614725565b6001600160a01b0391909116815260200190565b6000602082840312156147a257600080fd5b8135611dc881614470565b600080600080600060a086880312156147c557600080fd5b85356147d081614470565b945060208601356147e081614470565b93506040860135925060608601356147f781614470565b949793965091946080013592915050565b600082601f83011261481957600080fd5b81356020614829614581836144d6565b82815260059290921b8401810191818101908684111561484857600080fd5b8286015b84811015614863578035835291830191830161484c565b509695505050505050565b6000806040838503121561488157600080fd5b8235915060208301356001600160401b0381111561489e57600080fd5b6148aa85828601614808565b9150509250929050565b600081518084526020808501945080840160005b8381101561475e578151875295820195908201906001016148c8565b602081526000611dc860208301846148b4565b60006020828403121561490957600080fd5b5035919050565b6040815260006149236040830185614725565b8281036020840152611dc481856148b4565b6000806000806080858703121561494b57600080fd5b843561495681614470565b9350602085013561496681614470565b93969395505050506040820135916060013590565b6000806000806080858703121561499157600080fd5b843561499c81614470565b935060208501356001600160401b038111156149b757600080fd5b6149c387828801614808565b93505060408501356149d481614470565b9396929550929360600135925050565b6000606082840312156149f657600080fd5b604051606081016001600160401b0381118282101715614a1857614a18614490565b6040529050808235614a29816144f9565b81526020830135614a3981614470565b60208201526040830135614a4c81614470565b6040919091015292915050565b60006101008284031215614a6c57600080fd5b60405160c081016001600160401b0381118282101715614a8e57614a8e614490565b6040528235614a9c81614470565b81526020830135614aac81614470565b6020820152604083013560078110614ac357600080fd5b6040820152614ad460608401614485565b6060820152614ae684608085016149e4565b6080820152614af760e08401614507565b60a08201529392505050565b600080600060608486031215614b1857600080fd5b8335614b2381614470565b925060208401356001600160401b03811115614b3e57600080fd5b614b4a86828701614808565b925050604084013590509250925092565b60008060008060008060c08789031215614b7457600080fd5b8635614b7f81614470565b95506020870135614b8f81614470565b9450604087013593506060870135614ba681614470565b92506080870135915060a0870135614bbd81614470565b809150509295509295509295565b60008060408385031215614bde57600080fd5b8235614be981614470565b946020939093013593505050565b60008060008060608587031215614c0d57600080fd5b8435614c1881614470565b93506020850135925060408501356001600160401b0380821115614c3b57600080fd5b818701915087601f830112614c4f57600080fd5b813581811115614c5e57600080fd5b886020828501011115614c7057600080fd5b95989497505060200194505050565b60008060008060808587031215614c9557600080fd5b8435614ca081614470565b9350602085013592506040850135614cb781614470565b915060608501356001600160401b03811115614cd257600080fd5b614cde87828801614808565b91505092959194509250565b600080600060608486031215614cff57600080fd5b8335614d0a81614470565b9250602084013591506040840135614d2181614470565b809150509250925092565b600080600060608486031215614d4157600080fd5b8335614d4c81614470565b92506020840135614d5c81614470565b929592945050506040919091013590565b600080600060608486031215614d8257600080fd5b8335614d8d81614470565b92506020840135915060408401356001600160401b03811115614daf57600080fd5b614dbb86828701614808565b9150509250925092565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038781168252868116602083015261010082019060078710614e1457634e487b7160e01b600052602160045260246000fd5b604083810188905281871660608501528551151560808501526020860151821660a08501528501511660c083015282151560e0830152979650505050505050565b60005b83811015614e70578181015183820152602001614e58565b83811115614e7f576000848401525b50505050565b6020815260008251806020840152614ea4816040850160208701614e55565b601f01601f19169190910160400192915050565b60208082526026908201527f45786563757461626c653a2063616c6c6572206973206e6f742074686520657860408201526532b1baba37b960d11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614f3c57614f3c614f14565b5060010190565b6000808335601e19843603018112614f5a57600080fd5b8301803591506001600160401b03821115614f7457600080fd5b60200191503681900382131561468557600080fd5b8183823760009101908152919050565b600082601f830112614faa57600080fd5b81516020614fba614581836144d6565b82815260059290921b84018101918181019086841115614fd957600080fd5b8286015b84811015614863578051614ff081614470565b8352918301918301614fdd565b60006020828403121561500f57600080fd5b81516001600160401b0381111561502557600080fd5b61194b84828501614f99565b602080825260029082015261413360f01b604082015260600190565b60006020828403121561505f57600080fd5b8151611dc8816144f9565b60008282101561507c5761507c614f14565b500390565b602080825260029082015261209960f11b604082015260600190565b6040815260006150b060408301856148b4565b90508260208301529392505050565b600080604083850312156150d257600080fd5b82516001600160401b03808211156150e957600080fd5b6150f586838701614f99565b935060209150818501518181111561510c57600080fd5b85019050601f8101861361511f57600080fd5b805161512d614581826144d6565b81815260059190911b8201830190838101908883111561514c57600080fd5b928401925b8284101561516a57835182529284019290840190615151565b80955050505050509250929050565b6001600160a01b0392831681529116602082015260400190565b6000602082840312156151a557600080fd5b5051919050565b60008160001904831182151516156151c6576151c6614f14565b500290565b6000826151e857634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b82815260406020820152600061194b60408301846148b4565b8060005b6002811015614e7f578151845260209384019390910190600101615223565b83815260808101615256602083018561521f565b8215156060830152949350505050565b82815260608101611dc8602083018461521f565b8060005b6003811015614e7f57815184526020938401939091019060010161527e565b83815260a081016152b1602083018561527a565b8215156080830152949350505050565b82815260808101611dc8602083018461527a565b8060005b6004811015614e7f5781518452602093840193909101906001016152d9565b83815260c0810161530c60208301856152d5565b82151560a0830152949350505050565b82815260a08101611dc860208301846152d5565b6080810161533e828661521f565b8360408301528215156060830152949350505050565b60608101615362828561521f565b8260408301529392505050565b60a0810161537d828661527a565b8360608301528215156080830152949350505050565b608081016153a1828561527a565b8260608301529392505050565b60c081016153bc82866152d5565b83608083015282151560a0830152949350505050565b60a081016153e082856152d5565b8260808301529392505050565b600082516153ff818460208701614e55565b919091019291505056fe88d38ed598fdd809c2bf01ee49cd24b7fdabf379a83d29567952b60324d58cef9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea26e30376a5dc359900098762489d0f02dab676eb64587ff220563b39e04095574a26469706673582212204c0137f0e214fa349f44856dd673e81c2cf9a3ae2fef7360fece683785b82c0864736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000d061d61a4d941c39e5453435b6345dc261c2fce0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd5200000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000059756cc927241b25a250b7a67ef1ada554b6015800000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000092000000000000000000000000000000000000000000000000000000000000019e00000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000222000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bebc44782c7db0a1a60cb6fe97d0b483032ff1c7000000000000000000000000c5424b857f758e906013f3555dad202e4bdb4567000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f67022000000000000000000000000f178c0b5bb7e7abf4e12a4838c7b7c5ba2c623c00000000000000000000000004ca9b3063ec5866a4b82e437059d2c43d1be596f00000000000000000000000043b4fdfd4ff969587185cdb6f0bd875c5fc83f8c000000000000000000000000071c661b4deefb59e2a3ddb20db036821eee8f4b0000000000000000000000007fc77b5c7614e1533320ea6ddc2eb61fa00a9714000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae460000000000000000000000005a6a4d54456819380173272a5e8e9b9904bdf41b000000000000000000000000a2b47e3d5c44877cca798226b7b8118f9bfb7a56000000000000000000000000fbdca68601f835b27790d98bbb8ec7f05fdeaa9b000000000000000000000000ceaf7747579696a2f0bb206a14210e3c9e6fb2690000000000000000000000008474ddbe98f5aa3179b3b3f5942d724afcdec9f6000000000000000000000000dcef968d416a41cdac0ed8702fac8128a64241a2000000000000000000000000e57180685e3348589e9521aa53af0bcd497e884d000000000000000000000000a1f8a6807c402e4a15ef4eba36528a3fed24e577000000000000000000000000c270b3b858c335b6ba5d5b10e2da8a09976005ad0000000000000000000000000f3159811670c117c372428d4e69ac32325e4d0f00000000000000000000000094b17476a93b3262d87b9a326965d1e91f9c13e70000000000000000000000004dece678ceceb27446b35c672dc7d61f30bad69e000000000000000000000000390f3595bca2df7d23783dfd126427cceb997bf4000000000000000000000000aeda92e6a3b1028edc139a4ae56ec881f3064d4f0000000000000000000000004d9f9d15101eec665f77210cb999639f760f831e0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b000000000000000000000000d82c2eb10f4895cabed6eda6eeee234bd1a9838b00000000000000000000000021e27a5e5513d6e65c4f830167390997aa84843a0000000000000000000000005fae7e604fc3e24fd43a72867cebac94c65b404a0000000000000000000000009c3b46c0ceb5b9e304fcd6d88fc50f7dd24b31bc0000000000000000000000002570f1bd5d2735314fc102eb12fc1afe9e6e7193000000000000000000000000f980b4a4194694913af231de69ab4593f5e0fcdc000000000000000000000000f8d390f23b06d420daa629d3b6a9a24bd27c1ef300000000000000000000000000000000000000000000000000000000000000200000000000000000000000006c3f90f043a72fa612cbac8115ee7e52bde6e490000000000000000000000000a3d87fffce63b53e0d54faa1cc983b7eb0b74a9c00000000000000000000000006325440d014e39736583c165c2963ba99faf14e000000000000000000000000cee60cfa923170e4f8204ae08b4fa6a3f5656f3a000000000000000000000000b19059ebb43466c323583928285a49f558e572fd00000000000000000000000043b4fdfd4ff969587185cdb6f0bd875c5fc83f8c000000000000000000000000410e3e86ef427e30b9235497143881f717d93c2a000000000000000000000000075b1bb99792c9e1041ba13afef80c91a1e70fb3000000000000000000000000c4ad29ba4b3c580e6d59105fff484999997675ff0000000000000000000000005a6a4d54456819380173272a5e8e9b9904bdf41b000000000000000000000000845838df265dcd2c412a1dc9e959c7d08537f8a2000000000000000000000000fbdca68601f835b27790d98bbb8ec7f05fdeaa9b000000000000000000000000ceaf7747579696a2f0bb206a14210e3c9e6fb2690000000000000000000000001aef73d49dedc4b1778d0706583995958dc862e60000000000000000000000003175df0976dfa876431c2e9ee6bc45b65d3473cc000000000000000000000000e57180685e3348589e9521aa53af0bcd497e884d000000000000000000000000f43211935c781d5ca1a41d2041f397b8a7366c7a000000000000000000000000c270b3b858c335b6ba5d5b10e2da8a09976005ad0000000000000000000000006c38ce8984a890f5e46e6df6117c26b3f1ecfc9c00000000000000000000000094b17476a93b3262d87b9a326965d1e91f9c13e70000000000000000000000004dece678ceceb27446b35c672dc7d61f30bad69e000000000000000000000000390f3595bca2df7d23783dfd126427cceb997bf4000000000000000000000000aeda92e6a3b1028edc139a4ae56ec881f3064d4f0000000000000000000000004d9f9d15101eec665f77210cb999639f760f831e0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b000000000000000000000000d82c2eb10f4895cabed6eda6eeee234bd1a9838b00000000000000000000000021e27a5e5513d6e65c4f830167390997aa84843a0000000000000000000000005b6c539b224014a09b3388e51caaa8e354c959c80000000000000000000000009c3b46c0ceb5b9e304fcd6d88fc50f7dd24b31bc0000000000000000000000002570f1bd5d2735314fc102eb12fc1afe9e6e7193000000000000000000000000f980b4a4194694913af231de69ab4593f5e0fcdc000000000000000000000000f8d390f23b06d420daa629d3b6a9a24bd27c1ef300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004e0000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000005a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000066000000000000000000000000000000000000000000000000000000000000006c0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000000000820000000000000000000000000000000000000000000000000000000000000088000000000000000000000000000000000000000000000000000000000000008e0000000000000000000000000000000000000000000000000000000000000094000000000000000000000000000000000000000000000000000000000000009a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b200000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000c400000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000de00000000000000000000000000000000000000000000000000000000000000e400000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f600000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000104000000000000000000000000000000000000000000000000000000000000000030000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000005e74c9036fb86bd7ecdcb084a0673efc32ea31cb0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe840000000000000000000000000000000000000000000000000000000000000002000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca000000000000000000000000bbc455cb4f1b9e4bfc4b73970d360c8f032efee600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000316eb71485b0ab14103307bf65a021042c6d3800000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bc6da0fe9ad5f3b0d58160288917aa56653660e90000000000000000000000006c3f90f043a72fa612cbac8115ee7e52bde6e49000000000000000000000000000000000000000000000000000000000000000020000000000000000000000009be89d2a4cd102d8fecc6bf9da793be995c22541000000000000000000000000075b1bb99792c9e1041ba13afef80c91a1e70fb30000000000000000000000000000000000000000000000000000000000000003000000000000000000000000eb4c2781e4eba804ce9a9803c67d0893436bb27d0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000fe18be6b3bd88a2d2a7f928d00292e7a9963cfc60000000000000000000000000000000000000000000000000000000000000003000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000200000000000000000000000099d8a9c45b2eca8864373a26d1459e3dff1e17f30000000000000000000000006c3f90f043a72fa612cbac8115ee7e52bde6e49000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000020000000000000000000000008751d4196027d4e6da63716fa7786b5174f04c15000000000000000000000000075b1bb99792c9e1041ba13afef80c91a1e70fb30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a693b19d2931d498c5b318df961919bb4aee87a50000000000000000000000006c3f90f043a72fa612cbac8115ee7e52bde6e4900000000000000000000000000000000000000000000000000000000000000002000000000000000000000000e2f2a5c287993345a840db3b0845fbc70f5935a50000000000000000000000006c3f90f043a72fa612cbac8115ee7e52bde6e4900000000000000000000000000000000000000000000000000000000000000002000000000000000000000000853d955acef822db058eb8505911ed77f175b99e000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000002000000000000000000000000865377367054516e17014ccded1e7d814edc9ce40000000000000000000000003175df0976dfa876431c2e9ee6bc45b65d3473cc0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000005e8422345238f34275888049021821e8e08caa1f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000008e870d67f660d95d5be530380d0ec0bd388289e10000000000000000000000006c3f90f043a72fa612cbac8115ee7e52bde6e4900000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ae78736cd615f374d3085123a210448e74fc63930000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000856c4efb76c1d1ae02e20ceb03a2a6a08b0b8dc30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0d69e286b938e21cbf7e51d71f6a4c8918f482f0000000000000000000000003175df0976dfa876431c2e9ee6bc45b65d3473cc0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe840000000000000000000000005e8422345238f34275888049021821e8e08caa1f0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a35b1b31ce002fbf2058d22f30f95d405200a15b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe840000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000be9895146f7af43049ca1c1ae358b0541ea497040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005e8422345238f34275888049021821e8e08caa1f00000000000000000000000000000000000000000000000000000000000000030000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393000000000000000000000000ac3e018457b222d93114458476f3e3416abbe38f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004591dbff62656e7859afe5e45f6f47d3669fbb28000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000020000000000000000000000006c3ea9036406852006290770bedfcaba0e23a0e8000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001