60806040523480156200001157600080fd5b5060405162003fad38038062003fad8339818101604052810190620000379190620004ff565b6040518060400160405280600f81526020017f436f696e3938204e4654204d696e7400000000000000000000000000000000008152506040518060400160405280600a81526020017f4339384e46544d696e74000000000000000000000000000000000000000000008152508160009080519060200190620000bb929190620002b2565b508060019080519060200190620000d4929190620002b2565b505050620000f7620000eb6200010f60201b60201c565b6200011760201b60201c565b6200010881620001dd60201b60201c565b5062000638565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001ed6200010f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002136200028860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026390620005b1565b60405180910390fd5b80600b908051906020019062000284929190620002b2565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620002c09062000602565b90600052602060002090601f016020900481019282620002e4576000855562000330565b82601f10620002ff57805160ff191683800117855562000330565b8280016001018555821562000330579182015b828111156200032f57825182559160200191906001019062000312565b5b5090506200033f919062000343565b5090565b5b808211156200035e57600081600090555060010162000344565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003cb8262000380565b810181811067ffffffffffffffff82111715620003ed57620003ec62000391565b5b80604052505050565b60006200040262000362565b9050620004108282620003c0565b919050565b600067ffffffffffffffff82111562000433576200043262000391565b5b6200043e8262000380565b9050602081019050919050565b60005b838110156200046b5780820151818401526020810190506200044e565b838111156200047b576000848401525b50505050565b600062000498620004928462000415565b620003f6565b905082815260208101848484011115620004b757620004b66200037b565b5b620004c48482856200044b565b509392505050565b600082601f830112620004e457620004e362000376565b5b8151620004f684826020860162000481565b91505092915050565b6000602082840312156200051857620005176200036c565b5b600082015167ffffffffffffffff81111562000539576200053862000371565b5b6200054784828501620004cc565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200059960208362000550565b9150620005a68262000561565b602082019050919050565b60006020820190508181036000830152620005cc816200058a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200061b57607f821691505b60208210811415620006325762000631620005d3565b5b50919050565b61396580620006486000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063626be567116100de57806395d89b4111610097578063c87b56dd11610071578063c87b56dd14610481578063d547cfb7146104b1578063e985e9c5146104cf578063f2fde38b146104ff5761018e565b806395d89b411461042b578063a22cb46514610449578063b88d4fde146104655761018e565b8063626be567146103555780636352211e1461037357806370a08231146103a3578063715018a6146103d35780637f81be69146103dd5780638da5cb5b1461040d5761018e565b806318160ddd1161014b57806342842e0e1161012557806342842e0e146102bd578063438b6300146102d95780634f6ccce71461030957806355f804b3146103395761018e565b806318160ddd1461025357806323b872dd146102715780632f745c591461028d5761018e565b806301ffc9a71461019357806306fdde03146101c3578063081812fc146101e1578063095ea7b3146102115780631249c58b1461022d578063170d59ff14610237575b600080fd5b6101ad60048036038101906101a891906124cd565b61051b565b6040516101ba9190612515565b60405180910390f35b6101cb610595565b6040516101d891906125c9565b60405180910390f35b6101fb60048036038101906101f69190612621565b610627565b604051610208919061268f565b60405180910390f35b61022b600480360381019061022691906126d6565b6106ac565b005b6102356107c4565b005b610251600480360381019061024c9190612621565b6107e9565b005b61025b6107f6565b6040516102689190612725565b60405180910390f35b61028b60048036038101906102869190612740565b610803565b005b6102a760048036038101906102a291906126d6565b610863565b6040516102b49190612725565b60405180910390f35b6102d760048036038101906102d29190612740565b610908565b005b6102f360048036038101906102ee9190612793565b610928565b604051610300919061287e565b60405180910390f35b610323600480360381019061031e9190612621565b6109d6565b6040516103309190612725565b60405180910390f35b610353600480360381019061034e91906129d5565b610a47565b005b61035d610add565b60405161036a9190612725565b60405180910390f35b61038d60048036038101906103889190612621565b610aee565b60405161039a919061268f565b60405180910390f35b6103bd60048036038101906103b89190612793565b610ba0565b6040516103ca9190612725565b60405180910390f35b6103db610c58565b005b6103f760048036038101906103f29190612621565b610ce0565b604051610404919061268f565b60405180910390f35b610415610d1d565b604051610422919061268f565b60405180910390f35b610433610d47565b60405161044091906125c9565b60405180910390f35b610463600480360381019061045e9190612a4a565b610dd9565b005b61047f600480360381019061047a9190612b2b565b610f5a565b005b61049b60048036038101906104969190612621565b610fbc565b6040516104a891906125c9565b60405180910390f35b6104b9611063565b6040516104c691906125c9565b60405180910390f35b6104e960048036038101906104e49190612bae565b6110f1565b6040516104f69190612515565b60405180910390f35b61051960048036038101906105149190612793565b611185565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061058e575061058d8261127d565b5b9050919050565b6060600080546105a490612c1d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d090612c1d565b801561061d5780601f106105f25761010080835404028352916020019161061d565b820191906000526020600020905b81548152906001019060200180831161060057829003601f168201915b5050505050905090565b60006106328261135f565b610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066890612cc1565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106b782610aee565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612d53565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107476113cb565b73ffffffffffffffffffffffffffffffffffffffff1614806107765750610775816107706113cb565b6110f1565b5b6107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac90612de5565b60405180910390fd5b6107bf83836113d3565b505050565b60006107ce610add565b90506107e6336001836107e19190612e34565b61148c565b50565b6107f3338261148c565b50565b6000600880549050905090565b61081461080e6113cb565b826114d1565b610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a90612efc565b60405180910390fd5b61085e8383836115af565b505050565b600061086e83610ba0565b82106108af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a690612f8e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61092383838360405180602001604052806000815250610f5a565b505050565b6060600061093583610ba0565b905060008167ffffffffffffffff811115610953576109526128aa565b5b6040519080825280602002602001820160405280156109815781602001602082028036833780820191505090505b50905060005b828110156109cb576109998582610863565b8282815181106109ac576109ab612fae565b5b60200260200101818152505080806109c390612fdd565b915050610987565b508092505050919050565b60006109e06107f6565b8210610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890613098565b60405180910390fd5b60088281548110610a3557610a34612fae565b5b90600052602060002001549050919050565b610a4f6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610a6d610d1d565b73ffffffffffffffffffffffffffffffffffffffff1614610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90613104565b60405180910390fd5b80600b9080519060200190610ad99291906123be565b5050565b6000610ae9600c61180b565b905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e90613196565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890613228565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c606113cb565b73ffffffffffffffffffffffffffffffffffffffff16610c7e610d1d565b73ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613104565b60405180910390fd5b610cde6000611819565b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610d5690612c1d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8290612c1d565b8015610dcf5780601f10610da457610100808354040283529160200191610dcf565b820191906000526020600020905b815481529060010190602001808311610db257829003601f168201915b5050505050905090565b610de16113cb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4690613294565b60405180910390fd5b8060056000610e5c6113cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610f096113cb565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f4e9190612515565b60405180910390a35050565b610f6b610f656113cb565b836114d1565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612efc565b60405180910390fd5b610fb6848484846118df565b50505050565b6060610fc78261135f565b611006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffd90613326565b60405180910390fd5b600061101061193b565b90506000815111611030576040518060200160405280600081525061105b565b8061103a846119cd565b60405160200161104b929190613382565b6040516020818303038152906040525b915050919050565b600b805461107090612c1d565b80601f016020809104026020016040519081016040528092919081815260200182805461109c90612c1d565b80156110e95780601f106110be576101008083540402835291602001916110e9565b820191906000526020600020905b8154815290600101906020018083116110cc57829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61118d6113cb565b73ffffffffffffffffffffffffffffffffffffffff166111ab610d1d565b73ffffffffffffffffffffffffffffffffffffffff1614611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f890613104565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126890613418565b60405180910390fd5b61127a81611819565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061134857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611358575061135782611b2e565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661144683610aee565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611496600c611b98565b6114a08282611bae565b807fc6266129591fcb096e50f58ff41e502ae126c9119a9fcb8345a72700bd6f18e560405160405180910390a25050565b60006114dc8261135f565b61151b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611512906134aa565b60405180910390fd5b600061152683610aee565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061159557508373ffffffffffffffffffffffffffffffffffffffff1661157d84610627565b73ffffffffffffffffffffffffffffffffffffffff16145b806115a657506115a581856110f1565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115cf82610aee565b73ffffffffffffffffffffffffffffffffffffffff1614611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c9061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c906135ce565b60405180910390fd5b6116a0838383611bcc565b6116ab6000826113d3565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116fb91906135ee565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117529190612e34565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081600001549050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6118ea8484846115af565b6118f684848484611ce0565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613694565b60405180910390fd5b50505050565b6060600b805461194a90612c1d565b80601f016020809104026020016040519081016040528092919081815260200182805461197690612c1d565b80156119c35780601f10611998576101008083540402835291602001916119c3565b820191906000526020600020905b8154815290600101906020018083116119a657829003601f168201915b5050505050905090565b60606000821415611a15576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611b29565b600082905060005b60008214611a47578080611a3090612fdd565b915050600a82611a4091906136e3565b9150611a1d565b60008167ffffffffffffffff811115611a6357611a626128aa565b5b6040519080825280601f01601f191660200182016040528015611a955781602001600182028036833780820191505090505b5090505b60008514611b2257600182611aae91906135ee565b9150600a85611abd9190613714565b6030611ac99190612e34565b60f81b818381518110611adf57611ade612fae565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b1b91906136e3565b9450611a99565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6001816000016000828254019250508190555050565b611bc8828260405180602001604052806000815250611e77565b5050565b611bd7838383611ed2565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c1a57611c1581611ed7565b611c59565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c5857611c578382611f20565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c9c57611c978161208d565b611cdb565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cda57611cd9828261215e565b5b5b505050565b6000611d018473ffffffffffffffffffffffffffffffffffffffff166121dd565b15611e6a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611d2a6113cb565b8786866040518563ffffffff1660e01b8152600401611d4c949392919061379a565b602060405180830381600087803b158015611d6657600080fd5b505af1925050508015611d9757506040513d601f19601f82011682018060405250810190611d9491906137fb565b60015b611e1a573d8060008114611dc7576040519150601f19603f3d011682016040523d82523d6000602084013e611dcc565b606091505b50600081511415611e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0990613694565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611e6f565b600190505b949350505050565b611e8183836121f0565b611e8e6000848484611ce0565b611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec490613694565b60405180910390fd5b505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001611f2d84610ba0565b611f3791906135ee565b905060006007600084815260200190815260200160002054905081811461201c576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506120a191906135ee565b90506000600960008481526020019081526020016000205490506000600883815481106120d1576120d0612fae565b5b9060005260206000200154905080600883815481106120f3576120f2612fae565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061214257612141613828565b5b6001900381819060005260206000200160009055905550505050565b600061216983610ba0565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612257906138a3565b60405180910390fd5b6122698161135f565b156122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a09061390f565b60405180910390fd5b6122b560008383611bcc565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123059190612e34565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b8280546123ca90612c1d565b90600052602060002090601f0160209004810192826123ec5760008555612433565b82601f1061240557805160ff1916838001178555612433565b82800160010185558215612433579182015b82811115612432578251825591602001919060010190612417565b5b5090506124409190612444565b5090565b5b8082111561245d576000816000905550600101612445565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124aa81612475565b81146124b557600080fd5b50565b6000813590506124c7816124a1565b92915050565b6000602082840312156124e3576124e261246b565b5b60006124f1848285016124b8565b91505092915050565b60008115159050919050565b61250f816124fa565b82525050565b600060208201905061252a6000830184612506565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256a57808201518184015260208101905061254f565b83811115612579576000848401525b50505050565b6000601f19601f8301169050919050565b600061259b82612530565b6125a5818561253b565b93506125b581856020860161254c565b6125be8161257f565b840191505092915050565b600060208201905081810360008301526125e38184612590565b905092915050565b6000819050919050565b6125fe816125eb565b811461260957600080fd5b50565b60008135905061261b816125f5565b92915050565b6000602082840312156126375761263661246b565b5b60006126458482850161260c565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126798261264e565b9050919050565b6126898161266e565b82525050565b60006020820190506126a46000830184612680565b92915050565b6126b38161266e565b81146126be57600080fd5b50565b6000813590506126d0816126aa565b92915050565b600080604083850312156126ed576126ec61246b565b5b60006126fb858286016126c1565b925050602061270c8582860161260c565b9150509250929050565b61271f816125eb565b82525050565b600060208201905061273a6000830184612716565b92915050565b6000806000606084860312156127595761275861246b565b5b6000612767868287016126c1565b9350506020612778868287016126c1565b92505060406127898682870161260c565b9150509250925092565b6000602082840312156127a9576127a861246b565b5b60006127b7848285016126c1565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6127f5816125eb565b82525050565b600061280783836127ec565b60208301905092915050565b6000602082019050919050565b600061282b826127c0565b61283581856127cb565b9350612840836127dc565b8060005b8381101561287157815161285888826127fb565b975061286383612813565b925050600181019050612844565b5085935050505092915050565b600060208201905081810360008301526128988184612820565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128e28261257f565b810181811067ffffffffffffffff82111715612901576129006128aa565b5b80604052505050565b6000612914612461565b905061292082826128d9565b919050565b600067ffffffffffffffff8211156129405761293f6128aa565b5b6129498261257f565b9050602081019050919050565b82818337600083830152505050565b600061297861297384612925565b61290a565b905082815260208101848484011115612994576129936128a5565b5b61299f848285612956565b509392505050565b600082601f8301126129bc576129bb6128a0565b5b81356129cc848260208601612965565b91505092915050565b6000602082840312156129eb576129ea61246b565b5b600082013567ffffffffffffffff811115612a0957612a08612470565b5b612a15848285016129a7565b91505092915050565b612a27816124fa565b8114612a3257600080fd5b50565b600081359050612a4481612a1e565b92915050565b60008060408385031215612a6157612a6061246b565b5b6000612a6f858286016126c1565b9250506020612a8085828601612a35565b9150509250929050565b600067ffffffffffffffff821115612aa557612aa46128aa565b5b612aae8261257f565b9050602081019050919050565b6000612ace612ac984612a8a565b61290a565b905082815260208101848484011115612aea57612ae96128a5565b5b612af5848285612956565b509392505050565b600082601f830112612b1257612b116128a0565b5b8135612b22848260208601612abb565b91505092915050565b60008060008060808587031215612b4557612b4461246b565b5b6000612b53878288016126c1565b9450506020612b64878288016126c1565b9350506040612b758782880161260c565b925050606085013567ffffffffffffffff811115612b9657612b95612470565b5b612ba287828801612afd565b91505092959194509250565b60008060408385031215612bc557612bc461246b565b5b6000612bd3858286016126c1565b9250506020612be4858286016126c1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c3557607f821691505b60208210811415612c4957612c48612bee565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000612cab602c8361253b565b9150612cb682612c4f565b604082019050919050565b60006020820190508181036000830152612cda81612c9e565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d3d60218361253b565b9150612d4882612ce1565b604082019050919050565b60006020820190508181036000830152612d6c81612d30565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000612dcf60388361253b565b9150612dda82612d73565b604082019050919050565b60006020820190508181036000830152612dfe81612dc2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e3f826125eb565b9150612e4a836125eb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e7f57612e7e612e05565b5b828201905092915050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000612ee660318361253b565b9150612ef182612e8a565b604082019050919050565b60006020820190508181036000830152612f1581612ed9565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612f78602b8361253b565b9150612f8382612f1c565b604082019050919050565b60006020820190508181036000830152612fa781612f6b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612fe8826125eb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561301b5761301a612e05565b5b600182019050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613082602c8361253b565b915061308d82613026565b604082019050919050565b600060208201905081810360008301526130b181613075565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130ee60208361253b565b91506130f9826130b8565b602082019050919050565b6000602082019050818103600083015261311d816130e1565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b600061318060298361253b565b915061318b82613124565b604082019050919050565b600060208201905081810360008301526131af81613173565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613212602a8361253b565b915061321d826131b6565b604082019050919050565b6000602082019050818103600083015261324181613205565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061327e60198361253b565b915061328982613248565b602082019050919050565b600060208201905081810360008301526132ad81613271565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613310602f8361253b565b915061331b826132b4565b604082019050919050565b6000602082019050818103600083015261333f81613303565b9050919050565b600081905092915050565b600061335c82612530565b6133668185613346565b935061337681856020860161254c565b80840191505092915050565b600061338e8285613351565b915061339a8284613351565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061340260268361253b565b915061340d826133a6565b604082019050919050565b60006020820190508181036000830152613431816133f5565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613494602c8361253b565b915061349f82613438565b604082019050919050565b600060208201905081810360008301526134c381613487565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b600061352660298361253b565b9150613531826134ca565b604082019050919050565b6000602082019050818103600083015261355581613519565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135b860248361253b565b91506135c38261355c565b604082019050919050565b600060208201905081810360008301526135e7816135ab565b9050919050565b60006135f9826125eb565b9150613604836125eb565b92508282101561361757613616612e05565b5b828203905092915050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367e60328361253b565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ee826125eb565b91506136f9836125eb565b925082613709576137086136b4565b5b828204905092915050565b600061371f826125eb565b915061372a836125eb565b92508261373a576137396136b4565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b600061376c82613745565b6137768185613750565b935061378681856020860161254c565b61378f8161257f565b840191505092915050565b60006080820190506137af6000830187612680565b6137bc6020830186612680565b6137c96040830185612716565b81810360608301526137db8184613761565b905095945050505050565b6000815190506137f5816124a1565b92915050565b6000602082840312156138115761381061246b565b5b600061381f848285016137e6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061388d60208361253b565b915061389882613857565b602082019050919050565b600060208201905081810360008301526138bc81613880565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006138f9601c8361253b565b9150613904826138c3565b602082019050919050565b60006020820190508181036000830152613928816138ec565b905091905056fea26469706673582212206c0da776d56a037921b949323569087ef6bf9f4ca14422b2a64a7a48d210b3e264736f6c634300080900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f66696c652e636f696e39382e636f6d2f6e66744d696e742f