60806040526000600660006101000a81548160ff021916908315150217905550600a600755601460085560056009556005600a55600a600b55601e600c55600a600d556000600e556008600a62000057919062000625565b614e2062000066919062000676565b600f556008600a62000079919062000625565b61753062000088919062000676565b6010556008600a6200009b919062000625565b612710620000aa919062000676565b6011556008600a620000bd919062000625565b614e20620000cc919062000676565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011257600080fd5b506000620001256200045a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d36200045a60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000223919062000625565b620f424062000233919062000676565b60016000620002476200045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200029b6200046260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003ce6200045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200042d919062000625565b620f42406200043d919062000676565b6040516200044c9190620006d2565b60405180910390a3620006ef565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200051957808604811115620004f157620004f06200048b565b5b6001851615620005015780820291505b80810290506200051185620004ba565b9450620004d1565b94509492505050565b60008262000534576001905062000607565b8162000544576000905062000607565b81600181146200055d576002811462000568576200059e565b600191505062000607565b60ff8411156200057d576200057c6200048b565b5b8360020a9150848211156200059757620005966200048b565b5b5062000607565b5060208310610133831016604e8410600b8410161715620005d85782820a905083811115620005d257620005d16200048b565b5b62000607565b620005e78484846001620004c7565b925090508184048111156200060157620006006200048b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000632826200060e565b91506200063f8362000618565b92506200066e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000522565b905092915050565b600062000683826200060e565b915062000690836200060e565b9250828202620006a0816200060e565b91508282048414831517620006ba57620006b96200048b565b5b5092915050565b620006cc816200060e565b82525050565b6000602082019050620006e96000830184620006c1565b92915050565b61372b80620006ff6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103ff578063bf474bed1461043c578063c876d0b914610467578063c9567bf914610492578063d34628cc146104a9578063dd62ed3e146104d257610140565b8063751039fc1461033c5780637d1db4a5146103535780638da5cb5b1461037e5780638f9a55c0146103a957806395d89b41146103d457610140565b8063313ce567116100fd578063313ce5671461024057806331c2d8471461026b5780633bbac5791461029457806351bc3c85146102d157806370a08231146102e8578063715018a61461032557610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050f565b6040516101679190612630565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906126fa565b61054c565b6040516101a49190612755565b60405180910390f35b3480156101b957600080fd5b506101c261056a565b6040516101cf919061277f565b60405180910390f35b3480156101e457600080fd5b506101ed610570565b6040516101fa919061277f565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061279a565b610593565b6040516102379190612755565b60405180910390f35b34801561024c57600080fd5b5061025561066c565b6040516102629190612809565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d919061296c565b610675565b005b3480156102a057600080fd5b506102bb60048036038101906102b691906129b5565b61079f565b6040516102c89190612755565b60405180910390f35b3480156102dd57600080fd5b506102e66107f5565b005b3480156102f457600080fd5b5061030f600480360381019061030a91906129b5565b610892565b60405161031c919061277f565b60405180910390f35b34801561033157600080fd5b5061033a6108db565b005b34801561034857600080fd5b50610351610a2e565b005b34801561035f57600080fd5b50610368610b76565b604051610375919061277f565b60405180910390f35b34801561038a57600080fd5b50610393610b7c565b6040516103a091906129f1565b60405180910390f35b3480156103b557600080fd5b506103be610ba5565b6040516103cb919061277f565b60405180910390f35b3480156103e057600080fd5b506103e9610bab565b6040516103f69190612630565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906126fa565b610be8565b6040516104339190612755565b60405180910390f35b34801561044857600080fd5b50610451610c06565b60405161045e919061277f565b60405180910390f35b34801561047357600080fd5b5061047c610c0c565b6040516104899190612755565b60405180910390f35b34801561049e57600080fd5b506104a7610c1f565b005b3480156104b557600080fd5b506104d060048036038101906104cb919061296c565b611153565b005b3480156104de57600080fd5b506104f960048036038101906104f49190612a0c565b61127d565b604051610506919061277f565b60405180910390f35b60606040518060400160405280600e81526020017f39474147204d656d65204c616e64000000000000000000000000000000000000815250905090565b6000610560610559611304565b848461130c565b6001905092915050565b60125481565b60006008600a6105809190612bae565b620f424061058e9190612bf9565b905090565b60006105a08484846114d5565b610661846105ac611304565b61065c856040518060600160405280602881526020016136ce60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610612611304565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206f9092919063ffffffff16565b61130c565b600190509392505050565b60006008905090565b61067d611304565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070190612c87565b60405180910390fd5b60005b815181101561079b5760006004600084848151811061072f5761072e612ca7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061079390612cd6565b91505061070d565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610836611304565b73ffffffffffffffffffffffffffffffffffffffff161461085657600080fd5b600061086130610892565b9050600081111561087657610875816120d3565b5b6000479050600081111561088e5761088d8161234c565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108e3611304565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096790612c87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a36611304565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90612c87565b60405180910390fd5b6008600a610ad19190612bae565b620f4240610adf9190612bf9565b600f819055506008600a610af39190612bae565b620f4240610b019190612bf9565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b519190612bae565b620f4240610b5f9190612bf9565b604051610b6c919061277f565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4d454d4500000000000000000000000000000000000000000000000000000000815250905090565b6000610bfc610bf5611304565b84846114d5565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610c27611304565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90612c87565b60405180910390fd5b60148054906101000a900460ff1615610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612d6a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d8c9190612bae565b620f4240610d9a9190612bf9565b61130c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e309190612d9f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190612d9f565b6040518363ffffffff1660e01b8152600401610efa929190612dcc565b6020604051808303816000875af1158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190612d9f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fc630610892565b600080610fd1610b7c565b426040518863ffffffff1660e01b8152600401610ff396959493929190612e3a565b60606040518083038185885af1158015611011573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110369190612eb0565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161110d929190612f03565b6020604051808303816000875af115801561112c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111509190612f58565b50565b61115b611304565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90612c87565b60405180910390fd5b60005b81518110156112795760016004600084848151811061120d5761120c612ca7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061127190612cd6565b9150506111eb565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137290612ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e190613089565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c8919061277f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b9061311b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115aa906131ad565b60405180910390fd5b600081116115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ed9061323f565b60405180910390fd5b6000806116216064611613600a54866123b890919063ffffffff16565b61243290919063ffffffff16565b905061162b610b7c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156116995750611669610b7c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c8857600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117425750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61174b57600080fd5b6117876064611779600b54600e54116117665760075461176a565b6009545b866123b890919063ffffffff16565b61243290919063ffffffff16565b9150600660009054906101000a900460ff161561191657601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561184a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119155743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c7906132f7565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156119c15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a175750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad257600f54831115611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890613363565b60405180910390fd5b60105483611a6e86610892565b611a789190613383565b1115611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090613403565b60405180910390fd5b600e6000815480929190611acc90612cd6565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b5b57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611b9f57611b9c6064611b8e600c54600e5411611b7b57600854611b7f565b6009545b866123b890919063ffffffff16565b61243290919063ffffffff16565b91505b6000611baa30610892565b9050601460159054906101000a900460ff16158015611c165750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611c2e5750601460169054906101000a900460ff165b8015611c3b575060115481115b8015611c4a5750600d54600e54115b15611c8657611c6c611c6785611c628460125461247c565b61247c565b6120d3565b60004790506000811115611c8457611c834761234c565b5b505b505b611cda83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d93611d4582611d37858761249590919063ffffffff16565b61249590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124df90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e4a84611e3c878961249590919063ffffffff16565b61249590919063ffffffff16565b604051611e57919061277f565b60405180910390a36000821115611f6357611eba82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124df90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f5a919061277f565b60405180910390a35b600081111561206857611fbe81600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124df90919063ffffffff16565b600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161205f919061277f565b60405180910390a35b5050505050565b60008383111582906120b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ae9190612630565b60405180910390fd5b50600083856120c69190613423565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561210b5761210a612829565b5b6040519080825280602002602001820160405280156121395781602001602082028036833780820191505090505b509050308160008151811061215157612150612ca7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221c9190612d9f565b816001815181106122305761222f612ca7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061229730601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461130c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122fb959493929190613515565b600060405180830381600087803b15801561231557600080fd5b505af1158015612329573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123b4573d6000803e3d6000fd5b5050565b60008083036123ca576000905061242c565b600082846123d89190612bf9565b90508284826123e7919061359e565b14612427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241e90613641565b60405180910390fd5b809150505b92915050565b600061247483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061253d565b905092915050565b600081831161248b578261248d565b815b905092915050565b60006124d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061206f565b905092915050565b60008082846124ee9190613383565b905083811015612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a906136ad565b60405180910390fd5b8091505092915050565b60008083118290612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b9190612630565b60405180910390fd5b5060008385612593919061359e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125da5780820151818401526020810190506125bf565b60008484015250505050565b6000601f19601f8301169050919050565b6000612602826125a0565b61260c81856125ab565b935061261c8185602086016125bc565b612625816125e6565b840191505092915050565b6000602082019050818103600083015261264a81846125f7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061269182612666565b9050919050565b6126a181612686565b81146126ac57600080fd5b50565b6000813590506126be81612698565b92915050565b6000819050919050565b6126d7816126c4565b81146126e257600080fd5b50565b6000813590506126f4816126ce565b92915050565b600080604083850312156127115761271061265c565b5b600061271f858286016126af565b9250506020612730858286016126e5565b9150509250929050565b60008115159050919050565b61274f8161273a565b82525050565b600060208201905061276a6000830184612746565b92915050565b612779816126c4565b82525050565b60006020820190506127946000830184612770565b92915050565b6000806000606084860312156127b3576127b261265c565b5b60006127c1868287016126af565b93505060206127d2868287016126af565b92505060406127e3868287016126e5565b9150509250925092565b600060ff82169050919050565b612803816127ed565b82525050565b600060208201905061281e60008301846127fa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612861826125e6565b810181811067ffffffffffffffff821117156128805761287f612829565b5b80604052505050565b6000612893612652565b905061289f8282612858565b919050565b600067ffffffffffffffff8211156128bf576128be612829565b5b602082029050602081019050919050565b600080fd5b60006128e86128e3846128a4565b612889565b9050808382526020820190506020840283018581111561290b5761290a6128d0565b5b835b81811015612934578061292088826126af565b84526020840193505060208101905061290d565b5050509392505050565b600082601f83011261295357612952612824565b5b81356129638482602086016128d5565b91505092915050565b6000602082840312156129825761298161265c565b5b600082013567ffffffffffffffff8111156129a05761299f612661565b5b6129ac8482850161293e565b91505092915050565b6000602082840312156129cb576129ca61265c565b5b60006129d9848285016126af565b91505092915050565b6129eb81612686565b82525050565b6000602082019050612a0660008301846129e2565b92915050565b60008060408385031215612a2357612a2261265c565b5b6000612a31858286016126af565b9250506020612a42858286016126af565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ad257808604811115612aae57612aad612a4c565b5b6001851615612abd5780820291505b8081029050612acb85612a7b565b9450612a92565b94509492505050565b600082612aeb5760019050612ba7565b81612af95760009050612ba7565b8160018114612b0f5760028114612b1957612b48565b6001915050612ba7565b60ff841115612b2b57612b2a612a4c565b5b8360020a915084821115612b4257612b41612a4c565b5b50612ba7565b5060208310610133831016604e8410600b8410161715612b7d5782820a905083811115612b7857612b77612a4c565b5b612ba7565b612b8a8484846001612a88565b92509050818404811115612ba157612ba0612a4c565b5b81810290505b9392505050565b6000612bb9826126c4565b9150612bc4836127ed565b9250612bf17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612adb565b905092915050565b6000612c04826126c4565b9150612c0f836126c4565b9250828202612c1d816126c4565b91508282048414831517612c3457612c33612a4c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c716020836125ab565b9150612c7c82612c3b565b602082019050919050565b60006020820190508181036000830152612ca081612c64565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ce1826126c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d1357612d12612a4c565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d546017836125ab565b9150612d5f82612d1e565b602082019050919050565b60006020820190508181036000830152612d8381612d47565b9050919050565b600081519050612d9981612698565b92915050565b600060208284031215612db557612db461265c565b5b6000612dc384828501612d8a565b91505092915050565b6000604082019050612de160008301856129e2565b612dee60208301846129e2565b9392505050565b6000819050919050565b6000819050919050565b6000612e24612e1f612e1a84612df5565b612dff565b6126c4565b9050919050565b612e3481612e09565b82525050565b600060c082019050612e4f60008301896129e2565b612e5c6020830188612770565b612e696040830187612e2b565b612e766060830186612e2b565b612e8360808301856129e2565b612e9060a0830184612770565b979650505050505050565b600081519050612eaa816126ce565b92915050565b600080600060608486031215612ec957612ec861265c565b5b6000612ed786828701612e9b565b9350506020612ee886828701612e9b565b9250506040612ef986828701612e9b565b9150509250925092565b6000604082019050612f1860008301856129e2565b612f256020830184612770565b9392505050565b612f358161273a565b8114612f4057600080fd5b50565b600081519050612f5281612f2c565b92915050565b600060208284031215612f6e57612f6d61265c565b5b6000612f7c84828501612f43565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fe16024836125ab565b9150612fec82612f85565b604082019050919050565b6000602082019050818103600083015261301081612fd4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130736022836125ab565b915061307e82613017565b604082019050919050565b600060208201905081810360008301526130a281613066565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131056025836125ab565b9150613110826130a9565b604082019050919050565b60006020820190508181036000830152613134816130f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131976023836125ab565b91506131a28261313b565b604082019050919050565b600060208201905081810360008301526131c68161318a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132296029836125ab565b9150613234826131cd565b604082019050919050565b600060208201905081810360008301526132588161321c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006132e16049836125ab565b91506132ec8261325f565b606082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061334d6019836125ab565b915061335882613317565b602082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b600061338e826126c4565b9150613399836126c4565b92508282019050808211156133b1576133b0612a4c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006133ed601a836125ab565b91506133f8826133b7565b602082019050919050565b6000602082019050818103600083015261341c816133e0565b9050919050565b600061342e826126c4565b9150613439836126c4565b925082820390508181111561345157613450612a4c565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61348c81612686565b82525050565b600061349e8383613483565b60208301905092915050565b6000602082019050919050565b60006134c282613457565b6134cc8185613462565b93506134d783613473565b8060005b838110156135085781516134ef8882613492565b97506134fa836134aa565b9250506001810190506134db565b5085935050505092915050565b600060a08201905061352a6000830188612770565b6135376020830187612e2b565b818103604083015261354981866134b7565b905061355860608301856129e2565b6135656080830184612770565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135a9826126c4565b91506135b4836126c4565b9250826135c4576135c361356f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061362b6021836125ab565b9150613636826135cf565b604082019050919050565b6000602082019050818103600083015261365a8161361e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613697601b836125ab565b91506136a282613661565b602082019050919050565b600060208201905081810360008301526136c68161368a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122053792d1221a9af401ee2ed5b830455ad44bb08d8ef7ee6453973e8d1a162135664736f6c63430008130033