608060405267016345785d8a00006000196200001c919062000729565b6000196200002b919062000790565b600655600060085560196009556000600a556019600b55600a54600d55600b54600e55600d54600f55600e546010557368845366a147973b648002f347d6576c16ad09e8601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507368845366a147973b648002f347d6576c16ad09e8601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066071afd498d0000601655660aa87bee5380006017556509184e72a0006018553480156200018157600080fd5b50600062000194620006bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000249620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000835565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e1919062000835565b6040518363ffffffff1660e01b81526004016200040092919062000878565b6020604051808303816000875af115801562000420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000446919062000835565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049c620006c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000649620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006b09190620008b6565b60405180910390a350620008d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073682620006f0565b91506200074383620006f0565b925082620007565762000755620006fa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079d82620006f0565b9150620007aa83620006f0565b925082821015620007c057620007bf62000761565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fd82620007d0565b9050919050565b6200080f81620007f0565b81146200081b57600080fd5b50565b6000815190506200082f8162000804565b92915050565b6000602082840312156200084e576200084d620007cb565b5b60006200085e848285016200081e565b91505092915050565b6200087281620007f0565b82525050565b60006040820190506200088f600083018562000867565b6200089e602083018462000867565b9392505050565b620008b081620006f0565b82525050565b6000602082019050620008cd6000830184620008a5565b92915050565b6134d580620008e36000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb14610501578063dd62ed3e1461053e578063ea1644d51461057b578063f2fde38b146105a457610171565b806395d89b411461048457806398a5c315146104af578063a2a957bb146104d857610171565b8063715018a61461039a57806374010ece146103b15780637d1db4a5146103da5780638da5cb5b146104055780638f70ccf7146104305780638f9a55c01461045957610171565b80632fd689e3116101235780632fd689e31461029c578063313ce567146102c757806349bd5a5e146102f2578063526e588c1461031d5780636d8aa8f81461033457806370a082311461035d57610171565b806306fdde0314610176578063095ea7b3146101a157806313114a9d146101de5780631694505e1461020957806318160ddd1461023457806323b872dd1461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b60405161019891906125f0565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906126ab565b61060a565b6040516101d59190612706565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612730565b60405180910390f35b34801561021557600080fd5b5061021e61062e565b60405161022b91906127aa565b60405180910390f35b34801561024057600080fd5b50610249610654565b6040516102569190612730565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906127c5565b610664565b6040516102939190612706565b60405180910390f35b3480156102a857600080fd5b506102b161073d565b6040516102be9190612730565b60405180910390f35b3480156102d357600080fd5b506102dc610743565b6040516102e99190612834565b60405180910390f35b3480156102fe57600080fd5b5061030761074c565b604051610314919061285e565b60405180910390f35b34801561032957600080fd5b50610332610772565b005b34801561034057600080fd5b5061035b600480360381019061035691906128a5565b610827565b005b34801561036957600080fd5b50610384600480360381019061037f91906128d2565b6108d9565b6040516103919190612730565b60405180910390f35b3480156103a657600080fd5b506103af61092a565b005b3480156103bd57600080fd5b506103d860048036038101906103d391906128ff565b610a7d565b005b3480156103e657600080fd5b506103ef610b1c565b6040516103fc9190612730565b60405180910390f35b34801561041157600080fd5b5061041a610b22565b604051610427919061285e565b60405180910390f35b34801561043c57600080fd5b50610457600480360381019061045291906128a5565b610b4b565b005b34801561046557600080fd5b5061046e610bfd565b60405161047b9190612730565b60405180910390f35b34801561049057600080fd5b50610499610c03565b6040516104a691906125f0565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906128ff565b610c40565b005b3480156104e457600080fd5b506104ff60048036038101906104fa919061292c565b610cdf565b005b34801561050d57600080fd5b50610528600480360381019061052391906126ab565b610e0c565b6040516105359190612706565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612993565b610e2a565b6040516105729190612730565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906128ff565b610eb1565b005b3480156105b057600080fd5b506105cb60048036038101906105c691906128d2565b610f50565b005b60606040518060400160405280600e81526020017f546f6e677969205169616e77656e000000000000000000000000000000000000815250905090565b600061061e610617611111565b8484611119565b6001905092915050565b600c5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006106718484846112e2565b6107328461067d611111565b61072d8560405180606001604052806028815260200161347860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e3611111565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a829092919063ffffffff16565b611119565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61077a611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90612a1f565b60405180910390fd5b67016345785d8a000060168190555067016345785d8a0000601781905550565b61082f611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b390612a1f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6000610923600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae6565b9050919050565b610932611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b690612a1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a85611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612a1f565b60405180910390fd5b8060168190555050565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b53611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd790612a1f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600e81526020017f546f6e677969205169616e77656e000000000000000000000000000000000000815250905090565b610c48611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612a1f565b60405180910390fd5b8060188190555050565b610ce7611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612a1f565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600b54600954600a54600854610da69190612a6e565b610db09190612a6e565b610dba9190612a6e565b600c819055506064600c541115610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90612aea565b60405180910390fd5b50505050565b6000610e20610e19611111565b84846112e2565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610eb9611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90612a1f565b60405180910390fd5b8060178190555050565b610f58611111565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612a1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612b7c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90612c0e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee90612ca0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112d59190612730565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134890612d32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612dc4565b60405180910390fd5b60008111611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90612e56565b60405180910390fd5b61140b610b22565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114795750611449610b22565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561178157601560149054906101000a900460ff166115085761149a610b22565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612ee8565b60405180910390fd5b5b60165481111561154d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154490612f54565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146115fa57601754816115af846108d9565b6115b99190612a6e565b106115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f090612fe6565b60405180910390fd5b5b6000611605306108d9565b90506000601854821015905060165482106116205760165491505b808015611638575060158054906101000a900460ff16155b80156116925750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116aa5750601560169054906101000a900460ff165b80156117005750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117565750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561177e5761176482611b54565b6000479050600081111561177c5761177b47611dcb565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118285750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118db5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118da5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156118e95760009050611a70565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119ac57600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a575750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6f57600a54600d81905550600b54600e819055505b5b611a7c84848484611e37565b50505050565b6000838311158290611aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac191906125f0565b60405180910390fd5b5060008385611ad99190613006565b9050809150509392505050565b6000600654821115611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b24906130ac565b60405180910390fd5b6000611b37611e64565b9050611b4c8184611e8f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b8b57611b8a6130cc565b5b604051908082528060200260200182016040528015611bb95781602001602082028036833780820191505090505b5090503081600081518110611bd157611bd06130fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9c919061313f565b81600181518110611cb057611caf6130fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d1730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611119565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d7b959493929190613265565b600060405180830381600087803b158015611d9557600080fd5b505af1158015611da9573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e33573d6000803e3d6000fd5b5050565b80611e4557611e44611ed9565b5b611e50848484611f16565b80611e5e57611e5d6120e1565b5b50505050565b6000806000611e716120f5565b91509150611e888183611e8f90919063ffffffff16565b9250505090565b6000611ed183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612154565b905092915050565b6000600d54148015611eed57506000600e54145b611f1457600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080611f28876121b7565b955095509550955095509550611f8686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061201b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612067816122c7565b6120718483612384565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120ce9190612730565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008060006006549050600067016345785d8a0000905061212967016345785d8a0000600654611e8f90919063ffffffff16565b8210156121475760065467016345785d8a0000935093505050612150565b81819350935050505b9091565b6000808311829061219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219291906125f0565b60405180910390fd5b50600083856121aa91906132ee565b9050809150509392505050565b60008060008060008060008060006121d48a600d54600e546123be565b92509250925060006121e4611e64565b905060008060006121f78e878787612454565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061226183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a82565b905092915050565b60008082846122789190612a6e565b9050838110156122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49061336b565b60405180910390fd5b8091505092915050565b60006122d1611e64565b905060006122e882846124dd90919063ffffffff16565b905061233c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123998260065461221f90919063ffffffff16565b6006819055506123b48160075461226990919063ffffffff16565b6007819055505050565b6000806000806123ea60646123dc888a6124dd90919063ffffffff16565b611e8f90919063ffffffff16565b905060006124146064612406888b6124dd90919063ffffffff16565b611e8f90919063ffffffff16565b9050600061243d8261242f858c61221f90919063ffffffff16565b61221f90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061246d85896124dd90919063ffffffff16565b9050600061248486896124dd90919063ffffffff16565b9050600061249b87896124dd90919063ffffffff16565b905060006124c4826124b6858761221f90919063ffffffff16565b61221f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036124ef5760009050612551565b600082846124fd919061338b565b905082848261250c91906132ee565b1461254c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254390613457565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612591578082015181840152602081019050612576565b838111156125a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006125c282612557565b6125cc8185612562565b93506125dc818560208601612573565b6125e5816125a6565b840191505092915050565b6000602082019050818103600083015261260a81846125b7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264282612617565b9050919050565b61265281612637565b811461265d57600080fd5b50565b60008135905061266f81612649565b92915050565b6000819050919050565b61268881612675565b811461269357600080fd5b50565b6000813590506126a58161267f565b92915050565b600080604083850312156126c2576126c1612612565b5b60006126d085828601612660565b92505060206126e185828601612696565b9150509250929050565b60008115159050919050565b612700816126eb565b82525050565b600060208201905061271b60008301846126f7565b92915050565b61272a81612675565b82525050565b60006020820190506127456000830184612721565b92915050565b6000819050919050565b600061277061276b61276684612617565b61274b565b612617565b9050919050565b600061278282612755565b9050919050565b600061279482612777565b9050919050565b6127a481612789565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6000806000606084860312156127de576127dd612612565b5b60006127ec86828701612660565b93505060206127fd86828701612660565b925050604061280e86828701612696565b9150509250925092565b600060ff82169050919050565b61282e81612818565b82525050565b60006020820190506128496000830184612825565b92915050565b61285881612637565b82525050565b6000602082019050612873600083018461284f565b92915050565b612882816126eb565b811461288d57600080fd5b50565b60008135905061289f81612879565b92915050565b6000602082840312156128bb576128ba612612565b5b60006128c984828501612890565b91505092915050565b6000602082840312156128e8576128e7612612565b5b60006128f684828501612660565b91505092915050565b60006020828403121561291557612914612612565b5b600061292384828501612696565b91505092915050565b6000806000806080858703121561294657612945612612565b5b600061295487828801612696565b945050602061296587828801612696565b935050604061297687828801612696565b925050606061298787828801612696565b91505092959194509250565b600080604083850312156129aa576129a9612612565b5b60006129b885828601612660565b92505060206129c985828601612660565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a09602083612562565b9150612a14826129d3565b602082019050919050565b60006020820190508181036000830152612a38816129fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7982612675565b9150612a8483612675565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ab957612ab8612a3f565b5b828201905092915050565b50565b6000612ad4600083612562565b9150612adf82612ac4565b600082019050919050565b60006020820190508181036000830152612b0381612ac7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b66602683612562565b9150612b7182612b0a565b604082019050919050565b60006020820190508181036000830152612b9581612b59565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bf8602483612562565b9150612c0382612b9c565b604082019050919050565b60006020820190508181036000830152612c2781612beb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c8a602283612562565b9150612c9582612c2e565b604082019050919050565b60006020820190508181036000830152612cb981612c7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d1c602583612562565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dae602383612562565b9150612db982612d52565b604082019050919050565b60006020820190508181036000830152612ddd81612da1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e40602983612562565b9150612e4b82612de4565b604082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612ed2603f83612562565b9150612edd82612e76565b604082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612f3e601c83612562565b9150612f4982612f08565b602082019050919050565b60006020820190508181036000830152612f6d81612f31565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612fd0602383612562565b9150612fdb82612f74565b604082019050919050565b60006020820190508181036000830152612fff81612fc3565b9050919050565b600061301182612675565b915061301c83612675565b92508282101561302f5761302e612a3f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613096602a83612562565b91506130a18261303a565b604082019050919050565b600060208201905081810360008301526130c581613089565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061313981612649565b92915050565b60006020828403121561315557613154612612565b5b60006131638482850161312a565b91505092915050565b6000819050919050565b600061319161318c6131878461316c565b61274b565b612675565b9050919050565b6131a181613176565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131dc81612637565b82525050565b60006131ee83836131d3565b60208301905092915050565b6000602082019050919050565b6000613212826131a7565b61321c81856131b2565b9350613227836131c3565b8060005b8381101561325857815161323f88826131e2565b975061324a836131fa565b92505060018101905061322b565b5085935050505092915050565b600060a08201905061327a6000830188612721565b6132876020830187613198565b81810360408301526132998186613207565b90506132a8606083018561284f565b6132b56080830184612721565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132f982612675565b915061330483612675565b925082613314576133136132bf565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613355601b83612562565b91506133608261331f565b602082019050919050565b6000602082019050818103600083015261338481613348565b9050919050565b600061339682612675565b91506133a183612675565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133da576133d9612a3f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613441602183612562565b915061344c826133e5565b604082019050919050565b6000602082019050818103600083015261347081613434565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220628a8793953d77580815f3671fd4a7704e1737207a087909c7e26b3a256ca5d364736f6c634300080f0033