0x608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b4114610201578063a9059cbb1461021f578063c36956a01461024f578063dd62ed3e1461026d576100cd565b806370a08231146101a9578063715018a6146101d95780638da5cb5b146101e3576100cd565b806306fdde03146100d1578063095ea7b3146100ef5780630c1930451461011f57806318160ddd1461013d57806323b872dd1461015b578063313ce5671461018b575b5f80fd5b6100d961029d565b6040516100e69190610ef5565b60405180910390f35b61010960048036038101906101049190610fa6565b61032d565b6040516101169190610ffe565b60405180910390f35b610127610343565b6040516101349190611026565b60405180910390f35b610145610349565b6040516101529190611026565b60405180910390f35b6101756004803603810190610170919061103f565b610352565b6040516101829190610ffe565b60405180910390f35b6101936103fe565b6040516101a091906110aa565b60405180910390f35b6101c360048036038101906101be91906110c3565b610413565b6040516101d09190611026565b60405180910390f35b6101e1610459565b005b6101eb6105a0565b6040516101f891906110fd565b60405180910390f35b6102096105c7565b6040516102169190610ef5565b60405180910390f35b61023960048036038101906102349190610fa6565b610657565b6040516102469190610ffe565b60405180910390f35b61025761066d565b6040516102649190611026565b60405180910390f35b61028760048036038101906102829190611116565b610673565b6040516102949190611026565b60405180910390f35b6060600680546102ac90611181565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611181565b80156103235780601f106102fa57610100808354040283529160200191610323565b820191905f5260205f20905b81548152906001019060200180831161030657829003601f168201915b5050505050905090565b5f6103393384846106f5565b6001905092915050565b600b5481565b5f600354905090565b5f61035e8484846108b8565b6103f384336103ee8560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cde90919063ffffffff16565b6106f5565b600190509392505050565b5f8060149054906101000a900460ff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dd906111fb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600780546105d690611181565b80601f016020809104026020016040519081016040528092919081815260200182805461060290611181565b801561064d5780601f106106245761010080835404028352916020019161064d565b820191905f5260205f20905b81548152906001019060200180831161063057829003601f168201915b5050505050905090565b5f6106633384846108b8565b6001905092915050565b60095481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90611289565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c890611317565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108ab9190611026565b60405180910390a3505050565b5f81116108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f1906113a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90611433565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd906114c1565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610a60575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610b1557600954600c5411610a7857600d54610b12565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401610ad291906110fd565b602060405180830381865afa158015610aed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1191906114f3565b5b90505b5f610b3c6064610b2e8486610d3b90919063ffffffff16565b610db290919063ffffffff16565b9050610ba081610b928560015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e0e90919063ffffffff16565b610cde90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610c318360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cde90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ccf9190611026565b60405180910390a35050505050565b5f82821115610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990611568565b60405180910390fd5b5f8284610d2f91906115b3565b90508091505092915050565b5f808303610d4b575f9050610dac565b5f8284610d5891906115e6565b9050828482610d679190611654565b14610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e906116f4565b60405180910390fd5b809150505b92915050565b5f808211610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec9061175c565b60405180910390fd5b5f8284610e029190611654565b90508091505092915050565b5f808284610e1c919061177a565b905083811015610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e58906117f7565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610ea2578082015181840152602081019050610e87565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610ec782610e6b565b610ed18185610e75565b9350610ee1818560208601610e85565b610eea81610ead565b840191505092915050565b5f6020820190508181035f830152610f0d8184610ebd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f4282610f19565b9050919050565b610f5281610f38565b8114610f5c575f80fd5b50565b5f81359050610f6d81610f49565b92915050565b5f819050919050565b610f8581610f73565b8114610f8f575f80fd5b50565b5f81359050610fa081610f7c565b92915050565b5f8060408385031215610fbc57610fbb610f15565b5b5f610fc985828601610f5f565b9250506020610fda85828601610f92565b9150509250929050565b5f8115159050919050565b610ff881610fe4565b82525050565b5f6020820190506110115f830184610fef565b92915050565b61102081610f73565b82525050565b5f6020820190506110395f830184611017565b92915050565b5f805f6060848603121561105657611055610f15565b5b5f61106386828701610f5f565b935050602061107486828701610f5f565b925050604061108586828701610f92565b9150509250925092565b5f60ff82169050919050565b6110a48161108f565b82525050565b5f6020820190506110bd5f83018461109b565b92915050565b5f602082840312156110d8576110d7610f15565b5b5f6110e584828501610f5f565b91505092915050565b6110f781610f38565b82525050565b5f6020820190506111105f8301846110ee565b92915050565b5f806040838503121561112c5761112b610f15565b5b5f61113985828601610f5f565b925050602061114a85828601610f5f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061119857607f821691505b6020821081036111ab576111aa611154565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6111e5602083610e75565b91506111f0826111b1565b602082019050919050565b5f6020820190508181035f830152611212816111d9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611273602483610e75565b915061127e82611219565b604082019050919050565b5f6020820190508181035f8301526112a081611267565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611301602283610e75565b915061130c826112a7565b604082019050919050565b5f6020820190508181035f83015261132e816112f5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61138f602983610e75565b915061139a82611335565b604082019050919050565b5f6020820190508181035f8301526113bc81611383565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61141d602583610e75565b9150611428826113c3565b604082019050919050565b5f6020820190508181035f83015261144a81611411565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6114ab602383610e75565b91506114b682611451565b604082019050919050565b5f6020820190508181035f8301526114d88161149f565b9050919050565b5f815190506114ed81610f7c565b92915050565b5f6020828403121561150857611507610f15565b5b5f611515848285016114df565b91505092915050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f77005f82015250565b5f611552601f83610e75565b915061155d8261151e565b602082019050919050565b5f6020820190508181035f83015261157f81611546565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115bd82610f73565b91506115c883610f73565b92508282039050818111156115e0576115df611586565b5b92915050565b5f6115f082610f73565b91506115fb83610f73565b925082820261160981610f73565b915082820484148315176116205761161f611586565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61165e82610f73565b915061166983610f73565b92508261167957611678611627565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f6116de602283610e75565b91506116e982611684565b604082019050919050565b5f6020820190508181035f83015261170b816116d2565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611746601b83610e75565b915061175182611712565b602082019050919050565b5f6020820190508181035f8301526117738161173a565b9050919050565b5f61178482610f73565b915061178f83610f73565b92508282019050808211156117a7576117a6611586565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f77000000005f82015250565b5f6117e1601c83610e75565b91506117ec826117ad565b602082019050919050565b5f6020820190508181035f83015261180e816117d5565b905091905056fea2646970667358221220b4a5477ed31a18627865f2313d7ae72af526e5fbe3d8fed85178359b3e60fd8d64736f6c63430008170033
0x608060405260125f60146101000a81548160ff021916908360ff1602179055505f60149054906101000a900460ff16600a6200003c9190620004af565b631908b1006200004d9190620004ff565b600355737a250d5630b4cf539739df2c5dacb4c659f2488d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600d81526020017f5065706520466f726b20322e300000000000000000000000000000000000000081525060069081620000ea9190620007a4565b506040518060400160405280600781526020017f504f524b322e300000000000000000000000000000000000000000000000000081525060079081620001319190620007a4565b5073b06c669e6fc325d842823fbb86c52d64fe15fb0860085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600860146101000a81548160ff02191690831515021790555060036009555f600a55600a600b556005600c555f600d555f600e555f600f55348015620001cb575f80fd5b505f339050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060035460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200030f919062000899565b60405180910390a3620008b4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620003a7578086048111156200037f576200037e6200031d565b5b60018516156200038f5780820291505b80810290506200039f856200034a565b94506200035f565b94509492505050565b5f82620003c1576001905062000493565b81620003d0575f905062000493565b8160018114620003e95760028114620003f4576200042a565b600191505062000493565b60ff8411156200040957620004086200031d565b5b8360020a9150848211156200042357620004226200031d565b5b5062000493565b5060208310610133831016604e8410600b8410161715620004645782820a9050838111156200045e576200045d6200031d565b5b62000493565b62000473848484600162000356565b925090508184048111156200048d576200048c6200031d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620004bb826200049a565b9150620004c883620004a3565b9250620004f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620003b0565b905092915050565b5f6200050b826200049a565b915062000518836200049a565b925082820262000528816200049a565b915082820484148315176200054257620005416200031d565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005c557607f821691505b602082108103620005db57620005da62000580565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200063f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000602565b6200064b868362000602565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200068c6200068662000680846200049a565b62000663565b6200049a565b9050919050565b5f819050919050565b620006a7836200066c565b620006bf620006b68262000693565b8484546200060e565b825550505050565b5f90565b620006d5620006c7565b620006e28184846200069c565b505050565b5b818110156200070957620006fd5f82620006cb565b600181019050620006e8565b5050565b601f82111562000758576200072281620005e1565b6200072d84620005f3565b810160208510156200073d578190505b620007556200074c85620005f3565b830182620006e7565b50505b505050565b5f82821c905092915050565b5f6200077a5f19846008026200075d565b1980831691505092915050565b5f62000794838362000769565b9150826002028217905092915050565b620007af8262000549565b67ffffffffffffffff811115620007cb57620007ca62000553565b5b620007d78254620005ad565b620007e48282856200070d565b5f60209050601f8311600181146200081a575f841562000805578287015190505b62000811858262000787565b86555062000880565b601f1984166200082a86620005e1565b5f5b8281101562000853578489015182556001820191506020850194506020810190506200082c565b868310156200087357848901516200086f601f89168262000769565b8355505b6001600288020188555050505b505050505050565b62000893816200049a565b82525050565b5f602082019050620008ae5f83018462000888565b92915050565b61184b80620008c25f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b4114610201578063a9059cbb1461021f578063c36956a01461024f578063dd62ed3e1461026d576100cd565b806370a08231146101a9578063715018a6146101d95780638da5cb5b146101e3576100cd565b806306fdde03146100d1578063095ea7b3146100ef5780630c1930451461011f57806318160ddd1461013d57806323b872dd1461015b578063313ce5671461018b575b5f80fd5b6100d961029d565b6040516100e69190610ef5565b60405180910390f35b61010960048036038101906101049190610fa6565b61032d565b6040516101169190610ffe565b60405180910390f35b610127610343565b6040516101349190611026565b60405180910390f35b610145610349565b6040516101529190611026565b60405180910390f35b6101756004803603810190610170919061103f565b610352565b6040516101829190610ffe565b60405180910390f35b6101936103fe565b6040516101a091906110aa565b60405180910390f35b6101c360048036038101906101be91906110c3565b610413565b6040516101d09190611026565b60405180910390f35b6101e1610459565b005b6101eb6105a0565b6040516101f891906110fd565b60405180910390f35b6102096105c7565b6040516102169190610ef5565b60405180910390f35b61023960048036038101906102349190610fa6565b610657565b6040516102469190610ffe565b60405180910390f35b61025761066d565b6040516102649190611026565b60405180910390f35b61028760048036038101906102829190611116565b610673565b6040516102949190611026565b60405180910390f35b6060600680546102ac90611181565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611181565b80156103235780601f106102fa57610100808354040283529160200191610323565b820191905f5260205f20905b81548152906001019060200180831161030657829003601f168201915b5050505050905090565b5f6103393384846106f5565b6001905092915050565b600b5481565b5f600354905090565b5f61035e8484846108b8565b6103f384336103ee8560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cde90919063ffffffff16565b6106f5565b600190509392505050565b5f8060149054906101000a900460ff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dd906111fb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600780546105d690611181565b80601f016020809104026020016040519081016040528092919081815260200182805461060290611181565b801561064d5780601f106106245761010080835404028352916020019161064d565b820191905f5260205f20905b81548152906001019060200180831161063057829003601f168201915b5050505050905090565b5f6106633384846108b8565b6001905092915050565b60095481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90611289565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c890611317565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108ab9190611026565b60405180910390a3505050565b5f81116108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f1906113a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90611433565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd906114c1565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610a60575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610b1557600954600c5411610a7857600d54610b12565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401610ad291906110fd565b602060405180830381865afa158015610aed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1191906114f3565b5b90505b5f610b3c6064610b2e8486610d3b90919063ffffffff16565b610db290919063ffffffff16565b9050610ba081610b928560015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e0e90919063ffffffff16565b610cde90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610c318360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cde90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ccf9190611026565b60405180910390a35050505050565b5f82821115610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990611568565b60405180910390fd5b5f8284610d2f91906115b3565b90508091505092915050565b5f808303610d4b575f9050610dac565b5f8284610d5891906115e6565b9050828482610d679190611654565b14610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e906116f4565b60405180910390fd5b809150505b92915050565b5f808211610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec9061175c565b60405180910390fd5b5f8284610e029190611654565b90508091505092915050565b5f808284610e1c919061177a565b905083811015610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e58906117f7565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610ea2578082015181840152602081019050610e87565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610ec782610e6b565b610ed18185610e75565b9350610ee1818560208601610e85565b610eea81610ead565b840191505092915050565b5f6020820190508181035f830152610f0d8184610ebd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f4282610f19565b9050919050565b610f5281610f38565b8114610f5c575f80fd5b50565b5f81359050610f6d81610f49565b92915050565b5f819050919050565b610f8581610f73565b8114610f8f575f80fd5b50565b5f81359050610fa081610f7c565b92915050565b5f8060408385031215610fbc57610fbb610f15565b5b5f610fc985828601610f5f565b9250506020610fda85828601610f92565b9150509250929050565b5f8115159050919050565b610ff881610fe4565b82525050565b5f6020820190506110115f830184610fef565b92915050565b61102081610f73565b82525050565b5f6020820190506110395f830184611017565b92915050565b5f805f6060848603121561105657611055610f15565b5b5f61106386828701610f5f565b935050602061107486828701610f5f565b925050604061108586828701610f92565b9150509250925092565b5f60ff82169050919050565b6110a48161108f565b82525050565b5f6020820190506110bd5f83018461109b565b92915050565b5f602082840312156110d8576110d7610f15565b5b5f6110e584828501610f5f565b91505092915050565b6110f781610f38565b82525050565b5f6020820190506111105f8301846110ee565b92915050565b5f806040838503121561112c5761112b610f15565b5b5f61113985828601610f5f565b925050602061114a85828601610f5f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061119857607f821691505b6020821081036111ab576111aa611154565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6111e5602083610e75565b91506111f0826111b1565b602082019050919050565b5f6020820190508181035f830152611212816111d9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611273602483610e75565b915061127e82611219565b604082019050919050565b5f6020820190508181035f8301526112a081611267565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611301602283610e75565b915061130c826112a7565b604082019050919050565b5f6020820190508181035f83015261132e816112f5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61138f602983610e75565b915061139a82611335565b604082019050919050565b5f6020820190508181035f8301526113bc81611383565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61141d602583610e75565b9150611428826113c3565b604082019050919050565b5f6020820190508181035f83015261144a81611411565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6114ab602383610e75565b91506114b682611451565b604082019050919050565b5f6020820190508181035f8301526114d88161149f565b9050919050565b5f815190506114ed81610f7c565b92915050565b5f6020828403121561150857611507610f15565b5b5f611515848285016114df565b91505092915050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f77005f82015250565b5f611552601f83610e75565b915061155d8261151e565b602082019050919050565b5f6020820190508181035f83015261157f81611546565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115bd82610f73565b91506115c883610f73565b92508282039050818111156115e0576115df611586565b5b92915050565b5f6115f082610f73565b91506115fb83610f73565b925082820261160981610f73565b915082820484148315176116205761161f611586565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61165e82610f73565b915061166983610f73565b92508261167957611678611627565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f6116de602283610e75565b91506116e982611684565b604082019050919050565b5f6020820190508181035f83015261170b816116d2565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611746601b83610e75565b915061175182611712565b602082019050919050565b5f6020820190508181035f8301526117738161173a565b9050919050565b5f61178482610f73565b915061178f83610f73565b92508282019050808211156117a7576117a6611586565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f77000000005f82015250565b5f6117e1601c83610e75565b91506117ec826117ad565b602082019050919050565b5f6020820190508181035f83015261180e816117d5565b905091905056fea2646970667358221220b4a5477ed31a18627865f2313d7ae72af526e5fbe3d8fed85178359b3e60fd8d64736f6c63430008170033