0x608060405234801561001057600080fd5b5060405180606001604052806027815260200161429460279139610039816101c660201b60201c565b5061005661004b6101d960201b60201c565b6101e160201b60201c565b6040518060400160405280601181526020017f50726f73746f20436f6c6c656374696f6e0000000000000000000000000000008152506004908161009a9190610955565b506040518060400160405280600581526020017f50524e4654000000000000000000000000000000000000000000000000000000815250600590816100df9190610955565b506000730ef1da8bd8708ae6e14529f6139fda34757d23199050610123816000670de0b6b3a7640000604051806020016040528060008152506102a760201b60201c565b6101518160016b033b2e3c9fd0803ce8000000604051806020016040528060008152506102a760201b60201c565b6101748160026001604051806020016040528060008152506102a760201b60201c565b61019a816003633b9aca00604051806020016040528060008152506102a760201b60201c565b6101c0816004633b9aca00604051806020016040528060008152506102a760201b60201c565b50610fc2565b80600290816101d59190610955565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030d90610aaa565b60405180910390fd5b60006103266101d960201b60201c565b905060006103398561047b60201b60201c565b9050600061034c8561047b60201b60201c565b9050610363836000898585896104f560201b60201c565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103c29190610af9565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051610440929190610b3c565b60405180910390a461045d836000898585896104fd60201b60201c565b6104728360008989898961050560201b60201c565b50505050505050565b60606000600167ffffffffffffffff81111561049a57610499610710565b5b6040519080825280602002602001820160405280156104c85781602001602082028036833780820191505090505b50905082816000815181106104e0576104df610b65565b5b60200260200101818152505080915050919050565b505050505050565b505050505050565b61052a8473ffffffffffffffffffffffffffffffffffffffff166106e260201b60201c565b156106da578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401610570959493929190610c65565b6020604051808303816000875af19250505080156105ac57506040513d601f19601f820116820180604052508101906105a99190610d26565b60015b610651576105b8610d60565b806308c379a00361061457506105cc610db3565b806105d75750610616565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060b9190610e7c565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064890610f10565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146106d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cf90610fa2565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061078657607f821691505b6020821081036107995761079861073f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026108017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107c4565b61080b86836107c4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061085261084d61084884610823565b61082d565b610823565b9050919050565b6000819050919050565b61086c83610837565b61088061087882610859565b8484546107d1565b825550505050565b600090565b610895610888565b6108a0818484610863565b505050565b5b818110156108c4576108b960008261088d565b6001810190506108a6565b5050565b601f821115610909576108da8161079f565b6108e3846107b4565b810160208510156108f2578190505b6109066108fe856107b4565b8301826108a5565b50505b505050565b600082821c905092915050565b600061092c6000198460080261090e565b1980831691505092915050565b6000610945838361091b565b9150826002028217905092915050565b61095e82610705565b67ffffffffffffffff81111561097757610976610710565b5b610981825461076e565b61098c8282856108c8565b600060209050601f8311600181146109bf57600084156109ad578287015190505b6109b78582610939565b865550610a1f565b601f1984166109cd8661079f565b60005b828110156109f5578489015182556001820191506020850194506020810190506109d0565b86831015610a125784890151610a0e601f89168261091b565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000610a94602183610a27565b9150610a9f82610a38565b604082019050919050565b60006020820190508181036000830152610ac381610a87565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610b0482610823565b9150610b0f83610823565b9250828201905080821115610b2757610b26610aca565b5b92915050565b610b3681610823565b82525050565b6000604082019050610b516000830185610b2d565b610b5e6020830184610b2d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bbf82610b94565b9050919050565b610bcf81610bb4565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c0f578082015181840152602081019050610bf4565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c3782610bd5565b610c418185610be0565b9350610c51818560208601610bf1565b610c5a81610c1b565b840191505092915050565b600060a082019050610c7a6000830188610bc6565b610c876020830187610bc6565b610c946040830186610b2d565b610ca16060830185610b2d565b8181036080830152610cb38184610c2c565b90509695505050505050565b6000604051905090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d0381610cce565b8114610d0e57600080fd5b50565b600081519050610d2081610cfa565b92915050565b600060208284031215610d3c57610d3b610cc9565b5b6000610d4a84828501610d11565b91505092915050565b60008160e01c9050919050565b600060033d1115610d7f5760046000803e610d7c600051610d53565b90505b90565b610d8b82610c1b565b810181811067ffffffffffffffff82111715610daa57610da9610710565b5b80604052505050565b600060443d10610e4057610dc5610cbf565b60043d036004823e80513d602482011167ffffffffffffffff82111715610ded575050610e40565b808201805167ffffffffffffffff811115610e0b5750505050610e40565b80602083010160043d038501811115610e28575050505050610e40565b610e3782602001850186610d82565b82955050505050505b90565b6000610e4e82610705565b610e588185610a27565b9350610e68818560208601610bf1565b610e7181610c1b565b840191505092915050565b60006020820190508181036000830152610e968184610e43565b905092915050565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000610efa603483610a27565b9150610f0582610e9e565b604082019050919050565b60006020820190508181036000830152610f2981610eed565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000610f8c602883610a27565b9150610f9782610f30565b604082019050919050565b60006020820190508181036000830152610fbb81610f7f565b9050919050565b6132c380610fd16000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063715018a6116100b8578063c87b56dd1161007c578063c87b56dd14610329578063d562e20414610359578063e3e55f0814610377578063e985e9c514610395578063f242432a146103c5578063f2fde38b146103e157610136565b8063715018a6146102ab5780638da5cb5b146102b557806395d89b41146102d3578063a22cb465146102f1578063c1341c4f1461030d57610136565b806313dc989f116100ff57806313dc989f146102055780632eb2c2d6146102235780633e4bee381461023f5780634e1273f41461025d5780635b2725ed1461028d57610136565b8062fdd58e1461013b57806301ffc9a71461016b57806302fe53051461019b57806306fdde03146101b75780630e89341c146101d5575b600080fd5b61015560048036038101906101509190611bd1565b6103fd565b6040516101629190611c20565b60405180910390f35b61018560048036038101906101809190611c93565b6104c5565b6040516101929190611cdb565b60405180910390f35b6101b560048036038101906101b09190611e3c565b6105a7565b005b6101bf6105bb565b6040516101cc9190611f04565b60405180910390f35b6101ef60048036038101906101ea9190611f26565b610649565b6040516101fc9190611f04565b60405180910390f35b61020d6106dd565b60405161021a9190611c20565b60405180910390f35b61023d600480360381019061023891906120bc565b6106e2565b005b610247610783565b6040516102549190611c20565b60405180910390f35b6102776004803603810190610272919061224e565b610788565b6040516102849190612384565b60405180910390f35b61029561089b565b6040516102a29190611c20565b60405180910390f35b6102b36108a0565b005b6102bd6108b4565b6040516102ca91906123b5565b60405180910390f35b6102db6108de565b6040516102e89190611f04565b60405180910390f35b61030b600480360381019061030691906123fc565b61096c565b005b6103276004803603810190610322919061243c565b610982565b005b610343600480360381019061033e9190611f26565b6109a7565b6040516103509190611f04565b60405180910390f35b610361610a4c565b60405161036e9190611c20565b60405180910390f35b61037f610a51565b60405161038c9190611c20565b60405180910390f35b6103af60048036038101906103aa91906124ef565b610a56565b6040516103bc9190611cdb565b60405180910390f35b6103df60048036038101906103da919061252f565b610aea565b005b6103fb60048036038101906103f691906125c6565b610b8b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361046d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046490612665565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061059057507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105a0575061059f82610c0e565b5b9050919050565b6105af610c78565b6105b881610cf6565b50565b600480546105c8906126b4565b80601f01602080910402602001604051908101604052809291908181526020018280546105f4906126b4565b80156106415780601f1061061657610100808354040283529160200191610641565b820191906000526020600020905b81548152906001019060200180831161062457829003601f168201915b505050505081565b606060028054610658906126b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610684906126b4565b80156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050509050919050565b600381565b6106ea610d09565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610730575061072f8561072a610d09565b610a56565b5b61076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076690612757565b60405180910390fd5b61077c8585858585610d11565b5050505050565b600081565b606081518351146107ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c5906127e9565b60405180910390fd5b6000835167ffffffffffffffff8111156107eb576107ea611d11565b5b6040519080825280602002602001820160405280156108195781602001602082028036833780820191505090505b50905060005b84518110156108905761086685828151811061083e5761083d612809565b5b602002602001015185838151811061085957610858612809565b5b60200260200101516103fd565b82828151811061087957610878612809565b5b60200260200101818152505080600101905061081f565b508091505092915050565b600481565b6108a8610c78565b6108b2600061102c565b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600580546108eb906126b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610917906126b4565b80156109645780601f1061093957610100808354040283529160200191610964565b820191906000526020600020905b81548152906001019060200180831161094757829003601f168201915b505050505081565b61097e610977610d09565b83836110f2565b5050565b61098a610c78565b6109968585858561125e565b6109a0848261140e565b5050505050565b60606006600083815260200190815260200160002080546109c7906126b4565b80601f01602080910402602001604051908101604052809291908181526020018280546109f3906126b4565b8015610a405780601f10610a1557610100808354040283529160200191610a40565b820191906000526020600020905b815481529060010190602001808311610a2357829003601f168201915b50505050509050919050565b600281565b600181565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610af2610d09565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610b385750610b3785610b32610d09565b610a56565b5b610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e90612757565b60405180910390fd5b610b848585858585611433565b5050505050565b610b93610c78565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906128aa565b60405180910390fd5b610c0b8161102c565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c80610d09565b73ffffffffffffffffffffffffffffffffffffffff16610c9e6108b4565b73ffffffffffffffffffffffffffffffffffffffff1614610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90612916565b60405180910390fd5b565b8060029081610d059190612ae2565b5050565b600033905090565b8151835114610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90612c26565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90612cb8565b60405180910390fd5b6000610dce610d09565b9050610dde8187878787876116ce565b60005b8451811015610f89576000858281518110610dff57610dfe612809565b5b602002602001015190506000858381518110610e1e57610e1d612809565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690612d4a565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f749190612d99565b92505081905550505050806001019050610de1565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611000929190612dcd565b60405180910390a46110168187878787876116d6565b6110248187878787876116de565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612e76565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112519190611cdb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612f08565b60405180910390fd5b60006112d7610d09565b905060006112e4856118b5565b905060006112f1856118b5565b9050611302836000898585896116ce565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113619190612d99565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516113df929190612f28565b60405180910390a46113f6836000898585896116d6565b6114058360008989898961192f565b50505050505050565b8060066000848152602001908152602001600020908161142e9190612ae2565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149990612cb8565b60405180910390fd5b60006114ac610d09565b905060006114b9856118b5565b905060006114c6856118b5565b90506114d68389898585896116ce565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508581101561156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156490612d4a565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116229190612d99565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161169f929190612f28565b60405180910390a46116b5848a8a86868a6116d6565b6116c3848a8a8a8a8a61192f565b505050505050505050565b505050505050565b505050505050565b6116fd8473ffffffffffffffffffffffffffffffffffffffff16611b06565b156118ad578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611743959493929190612fa6565b6020604051808303816000875af192505050801561177f57506040513d601f19601f8201168201806040525081019061177c9190613023565b60015b6118245761178b61305d565b806308c379a0036117e7575061179f61307f565b806117aa57506117e9565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de9190611f04565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90613181565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290613213565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156118d4576118d3611d11565b5b6040519080825280602002602001820160405280156119025781602001602082028036833780820191505090505b509050828160008151811061191a57611919612809565b5b60200260200101818152505080915050919050565b61194e8473ffffffffffffffffffffffffffffffffffffffff16611b06565b15611afe578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611994959493929190613233565b6020604051808303816000875af19250505080156119d057506040513d601f19601f820116820180604052508101906119cd9190613023565b60015b611a75576119dc61305d565b806308c379a003611a3857506119f061307f565b806119fb5750611a3a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f9190611f04565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613181565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af390613213565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b6882611b3d565b9050919050565b611b7881611b5d565b8114611b8357600080fd5b50565b600081359050611b9581611b6f565b92915050565b6000819050919050565b611bae81611b9b565b8114611bb957600080fd5b50565b600081359050611bcb81611ba5565b92915050565b60008060408385031215611be857611be7611b33565b5b6000611bf685828601611b86565b9250506020611c0785828601611bbc565b9150509250929050565b611c1a81611b9b565b82525050565b6000602082019050611c356000830184611c11565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c7081611c3b565b8114611c7b57600080fd5b50565b600081359050611c8d81611c67565b92915050565b600060208284031215611ca957611ca8611b33565b5b6000611cb784828501611c7e565b91505092915050565b60008115159050919050565b611cd581611cc0565b82525050565b6000602082019050611cf06000830184611ccc565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d4982611d00565b810181811067ffffffffffffffff82111715611d6857611d67611d11565b5b80604052505050565b6000611d7b611b29565b9050611d878282611d40565b919050565b600067ffffffffffffffff821115611da757611da6611d11565b5b611db082611d00565b9050602081019050919050565b82818337600083830152505050565b6000611ddf611dda84611d8c565b611d71565b905082815260208101848484011115611dfb57611dfa611cfb565b5b611e06848285611dbd565b509392505050565b600082601f830112611e2357611e22611cf6565b5b8135611e33848260208601611dcc565b91505092915050565b600060208284031215611e5257611e51611b33565b5b600082013567ffffffffffffffff811115611e7057611e6f611b38565b5b611e7c84828501611e0e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ebf578082015181840152602081019050611ea4565b60008484015250505050565b6000611ed682611e85565b611ee08185611e90565b9350611ef0818560208601611ea1565b611ef981611d00565b840191505092915050565b60006020820190508181036000830152611f1e8184611ecb565b905092915050565b600060208284031215611f3c57611f3b611b33565b5b6000611f4a84828501611bbc565b91505092915050565b600067ffffffffffffffff821115611f6e57611f6d611d11565b5b602082029050602081019050919050565b600080fd5b6000611f97611f9284611f53565b611d71565b90508083825260208201905060208402830185811115611fba57611fb9611f7f565b5b835b81811015611fe35780611fcf8882611bbc565b845260208401935050602081019050611fbc565b5050509392505050565b600082601f83011261200257612001611cf6565b5b8135612012848260208601611f84565b91505092915050565b600067ffffffffffffffff82111561203657612035611d11565b5b61203f82611d00565b9050602081019050919050565b600061205f61205a8461201b565b611d71565b90508281526020810184848401111561207b5761207a611cfb565b5b612086848285611dbd565b509392505050565b600082601f8301126120a3576120a2611cf6565b5b81356120b384826020860161204c565b91505092915050565b600080600080600060a086880312156120d8576120d7611b33565b5b60006120e688828901611b86565b95505060206120f788828901611b86565b945050604086013567ffffffffffffffff81111561211857612117611b38565b5b61212488828901611fed565b935050606086013567ffffffffffffffff81111561214557612144611b38565b5b61215188828901611fed565b925050608086013567ffffffffffffffff81111561217257612171611b38565b5b61217e8882890161208e565b9150509295509295909350565b600067ffffffffffffffff8211156121a6576121a5611d11565b5b602082029050602081019050919050565b60006121ca6121c58461218b565b611d71565b905080838252602082019050602084028301858111156121ed576121ec611f7f565b5b835b8181101561221657806122028882611b86565b8452602084019350506020810190506121ef565b5050509392505050565b600082601f83011261223557612234611cf6565b5b81356122458482602086016121b7565b91505092915050565b6000806040838503121561226557612264611b33565b5b600083013567ffffffffffffffff81111561228357612282611b38565b5b61228f85828601612220565b925050602083013567ffffffffffffffff8111156122b0576122af611b38565b5b6122bc85828601611fed565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6122fb81611b9b565b82525050565b600061230d83836122f2565b60208301905092915050565b6000602082019050919050565b6000612331826122c6565b61233b81856122d1565b9350612346836122e2565b8060005b8381101561237757815161235e8882612301565b975061236983612319565b92505060018101905061234a565b5085935050505092915050565b6000602082019050818103600083015261239e8184612326565b905092915050565b6123af81611b5d565b82525050565b60006020820190506123ca60008301846123a6565b92915050565b6123d981611cc0565b81146123e457600080fd5b50565b6000813590506123f6816123d0565b92915050565b6000806040838503121561241357612412611b33565b5b600061242185828601611b86565b9250506020612432858286016123e7565b9150509250929050565b600080600080600060a0868803121561245857612457611b33565b5b600061246688828901611b86565b955050602061247788828901611bbc565b945050604061248888828901611bbc565b935050606086013567ffffffffffffffff8111156124a9576124a8611b38565b5b6124b58882890161208e565b925050608086013567ffffffffffffffff8111156124d6576124d5611b38565b5b6124e288828901611e0e565b9150509295509295909350565b6000806040838503121561250657612505611b33565b5b600061251485828601611b86565b925050602061252585828601611b86565b9150509250929050565b600080600080600060a0868803121561254b5761254a611b33565b5b600061255988828901611b86565b955050602061256a88828901611b86565b945050604061257b88828901611bbc565b935050606061258c88828901611bbc565b925050608086013567ffffffffffffffff8111156125ad576125ac611b38565b5b6125b98882890161208e565b9150509295509295909350565b6000602082840312156125dc576125db611b33565b5b60006125ea84828501611b86565b91505092915050565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b600061264f602a83611e90565b915061265a826125f3565b604082019050919050565b6000602082019050818103600083015261267e81612642565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806126cc57607f821691505b6020821081036126df576126de612685565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612741602e83611e90565b915061274c826126e5565b604082019050919050565b6000602082019050818103600083015261277081612734565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b60006127d3602983611e90565b91506127de82612777565b604082019050919050565b60006020820190508181036000830152612802816127c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612894602683611e90565b915061289f82612838565b604082019050919050565b600060208201905081810360008301526128c381612887565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612900602083611e90565b915061290b826128ca565b602082019050919050565b6000602082019050818103600083015261292f816128f3565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026129987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261295b565b6129a2868361295b565b95508019841693508086168417925050509392505050565b6000819050919050565b60006129df6129da6129d584611b9b565b6129ba565b611b9b565b9050919050565b6000819050919050565b6129f9836129c4565b612a0d612a05826129e6565b848454612968565b825550505050565b600090565b612a22612a15565b612a2d8184846129f0565b505050565b5b81811015612a5157612a46600082612a1a565b600181019050612a33565b5050565b601f821115612a9657612a6781612936565b612a708461294b565b81016020851015612a7f578190505b612a93612a8b8561294b565b830182612a32565b50505b505050565b600082821c905092915050565b6000612ab960001984600802612a9b565b1980831691505092915050565b6000612ad28383612aa8565b9150826002028217905092915050565b612aeb82611e85565b67ffffffffffffffff811115612b0457612b03611d11565b5b612b0e82546126b4565b612b19828285612a55565b600060209050601f831160018114612b4c5760008415612b3a578287015190505b612b448582612ac6565b865550612bac565b601f198416612b5a86612936565b60005b82811015612b8257848901518255600182019150602085019450602081019050612b5d565b86831015612b9f5784890151612b9b601f891682612aa8565b8355505b6001600288020188555050505b505050505050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000612c10602883611e90565b9150612c1b82612bb4565b604082019050919050565b60006020820190508181036000830152612c3f81612c03565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ca2602583611e90565b9150612cad82612c46565b604082019050919050565b60006020820190508181036000830152612cd181612c95565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612d34602a83611e90565b9150612d3f82612cd8565b604082019050919050565b60006020820190508181036000830152612d6381612d27565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612da482611b9b565b9150612daf83611b9b565b9250828201905080821115612dc757612dc6612d6a565b5b92915050565b60006040820190508181036000830152612de78185612326565b90508181036020830152612dfb8184612326565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000612e60602983611e90565b9150612e6b82612e04565b604082019050919050565b60006020820190508181036000830152612e8f81612e53565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ef2602183611e90565b9150612efd82612e96565b604082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b6000604082019050612f3d6000830185611c11565b612f4a6020830184611c11565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000612f7882612f51565b612f828185612f5c565b9350612f92818560208601611ea1565b612f9b81611d00565b840191505092915050565b600060a082019050612fbb60008301886123a6565b612fc860208301876123a6565b8181036040830152612fda8186612326565b90508181036060830152612fee8185612326565b905081810360808301526130028184612f6d565b90509695505050505050565b60008151905061301d81611c67565b92915050565b60006020828403121561303957613038611b33565b5b60006130478482850161300e565b91505092915050565b60008160e01c9050919050565b600060033d111561307c5760046000803e613079600051613050565b90505b90565b600060443d1061310c57613091611b29565b60043d036004823e80513d602482011167ffffffffffffffff821117156130b957505061310c565b808201805167ffffffffffffffff8111156130d7575050505061310c565b80602083010160043d0385018111156130f457505050505061310c565b61310382602001850186611d40565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600061316b603483611e90565b91506131768261310f565b604082019050919050565b6000602082019050818103600083015261319a8161315e565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006131fd602883611e90565b9150613208826131a1565b604082019050919050565b6000602082019050818103600083015261322c816131f0565b9050919050565b600060a08201905061324860008301886123a6565b61325560208301876123a6565b6132626040830186611c11565b61326f6060830185611c11565b81810360808301526132818184612f6d565b9050969550505050505056fea2646970667358221220e4c02fa267a6086adec938f916bca4f5ce6f245108bb45aa01df2d96bcac2bd864736f6c634300081b003368747470733a2f2f67616d652e6578616d706c652f6170692f6974656d2f7b69647d2e6a736f6e