Mainnet
Testnet
BugsBunn (BUG)

BugsBunn (BUG)

Overview

Max Total supply:
5,000,000,000,000
BUG
Holders:
1 addresses
Total transfers:
1

Token info

Contract:
Name:
BugsBunn
Symbol:
BUG
Decimals:
18
Token type:
wrc20
Are you the contract creator? Verify and Publish your contract source code.

Creation bytecode

0x6101406040523480156200001257600080fd5b506040518060400160405280600881526020017f4275677342756e6e000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4275677342756e6e0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42554700000000000000000000000000000000000000000000000000000000008152508160039081620000fd9190620013f0565b5080600490816200010f9190620013f0565b5050506000600a60006101000a81548160ff02191690831515021790555060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260e081815250508161010081815250504660a0818152505062000196818484620002d360201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050806101208181525050505050505050620001f56000801b336200030f60201b60201c565b620002277f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f336200030f60201b60201c565b620002597f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200030f60201b60201c565b6200029b336200026e6200040160201b60201c565b600a6200027c919062001667565b65048c273950006200028f9190620016b8565b6200040a60201b60201c565b620002cd7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200030f60201b60201c565b62001b7d565b60008383834630604051602001620002f095949392919062001774565b6040516020818303038152906040528051906020012090509392505050565b6200032182826200042560201b60201c565b620003fd5760016009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003a26200049060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006012905090565b6200042182826200049860201b620019711760201c565b5050565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b620004af82826200055660201b620019fe1760201c565b620004bf620006c360201b60201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16620004ed620006e760201b60201c565b111562000531576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005289062001858565b60405180910390fd5b62000550600f620006f160201b62001b5417836200070960201b60201c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005bf90620018ca565b60405180910390fd5b620005dc6000838362000a1660201b60201c565b8060026000828254620005f09190620018ec565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006a3919062001927565b60405180910390a3620006bf6000838362000a4360201b60201c565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000600254905090565b60008183620007019190620018ec565b905092915050565b6000806000858054905090506000808214620007e4576200073f8760018462000733919062001944565b62000a6060201b60201c565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505062000820565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1693506200085384868860201c565b92506000821180156200086f575043816000015163ffffffff16145b1562000902576200088b8362000a7560201b62001b6a1760201c565b620008ab886001856200089f919062001944565b62000a6060201b60201c565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555062000a0c565b866040518060400160405280620009244362000ae360201b62001bd51760201c565b63ffffffff168152602001620009458662000a7560201b62001b6a1760201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b62000a2662000b3960201b60201c565b62000a3e83838362000b8e60201b62001c281760201c565b505050565b62000a5b83838362000c8760201b62001ce01760201c565b505050565b60008260005281602060002001905092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000adb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ad290620019f5565b60405180910390fd5b819050919050565b600063ffffffff801682111562000b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b289062001a8d565b60405180910390fd5b819050919050565b62000b4962000cd760201b60201c565b1562000b8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b839062001aff565b60405180910390fd5b565b62000ba683838362000cee60201b62001d0b1760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c025762000bec8262000cf360201b60201c565b62000bfc62000d5660201b60201c565b62000c82565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000c5e5762000c488362000cf360201b60201c565b62000c5862000d5660201b60201c565b62000c81565b62000c6f8362000cf360201b60201c565b62000c808262000cf360201b60201c565b5b5b505050565b62000c9f83838362000d7a60201b62001d101760201c565b62000cd262000cb48462000d7f60201b60201c565b62000cc58462000d7f60201b60201c565b8362000de860201b60201c565b505050565b6000600a60009054906101000a900460ff16905090565b505050565b62000d53600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002062000d47836200100b60201b60201c565b6200105360201b60201c565b50565b62000d78600662000d6c620006e760201b60201c565b6200105360201b60201c565b565b505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000e255750600081115b156200100657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000f185760008062000ebf600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020620010df60201b62001d1517856200070960201b60201c565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000f0d92919062001b21565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620010055760008062000fac600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020620006f160201b62001b5417856200070960201b60201c565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000ffa92919062001b21565b60405180910390a250505b5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600062001065620010f760201b60201c565b9050806200107c846000016200111560201b60201c565b1015620010da5782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b60008183620010ef919062001944565b905092915050565b60006200111060086200116860201b62001d2b1760201c565b905090565b6000808280549050036200112d576000905062001163565b816001838054905062001141919062001944565b8154811062001155576200115462001b4e565b5b906000526020600020015490505b919050565b600081600001549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620011f857607f821691505b6020821081036200120e576200120d620011b0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620012787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001239565b62001284868362001239565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620012d1620012cb620012c5846200129c565b620012a6565b6200129c565b9050919050565b6000819050919050565b620012ed83620012b0565b62001305620012fc82620012d8565b84845462001246565b825550505050565b600090565b6200131c6200130d565b62001329818484620012e2565b505050565b5b8181101562001351576200134560008262001312565b6001810190506200132f565b5050565b601f821115620013a0576200136a8162001214565b620013758462001229565b8101602085101562001385578190505b6200139d620013948562001229565b8301826200132e565b50505b505050565b600082821c905092915050565b6000620013c560001984600802620013a5565b1980831691505092915050565b6000620013e08383620013b2565b9150826002028217905092915050565b620013fb8262001176565b67ffffffffffffffff81111562001417576200141662001181565b5b620014238254620011df565b6200143082828562001355565b600060209050601f83116001811462001468576000841562001453578287015190505b6200145f8582620013d2565b865550620014cf565b601f198416620014788662001214565b60005b82811015620014a2578489015182556001820191506020850194506020810190506200147b565b86831015620014c25784890151620014be601f891682620013b2565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001565578086048111156200153d576200153c620014d7565b5b60018516156200154d5780820291505b80810290506200155d8562001506565b94506200151d565b94509492505050565b60008262001580576001905062001653565b8162001590576000905062001653565b8160018114620015a95760028114620015b457620015ea565b600191505062001653565b60ff841115620015c957620015c8620014d7565b5b8360020a915084821115620015e357620015e2620014d7565b5b5062001653565b5060208310610133831016604e8410600b8410161715620016245782820a9050838111156200161e576200161d620014d7565b5b62001653565b62001633848484600162001513565b925090508184048111156200164d576200164c620014d7565b5b81810290505b9392505050565b600060ff82169050919050565b600062001674826200129c565b915062001681836200165a565b9250620016b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200156e565b905092915050565b6000620016c5826200129c565b9150620016d2836200129c565b9250828202620016e2816200129c565b91508282048414831517620016fc57620016fb620014d7565b5b5092915050565b6000819050919050565b620017188162001703565b82525050565b62001729816200129c565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200175c826200172f565b9050919050565b6200176e816200174f565b82525050565b600060a0820190506200178b60008301886200170d565b6200179a60208301876200170d565b620017a960408301866200170d565b620017b860608301856200171e565b620017c7608083018462001763565b9695505050505050565b600082825260208201905092915050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b600062001840603083620017d1565b91506200184d82620017e2565b604082019050919050565b60006020820190508181036000830152620018738162001831565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620018b2601f83620017d1565b9150620018bf826200187a565b602082019050919050565b60006020820190508181036000830152620018e581620018a3565b9050919050565b6000620018f9826200129c565b915062001906836200129c565b9250828201905080821115620019215762001920620014d7565b5b92915050565b60006020820190506200193e60008301846200171e565b92915050565b600062001951826200129c565b91506200195e836200129c565b9250828203905081811115620019795762001978620014d7565b5b92915050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000620019dd602783620017d1565b9150620019ea826200197f565b604082019050919050565b6000602082019050818103600083015262001a1081620019ce565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b600062001a75602683620017d1565b915062001a828262001a17565b604082019050919050565b6000602082019050818103600083015262001aa88162001a66565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600062001ae7601083620017d1565b915062001af48262001aaf565b602082019050919050565b6000602082019050818103600083015262001b1a8162001ad8565b9050919050565b600060408201905062001b3860008301856200171e565b62001b4760208301846200171e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60805160a05160c05160e0516101005161012051615a4162001bcd60003960006124190152600061245b0152600061243a0152600061236f015260006123c5015260006123ee0152615a416000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80637028e2cd11610151578063a217fddf116100c3578063d539139311610087578063d5391393146107f7578063d547741f14610815578063d9d98ce414610831578063dd62ed3e14610861578063e63ab1e914610891578063f1127ed8146108af57610274565b8063a217fddf14610741578063a457c2d71461075f578063a9059cbb1461078f578063c3cda520146107bf578063d505accf146107db57610274565b80638e539e8c116101155780638e539e8c1461065957806391d148541461068957806395d89b41146106b95780639711715a146106d7578063981b24d0146106e15780639ab24eb01461071157610274565b80637028e2cd146105b557806370a08231146105d357806379cc6790146106035780637ecebe001461061f5780638456cb591461064f57610274565b80633a46b1a8116101ea578063587cde1e116101ae578063587cde1e146104bb5780635c19a95c146104eb5780635c975abb146105075780635cffe9de14610525578063613255ab146105555780636fcfff451461058557610274565b80633a46b1a8146104195780633f4ba83a1461044957806340c10f191461045357806342966c681461046f5780634ee2cd7e1461048b57610274565b8063248a9ca31161023c578063248a9ca3146103455780632f2ff15d14610375578063313ce567146103915780633644e515146103af57806336568abe146103cd57806339509351146103e957610274565b806301ffc9a71461027957806306fdde03146102a9578063095ea7b3146102c757806318160ddd146102f757806323b872dd14610315575b600080fd5b610293600480360381019061028e9190613cec565b6108df565b6040516102a09190613d34565b60405180910390f35b6102b1610959565b6040516102be9190613ddf565b60405180910390f35b6102e160048036038101906102dc9190613e95565b6109eb565b6040516102ee9190613d34565b60405180910390f35b6102ff610a0e565b60405161030c9190613ee4565b60405180910390f35b61032f600480360381019061032a9190613eff565b610a18565b60405161033c9190613d34565b60405180910390f35b61035f600480360381019061035a9190613f88565b610a47565b60405161036c9190613fc4565b60405180910390f35b61038f600480360381019061038a9190613fdf565b610a67565b005b610399610a88565b6040516103a6919061403b565b60405180910390f35b6103b7610a91565b6040516103c49190613fc4565b60405180910390f35b6103e760048036038101906103e29190613fdf565b610aa0565b005b61040360048036038101906103fe9190613e95565b610b23565b6040516104109190613d34565b60405180910390f35b610433600480360381019061042e9190613e95565b610b5a565b6040516104409190613ee4565b60405180910390f35b610451610bee565b005b61046d60048036038101906104689190613e95565b610c23565b005b61048960048036038101906104849190614056565b610c5c565b005b6104a560048036038101906104a09190613e95565b610c70565b6040516104b29190613ee4565b60405180910390f35b6104d560048036038101906104d09190614083565b610ce0565b6040516104e291906140bf565b60405180910390f35b61050560048036038101906105009190614083565b610d49565b005b61050f610d5d565b60405161051c9190613d34565b60405180910390f35b61053f600480360381019061053a919061417d565b610d74565b60405161054c9190613d34565b60405180910390f35b61056f600480360381019061056a9190614083565b610f61565b60405161057c9190613ee4565b60405180910390f35b61059f600480360381019061059a9190614083565b610fd8565b6040516105ac9190614224565b60405180910390f35b6105bd61102c565b6040516105ca9190613fc4565b60405180910390f35b6105ed60048036038101906105e89190614083565b611050565b6040516105fa9190613ee4565b60405180910390f35b61061d60048036038101906106189190613e95565b611098565b005b61063960048036038101906106349190614083565b6110b8565b6040516106469190613ee4565b60405180910390f35b610657611108565b005b610673600480360381019061066e9190614056565b61113d565b6040516106809190613ee4565b60405180910390f35b6106a3600480360381019061069e9190613fdf565b611193565b6040516106b09190613d34565b60405180910390f35b6106c16111fe565b6040516106ce9190613ddf565b60405180910390f35b6106df611290565b005b6106fb60048036038101906106f69190614056565b6112c6565b6040516107089190613ee4565b60405180910390f35b61072b60048036038101906107269190614083565b6112f7565b6040516107389190613ee4565b60405180910390f35b610749611408565b6040516107569190613fc4565b60405180910390f35b61077960048036038101906107749190613e95565b61140f565b6040516107869190613d34565b60405180910390f35b6107a960048036038101906107a49190613e95565b611486565b6040516107b69190613d34565b60405180910390f35b6107d960048036038101906107d4919061426b565b6114a9565b005b6107f560048036038101906107f091906142f8565b6115ad565b005b6107ff6116ef565b60405161080c9190613fc4565b60405180910390f35b61082f600480360381019061082a9190613fdf565b611713565b005b61084b60048036038101906108469190613e95565b611734565b6040516108589190613ee4565b60405180910390f35b61087b6004803603810190610876919061439a565b6117b6565b6040516108889190613ee4565b60405180910390f35b61089961183d565b6040516108a69190613fc4565b60405180910390f35b6108c960048036038101906108c49190614406565b611861565b6040516108d691906144bb565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610952575061095182611d39565b5b9050919050565b60606003805461096890614505565b80601f016020809104026020016040519081016040528092919081815260200182805461099490614505565b80156109e15780601f106109b6576101008083540402835291602001916109e1565b820191906000526020600020905b8154815290600101906020018083116109c457829003601f168201915b5050505050905090565b6000806109f6611da3565b9050610a03818585611dab565b600191505092915050565b6000600254905090565b600080610a23611da3565b9050610a30858285611f74565b610a3b858585612000565b60019150509392505050565b600060096000838152602001908152602001600020600101549050919050565b610a7082610a47565b610a7981612276565b610a83838361228a565b505050565b60006012905090565b6000610a9b61236b565b905090565b610aa8611da3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c906145a8565b60405180910390fd5b610b1f8282612485565b5050565b600080610b2e611da3565b9050610b4f818585610b4085896117b6565b610b4a91906145f7565b611dab565b600191505092915050565b6000438210610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9590614677565b60405180910390fd5b610be6600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083612567565b905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c1881612276565b610c206126b8565b50565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610c4d81612276565b610c57838361271b565b505050565b610c6d610c67611da3565b82612729565b50565b6000806000610cbd84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612737565b9150915081610cd457610ccf85611050565b610cd6565b805b9250505092915050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610d5a610d54611da3565b8261282c565b50565b6000600a60009054906101000a900460ff16905090565b6000610d7f85610f61565b841115610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890614709565b60405180910390fd5b6000610dcd8686611734565b9050610dd9878661271b565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b8152600401610e3d96959493929190614776565b6020604051808303816000875af1158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8091906147e7565b14610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb790614886565b60405180910390fd5b6000610eca612946565b9050610ee288308489610edd91906145f7565b611f74565b6000821480610f1d5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610f3c57610f37888388610f3291906145f7565b612729565b610f52565b610f468887612729565b610f51888284612000565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f9d576000610fd1565b610fa5610a0e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610fd091906148a6565b5b9050919050565b6000611025600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611bd5565b9050919050565b7f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f81565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110aa826110a4611da3565b83611f74565b6110b48282612729565b5050565b6000611101600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611d2b565b9050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61113281612276565b61113a61294b565b50565b6000438210611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890614677565b60405180910390fd5b61118c600f83612567565b9050919050565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60606004805461120d90614505565b80601f016020809104026020016040519081016040528092919081815260200182805461123990614505565b80156112865780601f1061125b57610100808354040283529160200191611286565b820191906000526020600020905b81548152906001019060200180831161126957829003601f168201915b5050505050905090565b7f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f6112ba81612276565b6112c26129ae565b5050565b60008060006112d6846006612737565b91509150816112ec576112e7610a0e565b6112ee565b805b92505050919050565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600081146113df57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261139391906148a6565b815481106113a4576113a36148da565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166113e2565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b6000801b81565b60008061141a611da3565b9050600061142882866117b6565b90508381101561146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114649061497b565b60405180910390fd5b61147a8286868403611dab565b60019250505092915050565b600080611491611da3565b905061149e818585612000565b600191505092915050565b834211156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e3906149e7565b60405180910390fd5b600061154e6115467fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf89898960405160200161152b9493929190614a07565b60405160208183030381529060405280519060200120612a04565b858585612a1e565b905061155981612a49565b861461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190614a98565b60405180910390fd5b6115a4818861282c565b50505050505050565b834211156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790614b04565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861161f8c612a49565b8960405160200161163596959493929190614b24565b604051602081830303815290604052805190602001209050600061165882612a04565b9050600061166882878787612a1e565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90614bd1565b60405180910390fd5b6116e38a8a8a611dab565b50505050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61171c82610a47565b61172581612276565b61172f8383612485565b505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90614c3d565b60405180910390fd5b6117ae8383612aa7565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b611869613c4c565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff16815481106118c0576118bf6148da565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b61197b82826119fe565b611983612aaf565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166119a9610a0e565b11156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e190614ccf565b60405180910390fd5b6119f8600f611b5483612ad3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6490614d3b565b60405180910390fd5b611a7960008383612da2565b8060026000828254611a8b91906145f7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b3c9190613ee4565b60405180910390a3611b5060008383612dba565b5050565b60008183611b6291906145f7565b905092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016821115611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490614dcd565b60405180910390fd5b819050919050565b600063ffffffff8016821115611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1790614e5f565b60405180910390fd5b819050919050565b611c33838383611d0b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7d57611c7082612dca565b611c78612e1d565b611cdb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc757611cba83612dca565b611cc2612e1d565b611cda565b611cd083612dca565b611cd982612dca565b5b5b505050565b611ceb838383611d10565b611d06611cf784610ce0565b611d0084610ce0565b83612e31565b505050565b505050565b505050565b60008183611d2391906148a6565b905092915050565b600081600001549050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190614ef1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090614f83565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f679190613ee4565b60405180910390a3505050565b6000611f8084846117b6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ffa5781811015611fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe390614fef565b60405180910390fd5b611ff98484848403611dab565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690615081565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d590615113565b60405180910390fd5b6120e9838383612da2565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561216f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612166906151a5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161225d9190613ee4565b60405180910390a3612270848484612dba565b50505050565b61228781612282611da3565b61302a565b50565b6122948282611193565b6123675760016009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061230c611da3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156123e757507f000000000000000000000000000000000000000000000000000000000000000046145b15612414577f00000000000000000000000000000000000000000000000000000000000000009050612482565b61247f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006130af565b90505b90565b61248f8282611193565b156125635760006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612508611da3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000808380549050905060008082905060058311156125dd57600061258b846130e9565b8461259691906148a6565b9050856125a388836131e2565b60000160009054906101000a900463ffffffff1663ffffffff1611156125cb578091506125db565b6001816125d891906145f7565b92505b505b5b8082101561263d5760006125f283836131f7565b9050856125ff88836131e2565b60000160009054906101000a900463ffffffff1663ffffffff16111561262757809150612637565b60018161263491906145f7565b92505b506125de565b6000811461268c5761265b8660018361265691906148a6565b6131e2565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661268f565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16935050505092915050565b6126c061321d565b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612704611da3565b60405161271191906140bf565b60405180910390a1565b6127258282611971565b5050565b6127338282613266565b5050565b6000806000841161277d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277490615211565b60405180910390fd5b612785613284565b8411156127c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127be9061527d565b60405180910390fd5b60006127df858560000161329590919063ffffffff16565b9050836000018054905081036127fc576000809250925050612825565b6001846001018281548110612814576128136148da565b5b906000526020600020015492509250505b9250929050565b600061283783610ce0565b9050600061284484611050565b905082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4612940828483612e31565b50505050565b600090565b61295361334e565b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612997611da3565b6040516129a491906140bf565b60405180910390a1565b60006129ba6008613398565b60006129c4613284565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb67816040516129f59190613ee4565b60405180910390a18091505090565b6000612a17612a1161236b565b836133ae565b9050919050565b6000806000612a2f878787876133e1565b91509150612a3c816134c3565b8192505050949350505050565b600080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612a9681611d2b565b9150612aa181613398565b50919050565b600092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000806000858054905090506000808214612ba257612afe87600184612af991906148a6565b6131e2565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050612bde565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169350612c1384868863ffffffff16565b9250600082118015612c2e575043816000015163ffffffff16145b15612ca857612c3c83611b6a565b612c5288600185612c4d91906148a6565b6131e2565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550612d98565b866040518060400160405280612cbd43611bd5565b63ffffffff168152602001612cd186611b6a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b612daa61334e565b612db5838383611c28565b505050565b612dc5838383611ce0565b505050565b612e1a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612e1583611050565b613629565b50565b612e2f6006612e2a610a0e565b613629565b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e6d5750600081115b1561302557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612f4b57600080612ef4600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611d1585612ad3565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612f4092919061529d565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461302457600080612fcd600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b5485612ad3565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161301992919061529d565b60405180910390a250505b5b505050565b6130348282611193565b6130ab57613041816136a4565b61304f8360001c60206136d1565b60405160200161306092919061539a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a29190613ddf565b60405180910390fd5b5050565b600083838346306040516020016130ca9594939291906153d4565b6040516020818303038152906040528051906020012090509392505050565b60008082036130fb57600090506131dd565b600060016131088461390d565b901c6001901b9050600181848161312257613121615427565b5b048201901c9050600181848161313b5761313a615427565b5b048201901c9050600181848161315457613153615427565b5b048201901c9050600181848161316d5761316c615427565b5b048201901c9050600181848161318657613185615427565b5b048201901c9050600181848161319f5761319e615427565b5b048201901c905060018184816131b8576131b7615427565b5b048201901c90506131d9818285816131d3576131d2615427565b5b046139ee565b9150505b919050565b60008260005281602060002001905092915050565b600060028284186132089190615456565b82841661321591906145f7565b905092915050565b613225610d5d565b613264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325b906154d3565b60405180910390fd5b565b6132708282613a07565b61327e600f611d1583612ad3565b50505050565b60006132906008611d2b565b905090565b6000808380549050036132ab5760009050613348565b600080848054905090505b808210156132ff5760006132ca83836131f7565b9050846132d78783613bd4565b6000015411156132e9578091506132f9565b6001816132f691906145f7565b92505b506132b6565b6000821180156133275750836133218660018561331c91906148a6565b613bd4565b60000154145b156133425760018261333991906148a6565b92505050613348565b81925050505b92915050565b613356610d5d565b15613396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338d9061553f565b60405180910390fd5b565b6001816000016000828254019250508190555050565b600082826040516020016133c39291906155cc565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561341c5760006003915091506134ba565b6000600187878787604051600081526020016040526040516134419493929190615603565b6020604051602081039080840390855afa158015613463573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036134b1576000600192509250506134ba565b80600092509250505b94509492505050565b600060048111156134d7576134d6615648565b5b8160048111156134ea576134e9615648565b5b0315613626576001600481111561350457613503615648565b5b81600481111561351757613516615648565b5b03613557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354e906156c3565b60405180910390fd5b6002600481111561356b5761356a615648565b5b81600481111561357e5761357d615648565b5b036135be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135b59061572f565b60405180910390fd5b600360048111156135d2576135d1615648565b5b8160048111156135e5576135e4615648565b5b03613625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161361c906157c1565b60405180910390fd5b5b50565b6000613633613284565b90508061364284600001613bf6565b101561369f5782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b60606136ca8273ffffffffffffffffffffffffffffffffffffffff16601460ff166136d1565b9050919050565b6060600060028360026136e491906157e1565b6136ee91906145f7565b67ffffffffffffffff81111561370757613706615823565b5b6040519080825280601f01601f1916602001820160405280156137395781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110613771576137706148da565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106137d5576137d46148da565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261381591906157e1565b61381f91906145f7565b90505b60018111156138bf577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110613861576138606148da565b5b1a60f81b828281518110613878576138776148da565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806138b890615852565b9050613822565b5060008414613903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138fa906158c7565b60405180910390fd5b8091505092915050565b600080600090506000608084901c111561392f57608083901c92506080810190505b6000604084901c111561394a57604083901c92506040810190505b6000602084901c111561396557602083901c92506020810190505b6000601084901c111561398057601083901c92506010810190505b6000600884901c111561399b57600883901c92506008810190505b6000600484901c11156139b657600483901c92506004810190505b6000600284901c11156139d157600283901c92506002810190505b6000600184901c11156139e5576001810190505b80915050919050565b60008183106139fd57816139ff565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a6d90615959565b60405180910390fd5b613a8282600083612da2565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aff906159eb565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bbb9190613ee4565b60405180910390a3613bcf83600084612dba565b505050565b60008083600052826020600020019050613bed81613c42565b91505092915050565b600080828054905003613c0c5760009050613c3d565b8160018380549050613c1e91906148a6565b81548110613c2f57613c2e6148da565b5b906000526020600020015490505b919050565b6000819050919050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613cc981613c94565b8114613cd457600080fd5b50565b600081359050613ce681613cc0565b92915050565b600060208284031215613d0257613d01613c8a565b5b6000613d1084828501613cd7565b91505092915050565b60008115159050919050565b613d2e81613d19565b82525050565b6000602082019050613d496000830184613d25565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d89578082015181840152602081019050613d6e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613db182613d4f565b613dbb8185613d5a565b9350613dcb818560208601613d6b565b613dd481613d95565b840191505092915050565b60006020820190508181036000830152613df98184613da6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613e2c82613e01565b9050919050565b613e3c81613e21565b8114613e4757600080fd5b50565b600081359050613e5981613e33565b92915050565b6000819050919050565b613e7281613e5f565b8114613e7d57600080fd5b50565b600081359050613e8f81613e69565b92915050565b60008060408385031215613eac57613eab613c8a565b5b6000613eba85828601613e4a565b9250506020613ecb85828601613e80565b9150509250929050565b613ede81613e5f565b82525050565b6000602082019050613ef96000830184613ed5565b92915050565b600080600060608486031215613f1857613f17613c8a565b5b6000613f2686828701613e4a565b9350506020613f3786828701613e4a565b9250506040613f4886828701613e80565b9150509250925092565b6000819050919050565b613f6581613f52565b8114613f7057600080fd5b50565b600081359050613f8281613f5c565b92915050565b600060208284031215613f9e57613f9d613c8a565b5b6000613fac84828501613f73565b91505092915050565b613fbe81613f52565b82525050565b6000602082019050613fd96000830184613fb5565b92915050565b60008060408385031215613ff657613ff5613c8a565b5b600061400485828601613f73565b925050602061401585828601613e4a565b9150509250929050565b600060ff82169050919050565b6140358161401f565b82525050565b6000602082019050614050600083018461402c565b92915050565b60006020828403121561406c5761406b613c8a565b5b600061407a84828501613e80565b91505092915050565b60006020828403121561409957614098613c8a565b5b60006140a784828501613e4a565b91505092915050565b6140b981613e21565b82525050565b60006020820190506140d460008301846140b0565b92915050565b60006140e582613e21565b9050919050565b6140f5816140da565b811461410057600080fd5b50565b600081359050614112816140ec565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261413d5761413c614118565b5b8235905067ffffffffffffffff81111561415a5761415961411d565b5b60208301915083600182028301111561417657614175614122565b5b9250929050565b60008060008060006080868803121561419957614198613c8a565b5b60006141a788828901614103565b95505060206141b888828901613e4a565b94505060406141c988828901613e80565b935050606086013567ffffffffffffffff8111156141ea576141e9613c8f565b5b6141f688828901614127565b92509250509295509295909350565b600063ffffffff82169050919050565b61421e81614205565b82525050565b60006020820190506142396000830184614215565b92915050565b6142488161401f565b811461425357600080fd5b50565b6000813590506142658161423f565b92915050565b60008060008060008060c0878903121561428857614287613c8a565b5b600061429689828a01613e4a565b96505060206142a789828a01613e80565b95505060406142b889828a01613e80565b94505060606142c989828a01614256565b93505060806142da89828a01613f73565b92505060a06142eb89828a01613f73565b9150509295509295509295565b600080600080600080600060e0888a03121561431757614316613c8a565b5b60006143258a828b01613e4a565b97505060206143368a828b01613e4a565b96505060406143478a828b01613e80565b95505060606143588a828b01613e80565b94505060806143698a828b01614256565b93505060a061437a8a828b01613f73565b92505060c061438b8a828b01613f73565b91505092959891949750929550565b600080604083850312156143b1576143b0613c8a565b5b60006143bf85828601613e4a565b92505060206143d085828601613e4a565b9150509250929050565b6143e381614205565b81146143ee57600080fd5b50565b600081359050614400816143da565b92915050565b6000806040838503121561441d5761441c613c8a565b5b600061442b85828601613e4a565b925050602061443c858286016143f1565b9150509250929050565b61444f81614205565b82525050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b61448681614455565b82525050565b6040820160008201516144a26000850182614446565b5060208201516144b5602085018261447d565b50505050565b60006040820190506144d0600083018461448c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061451d57607f821691505b6020821081036145305761452f6144d6565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000614592602f83613d5a565b915061459d82614536565b604082019050919050565b600060208201905081810360008301526145c181614585565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061460282613e5f565b915061460d83613e5f565b9250828201905080821115614625576146246145c8565b5b92915050565b7f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400600082015250565b6000614661601f83613d5a565b915061466c8261462b565b602082019050919050565b6000602082019050818103600083015261469081614654565b9050919050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b60006146f3602b83613d5a565b91506146fe82614697565b604082019050919050565b60006020820190508181036000830152614722816146e6565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006147558385614729565b935061476283858461473a565b61476b83613d95565b840190509392505050565b600060a08201905061478b60008301896140b0565b61479860208301886140b0565b6147a56040830187613ed5565b6147b26060830186613ed5565b81810360808301526147c5818486614749565b9050979650505050505050565b6000815190506147e181613f5c565b92915050565b6000602082840312156147fd576147fc613c8a565b5b600061480b848285016147d2565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b6000614870602483613d5a565b915061487b82614814565b604082019050919050565b6000602082019050818103600083015261489f81614863565b9050919050565b60006148b182613e5f565b91506148bc83613e5f565b92508282039050818111156148d4576148d36145c8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614965602583613d5a565b915061497082614909565b604082019050919050565b6000602082019050818103600083015261499481614958565b9050919050565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b60006149d1601d83613d5a565b91506149dc8261499b565b602082019050919050565b60006020820190508181036000830152614a00816149c4565b9050919050565b6000608082019050614a1c6000830187613fb5565b614a2960208301866140b0565b614a366040830185613ed5565b614a436060830184613ed5565b95945050505050565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b6000614a82601983613d5a565b9150614a8d82614a4c565b602082019050919050565b60006020820190508181036000830152614ab181614a75565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000614aee601d83613d5a565b9150614af982614ab8565b602082019050919050565b60006020820190508181036000830152614b1d81614ae1565b9050919050565b600060c082019050614b396000830189613fb5565b614b4660208301886140b0565b614b5360408301876140b0565b614b606060830186613ed5565b614b6d6080830185613ed5565b614b7a60a0830184613ed5565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000614bbb601e83613d5a565b9150614bc682614b85565b602082019050919050565b60006020820190508181036000830152614bea81614bae565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b6000614c27601b83613d5a565b9150614c3282614bf1565b602082019050919050565b60006020820190508181036000830152614c5681614c1a565b9050919050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000614cb9603083613d5a565b9150614cc482614c5d565b604082019050919050565b60006020820190508181036000830152614ce881614cac565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614d25601f83613d5a565b9150614d3082614cef565b602082019050919050565b60006020820190508181036000830152614d5481614d18565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000614db7602783613d5a565b9150614dc282614d5b565b604082019050919050565b60006020820190508181036000830152614de681614daa565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b6000614e49602683613d5a565b9150614e5482614ded565b604082019050919050565b60006020820190508181036000830152614e7881614e3c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614edb602483613d5a565b9150614ee682614e7f565b604082019050919050565b60006020820190508181036000830152614f0a81614ece565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f6d602283613d5a565b9150614f7882614f11565b604082019050919050565b60006020820190508181036000830152614f9c81614f60565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614fd9601d83613d5a565b9150614fe482614fa3565b602082019050919050565b6000602082019050818103600083015261500881614fcc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061506b602583613d5a565b91506150768261500f565b604082019050919050565b6000602082019050818103600083015261509a8161505e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006150fd602383613d5a565b9150615108826150a1565b604082019050919050565b6000602082019050818103600083015261512c816150f0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061518f602683613d5a565b915061519a82615133565b604082019050919050565b600060208201905081810360008301526151be81615182565b9050919050565b7f4552433230536e617073686f743a206964206973203000000000000000000000600082015250565b60006151fb601683613d5a565b9150615206826151c5565b602082019050919050565b6000602082019050818103600083015261522a816151ee565b9050919050565b7f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000600082015250565b6000615267601d83613d5a565b915061527282615231565b602082019050919050565b600060208201905081810360008301526152968161525a565b9050919050565b60006040820190506152b26000830185613ed5565b6152bf6020830184613ed5565b9392505050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006153076017836152c6565b9150615312826152d1565b601782019050919050565b600061532882613d4f565b61533281856152c6565b9350615342818560208601613d6b565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006153846011836152c6565b915061538f8261534e565b601182019050919050565b60006153a5826152fa565b91506153b1828561531d565b91506153bc82615377565b91506153c8828461531d565b91508190509392505050565b600060a0820190506153e96000830188613fb5565b6153f66020830187613fb5565b6154036040830186613fb5565b6154106060830185613ed5565b61541d60808301846140b0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061546182613e5f565b915061546c83613e5f565b92508261547c5761547b615427565b5b828204905092915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006154bd601483613d5a565b91506154c882615487565b602082019050919050565b600060208201905081810360008301526154ec816154b0565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000615529601083613d5a565b9150615534826154f3565b602082019050919050565b600060208201905081810360008301526155588161551c565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006155956002836152c6565b91506155a08261555f565b600282019050919050565b6000819050919050565b6155c66155c182613f52565b6155ab565b82525050565b60006155d782615588565b91506155e382856155b5565b6020820191506155f382846155b5565b6020820191508190509392505050565b60006080820190506156186000830187613fb5565b615625602083018661402c565b6156326040830185613fb5565b61563f6060830184613fb5565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006156ad601883613d5a565b91506156b882615677565b602082019050919050565b600060208201905081810360008301526156dc816156a0565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000615719601f83613d5a565b9150615724826156e3565b602082019050919050565b600060208201905081810360008301526157488161570c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006157ab602283613d5a565b91506157b68261574f565b604082019050919050565b600060208201905081810360008301526157da8161579e565b9050919050565b60006157ec82613e5f565b91506157f783613e5f565b925082820261580581613e5f565b9150828204841483151761581c5761581b6145c8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061585d82613e5f565b9150600082036158705761586f6145c8565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006158b1602083613d5a565b91506158bc8261587b565b602082019050919050565b600060208201905081810360008301526158e0816158a4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615943602183613d5a565b915061594e826158e7565b604082019050919050565b6000602082019050818103600083015261597281615936565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006159d5602283613d5a565b91506159e082615979565b604082019050919050565b60006020820190508181036000830152615a04816159c8565b905091905056fea2646970667358221220da2cddbb79e6ea76055f5e3cef0ba953cbe29ce0f969f208a4f57f73527c8de664736f6c63430008120033

