60806040523480156200001157600080fd5b5060405162004377380380620043778339818101604052810190620000379190620003b3565b6040518060400160405280600c81526020017f4747205061727469636c657300000000000000000000000000000000000000008152506040518060400160405280600781526020017f505254434c4747000000000000000000000000000000000000000000000000008152508160009080519060200190620000bb92919062000166565b508060019080519060200190620000d492919062000166565b5050506001600c6000620000ed6200015e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d90805190602001906200015692919062000166565b505062000469565b600033905090565b828054620001749062000433565b90600052602060002090601f016020900481019282620001985760008555620001e4565b82601f10620001b357805160ff1916838001178555620001e4565b82800160010185558215620001e4579182015b82811115620001e3578251825591602001919060010190620001c6565b5b509050620001f39190620001f7565b5090565b5b8082111562000212576000816000905550600101620001f8565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200027f8262000234565b810181811067ffffffffffffffff82111715620002a157620002a062000245565b5b80604052505050565b6000620002b662000216565b9050620002c4828262000274565b919050565b600067ffffffffffffffff821115620002e757620002e662000245565b5b620002f28262000234565b9050602081019050919050565b60005b838110156200031f57808201518184015260208101905062000302565b838111156200032f576000848401525b50505050565b60006200034c6200034684620002c9565b620002aa565b9050828152602081018484840111156200036b576200036a6200022f565b5b62000378848285620002ff565b509392505050565b600082601f8301126200039857620003976200022a565b5b8151620003aa84826020860162000335565b91505092915050565b600060208284031215620003cc57620003cb62000220565b5b600082015167ffffffffffffffff811115620003ed57620003ec62000225565b5b620003fb8482850162000380565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200044c57607f821691505b6020821081141562000463576200046262000404565b5b50919050565b613efe80620004796000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806330bbd525116100c357806395d89b411161007c57806395d89b41146103e8578063a22cb46514610406578063b88d4fde14610422578063c87b56dd1461043e578063e985e9c51461046e578063fdff9b4d1461049e57610158565b806330bbd5251461030457806342842e0e146103205780634f6ccce71461033c5780636352211e1461036c57806370a082311461039c5780638c5f9e74146103cc57610158565b806310f3ee291161011557806310f3ee291461022f5780631675359c1461024b57806318160ddd1461026957806323b872dd146102875780632a55205a146102a35780632f745c59146102d457610158565b806301ffc9a71461015d57806304634d8d1461018d57806306fdde03146101a9578063081812fc146101c7578063095ea7b3146101f75780630ab8c84414610213575b600080fd5b6101776004803603810190610172919061269f565b6104ce565b60405161018491906126e7565b60405180910390f35b6101a760048036038101906101a291906127a4565b6104e0565b005b6101b16104f6565b6040516101be919061287d565b60405180910390f35b6101e160048036038101906101dc91906128d5565b610588565b6040516101ee9190612911565b60405180910390f35b610211600480360381019061020c919061292c565b6105ce565b005b61022d60048036038101906102289190612a27565b6106e6565b005b61024960048036038101906102449190612be6565b610810565b005b610253610824565b604051610260919061287d565b60405180910390f35b6102716108b2565b60405161027e9190612c3e565b60405180910390f35b6102a1600480360381019061029c9190612c59565b6108bf565b005b6102bd60048036038101906102b89190612cac565b61091f565b6040516102cb929190612cec565b60405180910390f35b6102ee60048036038101906102e9919061292c565b610b0a565b6040516102fb9190612c3e565b60405180910390f35b61031e60048036038101906103199190612dca565b610baf565b005b61033a60048036038101906103359190612c59565b610bd1565b005b610356600480360381019061035191906128d5565b610bf1565b6040516103639190612c3e565b60405180910390f35b610386600480360381019061038191906128d5565b610c62565b6040516103939190612911565b60405180910390f35b6103b660048036038101906103b19190612e13565b610d14565b6040516103c39190612c3e565b60405180910390f35b6103e660048036038101906103e19190612be6565b610dcc565b005b6103f0610de0565b6040516103fd919061287d565b60405180910390f35b610420600480360381019061041b9190612e6c565b610e72565b005b61043c60048036038101906104379190612f4d565b610e88565b005b610458600480360381019061045391906128d5565b610eea565b604051610465919061287d565b60405180910390f35b61048860048036038101906104839190612fd0565b610f53565b60405161049591906126e7565b60405180910390f35b6104b860048036038101906104b39190612e13565b610fe7565b6040516104c591906126e7565b60405180910390f35b60006104d982611007565b9050919050565b6104e8611081565b6104f28282611116565b5050565b6060600080546105059061303f565b80601f01602080910402602001604051908101604052809291908181526020018280546105319061303f565b801561057e5780601f106105535761010080835404028352916020019161057e565b820191906000526020600020905b81548152906001019060200180831161056157829003601f168201915b5050505050905090565b6000610593826112ac565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105d982610c62565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610641906130e3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106696112f7565b73ffffffffffffffffffffffffffffffffffffffff1614806106985750610697816106926112f7565b610f53565b5b6106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90613175565b60405180910390fd5b6106e183836112ff565b505050565b6106ee611081565b818190508484905014610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d90613207565b60405180910390fd5b60005b848490508110156108095760005b83838381811061075a57610759613227565b5b905060200281019061076c9190613265565b90508110156107f5576107e286868481811061078b5761078a613227565b5b90506020020160208101906107a09190612e13565b8585858181106107b3576107b2613227565b5b90506020028101906107c59190613265565b848181106107d6576107d5613227565b5b905060200201356113b8565b80806107ed906132f7565b915050610747565b508080610801906132f7565b915050610739565b5050505050565b610818611081565b610821816113d6565b50565b600d80546108319061303f565b80601f016020809104026020016040519081016040528092919081815260200182805461085d9061303f565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6000600880549050905090565b6108d06108ca6112f7565b82611426565b61090f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610906906133b2565b60405180910390fd5b61091a8383836114bb565b505050565b6000806000600b60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610ab557600a6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610abf611722565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610aeb91906133d2565b610af5919061345b565b90508160000151819350935050509250929050565b6000610b1583610d14565b8210610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d906134fe565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610bb7611081565b80600d9080519060200190610bcd929190612590565b5050565b610bec83838360405180602001604052806000815250610e88565b505050565b6000610bfb6108b2565b8210610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3390613590565b60405180910390fd5b60088281548110610c5057610c4f613227565b5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d02906135fc565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9061368e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dd4611081565b610ddd8161172c565b50565b606060018054610def9061303f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1b9061303f565b8015610e685780601f10610e3d57610100808354040283529160200191610e68565b820191906000526020600020905b815481529060010190602001808311610e4b57829003601f168201915b5050505050905090565b610e84610e7d6112f7565b838361177c565b5050565b610e99610e936112f7565b83611426565b610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf906133b2565b60405180910390fd5b610ee4848484846118e9565b50505050565b6060610ef5826112ac565b6000600d8054610f049061303f565b905011610f205760405180602001604052806000815250610f4c565b600d610f2b83611945565b604051602001610f3c92919061377e565b6040516020818303038152906040525b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061107a575061107982611aa6565b5b9050919050565b600c600061108d6112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90613814565b60405180910390fd5b565b61111e611722565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111561117c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611173906138a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390613912565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6112b581611b20565b6112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb906135fc565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661137283610c62565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6113d2828260405180602001604052806000815250611b8c565b5050565b6113e1816000611be7565b806040516113ef91906139ea565b60405180910390207faf222ad3bece4835a4d5575aaf4b9b0a2d8bd1b1a0288ac550913ae90349433c60405160405180910390a250565b60008061143283610c62565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061147457506114738185610f53565b5b806114b257508373ffffffffffffffffffffffffffffffffffffffff1661149a84610588565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166114db82610c62565b73ffffffffffffffffffffffffffffffffffffffff1614611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152890613a73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159890613b05565b60405180910390fd5b6115ac838383611c7c565b6115b76000826112ff565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116079190613b25565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461165e9190613b59565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461171d838383611c8c565b505050565b6000612710905090565b611737816001611be7565b8060405161174591906139ea565b60405180910390207f65ecfc038b084527da839d7e9eaf5fba7a2454ef583bc16369747b241bd68df860405160405180910390a250565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290613bfb565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118dc91906126e7565b60405180910390a3505050565b6118f48484846114bb565b61190084848484611c91565b61193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690613c8d565b60405180910390fd5b50505050565b6060600082141561198d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611aa1565b600082905060005b600082146119bf5780806119a8906132f7565b915050600a826119b8919061345b565b9150611995565b60008167ffffffffffffffff8111156119db576119da612aa8565b5b6040519080825280601f01601f191660200182016040528015611a0d5781602001600182028036833780820191505090505b5090505b60008514611a9a57600182611a269190613b25565b9150600a85611a359190613cad565b6030611a419190613b59565b60f81b818381518110611a5757611a56613227565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611a93919061345b565b9450611a11565b8093505050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b195750611b1882611e28565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611b968383611f0a565b611ba36000848484611c91565b611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613c8d565b60405180910390fd5b505050565b60005b8251811015611c775781600c6000858481518110611c0b57611c0a613227565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c6f906132f7565b915050611bea565b505050565b611c878383836120e4565b505050565b505050565b6000611cb28473ffffffffffffffffffffffffffffffffffffffff166121f8565b15611e1b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611cdb6112f7565b8786866040518563ffffffff1660e01b8152600401611cfd9493929190613d33565b602060405180830381600087803b158015611d1757600080fd5b505af1925050508015611d4857506040513d601f19601f82011682018060405250810190611d459190613d94565b60015b611dcb573d8060008114611d78576040519150601f19603f3d011682016040523d82523d6000602084013e611d7d565b606091505b50600081511415611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613c8d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611e20565b600190505b949350505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ef357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f035750611f028261221b565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7190613e0d565b60405180910390fd5b611f8381611b20565b15611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613e79565b60405180910390fd5b611fcf60008383611c7c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461201f9190613b59565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46120e060008383611c8c565b5050565b6120ef838383612285565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121325761212d8161228a565b612171565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121705761216f83826122d3565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b4576121af81612440565b6121f3565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121f2576121f18282612511565b5b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016122e084610d14565b6122ea9190613b25565b90506000600760008481526020019081526020016000205490508181146123cf576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506124549190613b25565b905060006009600084815260200190815260200160002054905060006008838154811061248457612483613227565b5b9060005260206000200154905080600883815481106124a6576124a5613227565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806124f5576124f4613e99565b5b6001900381819060005260206000200160009055905550505050565b600061251c83610d14565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b82805461259c9061303f565b90600052602060002090601f0160209004810192826125be5760008555612605565b82601f106125d757805160ff1916838001178555612605565b82800160010185558215612605579182015b828111156126045782518255916020019190600101906125e9565b5b5090506126129190612616565b5090565b5b8082111561262f576000816000905550600101612617565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61267c81612647565b811461268757600080fd5b50565b60008135905061269981612673565b92915050565b6000602082840312156126b5576126b461263d565b5b60006126c38482850161268a565b91505092915050565b60008115159050919050565b6126e1816126cc565b82525050565b60006020820190506126fc60008301846126d8565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061272d82612702565b9050919050565b61273d81612722565b811461274857600080fd5b50565b60008135905061275a81612734565b92915050565b60006bffffffffffffffffffffffff82169050919050565b61278181612760565b811461278c57600080fd5b50565b60008135905061279e81612778565b92915050565b600080604083850312156127bb576127ba61263d565b5b60006127c98582860161274b565b92505060206127da8582860161278f565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561281e578082015181840152602081019050612803565b8381111561282d576000848401525b50505050565b6000601f19601f8301169050919050565b600061284f826127e4565b61285981856127ef565b9350612869818560208601612800565b61287281612833565b840191505092915050565b600060208201905081810360008301526128978184612844565b905092915050565b6000819050919050565b6128b28161289f565b81146128bd57600080fd5b50565b6000813590506128cf816128a9565b92915050565b6000602082840312156128eb576128ea61263d565b5b60006128f9848285016128c0565b91505092915050565b61290b81612722565b82525050565b60006020820190506129266000830184612902565b92915050565b600080604083850312156129435761294261263d565b5b60006129518582860161274b565b9250506020612962858286016128c0565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129915761299061296c565b5b8235905067ffffffffffffffff8111156129ae576129ad612971565b5b6020830191508360208202830111156129ca576129c9612976565b5b9250929050565b60008083601f8401126129e7576129e661296c565b5b8235905067ffffffffffffffff811115612a0457612a03612971565b5b602083019150836020820283011115612a2057612a1f612976565b5b9250929050565b60008060008060408587031215612a4157612a4061263d565b5b600085013567ffffffffffffffff811115612a5f57612a5e612642565b5b612a6b8782880161297b565b9450945050602085013567ffffffffffffffff811115612a8e57612a8d612642565b5b612a9a878288016129d1565b925092505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ae082612833565b810181811067ffffffffffffffff82111715612aff57612afe612aa8565b5b80604052505050565b6000612b12612633565b9050612b1e8282612ad7565b919050565b600067ffffffffffffffff821115612b3e57612b3d612aa8565b5b602082029050602081019050919050565b6000612b62612b5d84612b23565b612b08565b90508083825260208201905060208402830185811115612b8557612b84612976565b5b835b81811015612bae5780612b9a888261274b565b845260208401935050602081019050612b87565b5050509392505050565b600082601f830112612bcd57612bcc61296c565b5b8135612bdd848260208601612b4f565b91505092915050565b600060208284031215612bfc57612bfb61263d565b5b600082013567ffffffffffffffff811115612c1a57612c19612642565b5b612c2684828501612bb8565b91505092915050565b612c388161289f565b82525050565b6000602082019050612c536000830184612c2f565b92915050565b600080600060608486031215612c7257612c7161263d565b5b6000612c808682870161274b565b9350506020612c918682870161274b565b9250506040612ca2868287016128c0565b9150509250925092565b60008060408385031215612cc357612cc261263d565b5b6000612cd1858286016128c0565b9250506020612ce2858286016128c0565b9150509250929050565b6000604082019050612d016000830185612902565b612d0e6020830184612c2f565b9392505050565b600080fd5b600067ffffffffffffffff821115612d3557612d34612aa8565b5b612d3e82612833565b9050602081019050919050565b82818337600083830152505050565b6000612d6d612d6884612d1a565b612b08565b905082815260208101848484011115612d8957612d88612d15565b5b612d94848285612d4b565b509392505050565b600082601f830112612db157612db061296c565b5b8135612dc1848260208601612d5a565b91505092915050565b600060208284031215612de057612ddf61263d565b5b600082013567ffffffffffffffff811115612dfe57612dfd612642565b5b612e0a84828501612d9c565b91505092915050565b600060208284031215612e2957612e2861263d565b5b6000612e378482850161274b565b91505092915050565b612e49816126cc565b8114612e5457600080fd5b50565b600081359050612e6681612e40565b92915050565b60008060408385031215612e8357612e8261263d565b5b6000612e918582860161274b565b9250506020612ea285828601612e57565b9150509250929050565b600067ffffffffffffffff821115612ec757612ec6612aa8565b5b612ed082612833565b9050602081019050919050565b6000612ef0612eeb84612eac565b612b08565b905082815260208101848484011115612f0c57612f0b612d15565b5b612f17848285612d4b565b509392505050565b600082601f830112612f3457612f3361296c565b5b8135612f44848260208601612edd565b91505092915050565b60008060008060808587031215612f6757612f6661263d565b5b6000612f758782880161274b565b9450506020612f868782880161274b565b9350506040612f97878288016128c0565b925050606085013567ffffffffffffffff811115612fb857612fb7612642565b5b612fc487828801612f1f565b91505092959194509250565b60008060408385031215612fe757612fe661263d565b5b6000612ff58582860161274b565b92505060206130068582860161274b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061305757607f821691505b6020821081141561306b5761306a613010565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130cd6021836127ef565b91506130d882613071565b604082019050919050565b600060208201905081810360008301526130fc816130c0565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b600061315f603e836127ef565b915061316a82613103565b604082019050919050565b6000602082019050818103600083015261318e81613152565b9050919050565b7f4d696e743a204f776e65727320616e6420746f6b656e73496473206c656e677460008201527f68206d69736d6174636800000000000000000000000000000000000000000000602082015250565b60006131f1602a836127ef565b91506131fc82613195565b604082019050919050565b60006020820190508181036000830152613220816131e4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261328257613281613256565b5b80840192508235915067ffffffffffffffff8211156132a4576132a361325b565b5b6020830192506020820236038313156132c0576132bf613260565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133028261289f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613335576133346132c8565b5b600182019050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b600061339c602e836127ef565b91506133a782613340565b604082019050919050565b600060208201905081810360008301526133cb8161338f565b9050919050565b60006133dd8261289f565b91506133e88361289f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613421576134206132c8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134668261289f565b91506134718361289f565b9250826134815761348061342c565b5b828204905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006134e8602b836127ef565b91506134f38261348c565b604082019050919050565b60006020820190508181036000830152613517816134db565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b600061357a602c836127ef565b91506135858261351e565b604082019050919050565b600060208201905081810360008301526135a98161356d565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006135e66018836127ef565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006136786029836127ef565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b600081546136db8161303f565b6136e581866136ae565b94506001821660008114613700576001811461371157613744565b60ff19831686528186019350613744565b61371a856136b9565b60005b8381101561373c5781548189015260018201915060208101905061371d565b838801955050505b50505092915050565b6000613758826127e4565b61376281856136ae565b9350613772818560208601612800565b80840191505092915050565b600061378a82856136ce565b9150613796828461374d565b91508190509392505050565b7f4d616e61676561626c653a2063616c6c6572206973206e6f742061206d616e6160008201527f6765720000000000000000000000000000000000000000000000000000000000602082015250565b60006137fe6023836127ef565b9150613809826137a2565b604082019050919050565b6000602082019050818103600083015261382d816137f1565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000613890602a836127ef565b915061389b82613834565b604082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b60006138fc6019836127ef565b9150613907826138c6565b602082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b600081519050919050565b600081905092915050565b6000819050602082019050919050565b61396181612722565b82525050565b60006139738383613958565b60208301905092915050565b6000602082019050919050565b600061399782613932565b6139a1818561393d565b93506139ac83613948565b8060005b838110156139dd5781516139c48882613967565b97506139cf8361397f565b9250506001810190506139b0565b5085935050505092915050565b60006139f6828461398c565b915081905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613a5d6025836127ef565b9150613a6882613a01565b604082019050919050565b60006020820190508181036000830152613a8c81613a50565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613aef6024836127ef565b9150613afa82613a93565b604082019050919050565b60006020820190508181036000830152613b1e81613ae2565b9050919050565b6000613b308261289f565b9150613b3b8361289f565b925082821015613b4e57613b4d6132c8565b5b828203905092915050565b6000613b648261289f565b9150613b6f8361289f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ba457613ba36132c8565b5b828201905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613be56019836127ef565b9150613bf082613baf565b602082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613c776032836127ef565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b6000613cb88261289f565b9150613cc38361289f565b925082613cd357613cd261342c565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b6000613d0582613cde565b613d0f8185613ce9565b9350613d1f818560208601612800565b613d2881612833565b840191505092915050565b6000608082019050613d486000830187612902565b613d556020830186612902565b613d626040830185612c2f565b8181036060830152613d748184613cfa565b905095945050505050565b600081519050613d8e81612673565b92915050565b600060208284031215613daa57613da961263d565b5b6000613db884828501613d7f565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613df76020836127ef565b9150613e0282613dc1565b602082019050919050565b60006020820190508181036000830152613e2681613dea565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613e63601c836127ef565b9150613e6e82613e2d565b602082019050919050565b60006020820190508181036000830152613e9281613e56565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b48e0b85567c69f251f1b7a8e2f3640698f1f94245fda985e8acf91bee7309b064736f6c634300080900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004c68747470733a2f2f6170692d70726f642e7061727469636c65636f6c6c656374696f6e2e636f6d2f6170692f76312f7061727469636c652d6d657461646174612f477563636947686f73742f0000000000000000000000000000000000000000