6101006040527393f54d755a063ce7bb9e6ac47eccc8e33411d70660a05273203e8a0cd514e7c885c3d72f3cf9d690cc81128a60c0523480156200004257600080fd5b506040516200597a3803806200597a83398101604081905262000065916200047d565b8251602084015160a0516001600160a01b038116608052600280546001600160a01b031916331790556203d0909050600555600480546001600160b01b0319167561104fbe07ecc735d8d84422c7f045f8d29dbf1503e81790558151620000d490600a9060208501906200028b565b508051620000ea90600b9060208401906200028b565b5050600160105550601380546001600160a01b0319166001600160a01b0383161790556060830151805162000128916014916020909101906200028b565b5060808301516011805462ffffff191662ffffff9092169190911790556040830151805162000160916012916020909101906200028b565b5060a08301516013805460ff60a01b1916600160a01b9215158302179081905560e0850151601555620001ab9160ff9104166200019f576001620001a2565b60005b60ff1662000278565b600280546001600160a01b038085166001600160a01b031992831617909255601680549091167361104fbe07ecc735d8d84422c7f045f8d29dbf1517905560135460408051630739829560e01b8152905191909216916307398295916004808301926020929190829003018186803b1580156200022757600080fd5b505afa1580156200023c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002629190620005d1565b6001600160a01b031660e0525062000633915050565b600d54156200028657600080fd5b600d55565b8280546200029990620005f6565b90600052602060002090601f016020900481019282620002bd576000855562000308565b82601f10620002d857805160ff191683800117855562000308565b8280016001018555821562000308579182015b8281111562000308578251825591602001919060010190620002eb565b50620003169291506200031a565b5090565b5b808211156200031657600081556001016200031b565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156200036d576200036d62000331565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200039e576200039e62000331565b604052919050565b600082601f830112620003b857600080fd5b81516001600160401b03811115620003d457620003d462000331565b6020620003ea601f8301601f1916820162000373565b8281528582848701011115620003ff57600080fd5b60005b838110156200041f57858101830151828201840152820162000402565b83811115620004315760008385840101525b5095945050505050565b805162ffffff811681146200044f57600080fd5b919050565b805180151581146200044f57600080fd5b80516001600160a01b03811681146200044f57600080fd5b6000806000606084860312156200049357600080fd5b83516001600160401b0380821115620004ab57600080fd5b908501906101008288031215620004c157600080fd5b620004cb62000347565b825182811115620004db57600080fd5b620004e989828601620003a6565b825250602083015182811115620004ff57600080fd5b6200050d89828601620003a6565b6020830152506040830151828111156200052657600080fd5b6200053489828601620003a6565b6040830152506060830151828111156200054d57600080fd5b6200055b89828601620003a6565b6060830152506200056f608084016200043b565b60808201526200058260a0840162000454565b60a08201526200059560c084016200043b565b60c082015260e083015160e0820152809550505050620005b86020850162000465565b9150620005c86040850162000465565b90509250925092565b600060208284031215620005e457600080fd5b620005ef8262000465565b9392505050565b600181811c908216806200060b57607f821691505b602082108114156200062d57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516152b5620006c5600039600081816116dd015281816117d00152613134015260008181611a690152818161210b015281816125130152613226015260005050600081816108dd01528181610b7401528181610eb50152818161113d015281816112da015281816114d001528181611fa20152818161262a0152613a6901526152b56000f3fe6080604052600436106102c75760003560e01c80621d3567146102cc57806301ffc9a7146102ee57806306fdde031461032357806307e0db1714610345578063081812fc14610365578063095ea7b3146103925780630b4cad4c146103b257806310ddb137146103d257806318160ddd146103f257806322a3ecf91461041557806323b872dd146104985780632a55205a146104b85780632dd0066e146104e65780633b5aeddb146104fb5780633d8b38f61461053057806342842e0e1461055057806342d65a8d1461057057806346a4381614610590578063472d35b9146105b057806348288190146105d05780634ac3f4ff146105e657806352a284a214610613578063590e1ae3146106335780635b8c41e6146106485780636352211e1461069757806363bd1d4a146106b757806366ad5c8a146106cc5780636da7870b146106ec57806370a082311461070c5780637533d7881461072c5780638147ef371461074c5780638cfd8f5c1461076c5780638da5cb5b146107a45780638ffa1f2a146107c457806395d89b41146107e45780639ea5d6b1146107f9578063a22cb46514610819578063a2309ff814610839578063a5097ebf1461084e578063a6c3d16514610863578063a7e0d43d14610883578063af3fb21c146108a3578063b353aaa7146108cb578063b88d4fde146108ff578063c145c54b1461091f578063c446183414610932578063c4ed6f5814610948578063c87b56dd14610963578063cbed8b9c14610983578063d0ebdbe7146109a3578063d112fe33146109c3578063d12473a5146109e3578063d1deba1f14610a03578063d5abeb0114610a16578063d72822bb14610a46578063df2a5b3b14610a66578063e8a3d48514610a86578063e9038e1f14610a9b578063e985e9c514610abb578063efc585ad14610adb578063f2fde38b14610afc578063f5ecbdbc14610b1c578063fa25f9b614610b3c575b600080fd5b3480156102d857600080fd5b506102ec6102e7366004613dc9565b610b69565b005b3480156102fa57600080fd5b5061030e610309366004613e72565b610d9a565b60405190151581526020015b60405180910390f35b34801561032f57600080fd5b50610338610de0565b60405161031a9190613eee565b34801561035157600080fd5b506102ec610360366004613f01565b610e72565b34801561037157600080fd5b50610385610380366004613f1c565b610f1d565b60405161031a9190613f35565b34801561039e57600080fd5b506102ec6103ad366004613f69565b610fa8565b3480156103be57600080fd5b506102ec6103cd366004613f1c565b6110be565b3480156103de57600080fd5b506102ec6103ed366004613f01565b6110fa565b3480156103fe57600080fd5b50610407611174565b60405190815260200161031a565b34801561042157600080fd5b50610469610430366004613f1c565b60086020526000908152604090208054600182015460029092015461ffff821692620100009092046001600160a01b0316919060ff1684565b6040805161ffff90951685526001600160a01b039093166020850152918301521515606082015260800161031a565b3480156104a457600080fd5b506102ec6104b3366004613f95565b611183565b3480156104c457600080fd5b506104d86104d3366004613fd6565b6111b4565b60405161031a929190613ff8565b3480156104f257600080fd5b50610338611209565b34801561050757600080fd5b5061051b610516366004614176565b611297565b6040805192835260208301919091520161031a565b34801561053c57600080fd5b5061030e61054b366004614242565b6113a8565b34801561055c57600080fd5b506102ec61056b366004613f95565b611474565b34801561057c57600080fd5b506102ec61058b366004614242565b61148f565b34801561059c57600080fd5b506102ec6105ab366004614294565b611537565b3480156105bc57600080fd5b506102ec6105cb3660046142f8565b611614565b3480156105dc57600080fd5b5061040760055481565b3480156105f257600080fd5b50610407610601366004613f01565b60066020526000908152604090205481565b34801561061f57600080fd5b506102ec61062e366004614328565b61164d565b34801561063f57600080fd5b506102ec61169b565b34801561065457600080fd5b50610407610663366004614343565b6003602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b3480156106a357600080fd5b506103856106b2366004613f1c565b61174b565b3480156106c357600080fd5b506102ec61175f565b3480156106d857600080fd5b506102ec6106e7366004613dc9565b61180a565b3480156106f857600080fd5b506102ec610707366004613f1c565b6118e6565b34801561071857600080fd5b506104076107273660046142f8565b61195c565b34801561073857600080fd5b50610338610747366004613f01565b611a35565b34801561075857600080fd5b506104076107673660046143b1565b611a4e565b34801561077857600080fd5b506104076107873660046143cc565b600160209081526000928352604080842090915290825290205481565b3480156107b057600080fd5b50600254610385906001600160a01b031681565b3480156107d057600080fd5b506102ec6107df3660046143ff565b611aeb565b3480156107f057600080fd5b50610338611c9c565b34801561080557600080fd5b506102ec610814366004614433565b611cab565b34801561082557600080fd5b506102ec61083436600461444f565b611cf9565b34801561084557600080fd5b50610407611dbd565b34801561085a57600080fd5b50610338611dd4565b34801561086f57600080fd5b506102ec61087e366004614242565b611de1565b34801561088f57600080fd5b506102ec61089e366004613f01565b611e82565b3480156108af57600080fd5b506108b8600181565b60405161ffff909116815260200161031a565b3480156108d757600080fd5b506103857f000000000000000000000000000000000000000000000000000000000000000081565b34801561090b57600080fd5b506102ec61091a366004614488565b611eca565b6102ec61092d3660046144f3565b611efc565b34801561093e57600080fd5b5061040761271081565b34801561095457600080fd5b506004546108b89061ffff1681565b34801561096f57600080fd5b5061033861097e366004613f1c565b611f18565b34801561098f57600080fd5b506102ec61099e366004614607565b611f61565b3480156109af57600080fd5b506102ec6109be3660046142f8565b61200d565b3480156109cf57600080fd5b506102ec6109de366004614675565b612054565b3480156109ef57600080fd5b506102ec6109fe366004614433565b612176565b6102ec610a11366004613dc9565b6121c4565b348015610a2257600080fd5b50601154610a329062ffffff1681565b60405162ffffff909116815260200161031a565b348015610a5257600080fd5b50601354610385906001600160a01b031681565b348015610a7257600080fd5b506102ec610a8136600461473b565b6123da565b348015610a9257600080fd5b50610338612473565b348015610aa757600080fd5b506102ec610ab6366004614777565b61249b565b348015610ac757600080fd5b5061030e610ad63660046147cf565b61257f565b348015610ae757600080fd5b5060135461030e90600160a01b900460ff1681565b348015610b0857600080fd5b506102ec610b173660046142f8565b6125ad565b348015610b2857600080fd5b50610338610b373660046147fd565b6125f9565b348015610b4857600080fd5b50610407610b57366004613f01565b60076020526000908152604090205481565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be65760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526020819052604081208054610c049061484a565b80601f0160208091040260200160405190810160405280929190818152602001828054610c309061484a565b8015610c7d5780601f10610c5257610100808354040283529160200191610c7d565b820191906000526020600020905b815481529060010190602001808311610c6057829003601f168201915b50505050509050805186869050148015610c98575060008151115b8015610cc0575080516020820120604051610cb6908890889061487f565b6040518091039020145b610d1b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b6064820152608401610bdd565b610d918787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506126b992505050565b50505050505050565b60006001600160e01b0319821663152a902d60e11b1480610dcb57506001600160e01b03198216631415444160e21b145b80610dda5750610dda82612732565b92915050565b6060600a8054610def9061484a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1b9061484a565b8015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b5050505050905090565b6002546001600160a01b03163314610e9c5760405162461bcd60e51b8152600401610bdd9061488f565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b5050505050565b6000610f2882612757565b610f8c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a20617070726f76656420717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610bdd565b506000908152600e60205260409020546001600160a01b031690565b6000610fb38261174b565b9050806001600160a01b0316836001600160a01b031614156110235760405162461bcd60e51b8152602060048201526024808201527f4552433732315073693a20617070726f76616c20746f2063757272656e74206f6044820152633bb732b960e11b6064820152608401610bdd565b336001600160a01b038216148061103f575061103f813361257f565b6110af5760405162461bcd60e51b815260206004820152603b60248201527f4552433732315073693a20617070726f76652063616c6c6572206973206e6f7460448201527a081bdddb995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b602a1b6064820152608401610bdd565b6110b9838361277c565b505050565b6002546001600160a01b031633146110e85760405162461bcd60e51b8152600401610bdd9061488f565b600081116110f557600080fd5b600555565b6002546001600160a01b031633146111245760405162461bcd60e51b8152600401610bdd9061488f565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb13790602401610ee8565b600061117e611dbd565b905090565b61118d33826127ea565b6111a95760405162461bcd60e51b8152600401610bdd906148c6565b6110b98383836128b7565b604080518082019091526017546001600160a01b038116808352600160a01b90910462ffffff16602083018190529091600091612710906111f59086614930565b6111ff9190614965565b9150509250929050565b601480546112169061484a565b80601f01602080910402602001604051908101604052809291908181526020018280546112429061484a565b801561128f5780601f106112645761010080835404028352916020019161128f565b820191906000526020600020905b81548152906001019060200180831161127257829003601f168201915b505050505081565b6000806000878888866040516020016112b394939291906149b4565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090611317908c90309086908c908c90600401614a0c565b604080518083038186803b15801561132e57600080fd5b505afa158015611342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113669190614a60565b6004549194509250600090612710906113839061ffff1686614930565b61138d9190614965565b90506113998185614a84565b93505050965096945050505050565b61ffff8316600090815260208190526040812080548291906113c99061484a565b80601f01602080910402602001604051908101604052809291908181526020018280546113f59061484a565b80156114425780601f1061141757610100808354040283529160200191611442565b820191906000526020600020905b81548152906001019060200180831161142557829003601f168201915b50505050509050838360405161145992919061487f565b60405180910390208180519060200120149150509392505050565b6110b983838360405180602001604052806000815250611eca565b6002546001600160a01b031633146114b95760405162461bcd60e51b8152600401610bdd9061488f565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061150990869086908690600401614ac5565b600060405180830381600087803b15801561152357600080fd5b505af1158015610d91573d6000803e3d6000fd5b6002546001600160a01b031633146115615760405162461bcd60e51b8152600401610bdd9061488f565b6000821180156115715750600081115b61157a57600080fd5b61ffff85166000908152600760209081526040808320859055600682529182902083905590516115b09186918691309101614ae3565b60408051601f1981840301815291815261ffff87166000908152602081815291902082516115e393919290910190613cba565b5060008051602061514083398151915285858560405161160593929190614ac5565b60405180910390a15050505050565b6016546001600160a01b0316331461162b57600080fd5b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031633146116775760405162461bcd60e51b8152600401610bdd9061488f565b6017805462ffffff909216600160a01b0262ffffff60a01b19909216919091179055565b600260105414156116be5760405162461bcd60e51b8152600401610bdd90614b04565b600260105560155460405163410085df60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163410085df91611712913391600401613ff8565b600060405180830381600087803b15801561172c57600080fd5b505af1158015611740573d6000803e3d6000fd5b505060016010555050565b60008061175783612a8f565b509392505050565b600260105414156117825760405162461bcd60e51b8152600401610bdd90614b04565b60026010819055546001600160a01b03163314806117aa57506016546001600160a01b031633145b6117b357600080fd5b60025460155460405163117de2fd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169363117de2fd9361171293919092169190600401613ff8565b3330146118685760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b6064820152608401610bdd565b6118de8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250612b2692505050565b505050505050565b6002546001600160a01b031633146119105760405162461bcd60e51b8152600401610bdd9061488f565b60115462ffffff16156119435780611926611dbd565b6119309190614a84565b60115462ffffff16101561194357600080fd5b600254611959906001600160a01b031682612d76565b50565b60006001600160a01b0382166119ca5760405162461bcd60e51b815260206004820152602d60248201527f4552433732315073693a2062616c616e636520717565727920666f722074686560448201526c207a65726f206164647265737360981b6064820152608401610bdd565b6000806119d5612d94565b90505b600d54811015611a2e576119eb81612757565b15611a1e576119f98161174b565b6001600160a01b0316846001600160a01b03161415611a1e57611a1b82614b3b565b91505b611a2781614b3b565b90506119d8565b5092915050565b600060208190529081526040902080546112169061484a565b604051638147ef3760e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638147ef379060240160206040518083038186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dda9190614b56565b80516020808301919091206000818152600890925260409091206002015460ff16611b1557600080fd5b600082806020019051810190611b2b9190614bb4565b5060008581526008602052604081208054600190910154929550909350611b6a925061ffff811691620100009091046001600160a01b03169085612dba565b6000848152600860205260409020600101549091508111611b8a57600080fd5b8151811415611c025760008381526008602052604080822080546001600160b01b031916815560018101929092556002909101805460ff19169055517fd7be02b8dd0d27bd0517a9cb4d7469ce27df4313821ae5ec1ff69acc594ba23390611bf59085815260200190565b60405180910390a1611c96565b60408051608081018252600085815260086020818152848320805461ffff80821687526001600160a01b03620100008084048216868a019081529989018b8152600160608b01818152998f90529790965297519851169096026001600160b01b03199091169690951695909517939093178455915191830191909155516002909101805491151560ff199092169190911790555b50505050565b6060600b8054610def9061484a565b6002546001600160a01b03163314611cd55760405162461bcd60e51b8152600401610bdd9061488f565b60008111611ce257600080fd5b61ffff909116600090815260066020526040902055565b6001600160a01b038216331415611d515760405162461bcd60e51b815260206004820152601c60248201527b22a9219b9918a839b49d1030b8383937bb32903a379031b0b63632b960211b6044820152606401610bdd565b336000818152600f602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000611dc7612d94565b600d5461117e9190614ca8565b601280546112169061484a565b6002546001600160a01b03163314611e0b5760405162461bcd60e51b8152600401610bdd9061488f565b818130604051602001611e2093929190614ae3565b60408051601f1981840301815291815261ffff8516600090815260208181529190208251611e5393919290910190613cba565b50600080516020615140833981519152838383604051611e7593929190614ac5565b60405180910390a1505050565b6004546201000090046001600160a01b03163314611e9f57600080fd5b6127108161ffff161115611eb257600080fd5b6004805461ffff191661ffff92909216919091179055565b611ed433836127ea565b611ef05760405162461bcd60e51b8152600401610bdd906148c6565b611c9684848484612e0c565b611f0d898989898989898989612e41565b505050505050505050565b60115460609062ffffff16611f2f57610dda612473565b6014611f3a8361301d565b604051602001611f4b929190614d59565b6040516020818303038152906040529050919050565b6002546001600160a01b03163314611f8b5760405162461bcd60e51b8152600401610bdd9061488f565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90611fdf9088908890889088908890600401614dad565b600060405180830381600087803b158015611ff957600080fd5b505af1158015611f0d573d6000803e3d6000fd5b6004546201000090046001600160a01b0316331461202a57600080fd5b600480546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b600260105414156120775760405162461bcd60e51b8152600401610bdd90614b04565b60026010556013546001600160a01b0316331461209357600080fd5b61209f8484848461311a565b6120d85760405162461bcd60e51b815260206004820152600a602482015269085a5cd05b1b1bddd95960b21b6044820152606401610bdd565b60405163b124e2f760e01b81526001600160a01b03858116600483015260ff8316602483015262ffffff851660448301527f0000000000000000000000000000000000000000000000000000000000000000169063b124e2f790606401600060405180830381600087803b15801561214f57600080fd5b505af1158015612163573d6000803e3d6000fd5b50505050611740848462ffffff166132bb565b6002546001600160a01b031633146121a05760405162461bcd60e51b8152600401610bdd9061488f565b600081116121ad57600080fd5b61ffff909116600090815260076020526040902055565b61ffff861660009081526003602052604080822090516121e7908890889061487f565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806122675760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b6064820152608401610bdd565b80838360405161227892919061487f565b6040518091039020146122d75760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b6064820152608401610bdd565b61ffff871660009081526003602052604080822090516122fa908990899061487f565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252612392918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250612b2692505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516123c9959493929190614ddb565b60405180910390a150505050505050565b6002546001600160a01b031633146124045760405162461bcd60e51b8152600401610bdd9061488f565b6000811161241157600080fd5b61ffff83811660008181526001602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611e75565b606060126040516020016124879190614e16565b604051602081830303815290604052905090565b6002546001600160a01b031633146124c55760405162461bcd60e51b8152600401610bdd9061488f565b6015548411156124d457600080fd5b60405163e9038e1f60e01b815260ff8716600482015260248101869052604481018590526064810184905262ffffff8316608482015260a481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e9038e1f9060c401600060405180830381600087803b15801561255f57600080fd5b505af1158015612573573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205460ff1690565b6002546001600160a01b031633146125d75760405162461bcd60e51b8152600401610bdd9061488f565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc9060840160006040518083038186803b15801561267457600080fd5b505afa158015612688573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126b09190810190614e32565b95945050505050565b60008061271c5a60966366ad5c8a60e01b898989896040516024016126e19493929190614e66565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190613434565b91509150816118de576118de86868686856134be565b60006001600160e01b031982166380ac58cd60e01b1480610dda5750610dda8261354c565b6000612762600d5490565b82108015610dda575081612774612d94565b111592915050565b6000818152600e6020526040902080546001600160a01b0319166001600160a01b03841690811790915581906127b18261174b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006127f582612757565b6128595760405162461bcd60e51b815260206004820152602f60248201527f4552433732315073693a206f70657261746f7220717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610bdd565b60006128648361174b565b9050806001600160a01b0316846001600160a01b0316148061289f5750836001600160a01b031661289484610f1d565b6001600160a01b0316145b806128af57506128af818561257f565b949350505050565b6000806128c383612a8f565b91509150846001600160a01b0316826001600160a01b03161461293d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a207472616e73666572206f6620746f6b656e2074686160448201526b3a1034b9903737ba1037bbb760a11b6064820152608401610bdd565b6001600160a01b0384166129a35760405162461bcd60e51b815260206004820152602760248201527f4552433732315073693a207472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b6064820152608401610bdd565b6129ae60008461277c565b60006129bb846001614a84565b600881901c600090815260096020526040902054909150600160ff1b60ff83161c161580156129eb5750600d5481105b15612a22576000818152600c6020526040902080546001600160a01b0319166001600160a01b038816179055612a22600982613581565b6000848152600c6020526040902080546001600160a01b0319166001600160a01b038716179055818414612a5b57612a5b600985613581565b83856001600160a01b0316876001600160a01b031660008051602061516083398151915260405160405180910390a46118de565b600080612a9b83612757565b612afc5760405162461bcd60e51b815260206004820152602c60248201527f4552433732315073693a206f776e657220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610bdd565b612b05836135ad565b6000818152600c60205260409020546001600160a01b031694909350915050565b60008060008084806020019051810190612b409190614bb4565b601484015160288401519498509296509094509250906000612b648b848388612dba565b90508451811015612c775760008880519060200120905060405180608001604052808d61ffff168152602001856001600160a01b03168152602001838152602001600115158152506008600083815260200190815260200160002060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816001015560608201518160020160006101000a81548160ff0219169083151502179055509050507f10e0b70d256bccc84b7027506978bd8b68984a870788b93b479def144c839ad7818a604051612c6d929190614ea4565b60405180910390a1505b826001600160a01b03168a604051612c8f9190614ebd565b60405180910390208c61ffff167f5b821db8a46f8ecbe1941ba2f51cfeea9643268b56631f70d45e2a745d99026588604051612ccb9190614ed9565b60405180910390a4845181148015612ceb57506001600160a01b03821615155b15612d695760405163bace587f60e01b81528b908b9085908590899089906001600160a01b0384169063bace587f90612d309089908990899088908890600401614eec565b600060405180830381600087803b158015612d4a57600080fd5b505af1158015612d5e573d6000803e3d6000fd5b505050505050505050505b5050505050505050505050565b612d908282604051806020016040528060008152506135ba565b5050565b601354600090600160a01b900460ff16612daf576001612db2565b60005b60ff16905090565b6000825b82518110156126b0576005545a1015612dd6576126b0565b612dfa8686858481518110612ded57612ded614f3e565b60200260200101516135df565b80612e0481614b3b565b915050612dbe565b612e178484846128b7565b612e25848484600185613618565b611c965760405162461bcd60e51b8152600401610bdd90614f54565b6000865111612e885760405162461bcd60e51b8152602060048201526013602482015272746f6b656e4964735b5d20697320656d70747960681b6044820152606401610bdd565b61ffff881660009081526006602052604090205486511115612ef75760405162461bcd60e51b815260206004820152602260248201527f62617463682073697a65206578636565647320647374206261746368206c696d6044820152611a5d60f21b6064820152608401610bdd565b60005b8651811015612f3a57612f288a8a8a8a8581518110612f1b57612f1b614f3e565b602002602001015161375a565b80612f3281614b3b565b915050612efa565b50600087838884604051602001612f5494939291906149b4565b6040516020818303038152906040529050612f99896001868a51600760008f61ffff1661ffff16815260200190815260200160002054612f949190614930565b61379e565b6000612fa434613878565b9050612fb48a838989898661394a565b88604051612fc29190614ebd565b60405180910390208b6001600160a01b03168b61ffff167fe1b87c47fdeb4f9cbadbca9df3af7aba453bb6e501075d0440d88125b711522a8b6040516130089190614ed9565b60405180910390a45050505050505050505050565b6060816130415750506040805180820190915260018152600360fc1b602082015290565b8160005b811561306b578061305581614b3b565b91506130649050600a83614965565b9150613045565b6000816001600160401b0381111561308557613085614011565b6040519080825280601f01601f1916602001820160405280156130af576020820181803683370190505b5090505b84156128af576130c4600183614ca8565b91506130d1600a86614fa9565b6130dc906030614a84565b60f81b8183815181106130f1576130f1614f3e565b60200101906001600160f81b031916908160001a905350613113600a86614965565b94506130b3565b60405163fef48a9960e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fef48a9990613169903090600401613f35565b60206040518083038186803b15801561318157600080fd5b505afa158015613195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b99190614fbd565b156131c357600080fd5b60155442106131d157600080fd5b60008462ffffff166131e1611dbd565b6131eb9190614a84565b60115490915062ffffff161561320f5760115462ffffff1681111561320f57600080fd5b60405163d7ec901960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d7ec901990613261908990899089908990600401614fda565b60206040518083038186803b15801561327957600080fd5b505afa15801561328d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b19190614fbd565b9695505050505050565b60006132c6600d5490565b9050600082116133265760405162461bcd60e51b815260206004820152602560248201527f4552433732315073693a207175616e74697479206d7573742062652067726561604482015264074657220360dc1b6064820152608401610bdd565b6001600160a01b0383166133885760405162461bcd60e51b815260206004820152602360248201527f4552433732315073693a206d696e7420746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bdd565b81600d600082825461339a9190614a84565b90915550506000818152600c6020526040902080546001600160a01b0319166001600160a01b0385161790556133d1600982613581565b6000806133de8484614a84565b90506001600160a01b038516915082826000600080516020615160833981519152600080a4600183015b81811461342e5780836000600080516020615160833981519152600080a4600101613408565b50610f16565b6000606060008060008661ffff166001600160401b0381111561345957613459614011565b6040519080825280601f01601f191660200182016040528015613483576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156134a5578692505b828152826000602083013e909890975095505050505050565b8180519060200120600360008761ffff1661ffff168152602001908152602001600020856040516134ef9190614ebd565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611605908790879087908790879061504a565b60006001600160e01b03198216630fa1f28960e41b1480610dda57506301ffc9a760e01b6001600160e01b0319831614610dda565b600881901c600090815260209290925260409091208054600160ff1b60ff9093169290921c9091179055565b6000610dda600983613ae5565b60006135c5600d5490565b90506135d184846132bb565b612e25600085838686613618565b6135e881612757565b80156136045750306135f98261174b565b6001600160a01b0316145b61360d57600080fd5b6110b9308383611183565b60006001600160a01b0385163b1561374e57506001835b6136398486614a84565b81101561374857604051630a85bd0160e11b81526001600160a01b0387169063150b7a02906136729033908b9086908990600401615088565b602060405180830381600087803b15801561368c57600080fd5b505af19250505080156136bc575060408051601f3d908101601f191682019092526136b9918101906150bb565b60015b613716573d8080156136ea576040519150601f19603f3d011682016040523d82523d6000602084013e6136ef565b606091505b50805161370e5760405162461bcd60e51b8152600401610bdd90614f54565b805181602001fd5b82801561373357506001600160e01b03198116630a85bd0160e11b145b9250508061374081614b3b565b91505061362f565b506126b0565b50600195945050505050565b836001600160a01b031661376d8261174b565b6001600160a01b03161461378057600080fd5b61378a84826127ea565b61379357600080fd5b611c96843083611183565b60006137a983613bdd565b61ffff8087166000908152600160209081526040808320938916835292905290812054919250906137db908490614a84565b90506000811161382a5760405162461bcd60e51b815260206004820152601a602482015279131e905c1c0e881b5a5b91d85cd31a5b5a5d081b9bdd081cd95d60321b6044820152606401610bdd565b808210156118de5760405162461bcd60e51b815260206004820152601b60248201527a4c7a4170703a20676173206c696d697420697320746f6f206c6f7760281b6044820152606401610bdd565b6004546000908190612710906138929061ffff1685614930565b61389c9190614965565b90506138a88184614ca8565b91508015613944576004546040516000916201000090046001600160a01b03169083908381818185875af1925050503d8060008114613903576040519150601f19603f3d011682016040523d82523d6000602084013e613908565b606091505b50509050806139425760405162461bcd60e51b8152600401610bdd906020808252600490820152632166656560e01b604082015260600190565b505b50919050565b61ffff8616600090815260208190526040812080546139689061484a565b80601f01602080910402602001604051908101604052809291908181526020018280546139949061484a565b80156139e15780601f106139b6576101008083540402835291602001916139e1565b820191906000526020600020905b8154815290600101906020018083116139c457829003601f168201915b50505050509050805160001415613a535760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b6064820152608401610bdd565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490613aaa908b9086908c908c908c908c906004016150d8565b6000604051808303818588803b158015613ac357600080fd5b505af1158015613ad7573d6000803e3d6000fd5b505050505050505050505050565b600881901c60008181526020849052604081205490919060ff808516919082181c8015613b2757613b1581613c38565b60ff168203600884901b179350613bd4565b60008311613b945760405162461bcd60e51b815260206004820152603460248201527f4269744d6170733a205468652073657420626974206265666f7265207468652060448201527334b73232bc103237b2b9b713ba1032bc34b9ba1760611b6064820152608401610bdd565b506000199091016000818152602086905260409020549091908015613bcf57613bbc81613c38565b60ff0360ff16600884901b179350613bd4565b613b27565b50505092915050565b6000602282511015613c305760405162461bcd60e51b815260206004820152601c60248201527b4c7a4170703a20696e76616c69642061646170746572506172616d7360201b6044820152606401610bdd565b506022015190565b60006040518061012001604052806101008152602001615180610100913960f87e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff613c8185613ca2565b02901c81518110613c9457613c94614f3e565b016020015160f81c92915050565b6000808211613cb057600080fd5b5060008190031690565b828054613cc69061484a565b90600052602060002090601f016020900481019282613ce85760008555613d2e565b82601f10613d0157805160ff1916838001178555613d2e565b82800160010185558215613d2e579182015b82811115613d2e578251825591602001919060010190613d13565b50613d3a929150613d3e565b5090565b5b80821115613d3a5760008155600101613d3f565b803561ffff81168114613d6557600080fd5b919050565b60008083601f840112613d7c57600080fd5b5081356001600160401b03811115613d9357600080fd5b602083019150836020828501011115613dab57600080fd5b9250929050565b80356001600160401b0381168114613d6557600080fd5b60008060008060008060808789031215613de257600080fd5b613deb87613d53565b955060208701356001600160401b0380821115613e0757600080fd5b613e138a838b01613d6a565b9097509550859150613e2760408a01613db2565b94506060890135915080821115613e3d57600080fd5b50613e4a89828a01613d6a565b979a9699509497509295939492505050565b6001600160e01b03198116811461195957600080fd5b600060208284031215613e8457600080fd5b8135613e8f81613e5c565b9392505050565b60005b83811015613eb1578181015183820152602001613e99565b83811115611c965750506000910152565b60008151808452613eda816020860160208601613e96565b601f01601f19169290920160200192915050565b602081526000613e8f6020830184613ec2565b600060208284031215613f1357600080fd5b613e8f82613d53565b600060208284031215613f2e57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461195957600080fd5b8035613d6581613f49565b60008060408385031215613f7c57600080fd5b8235613f8781613f49565b946020939093013593505050565b600080600060608486031215613faa57600080fd5b8335613fb581613f49565b92506020840135613fc581613f49565b929592945050506040919091013590565b60008060408385031215613fe957600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561404f5761404f614011565b604052919050565b60006001600160401b0382111561407057614070614011565b50601f01601f191660200190565b600082601f83011261408f57600080fd5b81356140a261409d82614057565b614027565b8181528460208386010111156140b757600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156140ed576140ed614011565b5060051b60200190565b600082601f83011261410857600080fd5b8135602061411861409d836140d4565b82815260059290921b8401810191818101908684111561413757600080fd5b8286015b84811015614152578035835291830191830161413b565b509695505050505050565b801515811461195957600080fd5b8035613d658161415d565b60008060008060008060c0878903121561418f57600080fd5b61419887613d53565b955060208701356001600160401b03808211156141b457600080fd5b6141c08a838b0161407e565b965060408901359150808211156141d657600080fd5b6141e28a838b016140f7565b95506141f060608a0161416b565b9450608089013591508082111561420657600080fd5b6142128a838b0161407e565b935060a089013591508082111561422857600080fd5b5061423589828a0161407e565b9150509295509295509295565b60008060006040848603121561425757600080fd5b61426084613d53565b925060208401356001600160401b0381111561427b57600080fd5b61428786828701613d6a565b9497909650939450505050565b6000806000806000608086880312156142ac57600080fd5b6142b586613d53565b945060208601356001600160401b038111156142d057600080fd5b6142dc88828901613d6a565b9699909850959660408101359660609091013595509350505050565b60006020828403121561430a57600080fd5b8135613e8f81613f49565b803562ffffff81168114613d6557600080fd5b60006020828403121561433a57600080fd5b613e8f82614315565b60008060006060848603121561435857600080fd5b61436184613d53565b925060208401356001600160401b0381111561437c57600080fd5b6143888682870161407e565b92505061439760408501613db2565b90509250925092565b803560ff81168114613d6557600080fd5b6000602082840312156143c357600080fd5b613e8f826143a0565b600080604083850312156143df57600080fd5b6143e883613d53565b91506143f660208401613d53565b90509250929050565b60006020828403121561441157600080fd5b81356001600160401b0381111561442757600080fd5b6128af8482850161407e565b6000806040838503121561444657600080fd5b613f8783613d53565b6000806040838503121561446257600080fd5b823561446d81613f49565b9150602083013561447d8161415d565b809150509250929050565b6000806000806080858703121561449e57600080fd5b84356144a981613f49565b935060208501356144b981613f49565b92506040850135915060608501356001600160401b038111156144db57600080fd5b6144e78782880161407e565b91505092959194509250565b60008060008060008060008060006101208a8c03121561451257600080fd5b61451b8a613f5e565b985061452960208b01613d53565b975060408a01356001600160401b038082111561454557600080fd5b6145518d838e0161407e565b985060608c013591508082111561456757600080fd5b6145738d838e016140f7565b975061458160808d01613f5e565b965061458f60a08d01613f5e565b955060c08c01359150808211156145a557600080fd5b6145b18d838e0161407e565b945060e08c01359150808211156145c757600080fd5b6145d38d838e0161407e565b93506101008c01359150808211156145ea57600080fd5b506145f78c828d0161407e565b9150509295985092959850929598565b60008060008060006080868803121561461f57600080fd5b61462886613d53565b945061463660208701613d53565b93506040860135925060608601356001600160401b0381111561465857600080fd5b61466488828901613d6a565b969995985093965092949392505050565b6000806000806080858703121561468b57600080fd5b843561469681613f49565b935060206146a5868201614315565b935060408601356001600160401b038111156146c057600080fd5b8601601f810188136146d157600080fd5b80356146df61409d826140d4565b81815260059190911b8201830190838101908a8311156146fe57600080fd5b928401925b8284101561471c57833582529284019290840190614703565b8096505050505050614730606086016143a0565b905092959194509250565b60008060006060848603121561475057600080fd5b61475984613d53565b925061476760208501613d53565b9150604084013590509250925092565b60008060008060008060c0878903121561479057600080fd5b614799876143a0565b95506020870135945060408701359350606087013592506147bc60808801614315565b915060a087013590509295509295509295565b600080604083850312156147e257600080fd5b82356147ed81613f49565b9150602083013561447d81613f49565b6000806000806080858703121561481357600080fd5b61481c85613d53565b935061482a60208601613d53565b9250604085013561483a81613f49565b9396929550929360600135925050565b600181811c9082168061485e57607f821691505b6020821081141561394457634e487b7160e01b600052602260045260246000fd5b8183823760009101908152919050565b6020808252601e908201527f4c7a4170703a2063616c6c6572206973206e6f7420746865206f776e65720000604082015260600190565b60208082526034908201527f4552433732315073693a207472616e736665722063616c6c6572206973206e6f6040820152731d081bdddb995c881b9bdc88185c1c1c9bdd995960621b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561494a5761494a61491a565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826149745761497461494f565b500490565b600081518084526020808501945080840160005b838110156149a95781518752958201959082019060010161498d565b509495945050505050565b6080815260006149c76080830187613ec2565b82810360208401526149d98187613ec2565b905082810360408401526149ed8186614979565b90508281036060840152614a018185613ec2565b979650505050505050565b61ffff861681526001600160a01b038516602082015260a060408201819052600090614a3a90830186613ec2565b84151560608401528281036080840152614a548185613ec2565b98975050505050505050565b60008060408385031215614a7357600080fd5b505080516020909101519092909150565b60008219821115614a9757614a9761491a565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006126b0604083018486614a9c565b8284823760609190911b6001600160601b0319169101908152601401919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000600019821415614b4f57614b4f61491a565b5060010190565b600060208284031215614b6857600080fd5b5051919050565b600082601f830112614b8057600080fd5b8151614b8e61409d82614057565b818152846020838601011115614ba357600080fd5b6128af826020830160208701613e96565b60008060008060808587031215614bca57600080fd5b84516001600160401b0380821115614be157600080fd5b614bed88838901614b6f565b9550602091508187015181811115614c0457600080fd5b614c1089828a01614b6f565b955050604087015181811115614c2557600080fd5b8701601f81018913614c3657600080fd5b8051614c4461409d826140d4565b81815260059190911b8201840190848101908b831115614c6357600080fd5b928501925b82841015614c8157835182529285019290850190614c68565b60608b0151909750945050505080821115614c9b57600080fd5b506144e787828801614b6f565b600082821015614cba57614cba61491a565b500390565b8054600090600181811c9080831680614cd957607f831692505b6020808410821415614cfb57634e487b7160e01b600052602260045260246000fd5b818015614d0f5760018114614d2057614d4d565b60ff19861689528489019650614d4d565b60008881526020902060005b86811015614d455781548b820152908501908301614d2c565b505084890196505b50505050505092915050565b66697066733a2f2f60c81b81526000614d756007830185614cbf565b602f60f81b81528351614d8f816001840160208801613e96565b64173539b7b760d91b60019290910191820152600601949350505050565b600061ffff808816835280871660208401525084604083015260806060830152614a01608083018486614a9c565b61ffff86168152608060208201526000614df9608083018688614a9c565b6001600160401b0394909416604083015250606001529392505050565b66697066733a2f2f60c81b81526000613e8f6007830184614cbf565b600060208284031215614e4457600080fd5b81516001600160401b03811115614e5a57600080fd5b6128af84828501614b6f565b61ffff85168152608060208201526000614e836080830186613ec2565b6001600160401b03851660408401528281036060840152614a018185613ec2565b8281526040602082015260006128af6040830184613ec2565b60008251614ecf818460208701613e96565b9190910192915050565b602081526000613e8f6020830184614979565b61ffff8616815260a060208201526000614f0960a0830187613ec2565b6001600160a01b03861660408401528281036060840152614f2a8186614979565b90508281036080840152614a548185613ec2565b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f4552433732315073693a207472616e7366657220746f206e6f6e20455243373260408201527418a932b1b2b4bb32b91034b6b83632b6b2b73a32b960591b606082015260800190565b600082614fb857614fb861494f565b500690565b600060208284031215614fcf57600080fd5b8151613e8f8161415d565b6001600160a01b038516815262ffffff841660208083019190915260806040830181905284519083018190526000918581019160a0850190845b8181101561503057845183529383019391830191600101615014565b505080935050505060ff8316606083015295945050505050565b61ffff8616815260a06020820152600061506760a0830187613ec2565b6001600160401b03861660408401528281036060840152614f2a8186613ec2565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906132b190830184613ec2565b6000602082840312156150cd57600080fd5b8151613e8f81613e5c565b61ffff8716815260c0602082015260006150f560c0830188613ec2565b82810360408401526151078188613ec2565b6001600160a01b0387811660608601528616608085015283810360a085015290506151328185613ec2565b999850505050505050505056fe8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ceddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0001020903110a19042112290b311a3905412245134d2a550c5d32651b6d3a7506264262237d468514804e8d2b95569d0d495ea533a966b11c886eb93bc176c9071727374353637324837e9b47af86c7155181ad4fd18ed32c9096db57d59ee30e2e4a6a5f92a6be3498aae067ddb2eb1d5989b56fd7baf33ca0c2ee77e5caf7ff0810182028303840444c545c646c7425617c847f8c949c48a4a8b087b8c0c816365272829aaec650acd0d28fdad4e22d6991bd97dfdcea58b4d6f29fede4f6fe0f1f2f3f4b5b6b607b8b93a3a7b7bf357199c5abcfd9e168bcdee9b3f1ecf5fd1e3e5a7a8aa2b670c4ced8bbe8f0f4fc3d79a1c3cde7effb78cce6facbf9f8a2646970667358221220c4d3461ea58df89b3d1b0ebde474d2dc86e2e28a2812d42e89aded4e507ec04464736f6c634300080900330000000000000000000000000000000000000000000000000000000000000060000000000000000000000000823f005cecbb6f6ffd8f0d72d7ba9084064396f5000000000000000000000000b646f12ed269338c7ee2efe0aeb2e0b8a94534d800000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648731f90000000000000000000000000000000000000000000000000000000000000005736f6861690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003534f480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e516d4e6367564e5a333562714756357535455a5553734c4d71784541646b37547a7337596a6e6233744e7a62757a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000