60806040523480156200001157600080fd5b5060405162003ccf38038062003ccf83398181016040528101906200003791906200055b565b818181600590816200004a91906200082b565b5080600690816200005c91906200082b565b5050506000600760006101000a81548160ff0219169083151502179055506200009e6000801b620000926200012860201b60201c565b6200013060201b60201c565b620000df7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6620000d36200012860201b60201c565b6200013060201b60201c565b620001207f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a620001146200012860201b60201c565b6200013060201b60201c565b505062000912565b600033905090565b6200014282826200014660201b60201c565b5050565b6200015d82826200018e60201b62000de31760201c565b6200018981600160008581526020019081526020016000206200027f60201b62000ec31790919060201c565b505050565b620001a08282620002b760201b60201c565b6200027b57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002206200012860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002af836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200032160201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200033583836200039b60201b60201c565b6200039057826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000395565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200042782620003dc565b810181811067ffffffffffffffff82111715620004495762000448620003ed565b5b80604052505050565b60006200045e620003be565b90506200046c82826200041c565b919050565b600067ffffffffffffffff8211156200048f576200048e620003ed565b5b6200049a82620003dc565b9050602081019050919050565b60005b83811015620004c7578082015181840152602081019050620004aa565b83811115620004d7576000848401525b50505050565b6000620004f4620004ee8462000471565b62000452565b905082815260208101848484011115620005135762000512620003d7565b5b62000520848285620004a7565b509392505050565b600082601f83011262000540576200053f620003d2565b5b815162000552848260208601620004dd565b91505092915050565b60008060408385031215620005755762000574620003c8565b5b600083015167ffffffffffffffff811115620005965762000595620003cd565b5b620005a48582860162000528565b925050602083015167ffffffffffffffff811115620005c857620005c7620003cd565b5b620005d68582860162000528565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200063357607f821691505b602082108103620006495762000648620005eb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000674565b620006bf868362000674565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200070c620007066200070084620006d7565b620006e1565b620006d7565b9050919050565b6000819050919050565b6200072883620006eb565b62000740620007378262000713565b84845462000681565b825550505050565b600090565b6200075762000748565b620007648184846200071d565b505050565b5b818110156200078c57620007806000826200074d565b6001810190506200076a565b5050565b601f821115620007db57620007a5816200064f565b620007b08462000664565b81016020851015620007c0578190505b620007d8620007cf8562000664565b83018262000769565b50505b505050565b600082821c905092915050565b60006200080060001984600802620007e0565b1980831691505092915050565b60006200081b8383620007ed565b9150826002028217905092915050565b6200083682620005e0565b67ffffffffffffffff811115620008525762000851620003ed565b5b6200085e82546200061a565b6200086b82828562000790565b600060209050601f831160018114620008a357600084156200088e578287015190505b6200089a85826200080d565b8655506200090a565b601f198416620008b3866200064f565b60005b82811015620008dd57848901518255600182019150602085019450602081019050620008b6565b86831015620008fd5784890151620008f9601f891682620007ed565b8355505b6001600288020188555050505b505050505050565b6133ad80620009226000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a457c2d7116100a2578063d539139311610071578063d53913931461058f578063d547741f146105ad578063dd62ed3e146105c9578063e63ab1e9146105f9576101da565b8063a457c2d7146104e3578063a9059cbb14610513578063bfb2a54614610543578063ca15c8731461055f576101da565b80639010d07c116100de5780639010d07c1461044757806391d148541461047757806395d89b41146104a7578063a217fddf146104c5576101da565b806370a08231146103f157806379cc6790146104215780638456cb591461043d576101da565b80632f2ff15d1161017c5780633f4ba83a1161014b5780633f4ba83a1461039157806340c10f191461039b57806342966c68146103b75780635c975abb146103d3576101da565b80632f2ff15d1461030b578063313ce5671461032757806336568abe146103455780633950935114610361576101da565b806318160ddd116101b857806318160ddd1461025d5780631cdd3be31461027b57806323b872dd146102ab578063248a9ca3146102db576101da565b806301ffc9a7146101df57806306fdde031461020f578063095ea7b31461022d575b600080fd5b6101f960048036038101906101f4919061216b565b610617565b60405161020691906121b3565b60405180910390f35b610217610691565b6040516102249190612267565b60405180910390f35b6102476004803603810190610242919061231d565b610723565b60405161025491906121b3565b60405180910390f35b610265610746565b604051610272919061236c565b60405180910390f35b61029560048036038101906102909190612387565b610750565b6040516102a291906121b3565b60405180910390f35b6102c560048036038101906102c091906123b4565b610770565b6040516102d291906121b3565b60405180910390f35b6102f560048036038101906102f0919061243d565b61079f565b6040516103029190612479565b60405180910390f35b61032560048036038101906103209190612494565b6107be565b005b61032f6107df565b60405161033c91906124f0565b60405180910390f35b61035f600480360381019061035a9190612494565b6107e8565b005b61037b6004803603810190610376919061231d565b61086b565b60405161038891906121b3565b60405180910390f35b6103996108a2565b005b6103b560048036038101906103b0919061231d565b61091c565b005b6103d160048036038101906103cc919061250b565b61099a565b005b6103db6109ae565b6040516103e891906121b3565b60405180910390f35b61040b60048036038101906104069190612387565b6109c5565b604051610418919061236c565b60405180910390f35b61043b6004803603810190610436919061231d565b610a0e565b005b610445610a2e565b005b610461600480360381019061045c9190612538565b610aa8565b60405161046e9190612587565b60405180910390f35b610491600480360381019061048c9190612494565b610ad7565b60405161049e91906121b3565b60405180910390f35b6104af610b41565b6040516104bc9190612267565b60405180910390f35b6104cd610bd3565b6040516104da9190612479565b60405180910390f35b6104fd60048036038101906104f8919061231d565b610bda565b60405161050a91906121b3565b60405180910390f35b61052d6004803603810190610528919061231d565b610c51565b60405161053a91906121b3565b60405180910390f35b61055d600480360381019061055891906125ce565b610c74565b005b6105796004803603810190610574919061243d565b610ccf565b604051610586919061236c565b60405180910390f35b610597610cf3565b6040516105a49190612479565b60405180910390f35b6105c760048036038101906105c29190612494565b610d17565b005b6105e360048036038101906105de919061260e565b610d38565b6040516105f0919061236c565b60405180910390f35b610601610dbf565b60405161060e9190612479565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061068a575061068982610ef3565b5b9050919050565b6060600580546106a09061267d565b80601f01602080910402602001604051908101604052809291908181526020018280546106cc9061267d565b80156107195780601f106106ee57610100808354040283529160200191610719565b820191906000526020600020905b8154815290600101906020018083116106fc57829003601f168201915b5050505050905090565b60008061072e610f6d565b905061073b818585610f75565b600191505092915050565b6000600454905090565b60086020528060005260406000206000915054906101000a900460ff1681565b60008061077b610f6d565b905061078885828561113e565b6107938585856111ca565b60019150509392505050565b6000806000838152602001908152602001600020600101549050919050565b6107c78261079f565b6107d081611443565b6107da8383611457565b505050565b60006012905090565b6107f0610f6d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490612720565b60405180910390fd5b610867828261148b565b5050565b600080610876610f6d565b90506108978185856108888589610d38565b610892919061276f565b610f75565b600191505092915050565b6108d37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6108ce610f6d565b610ad7565b610912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090990612837565b60405180910390fd5b61091a6114bf565b565b61094d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610948610f6d565b610ad7565b61098c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610983906128c9565b60405180910390fd5b6109968282611522565b5050565b6109ab6109a5610f6d565b82611679565b50565b6000600760009054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2082610a1a610f6d565b8361113e565b610a2a8282611679565b5050565b610a5f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a5a610f6d565b610ad7565b610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a959061295b565b60405180910390fd5b610aa6611848565b565b6000610acf82600160008681526020019081526020016000206118ab90919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060068054610b509061267d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7c9061267d565b8015610bc95780601f10610b9e57610100808354040283529160200191610bc9565b820191906000526020600020905b815481529060010190602001808311610bac57829003601f168201915b5050505050905090565b6000801b81565b600080610be5610f6d565b90506000610bf38286610d38565b905083811015610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f906129ed565b60405180910390fd5b610c458286868403610f75565b60019250505092915050565b600080610c5c610f6d565b9050610c698185856111ca565b600191505092915050565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610cec600160008481526020019081526020016000206118c5565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610d208261079f565b610d2981611443565b610d33838361148b565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b610ded8282610ad7565b610ebf57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e64610f6d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610eeb836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6118da565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f665750610f658261194a565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb90612a7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a90612b11565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611131919061236c565b60405180910390a3505050565b600061114a8484610d38565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111c457818110156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90612b7d565b60405180910390fd5b6111c38484848403610f75565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090612c0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90612ca1565b60405180910390fd5b6112b38383836119b4565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612d33565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161142a919061236c565b60405180910390a361143d848484611aa7565b50505050565b6114548161144f610f6d565b611aac565b50565b6114618282610de3565b6114868160016000858152602001908152602001600020610ec390919063ffffffff16565b505050565b6114958282611b31565b6114ba8160016000858152602001908152602001600020611c1290919063ffffffff16565b505050565b6114c7611c42565b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61150b610f6d565b6040516115189190612587565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890612d9f565b60405180910390fd5b61159d600083836119b4565b80600460008282546115af919061276f565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611661919061236c565b60405180910390a361167560008383611aa7565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90612e31565b60405180910390fd5b6116f4826000836119b4565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612ec3565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161182f919061236c565b60405180910390a361184383600084611aa7565b505050565b611850611c8b565b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611894610f6d565b6040516118a19190612587565b60405180910390a1565b60006118ba8360000183611cd5565b60001c905092915050565b60006118d382600001611d00565b9050919050565b60006118e68383611d11565b61193f578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611944565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6119bf838383611d34565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a635750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990612f2f565b60405180910390fd5b505050565b505050565b611ab68282610ad7565b611b2d57611ac381611d8c565b611ad18360001c6020611db9565b604051602001611ae2929190613023565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b249190612267565b60405180910390fd5b5050565b611b3b8282610ad7565b15611c0e57600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bb3610f6d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611c3a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ff5565b905092915050565b611c4a6109ae565b611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906130a9565b60405180910390fd5b565b611c936109ae565b15611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca90613115565b60405180910390fd5b565b6000826000018281548110611ced57611cec613135565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b611d3f838383612109565b611d476109ae565b15611d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e906131d6565b60405180910390fd5b505050565b6060611db28273ffffffffffffffffffffffffffffffffffffffff16601460ff16611db9565b9050919050565b606060006002836002611dcc91906131f6565b611dd6919061276f565b67ffffffffffffffff811115611def57611dee613250565b5b6040519080825280601f01601f191660200182016040528015611e215781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611e5957611e58613135565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611ebd57611ebc613135565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611efd91906131f6565b611f07919061276f565b90505b6001811115611fa7577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611f4957611f48613135565b5b1a60f81b828281518110611f6057611f5f613135565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611fa09061327f565b9050611f0a565b5060008414611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe2906132f4565b60405180910390fd5b8091505092915050565b600080836001016000848152602001908152602001600020549050600081146120fd5760006001826120279190613314565b905060006001866000018054905061203f9190613314565b90508181146120ae5760008660000182815481106120605761205f613135565b5b906000526020600020015490508087600001848154811061208457612083613135565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806120c2576120c1613348565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612103565b60009150505b92915050565b505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61214881612113565b811461215357600080fd5b50565b6000813590506121658161213f565b92915050565b6000602082840312156121815761218061210e565b5b600061218f84828501612156565b91505092915050565b60008115159050919050565b6121ad81612198565b82525050565b60006020820190506121c860008301846121a4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122085780820151818401526020810190506121ed565b83811115612217576000848401525b50505050565b6000601f19601f8301169050919050565b6000612239826121ce565b61224381856121d9565b93506122538185602086016121ea565b61225c8161221d565b840191505092915050565b60006020820190508181036000830152612281818461222e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122b482612289565b9050919050565b6122c4816122a9565b81146122cf57600080fd5b50565b6000813590506122e1816122bb565b92915050565b6000819050919050565b6122fa816122e7565b811461230557600080fd5b50565b600081359050612317816122f1565b92915050565b600080604083850312156123345761233361210e565b5b6000612342858286016122d2565b925050602061235385828601612308565b9150509250929050565b612366816122e7565b82525050565b6000602082019050612381600083018461235d565b92915050565b60006020828403121561239d5761239c61210e565b5b60006123ab848285016122d2565b91505092915050565b6000806000606084860312156123cd576123cc61210e565b5b60006123db868287016122d2565b93505060206123ec868287016122d2565b92505060406123fd86828701612308565b9150509250925092565b6000819050919050565b61241a81612407565b811461242557600080fd5b50565b60008135905061243781612411565b92915050565b6000602082840312156124535761245261210e565b5b600061246184828501612428565b91505092915050565b61247381612407565b82525050565b600060208201905061248e600083018461246a565b92915050565b600080604083850312156124ab576124aa61210e565b5b60006124b985828601612428565b92505060206124ca858286016122d2565b9150509250929050565b600060ff82169050919050565b6124ea816124d4565b82525050565b600060208201905061250560008301846124e1565b92915050565b6000602082840312156125215761252061210e565b5b600061252f84828501612308565b91505092915050565b6000806040838503121561254f5761254e61210e565b5b600061255d85828601612428565b925050602061256e85828601612308565b9150509250929050565b612581816122a9565b82525050565b600060208201905061259c6000830184612578565b92915050565b6125ab81612198565b81146125b657600080fd5b50565b6000813590506125c8816125a2565b92915050565b600080604083850312156125e5576125e461210e565b5b60006125f3858286016122d2565b9250506020612604858286016125b9565b9150509250929050565b600080604083850312156126255761262461210e565b5b6000612633858286016122d2565b9250506020612644858286016122d2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061269557607f821691505b6020821081036126a8576126a761264e565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061270a602f836121d9565b9150612715826126ae565b604082019050919050565b60006020820190508181036000830152612739816126fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061277a826122e7565b9150612785836122e7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127ba576127b9612740565b5b828201905092915050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b60006128216039836121d9565b915061282c826127c5565b604082019050919050565b6000602082019050818103600083015261285081612814565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b60006128b36036836121d9565b91506128be82612857565b604082019050919050565b600060208201905081810360008301526128e2816128a6565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b60006129456037836121d9565b9150612950826128e9565b604082019050919050565b6000602082019050818103600083015261297481612938565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006129d76025836121d9565b91506129e28261297b565b604082019050919050565b60006020820190508181036000830152612a06816129ca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a696024836121d9565b9150612a7482612a0d565b604082019050919050565b60006020820190508181036000830152612a9881612a5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612afb6022836121d9565b9150612b0682612a9f565b604082019050919050565b60006020820190508181036000830152612b2a81612aee565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612b67601d836121d9565b9150612b7282612b31565b602082019050919050565b60006020820190508181036000830152612b9681612b5a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612bf96025836121d9565b9150612c0482612b9d565b604082019050919050565b60006020820190508181036000830152612c2881612bec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c8b6023836121d9565b9150612c9682612c2f565b604082019050919050565b60006020820190508181036000830152612cba81612c7e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d1d6026836121d9565b9150612d2882612cc1565b604082019050919050565b60006020820190508181036000830152612d4c81612d10565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612d89601f836121d9565b9150612d9482612d53565b602082019050919050565b60006020820190508181036000830152612db881612d7c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e1b6021836121d9565b9150612e2682612dbf565b604082019050919050565b60006020820190508181036000830152612e4a81612e0e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ead6022836121d9565b9150612eb882612e51565b604082019050919050565b60006020820190508181036000830152612edc81612ea0565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000612f196013836121d9565b9150612f2482612ee3565b602082019050919050565b60006020820190508181036000830152612f4881612f0c565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612f90601783612f4f565b9150612f9b82612f5a565b601782019050919050565b6000612fb1826121ce565b612fbb8185612f4f565b9350612fcb8185602086016121ea565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061300d601183612f4f565b915061301882612fd7565b601182019050919050565b600061302e82612f83565b915061303a8285612fa6565b915061304582613000565b91506130518284612fa6565b91508190509392505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006130936014836121d9565b915061309e8261305d565b602082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006130ff6010836121d9565b915061310a826130c9565b602082019050919050565b6000602082019050818103600083015261312e816130f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b60006131c0602a836121d9565b91506131cb82613164565b604082019050919050565b600060208201905081810360008301526131ef816131b3565b9050919050565b6000613201826122e7565b915061320c836122e7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561324557613244612740565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061328a826122e7565b91506000820361329d5761329c612740565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006132de6020836121d9565b91506132e9826132a8565b602082019050919050565b6000602082019050818103600083015261330d816132d1565b9050919050565b600061331f826122e7565b915061332a836122e7565b92508282101561333d5761333c612740565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220e95f8d63227017d8ac2ea6760529be4a1ca8174eee9c51bdd0a5a57c4e597c7664736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000d5768616c65734661726d696e670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065748414c45530000000000000000000000000000000000000000000000000000