0x6080604052600436106101f25760003560e01c8063768dc7101161010d578063a457c2d7116100a0578063b95fc3791161006f578063b95fc3791461071c578063dafd18e914610747578063dd62ed3e14610784578063e39964f6146107c1578063fcf84b41146107ec576101f9565b8063a457c2d71461064c578063a9059cbb14610689578063b1cb1582146106c6578063b43665e2146106f1576101f9565b8063818d12ad116100dc578063818d12ad146105a05780638da5cb5b146105cb57806395d89b41146105f6578063960ee2f514610621576101f9565b8063768dc710146104e257806378109e541461051f5780637d1db4a51461054a578063805c0e0f14610575576101f9565b8063395093511161018557806355b1c1161161015457806355b1c11614610438578063603176251461046357806370a082311461048e578063715018a6146104cb576101f9565b8063395093511461037a5780633f70a495146103b757806349bd5a5e146103e25780634a74bb021461040d576101f9565b806321dbd9eb116101c157806321dbd9eb146102bc578063220f6696146102e757806323b872dd14610312578063313ce5671461034f576101f9565b806306fdde03146101fe578063095ea7b3146102295780631694505e1461026657806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610817565b6040516102209190612620565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b91906126db565b610854565b60405161025d9190612736565b60405180910390f35b34801561027257600080fd5b5061027b610872565b60405161028891906127b0565b60405180910390f35b34801561029d57600080fd5b506102a6610898565b6040516102b391906127da565b60405180910390f35b3480156102c857600080fd5b506102d16108a2565b6040516102de91906127da565b60405180910390f35b3480156102f357600080fd5b506102fc6108a8565b6040516103099190612736565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906127f5565b6108bb565b6040516103469190612736565b60405180910390f35b34801561035b57600080fd5b50610364610994565b6040516103719190612864565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c91906126db565b61099d565b6040516103ae9190612736565b60405180910390f35b3480156103c357600080fd5b506103cc610a50565b6040516103d991906127da565b60405180910390f35b3480156103ee57600080fd5b506103f7610a56565b604051610404919061288e565b60405180910390f35b34801561041957600080fd5b50610422610a7c565b60405161042f9190612736565b60405180910390f35b34801561044457600080fd5b5061044d610a8f565b60405161045a91906127da565b60405180910390f35b34801561046f57600080fd5b50610478610a95565b60405161048591906127da565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b091906128a9565b610a9b565b6040516104c291906127da565b60405180910390f35b3480156104d757600080fd5b506104e0610ae4565b005b3480156104ee57600080fd5b50610509600480360381019061050491906128a9565b610ba2565b6040516105169190612736565b60405180910390f35b34801561052b57600080fd5b50610534610bc2565b60405161054191906127da565b60405180910390f35b34801561055657600080fd5b5061055f610bc8565b60405161056c91906127da565b60405180910390f35b34801561058157600080fd5b5061058a610bce565b60405161059791906128f7565b60405180910390f35b3480156105ac57600080fd5b506105b5610bd4565b6040516105c291906128f7565b60405180910390f35b3480156105d757600080fd5b506105e0610bfa565b6040516105ed919061288e565b60405180910390f35b34801561060257600080fd5b5061060b610c23565b6040516106189190612620565b60405180910390f35b34801561062d57600080fd5b50610636610c60565b60405161064391906127da565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e91906126db565b610c66565b6040516106809190612736565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab91906126db565b610d33565b6040516106bd9190612736565b60405180910390f35b3480156106d257600080fd5b506106db610d51565b6040516106e891906127da565b60405180910390f35b3480156106fd57600080fd5b50610706610d57565b60405161071391906128f7565b60405180910390f35b34801561072857600080fd5b50610731610d7d565b60405161073e91906127da565b60405180910390f35b34801561075357600080fd5b5061076e600480360381019061076991906126db565b610dfd565b60405161077b9190612736565b60405180910390f35b34801561079057600080fd5b506107ab60048036038101906107a69190612912565b610fb1565b6040516107b891906127da565b60405180910390f35b3480156107cd57600080fd5b506107d6611038565b6040516107e39190612736565b60405180910390f35b3480156107f857600080fd5b5061080161104b565b60405161080e91906128f7565b60405180910390f35b60606040518060400160405280601181526020017f536861646f77204f66205368616b69646f000000000000000000000000000000815250905090565b6000610868610861611051565b8484611059565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600c5481565b601360149054906101000a900460ff1681565b60006108c88484846111ed565b610989846108d4611051565b6109848560405180606001604052806028815260200161303b60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093a611051565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118419092919063ffffffff16565b611059565b600190509392505050565b60006009905090565b6000610a466109aa611051565b84610a4185600260006109bb611051565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189690919063ffffffff16565b611059565b6001905092915050565b60085481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900460ff1681565b600d5481565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60105481565b61dead81565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f532e4f2e53000000000000000000000000000000000000000000000000000000815250905090565b600b5481565b6000610d29610c73611051565b84610d24856040518060600160405280602581526020016130636025913960026000610c9d611051565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118419092919063ffffffff16565b611059565b6001905092915050565b6000610d47610d40611051565b84846111ed565b6001905092915050565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610d90610d8b611051565b6118ac565b9050808015610da457506000151560001515145b8015610db65750600015156001151514155b15610df4576000610dc630610a9b565b905060008190506001600760016101000a81548160ff021916908315150217905550610df181611972565b50505b61010091505090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e649061299e565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ea8919061288e565b602060405180830381865afa158015610ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee991906129d3565b9050600060648483610efb9190612a2f565b610f059190612aa0565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610f64929190612af2565b6020604051808303816000875af1158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190612b47565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760019054906101000a900460ff1681565b61dead81565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110c35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990612bc0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e091906127da565b60405180910390a3505050565b6111f5610bfa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561125e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561129657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112d0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561132a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113695750611339610bfa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cd57600061137983610a9b565b9050600e54828261138a9190612be0565b11156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612c60565b60405180910390fd5b505b6113d5610bfa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611478575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114fb576010548111156114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190612ccc565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115655750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612d38565b60405180910390fd5b600081116115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90612dca565b60405180910390fd5b600760039054906101000a900460ff1660ff16600760029054906101000a900460ff1660ff16101580156116285750601360149054906101000a900460ff16155b80156116825750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561169a5750600760009054906101000a900460ff165b156116e35760006116aa30610a9b565b90506010548111156116bc5760105490505b6000600760026101000a81548160ff021916908360ff1602179055506116e181611972565b505b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061178c5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561179a576000915061182d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117f457600190505b6007600281819054906101000a900460ff168092919061181390612dea565b91906101000a81548160ff021916908360ff160217905550505b61183a8585858585611c07565b5050505050565b6000838311158290611889576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118809190612620565b60405180910390fd5b5082840390509392505050565b600081836118a49190612be0565b905092915050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508080156119115750600015156001151514155b156119695760016014546119259190612e13565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80915050919050565b6001601360146101000a81548160ff021916908315150217905550600061199830610a9b565b90506000600654826119aa9190612e13565b905060006064600c54856119be9190612a2f565b6119c89190612aa0565b9050806006546119d89190612e13565b600681905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2b9190612be0565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb9190612e13565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600a5486611b109190612a2f565b611b1a9190612aa0565b905060006064600b5487611b2e9190612a2f565b611b389190612aa0565b905060006064600d5488611b4c9190612a2f565b611b569190612aa0565b90506000818385611b679190612be0565b611b719190612be0565b9050600760019054906101000a900460ff1615611b8c578590505b611b9581612302565b6000479050611bc6600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612545565b6000600760016101000a81548160ff02191690831515021790555050505050505050506000601360146101000a81548160ff02191690831515021790555050565b81611ddc5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c579190612e13565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce59190612be0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d8591906127da565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dd75782600654611dd09190612e13565b6006819055505b6122fb565b8015612070576000606460085485611df49190612a2f565b611dfe9190612aa0565b905060008185611e0e9190612e13565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5b9190612e13565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee99190612be0565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f779190612be0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161201791906127da565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361206957806006546120629190612e13565b6006819055505b50506122fa565b60006064600954856120829190612a2f565b61208c9190612aa0565b90506000818561209c9190612e13565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e99190612e13565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121779190612be0565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122059190612be0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a591906127da565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122f757806006546122f09190612e13565b6006819055505b50505b5b5050505050565b6000600267ffffffffffffffff81111561231f5761231e612e47565b5b60405190808252806020026020018201604052801561234d5781602001602082028036833780820191505090505b509050308160008151811061236557612364612e76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561240c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124309190612eba565b8160018151811061244457612443612e76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ab30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611059565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250f959493929190612fe0565b600060405180830381600087803b15801561252957600080fd5b505af115801561253d573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561258b573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125ca5780820151818401526020810190506125af565b60008484015250505050565b6000601f19601f8301169050919050565b60006125f282612590565b6125fc818561259b565b935061260c8185602086016125ac565b612615816125d6565b840191505092915050565b6000602082019050818103600083015261263a81846125e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061267282612647565b9050919050565b61268281612667565b811461268d57600080fd5b50565b60008135905061269f81612679565b92915050565b6000819050919050565b6126b8816126a5565b81146126c357600080fd5b50565b6000813590506126d5816126af565b92915050565b600080604083850312156126f2576126f1612642565b5b600061270085828601612690565b9250506020612711858286016126c6565b9150509250929050565b60008115159050919050565b6127308161271b565b82525050565b600060208201905061274b6000830184612727565b92915050565b6000819050919050565b600061277661277161276c84612647565b612751565b612647565b9050919050565b60006127888261275b565b9050919050565b600061279a8261277d565b9050919050565b6127aa8161278f565b82525050565b60006020820190506127c560008301846127a1565b92915050565b6127d4816126a5565b82525050565b60006020820190506127ef60008301846127cb565b92915050565b60008060006060848603121561280e5761280d612642565b5b600061281c86828701612690565b935050602061282d86828701612690565b925050604061283e868287016126c6565b9150509250925092565b600060ff82169050919050565b61285e81612848565b82525050565b60006020820190506128796000830184612855565b92915050565b61288881612667565b82525050565b60006020820190506128a3600083018461287f565b92915050565b6000602082840312156128bf576128be612642565b5b60006128cd84828501612690565b91505092915050565b60006128e182612647565b9050919050565b6128f1816128d6565b82525050565b600060208201905061290c60008301846128e8565b92915050565b6000806040838503121561292957612928612642565b5b600061293785828601612690565b925050602061294885828601612690565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612988601b8361259b565b915061299382612952565b602082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b6000815190506129cd816126af565b92915050565b6000602082840312156129e9576129e8612642565b5b60006129f7848285016129be565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a3a826126a5565b9150612a45836126a5565b9250828202612a53816126a5565b91508282048414831517612a6a57612a69612a00565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aab826126a5565b9150612ab6836126a5565b925082612ac657612ac5612a71565b5b828204905092915050565b6000612adc8261277d565b9050919050565b612aec81612ad1565b82525050565b6000604082019050612b076000830185612ae3565b612b1460208301846127cb565b9392505050565b612b248161271b565b8114612b2f57600080fd5b50565b600081519050612b4181612b1b565b92915050565b600060208284031215612b5d57612b5c612642565b5b6000612b6b84828501612b32565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612baa60118361259b565b9150612bb582612b74565b602082019050919050565b60006020820190508181036000830152612bd981612b9d565b9050919050565b6000612beb826126a5565b9150612bf6836126a5565b9250828201905080821115612c0e57612c0d612a00565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612c4a60128361259b565b9150612c5582612c14565b602082019050919050565b60006020820190508181036000830152612c7981612c3d565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b6000612cb660178361259b565b9150612cc182612c80565b602082019050919050565b60006020820190508181036000830152612ce581612ca9565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b6000612d2260158361259b565b9150612d2d82612cec565b602082019050919050565b60006020820190508181036000830152612d5181612d15565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612db460258361259b565b9150612dbf82612d58565b604082019050919050565b60006020820190508181036000830152612de381612da7565b9050919050565b6000612df582612848565b915060ff8203612e0857612e07612a00565b5b600182019050919050565b6000612e1e826126a5565b9150612e29836126a5565b9250828203905081811115612e4157612e40612a00565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612eb481612679565b92915050565b600060208284031215612ed057612ecf612642565b5b6000612ede84828501612ea5565b91505092915050565b6000819050919050565b6000612f0c612f07612f0284612ee7565b612751565b6126a5565b9050919050565b612f1c81612ef1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f5781612667565b82525050565b6000612f698383612f4e565b60208301905092915050565b6000602082019050919050565b6000612f8d82612f22565b612f978185612f2d565b9350612fa283612f3e565b8060005b83811015612fd3578151612fba8882612f5d565b9750612fc583612f75565b925050600181019050612fa6565b5085935050505092915050565b600060a082019050612ff560008301886127cb565b6130026020830187612f13565b81810360408301526130148186612f82565b9050613023606083018561287f565b61303060808301846127cb565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a706b04994b07627b788ada7909c1493a3a83dd16cb801cc6c0a1eb16e384cc664736f6c63430008110033
0x6080604052739f4af9782e15652511ad7ae5a46e27483e9f200a600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f4af9782e15652511ad7ae5a46e27483e9f200a600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000be91906200091a565b620f4240620000ce91906200096b565b6006556001600760006101000a81548160ff0219169083151502179055506000600760016101000a81548160ff0219169083151502179055506000600760026101000a81548160ff021916908360ff160217905550602a600760036101000a81548160ff021916908360ff16021790555060006008556000600955605a600a556000600b556000600c55600a600d556064806006546200016f91906200096b565b6200017b9190620009e5565b600e55600e54600f556064806006546200019691906200096b565b620001a29190620009e5565b60105560105460115569152d02c7e14af6800000601455348015620001c657600080fd5b50739f4af9782e15652511ad7ae5a46e27483e9f200a6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360065460016000620002ad6200075760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000350573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000376919062000a87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000404919062000a87565b6040518363ffffffff1660e01b81526004016200042392919062000aca565b6020604051808303816000875af115801562000443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000469919062000a87565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005006200075760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006e76200075760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000748919062000b08565b60405180910390a35062000b25565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200080e57808604811115620007e657620007e562000780565b5b6001851615620007f65780820291505b80810290506200080685620007af565b9450620007c6565b94509492505050565b600082620008295760019050620008fc565b81620008395760009050620008fc565b81600181146200085257600281146200085d5762000893565b6001915050620008fc565b60ff84111562000872576200087162000780565b5b8360020a9150848211156200088c576200088b62000780565b5b50620008fc565b5060208310610133831016604e8410600b8410161715620008cd5782820a905083811115620008c757620008c662000780565b5b620008fc565b620008dc8484846001620007bc565b92509050818404811115620008f657620008f562000780565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009278262000903565b915062000934836200090d565b9250620009637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000817565b905092915050565b6000620009788262000903565b9150620009858362000903565b9250828202620009958162000903565b91508282048414831517620009af57620009ae62000780565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009f28262000903565b9150620009ff8362000903565b92508262000a125762000a11620009b6565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a4f8262000a22565b9050919050565b62000a618162000a42565b811462000a6d57600080fd5b50565b60008151905062000a818162000a56565b92915050565b60006020828403121562000aa05762000a9f62000a1d565b5b600062000ab08482850162000a70565b91505092915050565b62000ac48162000a42565b82525050565b600060408201905062000ae1600083018562000ab9565b62000af0602083018462000ab9565b9392505050565b62000b028162000903565b82525050565b600060208201905062000b1f600083018462000af7565b92915050565b6130bd8062000b356000396000f3fe6080604052600436106101f25760003560e01c8063768dc7101161010d578063a457c2d7116100a0578063b95fc3791161006f578063b95fc3791461071c578063dafd18e914610747578063dd62ed3e14610784578063e39964f6146107c1578063fcf84b41146107ec576101f9565b8063a457c2d71461064c578063a9059cbb14610689578063b1cb1582146106c6578063b43665e2146106f1576101f9565b8063818d12ad116100dc578063818d12ad146105a05780638da5cb5b146105cb57806395d89b41146105f6578063960ee2f514610621576101f9565b8063768dc710146104e257806378109e541461051f5780637d1db4a51461054a578063805c0e0f14610575576101f9565b8063395093511161018557806355b1c1161161015457806355b1c11614610438578063603176251461046357806370a082311461048e578063715018a6146104cb576101f9565b8063395093511461037a5780633f70a495146103b757806349bd5a5e146103e25780634a74bb021461040d576101f9565b806321dbd9eb116101c157806321dbd9eb146102bc578063220f6696146102e757806323b872dd14610312578063313ce5671461034f576101f9565b806306fdde03146101fe578063095ea7b3146102295780631694505e1461026657806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610817565b6040516102209190612620565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b91906126db565b610854565b60405161025d9190612736565b60405180910390f35b34801561027257600080fd5b5061027b610872565b60405161028891906127b0565b60405180910390f35b34801561029d57600080fd5b506102a6610898565b6040516102b391906127da565b60405180910390f35b3480156102c857600080fd5b506102d16108a2565b6040516102de91906127da565b60405180910390f35b3480156102f357600080fd5b506102fc6108a8565b6040516103099190612736565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906127f5565b6108bb565b6040516103469190612736565b60405180910390f35b34801561035b57600080fd5b50610364610994565b6040516103719190612864565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c91906126db565b61099d565b6040516103ae9190612736565b60405180910390f35b3480156103c357600080fd5b506103cc610a50565b6040516103d991906127da565b60405180910390f35b3480156103ee57600080fd5b506103f7610a56565b604051610404919061288e565b60405180910390f35b34801561041957600080fd5b50610422610a7c565b60405161042f9190612736565b60405180910390f35b34801561044457600080fd5b5061044d610a8f565b60405161045a91906127da565b60405180910390f35b34801561046f57600080fd5b50610478610a95565b60405161048591906127da565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b091906128a9565b610a9b565b6040516104c291906127da565b60405180910390f35b3480156104d757600080fd5b506104e0610ae4565b005b3480156104ee57600080fd5b50610509600480360381019061050491906128a9565b610ba2565b6040516105169190612736565b60405180910390f35b34801561052b57600080fd5b50610534610bc2565b60405161054191906127da565b60405180910390f35b34801561055657600080fd5b5061055f610bc8565b60405161056c91906127da565b60405180910390f35b34801561058157600080fd5b5061058a610bce565b60405161059791906128f7565b60405180910390f35b3480156105ac57600080fd5b506105b5610bd4565b6040516105c291906128f7565b60405180910390f35b3480156105d757600080fd5b506105e0610bfa565b6040516105ed919061288e565b60405180910390f35b34801561060257600080fd5b5061060b610c23565b6040516106189190612620565b60405180910390f35b34801561062d57600080fd5b50610636610c60565b60405161064391906127da565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e91906126db565b610c66565b6040516106809190612736565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab91906126db565b610d33565b6040516106bd9190612736565b60405180910390f35b3480156106d257600080fd5b506106db610d51565b6040516106e891906127da565b60405180910390f35b3480156106fd57600080fd5b50610706610d57565b60405161071391906128f7565b60405180910390f35b34801561072857600080fd5b50610731610d7d565b60405161073e91906127da565b60405180910390f35b34801561075357600080fd5b5061076e600480360381019061076991906126db565b610dfd565b60405161077b9190612736565b60405180910390f35b34801561079057600080fd5b506107ab60048036038101906107a69190612912565b610fb1565b6040516107b891906127da565b60405180910390f35b3480156107cd57600080fd5b506107d6611038565b6040516107e39190612736565b60405180910390f35b3480156107f857600080fd5b5061080161104b565b60405161080e91906128f7565b60405180910390f35b60606040518060400160405280601181526020017f536861646f77204f66205368616b69646f000000000000000000000000000000815250905090565b6000610868610861611051565b8484611059565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600c5481565b601360149054906101000a900460ff1681565b60006108c88484846111ed565b610989846108d4611051565b6109848560405180606001604052806028815260200161303b60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093a611051565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118419092919063ffffffff16565b611059565b600190509392505050565b60006009905090565b6000610a466109aa611051565b84610a4185600260006109bb611051565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189690919063ffffffff16565b611059565b6001905092915050565b60085481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900460ff1681565b600d5481565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60105481565b61dead81565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f532e4f2e53000000000000000000000000000000000000000000000000000000815250905090565b600b5481565b6000610d29610c73611051565b84610d24856040518060600160405280602581526020016130636025913960026000610c9d611051565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118419092919063ffffffff16565b611059565b6001905092915050565b6000610d47610d40611051565b84846111ed565b6001905092915050565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610d90610d8b611051565b6118ac565b9050808015610da457506000151560001515145b8015610db65750600015156001151514155b15610df4576000610dc630610a9b565b905060008190506001600760016101000a81548160ff021916908315150217905550610df181611972565b50505b61010091505090565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e649061299e565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ea8919061288e565b602060405180830381865afa158015610ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee991906129d3565b9050600060648483610efb9190612a2f565b610f059190612aa0565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610f64929190612af2565b6020604051808303816000875af1158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190612b47565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760019054906101000a900460ff1681565b61dead81565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110c35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990612bc0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e091906127da565b60405180910390a3505050565b6111f5610bfa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561125e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561129657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112d0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561132a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113695750611339610bfa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cd57600061137983610a9b565b9050600e54828261138a9190612be0565b11156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612c60565b60405180910390fd5b505b6113d5610bfa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611478575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114fb576010548111156114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190612ccc565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115655750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612d38565b60405180910390fd5b600081116115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90612dca565b60405180910390fd5b600760039054906101000a900460ff1660ff16600760029054906101000a900460ff1660ff16101580156116285750601360149054906101000a900460ff16155b80156116825750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561169a5750600760009054906101000a900460ff165b156116e35760006116aa30610a9b565b90506010548111156116bc5760105490505b6000600760026101000a81548160ff021916908360ff1602179055506116e181611972565b505b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061178c5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561179a576000915061182d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117f457600190505b6007600281819054906101000a900460ff168092919061181390612dea565b91906101000a81548160ff021916908360ff160217905550505b61183a8585858585611c07565b5050505050565b6000838311158290611889576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118809190612620565b60405180910390fd5b5082840390509392505050565b600081836118a49190612be0565b905092915050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508080156119115750600015156001151514155b156119695760016014546119259190612e13565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80915050919050565b6001601360146101000a81548160ff021916908315150217905550600061199830610a9b565b90506000600654826119aa9190612e13565b905060006064600c54856119be9190612a2f565b6119c89190612aa0565b9050806006546119d89190612e13565b600681905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2b9190612be0565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb9190612e13565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600a5486611b109190612a2f565b611b1a9190612aa0565b905060006064600b5487611b2e9190612a2f565b611b389190612aa0565b905060006064600d5488611b4c9190612a2f565b611b569190612aa0565b90506000818385611b679190612be0565b611b719190612be0565b9050600760019054906101000a900460ff1615611b8c578590505b611b9581612302565b6000479050611bc6600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612545565b6000600760016101000a81548160ff02191690831515021790555050505050505050506000601360146101000a81548160ff02191690831515021790555050565b81611ddc5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c579190612e13565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce59190612be0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d8591906127da565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dd75782600654611dd09190612e13565b6006819055505b6122fb565b8015612070576000606460085485611df49190612a2f565b611dfe9190612aa0565b905060008185611e0e9190612e13565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5b9190612e13565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee99190612be0565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f779190612be0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161201791906127da565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361206957806006546120629190612e13565b6006819055505b50506122fa565b60006064600954856120829190612a2f565b61208c9190612aa0565b90506000818561209c9190612e13565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e99190612e13565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121779190612be0565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122059190612be0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a591906127da565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036122f757806006546122f09190612e13565b6006819055505b50505b5b5050505050565b6000600267ffffffffffffffff81111561231f5761231e612e47565b5b60405190808252806020026020018201604052801561234d5781602001602082028036833780820191505090505b509050308160008151811061236557612364612e76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561240c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124309190612eba565b8160018151811061244457612443612e76565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ab30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611059565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250f959493929190612fe0565b600060405180830381600087803b15801561252957600080fd5b505af115801561253d573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561258b573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125ca5780820151818401526020810190506125af565b60008484015250505050565b6000601f19601f8301169050919050565b60006125f282612590565b6125fc818561259b565b935061260c8185602086016125ac565b612615816125d6565b840191505092915050565b6000602082019050818103600083015261263a81846125e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061267282612647565b9050919050565b61268281612667565b811461268d57600080fd5b50565b60008135905061269f81612679565b92915050565b6000819050919050565b6126b8816126a5565b81146126c357600080fd5b50565b6000813590506126d5816126af565b92915050565b600080604083850312156126f2576126f1612642565b5b600061270085828601612690565b9250506020612711858286016126c6565b9150509250929050565b60008115159050919050565b6127308161271b565b82525050565b600060208201905061274b6000830184612727565b92915050565b6000819050919050565b600061277661277161276c84612647565b612751565b612647565b9050919050565b60006127888261275b565b9050919050565b600061279a8261277d565b9050919050565b6127aa8161278f565b82525050565b60006020820190506127c560008301846127a1565b92915050565b6127d4816126a5565b82525050565b60006020820190506127ef60008301846127cb565b92915050565b60008060006060848603121561280e5761280d612642565b5b600061281c86828701612690565b935050602061282d86828701612690565b925050604061283e868287016126c6565b9150509250925092565b600060ff82169050919050565b61285e81612848565b82525050565b60006020820190506128796000830184612855565b92915050565b61288881612667565b82525050565b60006020820190506128a3600083018461287f565b92915050565b6000602082840312156128bf576128be612642565b5b60006128cd84828501612690565b91505092915050565b60006128e182612647565b9050919050565b6128f1816128d6565b82525050565b600060208201905061290c60008301846128e8565b92915050565b6000806040838503121561292957612928612642565b5b600061293785828601612690565b925050602061294885828601612690565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b6000612988601b8361259b565b915061299382612952565b602082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b6000815190506129cd816126af565b92915050565b6000602082840312156129e9576129e8612642565b5b60006129f7848285016129be565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a3a826126a5565b9150612a45836126a5565b9250828202612a53816126a5565b91508282048414831517612a6a57612a69612a00565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aab826126a5565b9150612ab6836126a5565b925082612ac657612ac5612a71565b5b828204905092915050565b6000612adc8261277d565b9050919050565b612aec81612ad1565b82525050565b6000604082019050612b076000830185612ae3565b612b1460208301846127cb565b9392505050565b612b248161271b565b8114612b2f57600080fd5b50565b600081519050612b4181612b1b565b92915050565b600060208284031215612b5d57612b5c612642565b5b6000612b6b84828501612b32565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612baa60118361259b565b9150612bb582612b74565b602082019050919050565b60006020820190508181036000830152612bd981612b9d565b9050919050565b6000612beb826126a5565b9150612bf6836126a5565b9250828201905080821115612c0e57612c0d612a00565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612c4a60128361259b565b9150612c5582612c14565b602082019050919050565b60006020820190508181036000830152612c7981612c3d565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b6000612cb660178361259b565b9150612cc182612c80565b602082019050919050565b60006020820190508181036000830152612ce581612ca9565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b6000612d2260158361259b565b9150612d2d82612cec565b602082019050919050565b60006020820190508181036000830152612d5181612d15565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612db460258361259b565b9150612dbf82612d58565b604082019050919050565b60006020820190508181036000830152612de381612da7565b9050919050565b6000612df582612848565b915060ff8203612e0857612e07612a00565b5b600182019050919050565b6000612e1e826126a5565b9150612e29836126a5565b9250828203905081811115612e4157612e40612a00565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612eb481612679565b92915050565b600060208284031215612ed057612ecf612642565b5b6000612ede84828501612ea5565b91505092915050565b6000819050919050565b6000612f0c612f07612f0284612ee7565b612751565b6126a5565b9050919050565b612f1c81612ef1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f5781612667565b82525050565b6000612f698383612f4e565b60208301905092915050565b6000602082019050919050565b6000612f8d82612f22565b612f978185612f2d565b9350612fa283612f3e565b8060005b83811015612fd3578151612fba8882612f5d565b9750612fc583612f75565b925050600181019050612fa6565b5085935050505092915050565b600060a082019050612ff560008301886127cb565b6130026020830187612f13565b81810360408301526130148186612f82565b9050613023606083018561287f565b61303060808301846127cb565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a706b04994b07627b788ada7909c1493a3a83dd16cb801cc6c0a1eb16e384cc664736f6c63430008110033