6080604052734752ba5dbc23f44d87826276bf6fd6b1c372ad24600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b50604051620035523803806200355283398181016040528101906200008c91906200145a565b620000ac620000a062000f2f60201b60201c565b62000f3760201b60201c565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508260079081620001e491906200176a565b508160089081620001f691906200176a565b50600180600073c24091a8c88abd9fb3f5dbf5e5d61ea681aceb9173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000735542a4b2bd2b03d2aa131618cbd539cd84f7d31573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073758145a1999e78065dc1e1fdbe28e707d43314c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073af901b771c639f7635c94fc3a3c0b229cd1125f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073e174d75b4bd828060338415bd37b7b070e62c5ea73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073796aeda689693896fa27633c31a5a99fd2dac15d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000734bd8ce90842be8e54b2ae84dc652ef9eaaba9df973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000736a20edbf1a68ae669db89ff846ca6e975c67bca773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073016b2f35472b60619f34e295cabb83b9a80f8a9c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073ec7ed685f1750ae1772048a448faa48bf351b37573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073a67bf23e0767db3adb110a88b2e0a8b2de61db5273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073733a6cc6b4dffb4ead772355fd366bb6dc6c46e673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000734a80f66d3c2974e134ed5c6ececbba4376bc5c4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000731b069ceaaa1a57ba84311669af9e80024ccbd72a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000732ad118e0e8b3c2fabb0a8e49f91bedd9a80267c673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073985cf23fecfb3ff402d5e563274c17174998c50573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073d66836d7dc195fd0bdb5d61242b17ef020d037dc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073ad41173dcd506632ec2e008ad8b17def11acc1ab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000738ddb0f1949fd32e6f7ec9e54f4868c97069e8b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073bd670c24419ea69526e2884491faca0ea7a55d7e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073c89a2bda39bf7209a0be52b17b46aace7b69852973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000738f47bb230cf3dada0ec45fa028ba64b1d79456c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073bdf9ea2738a8a9e001be7a2a51519b78bfcbf76073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073ae36b5421284d583bce77de1196f1dc8e4b1db1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073a894b36217eb2f524395c395d2689c8d4cfba53f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073fd62e7532a8a03aa9105596a02deabf8920d368d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b815181101562000d6457600180600084848151811062000cfd5762000cfc62001851565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000cd8565b506000738909dc15e40173ff4699343b6eb8132c65e18ec690506000309050600073420000000000000000000000000000000000000690506000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161062000ddb57828462000dde565b83835b915091506000828260405160200162000df9929190620018d0565b604051602081830303815290604052805190602001209050858160405160200162000e26929190620019da565b6040516020818303038152906040528051906020012060001c600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001806000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000f1f33670de0b6b3a76400008c62000f13919062001a53565b62000ffb60201b60201c565b5050505050505050505062001b8a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200106d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010649062001aff565b60405180910390fd5b806006600082825462001081919062001b21565b9250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620010d9919062001b21565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001140919062001b6d565b60405180910390a35050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620011758162001160565b81146200118157600080fd5b50565b60008151905062001195816200116a565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620011f082620011a5565b810181811067ffffffffffffffff82111715620012125762001211620011b6565b5b80604052505050565b6000620012276200114c565b9050620012358282620011e5565b919050565b600067ffffffffffffffff821115620012585762001257620011b6565b5b6200126382620011a5565b9050602081019050919050565b60005b838110156200129057808201518184015260208101905062001273565b60008484015250505050565b6000620012b3620012ad846200123a565b6200121b565b905082815260208101848484011115620012d257620012d1620011a0565b5b620012df84828562001270565b509392505050565b600082601f830112620012ff57620012fe6200119b565b5b8151620013118482602086016200129c565b91505092915050565b600067ffffffffffffffff821115620013385762001337620011b6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200137b826200134e565b9050919050565b6200138d816200136e565b81146200139957600080fd5b50565b600081519050620013ad8162001382565b92915050565b6000620013ca620013c4846200131a565b6200121b565b90508083825260208201905060208402830185811115620013f057620013ef62001349565b5b835b818110156200141d57806200140888826200139c565b845260208401935050602081019050620013f2565b5050509392505050565b600082601f8301126200143f576200143e6200119b565b5b815162001451848260208601620013b3565b91505092915050565b6000806000806080858703121562001477576200147662001156565b5b6000620014878782880162001184565b945050602085015167ffffffffffffffff811115620014ab57620014aa6200115b565b5b620014b987828801620012e7565b935050604085015167ffffffffffffffff811115620014dd57620014dc6200115b565b5b620014eb87828801620012e7565b925050606085015167ffffffffffffffff8111156200150f576200150e6200115b565b5b6200151d8782880162001427565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200157c57607f821691505b60208210810362001592576200159162001534565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620015fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620015bd565b620016088683620015bd565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200164b620016456200163f8462001160565b62001620565b62001160565b9050919050565b6000819050919050565b62001667836200162a565b6200167f620016768262001652565b848454620015ca565b825550505050565b600090565b6200169662001687565b620016a38184846200165c565b505050565b5b81811015620016cb57620016bf6000826200168c565b600181019050620016a9565b5050565b601f8211156200171a57620016e48162001598565b620016ef84620015ad565b81016020851015620016ff578190505b620017176200170e85620015ad565b830182620016a8565b50505b505050565b600082821c905092915050565b60006200173f600019846008026200171f565b1980831691505092915050565b60006200175a83836200172c565b9150826002028217905092915050565b620017758262001529565b67ffffffffffffffff811115620017915762001790620011b6565b5b6200179d825462001563565b620017aa828285620016cf565b600060209050601f831160018114620017e25760008415620017cd578287015190505b620017d985826200174c565b86555062001849565b601f198416620017f28662001598565b60005b828110156200181c57848901518255600182019150602085019450602081019050620017f5565b868310156200183c578489015162001838601f8916826200172c565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160601b9050919050565b60006200189a8262001880565b9050919050565b6000620018ae826200188d565b9050919050565b620018ca620018c4826200136e565b620018a1565b82525050565b6000620018de8285620018b5565b601482019150620018f08284620018b5565b6014820191508190509392505050565b600081905092915050565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b60006200194360018362001900565b915062001950826200190b565b600182019050919050565b6000819050919050565b6000819050919050565b620019846200197e826200195b565b62001965565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f600082015250565b6000620019c260208362001900565b9150620019cf826200198a565b602082019050919050565b6000620019e78262001934565b9150620019f58285620018b5565b60148201915062001a0782846200196f565b60208201915062001a1882620019b3565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062001a608262001160565b915062001a6d8362001160565b925082820262001a7d8162001160565b9150828204841483151762001a975762001a9662001a24565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001ae7601f8362001a9e565b915062001af48262001aaf565b602082019050919050565b6000602082019050818103600083015262001b1a8162001ad8565b9050919050565b600062001b2e8262001160565b915062001b3b8362001160565b925082820190508082111562001b565762001b5562001a24565b5b92915050565b62001b678162001160565b82525050565b600060208201905062001b84600083018462001b5c565b92915050565b6119b88062001b9a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461018f5780638da5cb5b146101bf57806395d89b41146101dd578063a9059cbb146101fb578063b2c1cc8f1461022b578063dd62ed3e14610247576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce56714610155578063349902ae14610173575b600080fd5b6100c1610277565b6040516100ce919061126b565b60405180910390f35b6100f160048036038101906100ec9190611326565b610309565b6040516100fe9190611381565b60405180910390f35b61010f610327565b60405161011c91906113ab565b60405180910390f35b61013f600480360381019061013a91906113c6565b610331565b60405161014c9190611381565b60405180910390f35b61015d610429565b60405161016a9190611435565b60405180910390f35b61018d60048036038101906101889190611450565b610432565b005b6101a960048036038101906101a49190611450565b610508565b6040516101b691906113ab565b60405180910390f35b6101c7610551565b6040516101d4919061148c565b60405180910390f35b6101e561057a565b6040516101f2919061126b565b60405180910390f35b61021560048036038101906102109190611326565b61060c565b6040516102229190611381565b60405180910390f35b61024560048036038101906102409190611450565b61062a565b005b610261600480360381019061025c91906114a7565b610701565b60405161026e91906113ab565b60405180910390f35b60606007805461028690611516565b80601f01602080910402602001604051908101604052809291908181526020018280546102b290611516565b80156102ff5780601f106102d4576101008083540402835291602001916102ff565b820191906000526020600020905b8154815290600101906020018083116102e257829003601f168201915b5050505050905090565b600061031d610316610788565b8484610790565b6001905092915050565b6000600654905090565b600061033e848484610959565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610389610788565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610400906115b9565b60405180910390fd5b61041d85610415610788565b858403610790565b60019150509392505050565b60006012905090565b61043a610788565b73ffffffffffffffffffffffffffffffffffffffff16610458610551565b73ffffffffffffffffffffffffffffffffffffffff16146104ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a590611625565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461058990611516565b80601f01602080910402602001604051908101604052809291908181526020018280546105b590611516565b80156106025780601f106105d757610100808354040283529160200191610602565b820191906000526020600020905b8154815290600101906020018083116105e557829003601f168201915b5050505050905090565b6000610620610619610788565b8484610959565b6001905092915050565b610632610788565b73ffffffffffffffffffffffffffffffffffffffff16610650610551565b73ffffffffffffffffffffffffffffffffffffffff16146106a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d90611625565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f6906116b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590611749565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161094c91906113ab565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bf906117db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e9061186d565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610ae5575060011515600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610b925760011515600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610b91578173ffffffffffffffffffffffffffffffffffffffff167ff20d42404966523f3964cbc1a442002fa59777f81cda927a7b21b86a06e358bb82604051610b8891906113ab565b60405180910390a25b5b600060019050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610c46575060011515600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b8015610c9b5750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610ca557600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610d4c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610d5657600090505b8373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614158015610dbd57503273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015610e1a575060011515600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610e78576001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b73829f8c17cb74fc969217adb5374a02ba9469f2e073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f05575073829f8c17cb74fc969217adb5374a02ba9469f2e073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b15610f0f57600090505b8061104b576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000671bc16d674ec80000905080821015610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f906118ff565b60405180910390fd5b808203600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103d919061194e565b925050819055505050611170565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c9906118ff565b60405180910390fd5b828103600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611167919061194e565b92505081905550505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111cd91906113ab565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112155780820151818401526020810190506111fa565b60008484015250505050565b6000601f19601f8301169050919050565b600061123d826111db565b61124781856111e6565b93506112578185602086016111f7565b61126081611221565b840191505092915050565b600060208201905081810360008301526112858184611232565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112bd82611292565b9050919050565b6112cd816112b2565b81146112d857600080fd5b50565b6000813590506112ea816112c4565b92915050565b6000819050919050565b611303816112f0565b811461130e57600080fd5b50565b600081359050611320816112fa565b92915050565b6000806040838503121561133d5761133c61128d565b5b600061134b858286016112db565b925050602061135c85828601611311565b9150509250929050565b60008115159050919050565b61137b81611366565b82525050565b60006020820190506113966000830184611372565b92915050565b6113a5816112f0565b82525050565b60006020820190506113c0600083018461139c565b92915050565b6000806000606084860312156113df576113de61128d565b5b60006113ed868287016112db565b93505060206113fe868287016112db565b925050604061140f86828701611311565b9150509250925092565b600060ff82169050919050565b61142f81611419565b82525050565b600060208201905061144a6000830184611426565b92915050565b6000602082840312156114665761146561128d565b5b6000611474848285016112db565b91505092915050565b611486816112b2565b82525050565b60006020820190506114a1600083018461147d565b92915050565b600080604083850312156114be576114bd61128d565b5b60006114cc858286016112db565b92505060206114dd858286016112db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061152e57607f821691505b602082108103611541576115406114e7565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006115a36028836111e6565b91506115ae82611547565b604082019050919050565b600060208201905081810360008301526115d281611596565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061160f6020836111e6565b915061161a826115d9565b602082019050919050565b6000602082019050818103600083015261163e81611602565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006116a16024836111e6565b91506116ac82611645565b604082019050919050565b600060208201905081810360008301526116d081611694565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006117336022836111e6565b915061173e826116d7565b604082019050919050565b6000602082019050818103600083015261176281611726565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117c56025836111e6565b91506117d082611769565b604082019050919050565b600060208201905081810360008301526117f4816117b8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006118576023836111e6565b9150611862826117fb565b604082019050919050565b600060208201905081810360008301526118868161184a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006118e96026836111e6565b91506118f48261188d565b604082019050919050565b60006020820190508181036000830152611918816118dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611959826112f0565b9150611964836112f0565b925082820190508082111561197c5761197b61191f565b5b9291505056fea2646970667358221220f0db5a46fe5147f2bce30c581eac10b9203ca4662fdb63df32a87bd168b7fd9464736f6c6343000818003300000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000045a6f72610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045a4f524100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000ebfc639d17404faff0d3ee87409348a0707324bd0000000000000000000000007afd722684a2135f1a020df045ffefe63e3b3e9c00000000000000000000000056c635e953541bd68554319f943739ca581c2c4d0000000000000000000000009aebdecdff585f1e357ab33d8775e04124d6370100000000000000000000000040f66620d86efa9cac749779df409360250391b900000000000000000000000028021f9a5a2be51cf03b877dd00b66263b4fda28000000000000000000000000cd336e95f5c55d0b6b14f4ca7c50f7fdc9c74483000000000000000000000000fa58a781f320b547995fcef5592c677b37fa258600000000000000000000000083d716684f2a6cd9528c5271c5c310690f2cf91b000000000000000000000000130f484c3da463d101a2347ae8d7648a66f4f2780000000000000000000000004064aa29fcfbce3c6560ee46beccf3d651dd798a000000000000000000000000b2fb919f2e6294a0664cf98c15da4996c805768b0000000000000000000000008361fddfea4b1aa50bb1c4ffb7ef969ff07e645f0000000000000000000000000a775babf918fc56c850923c848c174fe194f3940000000000000000000000005104d2e575b29e1d0b3726af4078756d9b5606a4000000000000000000000000211df07146c203693f6f947f50b5701fafcba38e0000000000000000000000008728d53593cef2b392626e588e9d7e67cdc151d0000000000000000000000000142a9f715f34733ed2e60a030ae930e012edc95e000000000000000000000000927ee854ee826e5786aadb8ad11c22be419a47f50000000000000000000000004b46830f823178bf4c2b1496504de6c83e5cce7a00000000000000000000000060d03f1d75d530e92f30b47a8979f1d6465fd84800000000000000000000000097b20c0b2a0a55caab7e133df56eef98a4b512360000000000000000000000000fc07d519eb743ece099c06cafb25bdd0886f686000000000000000000000000607bc070e3d8fb706f9ffdae509e9f048ee4affb000000000000000000000000cda76140f73c14b20e84ba183f35e6e9e3d018bf000000000000000000000000d6f4332a11864bd87a288966bcbcf2aae8ec351d00000000000000000000000068c106faf36e0e1ad535761c7edaa6d2d77c6e8900000000000000000000000042b4181f9e198f7730526e160ecf69eac19c6873000000000000000000000000cd18104e7f334394cfb0860957289e14be6bda72000000000000000000000000276312390717c37da72722a160539fb4f1ae771a0000000000000000000000002f202100cf922197fa0b06eeef0f49072d25bd600000000000000000000000009ead25b0cf2640bb77df5d2e7a28715227847d310000000000000000000000002dd7a106da9858c2287923ca70f74a0cafa7093400000000000000000000000069c213061b11af724ac219021834dcb4ad6f6fa1000000000000000000000000ddb60900e9516eabfe3a521ff8526853cb31d05c0000000000000000000000002d6b1e9fd265b6dc899de0a8031819e4529c31530000000000000000000000006a9cdb99eeb12b56999987e930fdb1ce0cce9ec00000000000000000000000003d62e4546a2aae3f74080029b350ccb2fdcdff7e000000000000000000000000170f9e29bce9cc82d253aa258a771169c78e25f20000000000000000000000008b615022eda4d7098fe622629579b3de450031f0000000000000000000000000d7f774ca12257f7dcecda512d9af972f886f662a0000000000000000000000005b175c086f3ce4c69c564bac86d38c6827c2e49600000000000000000000000042eaa4e88ed2907c0e5c9f3691bc63ddea8bc19c000000000000000000000000972fa59b541752edecfab6b88c9bfe45b973f9770000000000000000000000009a96e4dddca6c8a3dc1de32528c1af29de35899f000000000000000000000000e15a6a8dd2d5a2fea8133207c67e52ed1755d135000000000000000000000000c3eafc5c3408d46639aafe81432cda07a341e02900000000000000000000000029e18a9040bd078ec317da98155cdd64ac8b84a6000000000000000000000000dc3d68abcae0b8da5174fe74222d34215bc6b9a1000000000000000000000000d4cf1638befb12b39d31c5f3b458a51142da1b99000000000000000000000000c259138708a6aa8682a42f843feef1131a41b5af000000000000000000000000bc53b40a2f2e455640626c1a82a98c35e547c52100000000000000000000000000e54ef8f1f216a9de4afbda5b2c8e7c6a28ce62000000000000000000000000a3ecbfc9b9186a7e55caaabd21bb3f0edf78466f0000000000000000000000006a84c9aba55226457a4802a142c6f5ce19a2407d00000000000000000000000027d72d14dba2e4b04279b8066602fbed004e8db10000000000000000000000006299155242dae011f8c66e21177f77e1a51921d0000000000000000000000000f65a68c7507b9c7d639c678a58a3e0c4b3ad6e1300000000000000000000000053a4b1a991ac78f6dfe487eefd867e2ce982738e0000000000000000000000003971fefdf674c0aca35f5c0b0c03d0aad9a41862