Deployed bytecode

0x608060405234801561001057600080fd5b50600436106102745760003560e01c80637028e2cd11610151578063a217fddf116100c3578063d539139311610087578063d5391393146107f7578063d547741f14610815578063d9d98ce414610831578063dd62ed3e14610861578063e63ab1e914610891578063f1127ed8146108af57610274565b8063a217fddf14610741578063a457c2d71461075f578063a9059cbb1461078f578063c3cda520146107bf578063d505accf146107db57610274565b80638e539e8c116101155780638e539e8c1461065957806391d148541461068957806395d89b41146106b95780639711715a146106d7578063981b24d0146106e15780639ab24eb01461071157610274565b80637028e2cd146105b557806370a08231146105d357806379cc6790146106035780637ecebe001461061f5780638456cb591461064f57610274565b80633a46b1a8116101ea578063587cde1e116101ae578063587cde1e146104bb5780635c19a95c146104eb5780635c975abb146105075780635cffe9de14610525578063613255ab146105555780636fcfff451461058557610274565b80633a46b1a8146104195780633f4ba83a1461044957806340c10f191461045357806342966c681461046f5780634ee2cd7e1461048b57610274565b8063248a9ca31161023c578063248a9ca3146103455780632f2ff15d14610375578063313ce567146103915780633644e515146103af57806336568abe146103cd57806339509351146103e957610274565b806301ffc9a71461027957806306fdde03146102a9578063095ea7b3146102c757806318160ddd146102f757806323b872dd14610315575b600080fd5b610293600480360381019061028e9190613cec565b6108df565b6040516102a09190613d34565b60405180910390f35b6102b1610959565b6040516102be9190613ddf565b60405180910390f35b6102e160048036038101906102dc9190613e95565b6109eb565b6040516102ee9190613d34565b60405180910390f35b6102ff610a0e565b60405161030c9190613ee4565b60405180910390f35b61032f600480360381019061032a9190613eff565b610a18565b60405161033c9190613d34565b60405180910390f35b61035f600480360381019061035a9190613f88565b610a47565b60405161036c9190613fc4565b60405180910390f35b61038f600480360381019061038a9190613fdf565b610a67565b005b610399610a88565b6040516103a6919061403b565b60405180910390f35b6103b7610a91565b6040516103c49190613fc4565b60405180910390f35b6103e760048036038101906103e29190613fdf565b610aa0565b005b61040360048036038101906103fe9190613e95565b610b23565b6040516104109190613d34565b60405180910390f35b610433600480360381019061042e9190613e95565b610b5a565b6040516104409190613ee4565b60405180910390f35b610451610bee565b005b61046d60048036038101906104689190613e95565b610c23565b005b61048960048036038101906104849190614056565b610c5c565b005b6104a560048036038101906104a09190613e95565b610c70565b6040516104b29190613ee4565b60405180910390f35b6104d560048036038101906104d09190614083565b610ce0565b6040516104e291906140bf565b60405180910390f35b61050560048036038101906105009190614083565b610d49565b005b61050f610d5d565b60405161051c9190613d34565b60405180910390f35b61053f600480360381019061053a919061417d565b610d74565b60405161054c9190613d34565b60405180910390f35b61056f600480360381019061056a9190614083565b610f61565b60405161057c9190613ee4565b60405180910390f35b61059f600480360381019061059a9190614083565b610fd8565b6040516105ac9190614224565b60405180910390f35b6105bd61102c565b6040516105ca9190613fc4565b60405180910390f35b6105ed60048036038101906105e89190614083565b611050565b6040516105fa9190613ee4565b60405180910390f35b61061d60048036038101906106189190613e95565b611098565b005b61063960048036038101906106349190614083565b6110b8565b6040516106469190613ee4565b60405180910390f35b610657611108565b005b610673600480360381019061066e9190614056565b61113d565b6040516106809190613ee4565b60405180910390f35b6106a3600480360381019061069e9190613fdf565b611193565b6040516106b09190613d34565b60405180910390f35b6106c16111fe565b6040516106ce9190613ddf565b60405180910390f35b6106df611290565b005b6106fb60048036038101906106f69190614056565b6112c6565b6040516107089190613ee4565b60405180910390f35b61072b60048036038101906107269190614083565b6112f7565b6040516107389190613ee4565b60405180910390f35b610749611408565b6040516107569190613fc4565b60405180910390f35b61077960048036038101906107749190613e95565b61140f565b6040516107869190613d34565b60405180910390f35b6107a960048036038101906107a49190613e95565b611486565b6040516107b69190613d34565b60405180910390f35b6107d960048036038101906107d4919061426b565b6114a9565b005b6107f560048036038101906107f091906142f8565b6115ad565b005b6107ff6116ef565b60405161080c9190613fc4565b60405180910390f35b61082f600480360381019061082a9190613fdf565b611713565b005b61084b60048036038101906108469190613e95565b611734565b6040516108589190613ee4565b60405180910390f35b61087b6004803603810190610876919061439a565b6117b6565b6040516108889190613ee4565b60405180910390f35b61089961183d565b6040516108a69190613fc4565b60405180910390f35b6108c960048036038101906108c49190614406565b611861565b6040516108d691906144bb565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610952575061095182611d39565b5b9050919050565b60606003805461096890614505565b80601f016020809104026020016040519081016040528092919081815260200182805461099490614505565b80156109e15780601f106109b6576101008083540402835291602001916109e1565b820191906000526020600020905b8154815290600101906020018083116109c457829003601f168201915b5050505050905090565b6000806109f6611da3565b9050610a03818585611dab565b600191505092915050565b6000600254905090565b600080610a23611da3565b9050610a30858285611f74565b610a3b858585612000565b60019150509392505050565b600060096000838152602001908152602001600020600101549050919050565b610a7082610a47565b610a7981612276565b610a83838361228a565b505050565b60006012905090565b6000610a9b61236b565b905090565b610aa8611da3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c906145a8565b60405180910390fd5b610b1f8282612485565b5050565b600080610b2e611da3565b9050610b4f818585610b4085896117b6565b610b4a91906145f7565b611dab565b600191505092915050565b6000438210610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9590614677565b60405180910390fd5b610be6600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083612567565b905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c1881612276565b610c206126b8565b50565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610c4d81612276565b610c57838361271b565b505050565b610c6d610c67611da3565b82612729565b50565b6000806000610cbd84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612737565b9150915081610cd457610ccf85611050565b610cd6565b805b9250505092915050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610d5a610d54611da3565b8261282c565b50565b6000600a60009054906101000a900460ff16905090565b6000610d7f85610f61565b841115610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890614709565b60405180910390fd5b6000610dcd8686611734565b9050610dd9878661271b565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b8152600401610e3d96959493929190614776565b6020604051808303816000875af1158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8091906147e7565b14610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb790614886565b60405180910390fd5b6000610eca612946565b9050610ee288308489610edd91906145f7565b611f74565b6000821480610f1d5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610f3c57610f37888388610f3291906145f7565b612729565b610f52565b610f468887612729565b610f51888284612000565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f9d576000610fd1565b610fa5610a0e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610fd091906148a6565b5b9050919050565b6000611025600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611bd5565b9050919050565b7f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f81565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110aa826110a4611da3565b83611f74565b6110b48282612729565b5050565b6000611101600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611d2b565b9050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61113281612276565b61113a61294b565b50565b6000438210611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890614677565b60405180910390fd5b61118c600f83612567565b9050919050565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60606004805461120d90614505565b80601f016020809104026020016040519081016040528092919081815260200182805461123990614505565b80156112865780601f1061125b57610100808354040283529160200191611286565b820191906000526020600020905b81548152906001019060200180831161126957829003601f168201915b5050505050905090565b7f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f6112ba81612276565b6112c26129ae565b5050565b60008060006112d6846006612737565b91509150816112ec576112e7610a0e565b6112ee565b805b92505050919050565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600081146113df57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261139391906148a6565b815481106113a4576113a36148da565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166113e2565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b6000801b81565b60008061141a611da3565b9050600061142882866117b6565b90508381101561146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114649061497b565b60405180910390fd5b61147a8286868403611dab565b60019250505092915050565b600080611491611da3565b905061149e818585612000565b600191505092915050565b834211156114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e3906149e7565b60405180910390fd5b600061154e6115467fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf89898960405160200161152b9493929190614a07565b60405160208183030381529060405280519060200120612a04565b858585612a1e565b905061155981612a49565b861461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190614a98565b60405180910390fd5b6115a4818861282c565b50505050505050565b834211156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790614b04565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861161f8c612a49565b8960405160200161163596959493929190614b24565b604051602081830303815290604052805190602001209050600061165882612a04565b9050600061166882878787612a1e565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90614bd1565b60405180910390fd5b6116e38a8a8a611dab565b50505050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61171c82610a47565b61172581612276565b61172f8383612485565b505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90614c3d565b60405180910390fd5b6117ae8383612aa7565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b611869613c4c565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff16815481106118c0576118bf6148da565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b61197b82826119fe565b611983612aaf565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166119a9610a0e565b11156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e190614ccf565b60405180910390fd5b6119f8600f611b5483612ad3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6490614d3b565b60405180910390fd5b611a7960008383612da2565b8060026000828254611a8b91906145f7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b3c9190613ee4565b60405180910390a3611b5060008383612dba565b5050565b60008183611b6291906145f7565b905092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016821115611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490614dcd565b60405180910390fd5b819050919050565b600063ffffffff8016821115611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1790614e5f565b60405180910390fd5b819050919050565b611c33838383611d0b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7d57611c7082612dca565b611c78612e1d565b611cdb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc757611cba83612dca565b611cc2612e1d565b611cda565b611cd083612dca565b611cd982612dca565b5b5b505050565b611ceb838383611d10565b611d06611cf784610ce0565b611d0084610ce0565b83612e31565b505050565b505050565b505050565b60008183611d2391906148a6565b905092915050565b600081600001549050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190614ef1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090614f83565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f679190613ee4565b60405180910390a3505050565b6000611f8084846117b6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ffa5781811015611fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe390614fef565b60405180910390fd5b611ff98484848403611dab565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690615081565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d590615113565b60405180910390fd5b6120e9838383612da2565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561216f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612166906151a5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161225d9190613ee4565b60405180910390a3612270848484612dba565b50505050565b61228781612282611da3565b61302a565b50565b6122948282611193565b6123675760016009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061230c611da3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60007f0000000000000000000000007a82e201bb945569e22e8649ee73ecc42c3156db73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156123e757507f0000000000000000000000000000000000000000000000000000000000000a4146145b15612414577f0e49ce80441f15c62e50132cb9b02a5d2c4bab29f1100e275496e0a691a1888e9050612482565b61247f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f72fd5a9b22d54043078cd7699f87eabc1dc5a45fd7d82dd7ec9ee90558397bb37fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66130af565b90505b90565b61248f8282611193565b156125635760006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612508611da3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000808380549050905060008082905060058311156125dd57600061258b846130e9565b8461259691906148a6565b9050856125a388836131e2565b60000160009054906101000a900463ffffffff1663ffffffff1611156125cb578091506125db565b6001816125d891906145f7565b92505b505b5b8082101561263d5760006125f283836131f7565b9050856125ff88836131e2565b60000160009054906101000a900463ffffffff1663ffffffff16111561262757809150612637565b60018161263491906145f7565b92505b506125de565b6000811461268c5761265b8660018361265691906148a6565b6131e2565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661268f565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16935050505092915050565b6126c061321d565b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612704611da3565b60405161271191906140bf565b60405180910390a1565b6127258282611971565b5050565b6127338282613266565b5050565b6000806000841161277d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277490615211565b60405180910390fd5b612785613284565b8411156127c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127be9061527d565b60405180910390fd5b60006127df858560000161329590919063ffffffff16565b9050836000018054905081036127fc576000809250925050612825565b6001846001018281548110612814576128136148da565b5b906000526020600020015492509250505b9250929050565b600061283783610ce0565b9050600061284484611050565b905082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4612940828483612e31565b50505050565b600090565b61295361334e565b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612997611da3565b6040516129a491906140bf565b60405180910390a1565b60006129ba6008613398565b60006129c4613284565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb67816040516129f59190613ee4565b60405180910390a18091505090565b6000612a17612a1161236b565b836133ae565b9050919050565b6000806000612a2f878787876133e1565b91509150612a3c816134c3565b8192505050949350505050565b600080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612a9681611d2b565b9150612aa181613398565b50919050565b600092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000806000858054905090506000808214612ba257612afe87600184612af991906148a6565b6131e2565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050612bde565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169350612c1384868863ffffffff16565b9250600082118015612c2e575043816000015163ffffffff16145b15612ca857612c3c83611b6a565b612c5288600185612c4d91906148a6565b6131e2565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550612d98565b866040518060400160405280612cbd43611bd5565b63ffffffff168152602001612cd186611b6a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b612daa61334e565b612db5838383611c28565b505050565b612dc5838383611ce0565b505050565b612e1a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612e1583611050565b613629565b50565b612e2f6006612e2a610a0e565b613629565b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e6d5750600081115b1561302557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612f4b57600080612ef4600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611d1585612ad3565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612f4092919061529d565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461302457600080612fcd600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b5485612ad3565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161301992919061529d565b60405180910390a250505b5b505050565b6130348282611193565b6130ab57613041816136a4565b61304f8360001c60206136d1565b60405160200161306092919061539a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a29190613ddf565b60405180910390fd5b5050565b600083838346306040516020016130ca9594939291906153d4565b6040516020818303038152906040528051906020012090509392505050565b60008082036130fb57600090506131dd565b600060016131088461390d565b901c6001901b9050600181848161312257613121615427565b5b048201901c9050600181848161313b5761313a615427565b5b048201901c9050600181848161315457613153615427565b5b048201901c9050600181848161316d5761316c615427565b5b048201901c9050600181848161318657613185615427565b5b048201901c9050600181848161319f5761319e615427565b5b048201901c905060018184816131b8576131b7615427565b5b048201901c90506131d9818285816131d3576131d2615427565b5b046139ee565b9150505b919050565b60008260005281602060002001905092915050565b600060028284186132089190615456565b82841661321591906145f7565b905092915050565b613225610d5d565b613264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325b906154d3565b60405180910390fd5b565b6132708282613a07565b61327e600f611d1583612ad3565b50505050565b60006132906008611d2b565b905090565b6000808380549050036132ab5760009050613348565b600080848054905090505b808210156132ff5760006132ca83836131f7565b9050846132d78783613bd4565b6000015411156132e9578091506132f9565b6001816132f691906145f7565b92505b506132b6565b6000821180156133275750836133218660018561331c91906148a6565b613bd4565b60000154145b156133425760018261333991906148a6565b92505050613348565b81925050505b92915050565b613356610d5d565b15613396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338d9061553f565b60405180910390fd5b565b6001816000016000828254019250508190555050565b600082826040516020016133c39291906155cc565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561341c5760006003915091506134ba565b6000600187878787604051600081526020016040526040516134419493929190615603565b6020604051602081039080840390855afa158015613463573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036134b1576000600192509250506134ba565b80600092509250505b94509492505050565b600060048111156134d7576134d6615648565b5b8160048111156134ea576134e9615648565b5b0315613626576001600481111561350457613503615648565b5b81600481111561351757613516615648565b5b03613557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354e906156c3565b60405180910390fd5b6002600481111561356b5761356a615648565b5b81600481111561357e5761357d615648565b5b036135be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135b59061572f565b60405180910390fd5b600360048111156135d2576135d1615648565b5b8160048111156135e5576135e4615648565b5b03613625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161361c906157c1565b60405180910390fd5b5b50565b6000613633613284565b90508061364284600001613bf6565b101561369f5782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b60606136ca8273ffffffffffffffffffffffffffffffffffffffff16601460ff166136d1565b9050919050565b6060600060028360026136e491906157e1565b6136ee91906145f7565b67ffffffffffffffff81111561370757613706615823565b5b6040519080825280601f01601f1916602001820160405280156137395781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110613771576137706148da565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106137d5576137d46148da565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261381591906157e1565b61381f91906145f7565b90505b60018111156138bf577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110613861576138606148da565b5b1a60f81b828281518110613878576138776148da565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806138b890615852565b9050613822565b5060008414613903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138fa906158c7565b60405180910390fd5b8091505092915050565b600080600090506000608084901c111561392f57608083901c92506080810190505b6000604084901c111561394a57604083901c92506040810190505b6000602084901c111561396557602083901c92506020810190505b6000601084901c111561398057601083901c92506010810190505b6000600884901c111561399b57600883901c92506008810190505b6000600484901c11156139b657600483901c92506004810190505b6000600284901c11156139d157600283901c92506002810190505b6000600184901c11156139e5576001810190505b80915050919050565b60008183106139fd57816139ff565b825b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a6d90615959565b60405180910390fd5b613a8282600083612da2565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aff906159eb565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bbb9190613ee4565b60405180910390a3613bcf83600084612dba565b505050565b60008083600052826020600020019050613bed81613c42565b91505092915050565b600080828054905003613c0c5760009050613c3d565b8160018380549050613c1e91906148a6565b81548110613c2f57613c2e6148da565b5b906000526020600020015490505b919050565b6000819050919050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613cc981613c94565b8114613cd457600080fd5b50565b600081359050613ce681613cc0565b92915050565b600060208284031215613d0257613d01613c8a565b5b6000613d1084828501613cd7565b91505092915050565b60008115159050919050565b613d2e81613d19565b82525050565b6000602082019050613d496000830184613d25565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d89578082015181840152602081019050613d6e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613db182613d4f565b613dbb8185613d5a565b9350613dcb818560208601613d6b565b613dd481613d95565b840191505092915050565b60006020820190508181036000830152613df98184613da6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613e2c82613e01565b9050919050565b613e3c81613e21565b8114613e4757600080fd5b50565b600081359050613e5981613e33565b92915050565b6000819050919050565b613e7281613e5f565b8114613e7d57600080fd5b50565b600081359050613e8f81613e69565b92915050565b60008060408385031215613eac57613eab613c8a565b5b6000613eba85828601613e4a565b9250506020613ecb85828601613e80565b9150509250929050565b613ede81613e5f565b82525050565b6000602082019050613ef96000830184613ed5565b92915050565b600080600060608486031215613f1857613f17613c8a565b5b6000613f2686828701613e4a565b9350506020613f3786828701613e4a565b9250506040613f4886828701613e80565b9150509250925092565b6000819050919050565b613f6581613f52565b8114613f7057600080fd5b50565b600081359050613f8281613f5c565b92915050565b600060208284031215613f9e57613f9d613c8a565b5b6000613fac84828501613f73565b91505092915050565b613fbe81613f52565b82525050565b6000602082019050613fd96000830184613fb5565b92915050565b60008060408385031215613ff657613ff5613c8a565b5b600061400485828601613f73565b925050602061401585828601613e4a565b9150509250929050565b600060ff82169050919050565b6140358161401f565b82525050565b6000602082019050614050600083018461402c565b92915050565b60006020828403121561406c5761406b613c8a565b5b600061407a84828501613e80565b91505092915050565b60006020828403121561409957614098613c8a565b5b60006140a784828501613e4a565b91505092915050565b6140b981613e21565b82525050565b60006020820190506140d460008301846140b0565b92915050565b60006140e582613e21565b9050919050565b6140f5816140da565b811461410057600080fd5b50565b600081359050614112816140ec565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261413d5761413c614118565b5b8235905067ffffffffffffffff81111561415a5761415961411d565b5b60208301915083600182028301111561417657614175614122565b5b9250929050565b60008060008060006080868803121561419957614198613c8a565b5b60006141a788828901614103565b95505060206141b888828901613e4a565b94505060406141c988828901613e80565b935050606086013567ffffffffffffffff8111156141ea576141e9613c8f565b5b6141f688828901614127565b92509250509295509295909350565b600063ffffffff82169050919050565b61421e81614205565b82525050565b60006020820190506142396000830184614215565b92915050565b6142488161401f565b811461425357600080fd5b50565b6000813590506142658161423f565b92915050565b60008060008060008060c0878903121561428857614287613c8a565b5b600061429689828a01613e4a565b96505060206142a789828a01613e80565b95505060406142b889828a01613e80565b94505060606142c989828a01614256565b93505060806142da89828a01613f73565b92505060a06142eb89828a01613f73565b9150509295509295509295565b600080600080600080600060e0888a03121561431757614316613c8a565b5b60006143258a828b01613e4a565b97505060206143368a828b01613e4a565b96505060406143478a828b01613e80565b95505060606143588a828b01613e80565b94505060806143698a828b01614256565b93505060a061437a8a828b01613f73565b92505060c061438b8a828b01613f73565b91505092959891949750929550565b600080604083850312156143b1576143b0613c8a565b5b60006143bf85828601613e4a565b92505060206143d085828601613e4a565b9150509250929050565b6143e381614205565b81146143ee57600080fd5b50565b600081359050614400816143da565b92915050565b6000806040838503121561441d5761441c613c8a565b5b600061442b85828601613e4a565b925050602061443c858286016143f1565b9150509250929050565b61444f81614205565b82525050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b61448681614455565b82525050565b6040820160008201516144a26000850182614446565b5060208201516144b5602085018261447d565b50505050565b60006040820190506144d0600083018461448c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061451d57607f821691505b6020821081036145305761452f6144d6565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000614592602f83613d5a565b915061459d82614536565b604082019050919050565b600060208201905081810360008301526145c181614585565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061460282613e5f565b915061460d83613e5f565b9250828201905080821115614625576146246145c8565b5b92915050565b7f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400600082015250565b6000614661601f83613d5a565b915061466c8261462b565b602082019050919050565b6000602082019050818103600083015261469081614654565b9050919050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b60006146f3602b83613d5a565b91506146fe82614697565b604082019050919050565b60006020820190508181036000830152614722816146e6565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006147558385614729565b935061476283858461473a565b61476b83613d95565b840190509392505050565b600060a08201905061478b60008301896140b0565b61479860208301886140b0565b6147a56040830187613ed5565b6147b26060830186613ed5565b81810360808301526147c5818486614749565b9050979650505050505050565b6000815190506147e181613f5c565b92915050565b6000602082840312156147fd576147fc613c8a565b5b600061480b848285016147d2565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b6000614870602483613d5a565b915061487b82614814565b604082019050919050565b6000602082019050818103600083015261489f81614863565b9050919050565b60006148b182613e5f565b91506148bc83613e5f565b92508282039050818111156148d4576148d36145c8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614965602583613d5a565b915061497082614909565b604082019050919050565b6000602082019050818103600083015261499481614958565b9050919050565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b60006149d1601d83613d5a565b91506149dc8261499b565b602082019050919050565b60006020820190508181036000830152614a00816149c4565b9050919050565b6000608082019050614a1c6000830187613fb5565b614a2960208301866140b0565b614a366040830185613ed5565b614a436060830184613ed5565b95945050505050565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b6000614a82601983613d5a565b9150614a8d82614a4c565b602082019050919050565b60006020820190508181036000830152614ab181614a75565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000614aee601d83613d5a565b9150614af982614ab8565b602082019050919050565b60006020820190508181036000830152614b1d81614ae1565b9050919050565b600060c082019050614b396000830189613fb5565b614b4660208301886140b0565b614b5360408301876140b0565b614b606060830186613ed5565b614b6d6080830185613ed5565b614b7a60a0830184613ed5565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000614bbb601e83613d5a565b9150614bc682614b85565b602082019050919050565b60006020820190508181036000830152614bea81614bae565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b6000614c27601b83613d5a565b9150614c3282614bf1565b602082019050919050565b60006020820190508181036000830152614c5681614c1a565b9050919050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000614cb9603083613d5a565b9150614cc482614c5d565b604082019050919050565b60006020820190508181036000830152614ce881614cac565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614d25601f83613d5a565b9150614d3082614cef565b602082019050919050565b60006020820190508181036000830152614d5481614d18565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000614db7602783613d5a565b9150614dc282614d5b565b604082019050919050565b60006020820190508181036000830152614de681614daa565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b6000614e49602683613d5a565b9150614e5482614ded565b604082019050919050565b60006020820190508181036000830152614e7881614e3c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614edb602483613d5a565b9150614ee682614e7f565b604082019050919050565b60006020820190508181036000830152614f0a81614ece565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f6d602283613d5a565b9150614f7882614f11565b604082019050919050565b60006020820190508181036000830152614f9c81614f60565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614fd9601d83613d5a565b9150614fe482614fa3565b602082019050919050565b6000602082019050818103600083015261500881614fcc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061506b602583613d5a565b91506150768261500f565b604082019050919050565b6000602082019050818103600083015261509a8161505e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006150fd602383613d5a565b9150615108826150a1565b604082019050919050565b6000602082019050818103600083015261512c816150f0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061518f602683613d5a565b915061519a82615133565b604082019050919050565b600060208201905081810360008301526151be81615182565b9050919050565b7f4552433230536e617073686f743a206964206973203000000000000000000000600082015250565b60006151fb601683613d5a565b9150615206826151c5565b602082019050919050565b6000602082019050818103600083015261522a816151ee565b9050919050565b7f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000600082015250565b6000615267601d83613d5a565b915061527282615231565b602082019050919050565b600060208201905081810360008301526152968161525a565b9050919050565b60006040820190506152b26000830185613ed5565b6152bf6020830184613ed5565b9392505050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006153076017836152c6565b9150615312826152d1565b601782019050919050565b600061532882613d4f565b61533281856152c6565b9350615342818560208601613d6b565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006153846011836152c6565b915061538f8261534e565b601182019050919050565b60006153a5826152fa565b91506153b1828561531d565b91506153bc82615377565b91506153c8828461531d565b91508190509392505050565b600060a0820190506153e96000830188613fb5565b6153f66020830187613fb5565b6154036040830186613fb5565b6154106060830185613ed5565b61541d60808301846140b0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061546182613e5f565b915061546c83613e5f565b92508261547c5761547b615427565b5b828204905092915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006154bd601483613d5a565b91506154c882615487565b602082019050919050565b600060208201905081810360008301526154ec816154b0565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000615529601083613d5a565b9150615534826154f3565b602082019050919050565b600060208201905081810360008301526155588161551c565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006155956002836152c6565b91506155a08261555f565b600282019050919050565b6000819050919050565b6155c66155c182613f52565b6155ab565b82525050565b60006155d782615588565b91506155e382856155b5565b6020820191506155f382846155b5565b6020820191508190509392505050565b60006080820190506156186000830187613fb5565b615625602083018661402c565b6156326040830185613fb5565b61563f6060830184613fb5565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006156ad601883613d5a565b91506156b882615677565b602082019050919050565b600060208201905081810360008301526156dc816156a0565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000615719601f83613d5a565b9150615724826156e3565b602082019050919050565b600060208201905081810360008301526157488161570c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006157ab602283613d5a565b91506157b68261574f565b604082019050919050565b600060208201905081810360008301526157da8161579e565b9050919050565b60006157ec82613e5f565b91506157f783613e5f565b925082820261580581613e5f565b9150828204841483151761581c5761581b6145c8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061585d82613e5f565b9150600082036158705761586f6145c8565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006158b1602083613d5a565b91506158bc8261587b565b602082019050919050565b600060208201905081810360008301526158e0816158a4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615943602183613d5a565b915061594e826158e7565b604082019050919050565b6000602082019050818103600083015261597281615936565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006159d5602283613d5a565b91506159e082615979565b604082019050919050565b60006020820190508181036000830152615a04816159c8565b905091905056fea2646970667358221220da2cddbb79e6ea76055f5e3cef0ba953cbe29ce0f969f208a4f57f73527c8de664736f6c63430008120033