60806040523480156200001157600080fd5b5060405162004a3638038062004a36833981016040819052620000349162000bbc565b83733cc6cdda760b79bafa08df41ecfa224f810dceb6600189898e8e60026200005e838262000db6565b5060036200006d828262000db6565b505060016000555062000080336200052a565b8051825114620000f25760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620001455760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f207061796565730000000000006044820152606401620000e9565b60005b8251811015620001b1576200019c8382815181106200016b576200016b62000e82565b602002602001015183838151811062000188576200018862000e82565b60200260200101516200057c60201b60201c565b80620001a88162000eae565b91505062000148565b5050506daaeb6d7670e522a718067333cd4e3b15620002f95780156200024757604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200022857600080fd5b505af11580156200023d573d6000803e3d6000fd5b50505050620002f9565b6001600160a01b03821615620002985760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016200020d565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620002df57600080fd5b505af1158015620002f4573d6000803e3d6000fd5b505050505b50506001601055601180546001600160a01b0319166001600160a01b039290921691909117905560186200032e838262000db6565b5060166200033d898262000db6565b5080516015805461ffff90921661ffff19831681178255602084015184939091839162ffffff191617620100008360018111156200037f576200037f62000eca565b0217905550604082015181546060840151608085015160a086015160c087015160e08801516101008901516101208a0151610140909a01516301000000600160701b0319909716630100000061ffff90991698909802600160281b600160701b03191697909717650100000000006001600160481b039687160217600160701b600160c01b031916600160701b959094169490940260ff60b81b191692909217600160b81b911515919091021761ffff60c01b1916600160c01b9115159190910260ff60c81b191617600160c81b911515919091021761ffff60d01b1916600160d01b60ff9093169290920260ff60d81b191691909117600160d81b931515939093029290921760ff60e01b1916600160e01b9215159290920291909117905560005b83518110156200050e57600160146000868481518110620004c757620004c762000e82565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620005058162000eae565b915050620004a2565b506200051a856200076a565b5050505050505050505062000efc565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620005e95760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401620000e9565b600081116200063b5760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606401620000e9565b6001600160a01b0382166000908152600b602052604090205415620006b75760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608401620000e9565b600d8054600181019091557fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0384169081179091556000908152600b602052604090208190556009546200072190829062000ee0565b600955604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b62000774620007e9565b6001600160a01b038116620007db5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000e9565b620007e6816200052a565b50565b6008546001600160a01b03163314620008455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000e9565b565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b038111828210171562000883576200088362000847565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620008b457620008b462000847565b604052919050565b600082601f830112620008ce57600080fd5b81516001600160401b03811115620008ea57620008ea62000847565b602062000900601f8301601f1916820162000889565b82815285828487010111156200091557600080fd5b60005b838110156200093557858101830151828201840152820162000918565b506000928101909101919091529392505050565b60006001600160401b0382111562000965576200096562000847565b5060051b60200190565b80516001600160a01b03811681146200098757600080fd5b919050565b600082601f8301126200099e57600080fd5b81516020620009b7620009b18362000949565b62000889565b82815260059290921b84018101918181019086841115620009d757600080fd5b8286015b84811015620009fd57620009ef816200096f565b8352918301918301620009db565b509695505050505050565b600082601f83011262000a1a57600080fd5b8151602062000a2d620009b18362000949565b82815260059290921b8401810191818101908684111562000a4d57600080fd5b8286015b84811015620009fd578051835291830191830162000a51565b805161ffff811681146200098757600080fd5b8051600281106200098757600080fd5b80516001600160481b03811681146200098757600080fd5b805180151581146200098757600080fd5b805160ff811681146200098757600080fd5b6000610160828403121562000adc57600080fd5b62000ae66200085d565b905062000af38262000a6a565b815262000b036020830162000a7d565b602082015262000b166040830162000a6a565b604082015262000b296060830162000a8d565b606082015262000b3c6080830162000a8d565b608082015262000b4f60a0830162000aa5565b60a082015262000b6260c0830162000aa5565b60c082015262000b7560e0830162000aa5565b60e082015261010062000b8a81840162000ab6565b9082015261012062000b9e83820162000aa5565b9082015261014062000bb283820162000aa5565b9082015292915050565b6000806000806000806000806000806102808b8d03121562000bdd57600080fd5b8a516001600160401b038082111562000bf557600080fd5b62000c038e838f01620008bc565b9b5060208d015191508082111562000c1a57600080fd5b62000c288e838f01620008bc565b9a5060408d015191508082111562000c3f57600080fd5b62000c4d8e838f01620008bc565b995060608d015191508082111562000c6457600080fd5b62000c728e838f016200098c565b985060808d015191508082111562000c8957600080fd5b62000c978e838f0162000a08565b975062000ca760a08e016200096f565b965062000cb760c08e016200096f565b955060e08d015191508082111562000cce57600080fd5b62000cdc8e838f016200098c565b94506101008d015191508082111562000cf457600080fd5b5062000d038d828e01620008bc565b92505062000d168c6101208d0162000ac8565b90509295989b9194979a5092959850565b600181811c9082168062000d3c57607f821691505b60208210810362000d5d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000db157600081815260208120601f850160051c8101602086101562000d8c5750805b601f850160051c820191505b8181101562000dad5782815560010162000d98565b5050505b505050565b81516001600160401b0381111562000dd25762000dd262000847565b62000dea8162000de3845462000d27565b8462000d63565b602080601f83116001811462000e22576000841562000e095750858301515b600019600386901b1c1916600185901b17855562000dad565b600085815260208120601f198616915b8281101562000e535788860151825594840194600190910190840162000e32565b508582101562000e725787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000ec35762000ec362000e98565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8082018082111562000ef65762000ef662000e98565b92915050565b613b2a8062000f0c6000396000f3fe60806040526004361061023d5760003560e01c806301ffc9a71461028257806306fdde03146102b7578063081812fc146102d9578063095ea7b3146103065780630f7309e81461031b57806318160ddd146103305780631916558714610353578063218168b91461037357806321b97f201461039357806323b872dd146103b357806330176e13146103c657806338e21cce146103e65780633a98ef391461042a578063406072a91461043f57806341f434341461045f57806342842e0e1461048157806348b7504414610494578063549d8449146104b457806359de8b03146104c75780636352211e146104e757806370a0823114610507578063715018a61461052757806373b2e80e1461053c578063742d7f8b1461056d57806381eaf99b1461058d5780638b83209b146105a25780638c43247b146105c25780638cb4a267146105e25780638da5cb5b1461060257806395d89b41146106175780639852595c1461062c5780639c4dab521461064c578063a22cb46514610662578063a3f8eace14610682578063b0681af2146106a2578063b2a9cfa6146106c2578063b6d91387146106e2578063b80f55c914610702578063b88d4fde14610722578063c45ac05014610735578063c87b56dd14610755578063ce7c2ac214610775578063d4a417e6146107ab578063d79779b2146107c1578063dd6a40a4146107e1578063e33b7de314610801578063e797570914610816578063e985e9c514610846578063f2fde38b1461088f578063fc0c546a146108af57600080fd5b3661027d577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7703334604051610273929190612dcc565b60405180910390a1005b600080fd5b34801561028e57600080fd5b506102a261029d366004612dfb565b610950565b60405190151581526020015b60405180910390f35b3480156102c357600080fd5b506102cc6109a2565b6040516102ae9190612e68565b3480156102e557600080fd5b506102f96102f4366004612e7b565b610a34565b6040516102ae9190612e94565b610319610314366004612ebd565b610a78565b005b34801561032757600080fd5b506102cc610ac3565b34801561033c57600080fd5b50610345610b51565b6040519081526020016102ae565b34801561035f57600080fd5b5061031961036e366004612ef9565b610b5f565b34801561037f57600080fd5b5061031961038e366004612f24565b610c3d565b34801561039f57600080fd5b506103196103ae366004612e7b565b610dc2565b6103196103c1366004612f86565b610dcf565b3480156103d257600080fd5b506103196103e1366004613064565b610e23565b3480156103f257600080fd5b50610417610401366004612ef9565b60136020526000908152604090205461ffff1681565b60405161ffff90911681526020016102ae565b34801561043657600080fd5b50600954610345565b34801561044b57600080fd5b5061034561045a3660046130ac565b610e3b565b34801561046b57600080fd5b506102f96daaeb6d7670e522a718067333cd4e81565b61031961048f366004612f86565b610e66565b3480156104a057600080fd5b506103196104af3660046130ac565b610eb4565b6103196104c2366004613108565b610fc2565b3480156104d357600080fd5b506103196104e23660046131ed565b611028565b3480156104f357600080fd5b506102f9610502366004612e7b565b611075565b34801561051357600080fd5b50610345610522366004612ef9565b611080565b34801561053357600080fd5b506103196110ce565b34801561054857600080fd5b50610417610557366004612ef9565b60126020526000908152604090205461ffff1681565b34801561057957600080fd5b50610319610588366004613232565b6110e2565b34801561059957600080fd5b506103196111f9565b3480156105ae57600080fd5b506102f96105bd366004612e7b565b611216565b3480156105ce57600080fd5b506017546102f9906001600160a01b031681565b3480156105ee57600080fd5b506103196105fd366004612e7b565b611246565b34801561060e57600080fd5b506102f9611253565b34801561062357600080fd5b506102cc611262565b34801561063857600080fd5b50610345610647366004612ef9565b611271565b34801561065857600080fd5b50610345601a5481565b34801561066e57600080fd5b5061031961067d36600461327d565b61128c565b34801561068e57600080fd5b5061034561069d366004612ef9565b6112c9565b3480156106ae57600080fd5b506103196106bd366004613318565b6112fb565b3480156106ce57600080fd5b506103196106dd366004612ef9565b611480565b3480156106ee57600080fd5b506011546102f9906001600160a01b031681565b34801561070e57600080fd5b5061031961071d3660046133d9565b6114aa565b61031961073036600461345e565b611548565b34801561074157600080fd5b506103456107503660046130ac565b611597565b34801561076157600080fd5b506102cc610770366004612e7b565b611633565b34801561078157600080fd5b50610345610790366004612ef9565b6001600160a01b03166000908152600b602052604090205490565b3480156107b757600080fd5b5061034560195481565b3480156107cd57600080fd5b506103456107dc366004612ef9565b611667565b3480156107ed57600080fd5b506103196107fc36600461327d565b611682565b34801561080d57600080fd5b50600a54610345565b34801561082257600080fd5b506102a2610831366004612ef9565b60146020526000908152604090205460ff1681565b34801561085257600080fd5b506102a26108613660046130ac565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561089b57600080fd5b506103196108aa366004612ef9565b6116d9565b3480156108bb57600080fd5b506015546109399061ffff8082169160ff6201000082048116926301000000830416916001600160481b03600160281b8204811692600160701b830490911691600160b81b8104821691600160c01b8204811691600160c81b8104821691600160d01b8204811691600160d81b8104821691600160e01b909104168b565b6040516102ae9b9a999897969594939291906134f3565b60006301ffc9a760e01b6001600160e01b03198316148061098157506380ac58cd60e01b6001600160e01b03198316145b8061099c5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6060600280546109b190613588565b80601f01602080910402602001604051908101604052809291908181526020018280546109dd90613588565b8015610a2a5780601f106109ff57610100808354040283529160200191610a2a565b820191906000526020600020905b815481529060010190602001808311610a0d57829003601f168201915b5050505050905090565b6000610a3f82611752565b610a5c576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b81610a8281611787565b601554600160d81b900460ff16610ab45760405162461bcd60e51b8152600401610aab906135c2565b60405180910390fd5b610abe8383611837565b505050565b60188054610ad090613588565b80601f0160208091040260200160405190810160405280929190818152602001828054610afc90613588565b8015610b495780601f10610b1e57610100808354040283529160200191610b49565b820191906000526020600020905b815481529060010190602001808311610b2c57829003601f168201915b505050505081565b600154600054036000190190565b6001600160a01b0381166000908152600b6020526040902054610b945760405162461bcd60e51b8152600401610aab906135e5565b6000610b9f826112c9565b905080600003610bc15760405162461bcd60e51b8152600401610aab9061362b565b80600a6000828254610bd3919061368c565b90915550506001600160a01b0382166000908152600c60205260409020805482019055610c0082826118d7565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568282604051610c31929190612dcc565b60405180910390a15050565b610c456119ed565b60ff81161580610c5857508060ff166001145b80610c6657508060ff166002145b610c9e5760405162461bcd60e51b815260206004820152600960248201526842616420706861736560b81b6044820152606401610aab565b838015610cae57508060ff166001145b15610d00576017546001600160a01b0316610d005760405162461bcd60e51b8152602060048201526012602482015271135a5b9d14185cdcc81d5b9919599a5b995960721b6044820152606401610aab565b838015610d1057508060ff166002145b15610d3757601954600003610d375760405162461bcd60e51b8152600401610aab9061369f565b8115610d5f57601a54600003610d5f5760405162461bcd60e51b8152600401610aab9061369f565b6015805461ffff60b81b1916600160b81b9515159590950260ff60c01b191694909417600160c01b931515939093029290921761ffff60c81b1916600160c81b9115159190910260ff60d01b191617600160d01b60ff9290921691909102179055565b610dca6119ed565b601a55565b826001600160a01b0381163314610de957610de933611787565b601554600160d81b900460ff16610e125760405162461bcd60e51b8152600401610aab906135c2565b610e1d848484611a4c565b50505050565b610e2b6119ed565b6016610e37828261370d565b5050565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b826001600160a01b0381163314610e8057610e8033611787565b601554600160d81b900460ff16610ea95760405162461bcd60e51b8152600401610aab906135c2565b610e1d848484611bdd565b6001600160a01b0381166000908152600b6020526040902054610ee95760405162461bcd60e51b8152600401610aab906135e5565b6000610ef58383611597565b905080600003610f175760405162461bcd60e51b8152600401610aab9061362b565b6001600160a01b0383166000908152600e602052604081208054839290610f3f90849061368c565b90915550506001600160a01b038084166000908152600f60209081526040808320938616835292905220805482019055610f7a838383611bf8565b826001600160a01b03167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8383604051610fb5929190612dcc565b60405180910390a2505050565b610fca611c4e565b6001600160a01b0385163314611009573360009081526014602052604090205460ff166110095760405162461bcd60e51b8152600401610aab906137cc565b611017858585858534611ca7565b6110216001601055565b5050505050565b6110306119ed565b60158054600160281b600160b81b031916600160281b6001600160481b0394851602600160701b600160b81b03191617600160701b9290931691909102919091179055565b600061099c82611faa565b60006001600160a01b0382166110a9576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b6110d66119ed565b6110e06000612019565b565b6110ea6119ed565b601554600160e01b900460ff161561113d5760155461ffff84811691161461113d5760405162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b6044820152606401610aab565b60328261ffff1611156111625760405162461bcd60e51b8152600401610aab906137f2565b61116a610b51565b8361ffff1610156111ae5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420737570706c7960901b6044820152606401610aab565b6015805461ffff84811663010000000264ffff00ffff19909216908616171780825582919062ff00001916620100008360018111156111ef576111ef6134dd565b0217905550505050565b6112016119ed565b6015805460ff60e01b1916600160e01b179055565b6000600d828154811061122b5761122b613814565b6000918252602090912001546001600160a01b031692915050565b61124e6119ed565b601955565b6008546001600160a01b031690565b6060600380546109b190613588565b6001600160a01b03166000908152600c602052604090205490565b8161129681611787565b601554600160d81b900460ff166112bf5760405162461bcd60e51b8152600401610aab906135c2565b610abe838361206b565b6000806112d5600a5490565b6112df904761368c565b90506112f483826112ef86611271565b6120d7565b9392505050565b6113036119ed565b60008251116113245760405162461bcd60e51b8152600401610aab9061382a565b80518251146113455760405162461bcd60e51b8152600401610aab9061382a565b6000805b82518110156113c957603283828151811061136657611366613814565b602002602001015161ffff1611156113905760405162461bcd60e51b8152600401610aab906137f2565b8281815181106113a2576113a2613814565b6020026020010151826113b5919061384b565b9150806113c18161386d565b915050611349565b5060155461ffff9081169082166113de610b51565b6113e8919061368c565b11156114225760405162461bcd60e51b81526020600482015260096024820152684e6f20737570706c7960b81b6044820152606401610aab565b60005b8351811015610e1d5761146e84828151811061144357611443613814565b602002602001015184838151811061145d5761145d613814565b602002602001015161ffff16612115565b806114788161386d565b915050611425565b6114886119ed565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b60005b81518161ffff161015610e3757336001600160a01b03166114ea838361ffff16815181106114dd576114dd613814565b6020026020010151611075565b6001600160a01b0316146115105760405162461bcd60e51b8152600401610aab906137cc565b611536828261ffff168151811061152957611529613814565b602002602001015161212f565b8061154081613886565b9150506114ad565b836001600160a01b03811633146115625761156233611787565b601554600160d81b900460ff1661158b5760405162461bcd60e51b8152600401610aab906135c2565b6110218585858561213a565b6000806115a384611667565b6040516370a0823160e01b81526001600160a01b038616906370a08231906115cf903090600401612e94565b602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161091906138a7565b61161a919061368c565b905061162b83826112ef8787610e3b565b949350505050565b606060166116408361217e565b6040516020016116519291906138c0565b6040516020818303038152906040529050919050565b6001600160a01b03166000908152600e602052604090205490565b61168a6119ed565b80156116b7576001600160a01b0382166000908152601460205260409020805460ff191660011790555050565b506001600160a01b03166000908152601460205260409020805460ff19169055565b6116e16119ed565b6001600160a01b0381166117465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aab565b61174f81612019565b50565b600081600111158015611766575060005482105b801561099c575050600090815260046020526040902054600160e01b161590565b6daaeb6d7670e522a718067333cd4e3b1561174f57604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156117f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118189190613947565b61174f5780604051633b79c77360e21b8152600401610aab9190612e94565b600061184282611075565b9050336001600160a01b0382161461187b5761185e8133610861565b61187b576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b804710156119275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610aab565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611974576040519150601f19603f3d011682016040523d82523d6000602084013e611979565b606091505b5050905080610abe5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b6064820152608401610aab565b336119f6611253565b6001600160a01b0316146110e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aab565b6000611a5782611faa565b9050836001600160a01b0316816001600160a01b031614611a8a5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054611ab68187335b6001600160a01b039081169116811491141790565b611ae157611ac48633610861565b611ae157604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516611b0857604051633a954ecd60e21b815260040160405180910390fd5b8015611b1357600082555b6001600160a01b03868116600090815260056020526040808220805460001901905591871681522080546001019055611b5085600160e11b612210565b600085815260046020526040812091909155600160e11b84169003611ba557600184016000818152600460205260408120549003611ba3576000548114611ba35760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b0316600080516020613ad583398151915260405160405180910390a45b505050505050565b610abe83838360405180602001604052806000815250611548565b610abe8363a9059cbb60e01b8484604051602401611c17929190612dcc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612225565b600260105403611ca05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610aab565b6002601055565b6000806000611cb989898989886122f7565b9250925092508280611cc85750815b80611cd05750805b611d0b5760405162461bcd60e51b815260206004820152600c60248201526b4e6f7420656c696769626c6560a01b6044820152606401610aab565b8215611d76578315611d2f5760405162461bcd60e51b8152600401610aab90613964565b6001600160a01b038916600090815260126020526040812080548a9290611d5b90849061ffff1661384b565b92506101000a81548161ffff021916908361ffff1602179055505b82158015611d815750815b15611eb1576015548490611daa9061ffff8b1690600160281b90046001600160481b031661398b565b6001600160481b03161115611dd15760405162461bcd60e51b8152600401610aab90613964565b601554600160d01b900460ff16600103611e565760175460405163029fc4d960e51b81526001600482015261ffff8a1660248201526001600160a01b038b81166044830152909116906353f89b2090606401600060405180830381600087803b158015611e3d57600080fd5b505af1158015611e51573d6000803e3d6000fd5b505050505b601554600160d01b900460ff16600203611eb1576001600160a01b038916600090815260136020526040812080548a9290611e9690849061ffff1661384b565b92506101000a81548161ffff021916908361ffff1602179055505b82158015611ebd575081155b8015611ec65750805b15611f81576015548490611eef9061ffff8b1690600160701b90046001600160481b031661398b565b6001600160481b03161115611f165760405162461bcd60e51b8152600401610aab90613964565b600060155462010000900460ff166001811115611f3557611f356134dd565b03611f81576001600160a01b038916600090815260136020526040812080548a9290611f6690849061ffff1661384b565b92506101000a81548161ffff021916908361ffff1602179055505b611f8f898961ffff16612115565b611f9f89868a61ffff168761263f565b505050505050505050565b60008180600111612000576000548110156120005760008181526004602052604081205490600160e01b82169003611ffe575b806000036112f4575060001901600081815260046020526040902054611fdd565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6009546001600160a01b0384166000908152600b60205260408120549091839161210190866139b6565b61210b91906139cd565b61162b91906139ef565b610e3782826040518060200160405280600081525061276f565b61174f8160006127d5565b612145848484610dcf565b6001600160a01b0383163b15610e1d5761216184848484612907565b610e1d576040516368d2bf6b60e11b815260040160405180910390fd5b6060600061218b836129f2565b60010190506000816001600160401b038111156121aa576121aa612fc7565b6040519080825280601f01601f1916602001820160405280156121d4576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846121de57509392505050565b4260a01b176001600160a01b03919091161790565b600061227a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ac89092919063ffffffff16565b805190915015610abe57808060200190518101906122989190613947565b610abe5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610aab565b60155460009081908190819081908190819061ffff168b612316610b51565b612320919061384b565b61ffff1611159050601560000160199054906101000a900460ff16801561237557506001600160a01b038c166000908152601260205260409020546123699061ffff168b613a02565b61ffff168b61ffff1611155b801561237f575087155b156123d557808015612396575060328a61ffff1611155b80156123d257506123d289601a548e8d6040516020016123b7929190613a1d565b60405160208183030381529060405280519060200120612ad7565b93505b831580156123ec5750601554600160b81b900460ff165b801561242157506015546124159061ffff8d1690600160281b90046001600160481b031661398b565b6001600160481b031688145b1561255657601554600160d01b900460ff166001036124d1578080156124ce57508a61ffff16601760009054906101000a90046001600160a01b03166001600160a01b031662fdd58e8e60016040518363ffffffff1660e01b815260040161248a929190612dcc565b602060405180830381865afa1580156124a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cb91906138a7565b10155b92505b601554600160d01b900460ff16600214801561251b57506001600160a01b038c1660009081526013602052604090205461250f9061ffff168b613a02565b61ffff168b61ffff1611155b1561255657808015612532575060328a61ffff1611155b80156125535750612553896019548e8d6040516020016123b7929190613a1d565b92505b83158015612562575082155b80156125775750601554600160c01b900460ff165b1561262d57600060155462010000900460ff16600181111561259b5761259b6134dd565b0361260c578080156125be575060155461ffff63010000009091048116908c1611155b801561260557506001600160a01b038c166000908152601360205260409020546015546125f99161ffff908116916301000000900416613a02565b61ffff168b61ffff1611155b915061262d565b80801561262a575060155461ffff63010000009091048116908c1611155b91505b50919a90995090975095505050505050565b60115460405163f216ec8d60e01b81523060048201526001600160a01b038681166024830152858116604483015260648201849052600092839291169063f216ec8d906084016040805180830381865afa1580156126a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c59190613a3a565b915091506000821180156126d95750600081115b15611bd5576011546001600160a01b03166337559c896126f9838561368c565b6040516001600160e01b031960e084901b1681526001600160a01b03808b1660048301528916602482015260448101889052606481018790526084016000604051808303818588803b15801561274e57600080fd5b505af1158015612762573d6000803e3d6000fd5b5050505050505050505050565b6127798383612aed565b6001600160a01b0383163b15610abe576000548281035b6127a36000868380600101945086612907565b6127c0576040516368d2bf6b60e11b815260040160405180910390fd5b81811061279057816000541461102157600080fd5b60006127e083611faa565b9050806000806127fe86600090815260066020526040902080549091565b91509150841561283e57612813818433611aa1565b61283e576128218333610861565b61283e57604051632ce44b5f60e11b815260040160405180910390fd5b801561284957600082555b6001600160a01b038316600090815260056020526040902080546001600160801b0301905561287c83600360e01b612210565b600087815260046020526040812091909155600160e11b851690036128d1576001860160008181526004602052604081205490036128cf5760005481146128cf5760008181526004602052604090208590555b505b60405186906000906001600160a01b03861690600080516020613ad5833981519152908390a45050600180548101905550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061293c903390899088908890600401613a5e565b6020604051808303816000875af1925050508015612977575060408051601f3d908101601f1916820190925261297491810190613a9b565b60015b6129d5573d8080156129a5576040519150601f19603f3d011682016040523d82523d6000602084013e6129aa565b606091505b5080516000036129cd576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612a315772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310612a5b576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310612a7957662386f26fc10000830492506010015b6305f5e1008310612a91576305f5e100830492506008015b6127108310612aa557612710830492506004015b60648310612ab7576064830492506002015b600a831061099c5760010192915050565b606061162b8484600085612bd5565b600082612ae48584612cb0565b14949350505050565b6000805490829003612b125760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b038316600090815260056020526040902080546001600160401b018402019055612b49836001841460e11b612210565b6000828152600460205260408120919091556001600160a01b038416908383019083908390600080516020613ad58339815191528180a4600183015b818114612bab5780836000600080516020613ad5833981519152600080a4600101612b85565b5081600003612bcc57604051622e076360e81b815260040160405180910390fd5b60005550505050565b606082471015612c365760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610aab565b600080866001600160a01b03168587604051612c529190613ab8565b60006040518083038185875af1925050503d8060008114612c8f576040519150601f19603f3d011682016040523d82523d6000602084013e612c94565b606091505b5091509150612ca587838387612cfd565b979650505050505050565b600081815b8451811015612cf557612ce182868381518110612cd457612cd4613814565b6020026020010151612d76565b915080612ced8161386d565b915050612cb5565b509392505050565b60608315612d6c578251600003612d65576001600160a01b0385163b612d655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aab565b508161162b565b61162b8383612da2565b6000818310612d925760008281526020849052604090206112f4565b5060009182526020526040902090565b815115612db25781518083602001fd5b8060405162461bcd60e51b8152600401610aab9190612e68565b6001600160a01b03929092168252602082015260400190565b6001600160e01b03198116811461174f57600080fd5b600060208284031215612e0d57600080fd5b81356112f481612de5565b60005b83811015612e33578181015183820152602001612e1b565b50506000910152565b60008151808452612e54816020860160208601612e18565b601f01601f19169290920160200192915050565b6020815260006112f46020830184612e3c565b600060208284031215612e8d57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461174f57600080fd5b60008060408385031215612ed057600080fd5b8235612edb81612ea8565b946020939093013593505050565b8035612ef481612ea8565b919050565b600060208284031215612f0b57600080fd5b81356112f481612ea8565b801515811461174f57600080fd5b60008060008060808587031215612f3a57600080fd5b8435612f4581612f16565b93506020850135612f5581612f16565b92506040850135612f6581612f16565b9150606085013560ff81168114612f7b57600080fd5b939692955090935050565b600080600060608486031215612f9b57600080fd5b8335612fa681612ea8565b92506020840135612fb681612ea8565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561300557613005612fc7565b604052919050565b60006001600160401b0383111561302657613026612fc7565b613039601f8401601f1916602001612fdd565b905082815283838301111561304d57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561307657600080fd5b81356001600160401b0381111561308c57600080fd5b8201601f8101841361309d57600080fd5b61162b8482356020840161300d565b600080604083850312156130bf57600080fd5b82356130ca81612ea8565b915060208301356130da81612ea8565b809150509250929050565b60006001600160401b038211156130fe576130fe612fc7565b5060051b60200190565b600080600080600060a0868803121561312057600080fd5b853561312b81612ea8565b945060208681013594506040870135935060608701356001600160401b0381111561315557600080fd5b8701601f8101891361316657600080fd5b8035613179613174826130e5565b612fdd565b81815260059190911b8201830190838101908b83111561319857600080fd5b928401925b828410156131b65783358252928401929084019061319d565b80965050505050506131ca60808701612ee9565b90509295509295909350565b80356001600160481b0381168114612ef457600080fd5b6000806040838503121561320057600080fd5b613209836131d6565b9150613217602084016131d6565b90509250929050565b803561ffff81168114612ef457600080fd5b60008060006060848603121561324757600080fd5b61325084613220565b925061325e60208501613220565b915060408401356002811061327257600080fd5b809150509250925092565b6000806040838503121561329057600080fd5b823561329b81612ea8565b915060208301356130da81612f16565b600082601f8301126132bc57600080fd5b813560206132cc613174836130e5565b82815260059290921b840181019181810190868411156132eb57600080fd5b8286015b8481101561330d5761330081613220565b83529183019183016132ef565b509695505050505050565b6000806040838503121561332b57600080fd5b82356001600160401b038082111561334257600080fd5b818501915085601f83011261335657600080fd5b81356020613366613174836130e5565b82815260059290921b8401810191818101908984111561338557600080fd5b948201945b838610156133ac57853561339d81612ea8565b8252948201949082019061338a565b965050860135925050808211156133c257600080fd5b506133cf858286016132ab565b9150509250929050565b600060208083850312156133ec57600080fd5b82356001600160401b0381111561340257600080fd5b8301601f8101851361341357600080fd5b8035613421613174826130e5565b81815260059190911b8201830190838101908783111561344057600080fd5b928401925b82841015612ca557833582529284019290840190613445565b6000806000806080858703121561347457600080fd5b843561347f81612ea8565b9350602085013561348f81612ea8565b92506040850135915060608501356001600160401b038111156134b157600080fd5b8501601f810187136134c257600080fd5b6134d18782356020840161300d565b91505092959194509250565b634e487b7160e01b600052602160045260246000fd5b61ffff8c168152610160810160028c1061351d57634e487b7160e01b600052602160045260246000fd5b8b6020830152613533604083018c61ffff169052565b6001600160481b03998a16606083015297909816608089015294151560a088015292151560c087015290151560e086015260ff1661010085015215156101208401521515610140909201919091529392505050565b600181811c9082168061359c57607f821691505b6020821081036135bc57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526009908201526814dbdd5b189bdd5b9960ba1b604082015260600190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561099c5761099c613676565b6020808252600e908201526d149bdbdd081d5b9919599a5b995960921b604082015260600190565b601f821115610abe57600081815260208120601f850160051c810160208610156136ee5750805b601f850160051c820191505b81811015611bd5578281556001016136fa565b81516001600160401b0381111561372657613726612fc7565b61373a816137348454613588565b846136c7565b602080601f83116001811461376f57600084156137575750858301515b600019600386901b1c1916600185901b178555611bd5565b600085815260208120601f198616915b8281101561379e5788860151825594840194600190910190840161377f565b50858210156137bc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b602080825260089082015267546f6f206d616e7960c01b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b61ffff81811683821601908082111561386657613866613676565b5092915050565b60006001820161387f5761387f613676565b5060010190565b600061ffff80831681810361389d5761389d613676565b6001019392505050565b6000602082840312156138b957600080fd5b5051919050565b60008084546138ce81613588565b600182811680156138e657600181146138fb5761392a565b60ff198416875282151583028701945061392a565b8860005260208060002060005b858110156139215781548a820152908401908201613908565b50505082870194505b50505050835161393e818360208801612e18565b01949350505050565b60006020828403121561395957600080fd5b81516112f481612f16565b6020808252600d908201526c115512081a5b98dbdc9c9958dd609a1b604082015260600190565b6001600160481b038181168382160280821691908281146139ae576139ae613676565b505092915050565b808202811582820484141761099c5761099c613676565b6000826139ea57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561099c5761099c613676565b61ffff82811682821603908082111561386657613866613676565b6001600160a01b0392909216825261ffff16602082015260400190565b60008060408385031215613a4d57600080fd5b505080516020909101519092909150565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a9190830184612e3c565b9695505050505050565b600060208284031215613aad57600080fd5b81516112f481612de5565b60008251613aca818460208701612e18565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201c660e4202a2e3a3272a1140d0c08ea0136d1079a0c4bd75e3d8a1c40e9e850164736f6c63430008110033000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000046ad988522870f5e58aa61b0475953c54b1f9ce10000000000000000000000005f2f54ac56a0a551a77302e48fe61ff9bf794cec000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000184368696d70736f6e7320436f6d6963204f726967696e73200000000000000000000000000000000000000000000000000000000000000000000000000000000343434f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002568747470733a2f2f6170692e77656e6d696e742e636f6d2f7468656368696d70736f6e732f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b557936a7543408842e7255d36958568ac684f0500000000000000000000000098ee85e7cc2665261d9fd3ea53f2db4491c547e30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000dab1a1854214684ace522439684a145e625052330000000000000000000000000000000000000000000000000000000000000000