0x60806040523480156200001157600080fd5b506040518060400160405280600781526020017f414e50204e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f414e504e0000000000000000000000000000000000000000000000000000000081525081600090816200008f91906200042d565b508060019081620000a191906200042d565b5050506000600b60006101000a81548160ff021916908315150217905550620000df620000d3620000e560201b60201c565b620000ed60201b60201c565b62000514565b600033905090565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200023557607f821691505b6020821081036200024b576200024a620001ed565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000276565b620002c1868362000276565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200030e620003086200030284620002d9565b620002e3565b620002d9565b9050919050565b6000819050919050565b6200032a83620002ed565b62000342620003398262000315565b84845462000283565b825550505050565b600090565b620003596200034a565b620003668184846200031f565b505050565b5b818110156200038e57620003826000826200034f565b6001810190506200036c565b5050565b601f821115620003dd57620003a78162000251565b620003b28462000266565b81016020851015620003c2578190505b620003da620003d18562000266565b8301826200036b565b50505b505050565b600082821c905092915050565b60006200040260001984600802620003e2565b1980831691505092915050565b60006200041d8383620003ef565b9150826002028217905092915050565b6200043882620001b3565b67ffffffffffffffff811115620004545762000453620001be565b5b6200046082546200021c565b6200046d82828562000392565b600060209050601f831160018114620004a5576000841562000490578287015190505b6200049c85826200040f565b8655506200050c565b601f198416620004b58662000251565b60005b82811015620004df57848901518255600182019150602085019450602081019050620004b8565b86831015620004ff5784890151620004fb601f891682620003ef565b8355505b6001600288020188555050505b505050505050565b613d4f80620005246000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636352211e116100c3578063a22cb4651161007c578063a22cb465146103a1578063b88d4fde146103bd578063c87b56dd146103d9578063d204c45e14610409578063e985e9c514610425578063f2fde38b1461045557610158565b80636352211e146102f157806370a0823114610321578063715018a6146103515780638456cb591461035b5780638da5cb5b1461036557806395d89b411461038357610158565b80632f745c59116101155780632f745c59146102315780633f4ba83a1461026157806342842e0e1461026b57806342966c68146102875780634f6ccce7146102a35780635c975abb146102d357610158565b806301ffc9a71461015d57806306fdde031461018d578063081812fc146101ab578063095ea7b3146101db57806318160ddd146101f757806323b872dd14610215575b600080fd5b610177600480360381019061017291906127f1565b610471565b6040516101849190612839565b60405180910390f35b610195610483565b6040516101a291906128e4565b60405180910390f35b6101c560048036038101906101c0919061293c565b610515565b6040516101d291906129aa565b60405180910390f35b6101f560048036038101906101f091906129f1565b61055b565b005b6101ff610672565b60405161020c9190612a40565b60405180910390f35b61022f600480360381019061022a9190612a5b565b61067f565b005b61024b600480360381019061024691906129f1565b6106df565b6040516102589190612a40565b60405180910390f35b610269610784565b005b61028560048036038101906102809190612a5b565b610796565b005b6102a1600480360381019061029c919061293c565b6107b6565b005b6102bd60048036038101906102b8919061293c565b610812565b6040516102ca9190612a40565b60405180910390f35b6102db610883565b6040516102e89190612839565b60405180910390f35b61030b6004803603810190610306919061293c565b61089a565b60405161031891906129aa565b60405180910390f35b61033b60048036038101906103369190612aae565b610920565b6040516103489190612a40565b60405180910390f35b6103596109d7565b005b6103636109eb565b005b61036d6109fd565b60405161037a91906129aa565b60405180910390f35b61038b610a27565b60405161039891906128e4565b60405180910390f35b6103bb60048036038101906103b69190612b07565b610ab9565b005b6103d760048036038101906103d29190612c7c565b610acf565b005b6103f360048036038101906103ee919061293c565b610b31565b60405161040091906128e4565b60405180910390f35b610423600480360381019061041e9190612da0565b610b43565b005b61043f600480360381019061043a9190612dfc565b610b7c565b60405161044c9190612839565b60405180910390f35b61046f600480360381019061046a9190612aae565b610c10565b005b600061047c82610c93565b9050919050565b60606000805461049290612e6b565b80601f01602080910402602001604051908101604052809291908181526020018280546104be90612e6b565b801561050b5780601f106104e05761010080835404028352916020019161050b565b820191906000526020600020905b8154815290600101906020018083116104ee57829003601f168201915b5050505050905090565b600061052082610cf4565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105668261089a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90612f0e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105f5610d3f565b73ffffffffffffffffffffffffffffffffffffffff16148061062457506106238161061e610d3f565b610b7c565b5b610663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065a90612fa0565b60405180910390fd5b61066d8383610d47565b505050565b6000600880549050905090565b61069061068a610d3f565b82610e00565b6106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690613032565b60405180910390fd5b6106da838383610e95565b505050565b60006106ea83610920565b821061072b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610722906130c4565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61078c61118e565b61079461120c565b565b6107b183838360405180602001604052806000815250610acf565b505050565b6107c76107c1610d3f565b82610e00565b610806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fd90613032565b60405180910390fd5b61080f8161126f565b50565b600061081c610672565b821061085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085490613156565b60405180910390fd5b6008828154811061087157610870613176565b5b90600052602060002001549050919050565b6000600b60009054906101000a900460ff16905090565b6000806108a68361127b565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e906131f1565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790613283565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109df61118e565b6109e960006112b8565b565b6109f361118e565b6109fb61137e565b565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a3690612e6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6290612e6b565b8015610aaf5780601f10610a8457610100808354040283529160200191610aaf565b820191906000526020600020905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b610acb610ac4610d3f565b83836113e1565b5050565b610ae0610ada610d3f565b83610e00565b610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1690613032565b60405180910390fd5b610b2b8484848461154d565b50505050565b6060610b3c826115a9565b9050919050565b610b4b61118e565b6000610b57600c6116bb565b9050610b63600c6116c9565b610b6d83826116df565b610b7781836116fd565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610c1861118e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e90613315565b60405180910390fd5b610c90816112b8565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ced5750610cec826117a1565b5b9050919050565b610cfd8161181b565b610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d33906131f1565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610dba8361089a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610e0c8361089a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610e4e5750610e4d8185610b7c565b5b80610e8c57508373ffffffffffffffffffffffffffffffffffffffff16610e7484610515565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610eb58261089a565b73ffffffffffffffffffffffffffffffffffffffff1614610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f02906133a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190613439565b60405180910390fd5b610f87838383600161185c565b8273ffffffffffffffffffffffffffffffffffffffff16610fa78261089a565b73ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906133a7565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111898383836001611876565b505050565b611196610d3f565b73ffffffffffffffffffffffffffffffffffffffff166111b46109fd565b73ffffffffffffffffffffffffffffffffffffffff161461120a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611201906134a5565b60405180910390fd5b565b61121461187c565b6000600b60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611258610d3f565b60405161126591906129aa565b60405180910390a1565b611278816118c5565b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611386611918565b6001600b60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ca610d3f565b6040516113d791906129aa565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144690613511565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115409190612839565b60405180910390a3505050565b611558848484610e95565b61156484848484611962565b6115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906135a3565b60405180910390fd5b50505050565b60606115b482610cf4565b6000600a600084815260200190815260200160002080546115d490612e6b565b80601f016020809104026020016040519081016040528092919081815260200182805461160090612e6b565b801561164d5780601f106116225761010080835404028352916020019161164d565b820191906000526020600020905b81548152906001019060200180831161163057829003601f168201915b50505050509050600061165e611ae9565b905060008151036116735781925050506116b6565b6000825111156116a85780826040516020016116909291906135ff565b604051602081830303815290604052925050506116b6565b6116b184611b00565b925050505b919050565b600081600001549050919050565b6001816000016000828254019250508190555050565b6116f9828260405180602001604052806000815250611b68565b5050565b6117068261181b565b611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c90613695565b60405180910390fd5b80600a600084815260200190815260200160002090816117659190613861565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516117959190612a40565b60405180910390a15050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611814575061181382611bc3565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661183d8361127b565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611864611918565b61187084848484611ca5565b50505050565b50505050565b611884610883565b6118c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ba9061397f565b60405180910390fd5b565b6118ce81611e03565b6000600a600083815260200190815260200160002080546118ee90612e6b565b90501461191557600a600082815260200190815260200160002060006119149190612728565b5b50565b611920610883565b15611960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611957906139eb565b60405180910390fd5b565b60006119838473ffffffffffffffffffffffffffffffffffffffff16611f51565b15611adc578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119ac610d3f565b8786866040518563ffffffff1660e01b81526004016119ce9493929190613a60565b6020604051808303816000875af1925050508015611a0a57506040513d601f19601f82011682018060405250810190611a079190613ac1565b60015b611a8c573d8060008114611a3a576040519150601f19603f3d011682016040523d82523d6000602084013e611a3f565b606091505b506000815103611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b906135a3565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611ae1565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060611b0b82610cf4565b6000611b15611ae9565b90506000815111611b355760405180602001604052806000815250611b60565b80611b3f84611f74565b604051602001611b509291906135ff565b6040516020818303038152906040525b915050919050565b611b728383612042565b611b7f6000848484611962565b611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb5906135a3565b60405180910390fd5b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c8e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c9e5750611c9d8261225f565b5b9050919050565b611cb1848484846122c9565b6001811115611cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cec90613b60565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611d3c57611d37816122cf565b611d7b565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611d7a57611d798582612318565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dbd57611db881612485565b611dfc565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611dfb57611dfa8482612556565b5b5b5050505050565b6000611e0e8261089a565b9050611e1e81600084600161185c565b611e278261089a565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f4d816000846001611876565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606060006001611f83846125d5565b01905060008167ffffffffffffffff811115611fa257611fa1612b51565b5b6040519080825280601f01601f191660200182016040528015611fd45781602001600182028036833780820191505090505b509050600082602001820190505b600115612037578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161202b5761202a613b80565b5b04945060008503611fe2575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a890613bfb565b60405180910390fd5b6120ba8161181b565b156120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f190613c67565b60405180910390fd5b61210860008383600161185c565b6121118161181b565b15612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890613c67565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461225b600083836001611876565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161232584610920565b61232f9190613cb6565b9050600060076000848152602001908152602001600020549050818114612414576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506124999190613cb6565b90506000600960008481526020019081526020016000205490506000600883815481106124c9576124c8613176565b5b9060005260206000200154905080600883815481106124eb576124ea613176565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061253a57612539613cea565b5b6001900381819060005260206000200160009055905550505050565b600061256183610920565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612633577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161262957612628613b80565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612670576d04ee2d6d415b85acef8100000000838161266657612665613b80565b5b0492506020810190505b662386f26fc10000831061269f57662386f26fc10000838161269557612694613b80565b5b0492506010810190505b6305f5e10083106126c8576305f5e10083816126be576126bd613b80565b5b0492506008810190505b61271083106126ed5761271083816126e3576126e2613b80565b5b0492506004810190505b60648310612710576064838161270657612705613b80565b5b0492506002810190505b600a831061271f576001810190505b80915050919050565b50805461273490612e6b565b6000825580601f106127465750612765565b601f0160209004906000526020600020908101906127649190612768565b5b50565b5b80821115612781576000816000905550600101612769565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127ce81612799565b81146127d957600080fd5b50565b6000813590506127eb816127c5565b92915050565b6000602082840312156128075761280661278f565b5b6000612815848285016127dc565b91505092915050565b60008115159050919050565b6128338161281e565b82525050565b600060208201905061284e600083018461282a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561288e578082015181840152602081019050612873565b60008484015250505050565b6000601f19601f8301169050919050565b60006128b682612854565b6128c0818561285f565b93506128d0818560208601612870565b6128d98161289a565b840191505092915050565b600060208201905081810360008301526128fe81846128ab565b905092915050565b6000819050919050565b61291981612906565b811461292457600080fd5b50565b60008135905061293681612910565b92915050565b6000602082840312156129525761295161278f565b5b600061296084828501612927565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061299482612969565b9050919050565b6129a481612989565b82525050565b60006020820190506129bf600083018461299b565b92915050565b6129ce81612989565b81146129d957600080fd5b50565b6000813590506129eb816129c5565b92915050565b60008060408385031215612a0857612a0761278f565b5b6000612a16858286016129dc565b9250506020612a2785828601612927565b9150509250929050565b612a3a81612906565b82525050565b6000602082019050612a556000830184612a31565b92915050565b600080600060608486031215612a7457612a7361278f565b5b6000612a82868287016129dc565b9350506020612a93868287016129dc565b9250506040612aa486828701612927565b9150509250925092565b600060208284031215612ac457612ac361278f565b5b6000612ad2848285016129dc565b91505092915050565b612ae48161281e565b8114612aef57600080fd5b50565b600081359050612b0181612adb565b92915050565b60008060408385031215612b1e57612b1d61278f565b5b6000612b2c858286016129dc565b9250506020612b3d85828601612af2565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b898261289a565b810181811067ffffffffffffffff82111715612ba857612ba7612b51565b5b80604052505050565b6000612bbb612785565b9050612bc78282612b80565b919050565b600067ffffffffffffffff821115612be757612be6612b51565b5b612bf08261289a565b9050602081019050919050565b82818337600083830152505050565b6000612c1f612c1a84612bcc565b612bb1565b905082815260208101848484011115612c3b57612c3a612b4c565b5b612c46848285612bfd565b509392505050565b600082601f830112612c6357612c62612b47565b5b8135612c73848260208601612c0c565b91505092915050565b60008060008060808587031215612c9657612c9561278f565b5b6000612ca4878288016129dc565b9450506020612cb5878288016129dc565b9350506040612cc687828801612927565b925050606085013567ffffffffffffffff811115612ce757612ce6612794565b5b612cf387828801612c4e565b91505092959194509250565b600067ffffffffffffffff821115612d1a57612d19612b51565b5b612d238261289a565b9050602081019050919050565b6000612d43612d3e84612cff565b612bb1565b905082815260208101848484011115612d5f57612d5e612b4c565b5b612d6a848285612bfd565b509392505050565b600082601f830112612d8757612d86612b47565b5b8135612d97848260208601612d30565b91505092915050565b60008060408385031215612db757612db661278f565b5b6000612dc5858286016129dc565b925050602083013567ffffffffffffffff811115612de657612de5612794565b5b612df285828601612d72565b9150509250929050565b60008060408385031215612e1357612e1261278f565b5b6000612e21858286016129dc565b9250506020612e32858286016129dc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e8357607f821691505b602082108103612e9657612e95612e3c565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ef860218361285f565b9150612f0382612e9c565b604082019050919050565b60006020820190508181036000830152612f2781612eeb565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612f8a603d8361285f565b9150612f9582612f2e565b604082019050919050565b60006020820190508181036000830152612fb981612f7d565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b600061301c602d8361285f565b915061302782612fc0565b604082019050919050565b6000602082019050818103600083015261304b8161300f565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006130ae602b8361285f565b91506130b982613052565b604082019050919050565b600060208201905081810360008301526130dd816130a1565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613140602c8361285f565b915061314b826130e4565b604082019050919050565b6000602082019050818103600083015261316f81613133565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006131db60188361285f565b91506131e6826131a5565b602082019050919050565b6000602082019050818103600083015261320a816131ce565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061326d60298361285f565b915061327882613211565b604082019050919050565b6000602082019050818103600083015261329c81613260565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132ff60268361285f565b915061330a826132a3565b604082019050919050565b6000602082019050818103600083015261332e816132f2565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061339160258361285f565b915061339c82613335565b604082019050919050565b600060208201905081810360008301526133c081613384565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061342360248361285f565b915061342e826133c7565b604082019050919050565b6000602082019050818103600083015261345281613416565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061348f60208361285f565b915061349a82613459565b602082019050919050565b600060208201905081810360008301526134be81613482565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006134fb60198361285f565b9150613506826134c5565b602082019050919050565b6000602082019050818103600083015261352a816134ee565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061358d60328361285f565b915061359882613531565b604082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b600081905092915050565b60006135d982612854565b6135e381856135c3565b93506135f3818560208601612870565b80840191505092915050565b600061360b82856135ce565b915061361782846135ce565b91508190509392505050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b600061367f602e8361285f565b915061368a82613623565b604082019050919050565b600060208201905081810360008301526136ae81613672565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026137177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826136da565b61372186836136da565b95508019841693508086168417925050509392505050565b6000819050919050565b600061375e61375961375484612906565b613739565b612906565b9050919050565b6000819050919050565b61377883613743565b61378c61378482613765565b8484546136e7565b825550505050565b600090565b6137a1613794565b6137ac81848461376f565b505050565b5b818110156137d0576137c5600082613799565b6001810190506137b2565b5050565b601f821115613815576137e6816136b5565b6137ef846136ca565b810160208510156137fe578190505b61381261380a856136ca565b8301826137b1565b50505b505050565b600082821c905092915050565b60006138386000198460080261381a565b1980831691505092915050565b60006138518383613827565b9150826002028217905092915050565b61386a82612854565b67ffffffffffffffff81111561388357613882612b51565b5b61388d8254612e6b565b6138988282856137d4565b600060209050601f8311600181146138cb57600084156138b9578287015190505b6138c38582613845565b86555061392b565b601f1984166138d9866136b5565b60005b82811015613901578489015182556001820191506020850194506020810190506138dc565b8683101561391e578489015161391a601f891682613827565b8355505b6001600288020188555050505b505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b600061396960148361285f565b915061397482613933565b602082019050919050565b600060208201905081810360008301526139988161395c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006139d560108361285f565b91506139e08261399f565b602082019050919050565b60006020820190508181036000830152613a04816139c8565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613a3282613a0b565b613a3c8185613a16565b9350613a4c818560208601612870565b613a558161289a565b840191505092915050565b6000608082019050613a75600083018761299b565b613a82602083018661299b565b613a8f6040830185612a31565b8181036060830152613aa18184613a27565b905095945050505050565b600081519050613abb816127c5565b92915050565b600060208284031215613ad757613ad661278f565b5b6000613ae584828501613aac565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000613b4a60358361285f565b9150613b5582613aee565b604082019050919050565b60006020820190508181036000830152613b7981613b3d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613be560208361285f565b9150613bf082613baf565b602082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613c51601c8361285f565b9150613c5c82613c1b565b602082019050919050565b60006020820190508181036000830152613c8081613c44565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cc182612906565b9150613ccc83612906565b9250828203905081811115613ce457613ce3613c87565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212200d26142bf44ea6ad86e0880205dcdb393e134991eb1ef6787caa63c3494aab7d64736f6c63430008120033