0x6080604052600436106101145760003560e01c80636a61e5fc116100a0578063a457c2d711610064578063a457c2d71461038f578063a6f2ae3a146103cc578063a9059cbb146103d6578063dd62ed3e14610413578063f2fde38b1461045057610114565b80636a61e5fc146102bc57806370a08231146102e5578063715018a6146103225780638da5cb5b1461033957806395d89b411461036457610114565b8063313ce567116100e7578063313ce567146101e957806339509351146102145780633ccfd60b1461025157806342966c68146102685780634b94f50e1461029157610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac575b600080fd5b34801561012557600080fd5b5061012e610479565b60405161013b9190611344565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906113ff565b61050b565b604051610178919061145a565b60405180910390f35b34801561018d57600080fd5b5061019661052e565b6040516101a39190611484565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061149f565b610538565b6040516101e0919061145a565b60405180910390f35b3480156101f557600080fd5b506101fe610567565b60405161020b919061150e565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906113ff565b610570565b604051610248919061145a565b60405180910390f35b34801561025d57600080fd5b506102666105a7565b005b34801561027457600080fd5b5061028f600480360381019061028a9190611529565b610641565b005b34801561029d57600080fd5b506102a66106dc565b6040516102b39190611484565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190611529565b6106e6565b005b3480156102f157600080fd5b5061030c60048036038101906103079190611556565b61073b565b6040516103199190611484565b60405180910390f35b34801561032e57600080fd5b50610337610783565b005b34801561034557600080fd5b5061034e610797565b60405161035b9190611592565b60405180910390f35b34801561037057600080fd5b506103796107c1565b6040516103869190611344565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b191906113ff565b610853565b6040516103c3919061145a565b60405180910390f35b6103d46108ca565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906113ff565b610999565b60405161040a919061145a565b60405180910390f35b34801561041f57600080fd5b5061043a600480360381019061043591906115ad565b6109bc565b6040516104479190611484565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190611556565b610a43565b005b6060600380546104889061161c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b49061161c565b80156105015780601f106104d657610100808354040283529160200191610501565b820191906000526020600020905b8154815290600101906020018083116104e457829003601f168201915b5050505050905090565b600080610516610ac6565b9050610523818585610ace565b600191505092915050565b6000600254905090565b600080610543610ac6565b9050610550858285610c97565b61055b858585610d23565b60019150509392505050565b60006012905090565b60008061057b610ac6565b905061059c81858561058d85896109bc565b610597919061167c565b610ace565b600191505092915050565b6105af610f99565b6000479050600081116105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee906116fc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561063d573d6000803e3d6000fd5b5050565b60008111610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b9061178e565b60405180910390fd5b8061068e3361073b565b10156106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c6906117fa565b60405180910390fd5b6106d93382611017565b50565b6000600754905090565b6106ee610f99565b60008111610731576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107289061188c565b60405180910390fd5b8060078190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61078b610f99565b61079560006111e4565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107d09061161c565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc9061161c565b80156108495780601f1061081e57610100808354040283529160200191610849565b820191906000526020600020905b81548152906001019060200180831161082c57829003601f168201915b5050505050905090565b60008061085e610ac6565b9050600061086c82866109bc565b9050838110156108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a89061191e565b60405180910390fd5b6108be8286868403610ace565b60019250505092915050565b6000341161090d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610904906119b0565b60405180910390fd5b6000670de0b6b3a76400006007543461092691906119d0565b6109309190611a41565b90508061094361093e610797565b61073b565b1015610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90611ae4565b60405180910390fd5b61099661098f610797565b3383610d23565b50565b6000806109a4610ac6565b90506109b1818585610d23565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a4b610f99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190611b76565b60405180910390fd5b610ac3816111e4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490611c08565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390611c9a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c8a9190611484565b60405180910390a3505050565b6000610ca384846109bc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d1d5781811015610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690611d06565b60405180910390fd5b610d1c8484848403610ace565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8990611d98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890611e2a565b60405180910390fd5b610e0c8383836112aa565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8990611ebc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f809190611484565b60405180910390a3610f938484846112af565b50505050565b610fa1610ac6565b73ffffffffffffffffffffffffffffffffffffffff16610fbf610797565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90611f28565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90611fba565b60405180910390fd5b611092826000836112aa565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f9061204c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111cb9190611484565b60405180910390a36111df836000846112af565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112ee5780820151818401526020810190506112d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611316826112b4565b61132081856112bf565b93506113308185602086016112d0565b611339816112fa565b840191505092915050565b6000602082019050818103600083015261135e818461130b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113968261136b565b9050919050565b6113a68161138b565b81146113b157600080fd5b50565b6000813590506113c38161139d565b92915050565b6000819050919050565b6113dc816113c9565b81146113e757600080fd5b50565b6000813590506113f9816113d3565b92915050565b6000806040838503121561141657611415611366565b5b6000611424858286016113b4565b9250506020611435858286016113ea565b9150509250929050565b60008115159050919050565b6114548161143f565b82525050565b600060208201905061146f600083018461144b565b92915050565b61147e816113c9565b82525050565b60006020820190506114996000830184611475565b92915050565b6000806000606084860312156114b8576114b7611366565b5b60006114c6868287016113b4565b93505060206114d7868287016113b4565b92505060406114e8868287016113ea565b9150509250925092565b600060ff82169050919050565b611508816114f2565b82525050565b600060208201905061152360008301846114ff565b92915050565b60006020828403121561153f5761153e611366565b5b600061154d848285016113ea565b91505092915050565b60006020828403121561156c5761156b611366565b5b600061157a848285016113b4565b91505092915050565b61158c8161138b565b82525050565b60006020820190506115a76000830184611583565b92915050565b600080604083850312156115c4576115c3611366565b5b60006115d2858286016113b4565b92505060206115e3858286016113b4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061163457607f821691505b602082108103611647576116466115ed565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611687826113c9565b9150611692836113c9565b92508282019050808211156116aa576116a961164d565b5b92915050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b60006116e66016836112bf565b91506116f1826116b0565b602082019050919050565b60006020820190508181036000830152611715816116d9565b9050919050565b7f416d6f756e7420746f206275726e2073686f756c64206265206772656174657260008201527f207468616e203000000000000000000000000000000000000000000000000000602082015250565b60006117786027836112bf565b91506117838261171c565b604082019050919050565b600060208201905081810360008301526117a78161176b565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320746f206275726e00000000000000600082015250565b60006117e46019836112bf565b91506117ef826117ae565b602082019050919050565b60006020820190508181036000830152611813816117d7565b9050919050565b7f546f6b656e2070726963652073686f756c64206265206772656174657220746860008201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b60006118766024836112bf565b91506118818261181a565b604082019050919050565b600060208201905081810360008301526118a581611869565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119086025836112bf565b9150611913826118ac565b604082019050919050565b60006020820190508181036000830152611937816118fb565b9050919050565b7f416d6f756e74206f66204554482073686f756c6420626520677265617465722060008201527f7468616e20300000000000000000000000000000000000000000000000000000602082015250565b600061199a6026836112bf565b91506119a58261193e565b604082019050919050565b600060208201905081810360008301526119c98161198d565b9050919050565b60006119db826113c9565b91506119e6836113c9565b92508282026119f4816113c9565b91508282048414831517611a0b57611a0a61164d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a4c826113c9565b9150611a57836113c9565b925082611a6757611a66611a12565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e7320617661696c61626c6520666f722060008201527f7075726368617365000000000000000000000000000000000000000000000000602082015250565b6000611ace6028836112bf565b9150611ad982611a72565b604082019050919050565b60006020820190508181036000830152611afd81611ac1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611b606026836112bf565b9150611b6b82611b04565b604082019050919050565b60006020820190508181036000830152611b8f81611b53565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611bf26024836112bf565b9150611bfd82611b96565b604082019050919050565b60006020820190508181036000830152611c2181611be5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c846022836112bf565b9150611c8f82611c28565b604082019050919050565b60006020820190508181036000830152611cb381611c77565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611cf0601d836112bf565b9150611cfb82611cba565b602082019050919050565b60006020820190508181036000830152611d1f81611ce3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611d826025836112bf565b9150611d8d82611d26565b604082019050919050565b60006020820190508181036000830152611db181611d75565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611e146023836112bf565b9150611e1f82611db8565b604082019050919050565b60006020820190508181036000830152611e4381611e07565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ea66026836112bf565b9150611eb182611e4a565b604082019050919050565b60006020820190508181036000830152611ed581611e99565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f126020836112bf565b9150611f1d82611edc565b602082019050919050565b60006020820190508181036000830152611f4181611f05565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fa46021836112bf565b9150611faf82611f48565b604082019050919050565b60006020820190508181036000830152611fd381611f97565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006120366022836112bf565b915061204182611fda565b604082019050919050565b6000602082019050818103600083015261206581612029565b905091905056fea2646970667358221220f9810f83ae5f4299cc6d2d277f3407c28f5b4ecfb00f91ded9a0c2d8ba48808564736f6c63430008120033
0x60806040526a52b7d2dcc80cd2e4000000600655692a5a058fc295ed0000006007553480156200002e57600080fd5b506040518060400160405280600781526020017f6169466f726765000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4149464f524745000000000000000000000000000000000000000000000000008152508160039081620000ac9190620005ba565b508060049081620000be9190620005ba565b505050620000e1620000d5620000fb60201b60201c565b6200010360201b60201c565b620000f533600654620001c960201b60201c565b620007bc565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200023b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002329062000702565b60405180910390fd5b6200024f600083836200033660201b60201c565b806002600082825462000263919062000753565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200031691906200079f565b60405180910390a362000332600083836200033b60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003c257607f821691505b602082108103620003d857620003d76200037a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000403565b6200044e868362000403565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200049b620004956200048f8462000466565b62000470565b62000466565b9050919050565b6000819050919050565b620004b7836200047a565b620004cf620004c682620004a2565b84845462000410565b825550505050565b600090565b620004e6620004d7565b620004f3818484620004ac565b505050565b5b818110156200051b576200050f600082620004dc565b600181019050620004f9565b5050565b601f8211156200056a576200053481620003de565b6200053f84620003f3565b810160208510156200054f578190505b620005676200055e85620003f3565b830182620004f8565b50505b505050565b600082821c905092915050565b60006200058f600019846008026200056f565b1980831691505092915050565b6000620005aa83836200057c565b9150826002028217905092915050565b620005c58262000340565b67ffffffffffffffff811115620005e157620005e06200034b565b5b620005ed8254620003a9565b620005fa8282856200051f565b600060209050601f8311600181146200063257600084156200061d578287015190505b6200062985826200059c565b86555062000699565b601f1984166200064286620003de565b60005b828110156200066c5784890151825560018201915060208501945060208101905062000645565b868310156200068c578489015162000688601f8916826200057c565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006ea601f83620006a1565b9150620006f782620006b2565b602082019050919050565b600060208201905081810360008301526200071d81620006db565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007608262000466565b91506200076d8362000466565b925082820190508082111562000788576200078762000724565b5b92915050565b620007998162000466565b82525050565b6000602082019050620007b660008301846200078e565b92915050565b6120a280620007cc6000396000f3fe6080604052600436106101145760003560e01c80636a61e5fc116100a0578063a457c2d711610064578063a457c2d71461038f578063a6f2ae3a146103cc578063a9059cbb146103d6578063dd62ed3e14610413578063f2fde38b1461045057610114565b80636a61e5fc146102bc57806370a08231146102e5578063715018a6146103225780638da5cb5b1461033957806395d89b411461036457610114565b8063313ce567116100e7578063313ce567146101e957806339509351146102145780633ccfd60b1461025157806342966c68146102685780634b94f50e1461029157610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac575b600080fd5b34801561012557600080fd5b5061012e610479565b60405161013b9190611344565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906113ff565b61050b565b604051610178919061145a565b60405180910390f35b34801561018d57600080fd5b5061019661052e565b6040516101a39190611484565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061149f565b610538565b6040516101e0919061145a565b60405180910390f35b3480156101f557600080fd5b506101fe610567565b60405161020b919061150e565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906113ff565b610570565b604051610248919061145a565b60405180910390f35b34801561025d57600080fd5b506102666105a7565b005b34801561027457600080fd5b5061028f600480360381019061028a9190611529565b610641565b005b34801561029d57600080fd5b506102a66106dc565b6040516102b39190611484565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190611529565b6106e6565b005b3480156102f157600080fd5b5061030c60048036038101906103079190611556565b61073b565b6040516103199190611484565b60405180910390f35b34801561032e57600080fd5b50610337610783565b005b34801561034557600080fd5b5061034e610797565b60405161035b9190611592565b60405180910390f35b34801561037057600080fd5b506103796107c1565b6040516103869190611344565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b191906113ff565b610853565b6040516103c3919061145a565b60405180910390f35b6103d46108ca565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906113ff565b610999565b60405161040a919061145a565b60405180910390f35b34801561041f57600080fd5b5061043a600480360381019061043591906115ad565b6109bc565b6040516104479190611484565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190611556565b610a43565b005b6060600380546104889061161c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b49061161c565b80156105015780601f106104d657610100808354040283529160200191610501565b820191906000526020600020905b8154815290600101906020018083116104e457829003601f168201915b5050505050905090565b600080610516610ac6565b9050610523818585610ace565b600191505092915050565b6000600254905090565b600080610543610ac6565b9050610550858285610c97565b61055b858585610d23565b60019150509392505050565b60006012905090565b60008061057b610ac6565b905061059c81858561058d85896109bc565b610597919061167c565b610ace565b600191505092915050565b6105af610f99565b6000479050600081116105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee906116fc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561063d573d6000803e3d6000fd5b5050565b60008111610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b9061178e565b60405180910390fd5b8061068e3361073b565b10156106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c6906117fa565b60405180910390fd5b6106d93382611017565b50565b6000600754905090565b6106ee610f99565b60008111610731576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107289061188c565b60405180910390fd5b8060078190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61078b610f99565b61079560006111e4565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107d09061161c565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc9061161c565b80156108495780601f1061081e57610100808354040283529160200191610849565b820191906000526020600020905b81548152906001019060200180831161082c57829003601f168201915b5050505050905090565b60008061085e610ac6565b9050600061086c82866109bc565b9050838110156108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a89061191e565b60405180910390fd5b6108be8286868403610ace565b60019250505092915050565b6000341161090d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610904906119b0565b60405180910390fd5b6000670de0b6b3a76400006007543461092691906119d0565b6109309190611a41565b90508061094361093e610797565b61073b565b1015610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90611ae4565b60405180910390fd5b61099661098f610797565b3383610d23565b50565b6000806109a4610ac6565b90506109b1818585610d23565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a4b610f99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190611b76565b60405180910390fd5b610ac3816111e4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490611c08565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390611c9a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c8a9190611484565b60405180910390a3505050565b6000610ca384846109bc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d1d5781811015610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690611d06565b60405180910390fd5b610d1c8484848403610ace565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8990611d98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890611e2a565b60405180910390fd5b610e0c8383836112aa565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8990611ebc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f809190611484565b60405180910390a3610f938484846112af565b50505050565b610fa1610ac6565b73ffffffffffffffffffffffffffffffffffffffff16610fbf610797565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90611f28565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90611fba565b60405180910390fd5b611092826000836112aa565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f9061204c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111cb9190611484565b60405180910390a36111df836000846112af565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112ee5780820151818401526020810190506112d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611316826112b4565b61132081856112bf565b93506113308185602086016112d0565b611339816112fa565b840191505092915050565b6000602082019050818103600083015261135e818461130b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113968261136b565b9050919050565b6113a68161138b565b81146113b157600080fd5b50565b6000813590506113c38161139d565b92915050565b6000819050919050565b6113dc816113c9565b81146113e757600080fd5b50565b6000813590506113f9816113d3565b92915050565b6000806040838503121561141657611415611366565b5b6000611424858286016113b4565b9250506020611435858286016113ea565b9150509250929050565b60008115159050919050565b6114548161143f565b82525050565b600060208201905061146f600083018461144b565b92915050565b61147e816113c9565b82525050565b60006020820190506114996000830184611475565b92915050565b6000806000606084860312156114b8576114b7611366565b5b60006114c6868287016113b4565b93505060206114d7868287016113b4565b92505060406114e8868287016113ea565b9150509250925092565b600060ff82169050919050565b611508816114f2565b82525050565b600060208201905061152360008301846114ff565b92915050565b60006020828403121561153f5761153e611366565b5b600061154d848285016113ea565b91505092915050565b60006020828403121561156c5761156b611366565b5b600061157a848285016113b4565b91505092915050565b61158c8161138b565b82525050565b60006020820190506115a76000830184611583565b92915050565b600080604083850312156115c4576115c3611366565b5b60006115d2858286016113b4565b92505060206115e3858286016113b4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061163457607f821691505b602082108103611647576116466115ed565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611687826113c9565b9150611692836113c9565b92508282019050808211156116aa576116a961164d565b5b92915050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b60006116e66016836112bf565b91506116f1826116b0565b602082019050919050565b60006020820190508181036000830152611715816116d9565b9050919050565b7f416d6f756e7420746f206275726e2073686f756c64206265206772656174657260008201527f207468616e203000000000000000000000000000000000000000000000000000602082015250565b60006117786027836112bf565b91506117838261171c565b604082019050919050565b600060208201905081810360008301526117a78161176b565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320746f206275726e00000000000000600082015250565b60006117e46019836112bf565b91506117ef826117ae565b602082019050919050565b60006020820190508181036000830152611813816117d7565b9050919050565b7f546f6b656e2070726963652073686f756c64206265206772656174657220746860008201527f616e203000000000000000000000000000000000000000000000000000000000602082015250565b60006118766024836112bf565b91506118818261181a565b604082019050919050565b600060208201905081810360008301526118a581611869565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119086025836112bf565b9150611913826118ac565b604082019050919050565b60006020820190508181036000830152611937816118fb565b9050919050565b7f416d6f756e74206f66204554482073686f756c6420626520677265617465722060008201527f7468616e20300000000000000000000000000000000000000000000000000000602082015250565b600061199a6026836112bf565b91506119a58261193e565b604082019050919050565b600060208201905081810360008301526119c98161198d565b9050919050565b60006119db826113c9565b91506119e6836113c9565b92508282026119f4816113c9565b91508282048414831517611a0b57611a0a61164d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a4c826113c9565b9150611a57836113c9565b925082611a6757611a66611a12565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e7320617661696c61626c6520666f722060008201527f7075726368617365000000000000000000000000000000000000000000000000602082015250565b6000611ace6028836112bf565b9150611ad982611a72565b604082019050919050565b60006020820190508181036000830152611afd81611ac1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611b606026836112bf565b9150611b6b82611b04565b604082019050919050565b60006020820190508181036000830152611b8f81611b53565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611bf26024836112bf565b9150611bfd82611b96565b604082019050919050565b60006020820190508181036000830152611c2181611be5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c846022836112bf565b9150611c8f82611c28565b604082019050919050565b60006020820190508181036000830152611cb381611c77565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611cf0601d836112bf565b9150611cfb82611cba565b602082019050919050565b60006020820190508181036000830152611d1f81611ce3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611d826025836112bf565b9150611d8d82611d26565b604082019050919050565b60006020820190508181036000830152611db181611d75565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611e146023836112bf565b9150611e1f82611db8565b604082019050919050565b60006020820190508181036000830152611e4381611e07565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ea66026836112bf565b9150611eb182611e4a565b604082019050919050565b60006020820190508181036000830152611ed581611e99565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f126020836112bf565b9150611f1d82611edc565b602082019050919050565b60006020820190508181036000830152611f4181611f05565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fa46021836112bf565b9150611faf82611f48565b604082019050919050565b60006020820190508181036000830152611fd381611f97565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006120366022836112bf565b915061204182611fda565b604082019050919050565b6000602082019050818103600083015261206581612029565b905091905056fea2646970667358221220f9810f83ae5f4299cc6d2d277f3407c28f5b4ecfb00f91ded9a0c2d8ba48808564736f6c63430008120033