6080604052610378600a556005600b556005600c5560405180602001604052806000815250600d90805190602001906200003b92919062000302565b506040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600e90805190602001906200008992919062000302565b506000600f5566071afd498d0000601055600160115560006012556101bc6013556000601560006101000a81548160ff0219169083151502179055506001601560016101000a81548160ff021916908315150217905550348015620000ed57600080fd5b50604051620039eb380380620039eb83398181016040528101906200011391906200054f565b6040518060400160405280600c81526020017f454154205552204e4f4f445300000000000000000000000000000000000000008152506040518060400160405280600581526020017f4e4f4f445300000000000000000000000000000000000000000000000000000081525081600290805190602001906200019792919062000302565b508060039080519060200190620001b092919062000302565b50620001c16200022b60201b60201c565b6000819055505050620001e9620001dd6200023460201b60201c565b6200023c60201b60201c565b600160098190555081600d90805190602001906200020992919062000302565b5080601490805190602001906200022292919062000302565b50505062000638565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620003109062000603565b90600052602060002090601f01602090048101928262000334576000855562000380565b82601f106200034f57805160ff191683800117855562000380565b8280016001018555821562000380579182015b828111156200037f57825182559160200191906001019062000362565b5b5090506200038f919062000393565b5090565b5b80821115620003ae57600081600090555060010162000394565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200041b82620003d0565b810181811067ffffffffffffffff821117156200043d576200043c620003e1565b5b80604052505050565b600062000452620003b2565b905062000460828262000410565b919050565b600067ffffffffffffffff821115620004835762000482620003e1565b5b6200048e82620003d0565b9050602081019050919050565b60005b83811015620004bb5780820151818401526020810190506200049e565b83811115620004cb576000848401525b50505050565b6000620004e8620004e28462000465565b62000446565b905082815260208101848484011115620005075762000506620003cb565b5b620005148482856200049b565b509392505050565b600082601f830112620005345762000533620003c6565b5b815162000546848260208601620004d1565b91505092915050565b60008060408385031215620005695762000568620003bc565b5b600083015167ffffffffffffffff8111156200058a5762000589620003c1565b5b62000598858286016200051c565b925050602083015167ffffffffffffffff811115620005bc57620005bb620003c1565b5b620005ca858286016200051c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200061c57607f821691505b602082108103620006325762000631620005d4565b5b50919050565b6133a380620006486000396000f3fe60806040526004361061023b5760003560e01c80638456cb591161012e578063b245ddf9116100ab578063c87b56dd1161006f578063c87b56dd146107ca578063e098ff7314610807578063e2edb00114610832578063e985e9c51461086f578063f2fde38b146108ac5761023b565b8063b245ddf914610706578063b88d4fde1461072f578063bc951b911461074b578063be905c4014610776578063c204642c146107a15761023b565b806395d89b41116100f257806395d89b4114610642578063a0712d681461066d578063a22cb46514610689578063b071401b146106b2578063b0fe6414146106db5761023b565b80638456cb5914610583578063875728361461059a5780638da5cb5b146105c357806393e90b23146105ee57806394354fd0146106175761023b565b80633bd64968116101bc5780636352211e116101805780636352211e146104a0578063676f2602146104dd57806370a0823114610506578063715018a614610543578063766b7d091461055a5761023b565b80633bd64968146104045780633ccfd60b1461041b57806342842e0e146104325780634d534a7d1461044e578063626ab3b8146104775761023b565b806318160ddd1161020357806318160ddd1461033e57806322f4596f1461036957806323b872dd1461039457806330090b54146103b05780633b4c4b25146103db5761023b565b806301ffc9a71461024057806306fdde031461027d578063081812fc146102a8578063095ea7b3146102e557806311b4a83214610301575b600080fd5b34801561024c57600080fd5b50610267600480360381019061026291906125f9565b6108d5565b6040516102749190612641565b60405180910390f35b34801561028957600080fd5b50610292610967565b60405161029f91906126f5565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca919061274d565b6109f9565b6040516102dc91906127bb565b60405180910390f35b6102ff60048036038101906102fa9190612802565b610a78565b005b34801561030d57600080fd5b506103286004803603810190610323919061274d565b610bbc565b6040516103359190612851565b60405180910390f35b34801561034a57600080fd5b50610353610c6d565b6040516103609190612851565b60405180910390f35b34801561037557600080fd5b5061037e610c84565b60405161038b9190612851565b60405180910390f35b6103ae60048036038101906103a9919061286c565b610c8a565b005b3480156103bc57600080fd5b506103c5610fac565b6040516103d29190612851565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd919061274d565b610fb2565b005b34801561041057600080fd5b50610419610fc4565b005b34801561042757600080fd5b50610430610ff8565b005b61044c6004803603810190610447919061286c565b6110d5565b005b34801561045a57600080fd5b50610475600480360381019061047091906129f4565b6110f5565b005b34801561048357600080fd5b5061049e600480360381019061049991906129f4565b611117565b005b3480156104ac57600080fd5b506104c760048036038101906104c2919061274d565b611139565b6040516104d491906127bb565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff919061274d565b61114b565b005b34801561051257600080fd5b5061052d60048036038101906105289190612a3d565b61115d565b60405161053a9190612851565b60405180910390f35b34801561054f57600080fd5b50610558611215565b005b34801561056657600080fd5b50610581600480360381019061057c919061274d565b611229565b005b34801561058f57600080fd5b5061059861123b565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906129f4565b61126f565b005b3480156105cf57600080fd5b506105d8611291565b6040516105e591906127bb565b60405180910390f35b3480156105fa57600080fd5b506106156004803603810190610610919061274d565b6112bb565b005b34801561062357600080fd5b5061062c6112cd565b6040516106399190612851565b60405180910390f35b34801561064e57600080fd5b506106576112d3565b60405161066491906126f5565b60405180910390f35b6106876004803603810190610682919061274d565b611365565b005b34801561069557600080fd5b506106b060048036038101906106ab9190612a96565b6115a0565b005b3480156106be57600080fd5b506106d960048036038101906106d4919061274d565b6116ab565b005b3480156106e757600080fd5b506106f06116bd565b6040516106fd9190612851565b60405180910390f35b34801561071257600080fd5b5061072d6004803603810190610728919061274d565b6116c3565b005b61074960048036038101906107449190612b77565b6116d5565b005b34801561075757600080fd5b50610760611748565b60405161076d9190612851565b60405180910390f35b34801561078257600080fd5b5061078b61174e565b6040516107989190612851565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c39190612cc2565b611754565b005b3480156107d657600080fd5b506107f160048036038101906107ec919061274d565b6118dc565b6040516107fe91906126f5565b60405180910390f35b34801561081357600080fd5b5061081c611a2b565b6040516108299190612851565b60405180910390f35b34801561083e57600080fd5b506108596004803603810190610854919061274d565b611a31565b6040516108669190612851565b60405180910390f35b34801561087b57600080fd5b5061089660048036038101906108919190612d1e565b611ab0565b6040516108a39190612641565b60405180910390f35b3480156108b857600080fd5b506108d360048036038101906108ce9190612a3d565b611b44565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061093057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109605750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461097690612d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546109a290612d8d565b80156109ef5780601f106109c4576101008083540402835291602001916109ef565b820191906000526020600020905b8154815290600101906020018083116109d257829003601f168201915b5050505050905090565b6000610a0482611bc7565b610a3a576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a8382611139565b90508073ffffffffffffffffffffffffffffffffffffffff16610aa4611c26565b73ffffffffffffffffffffffffffffffffffffffff1614610b0757610ad081610acb611c26565b611ab0565b610b06576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600080610bc83361115d565b83610bd39190612ded565b90506011548111158015610bea5750601354601254105b15610bfa57600f54915050610c68565b6000610c053361115d565b148015610c13575060115481115b8015610c225750601354601254105b15610c5057600060115484610c379190612e43565b601054610c449190612e77565b90508092505050610c68565b600083601054610c609190612e77565b905080925050505b919050565b6000610c77611c2e565b6001546000540303905090565b600a5481565b6000610c9582611c37565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cfc576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610d0884611d03565b91509150610d1e8187610d19611c26565b611d2a565b610d6a57610d3386610d2e611c26565b611ab0565b610d69576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd0576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ddd8686866001611d6e565b8015610de857600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610eb685610e92888887611d74565b7c020000000000000000000000000000000000000000000000000000000017611d9c565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610f3c5760006001850190506000600460008381526020019081526020016000205403610f3a576000548114610f39578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610fa48686866001611dc7565b505050505050565b60125481565b610fba611dcd565b80600a8190555050565b610fcc611dcd565b601560009054906101000a900460ff1615601560006101000a81548160ff021916908315150217905550565b611000611dcd565b600260095403611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90612f1d565b60405180910390fd5b60026009819055506000611057611291565b73ffffffffffffffffffffffffffffffffffffffff164760405161107a90612f6e565b60006040518083038185875af1925050503d80600081146110b7576040519150601f19603f3d011682016040523d82523d6000602084013e6110bc565b606091505b50509050806110ca57600080fd5b506001600981905550565b6110f0838383604051806020016040528060008152506116d5565b505050565b6110fd611dcd565b80600e90805190602001906111139291906124ea565b5050565b61111f611dcd565b80600d90805190602001906111359291906124ea565b5050565b600061114482611c37565b9050919050565b611153611dcd565b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c4576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61121d611dcd565b6112276000611e4b565b565b611231611dcd565b80600b8190555050565b611243611dcd565b601560019054906101000a900460ff1615601560016101000a81548160ff021916908315150217905550565b611277611dcd565b806014908051906020019061128d9291906124ea565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112c3611dcd565b8060118190555050565b600c5481565b6060600380546112e290612d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461130e90612d8d565b801561135b5780601f106113305761010080835404028352916020019161135b565b820191906000526020600020905b81548152906001019060200180831161133e57829003601f168201915b5050505050905090565b803273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113cb576040517f4af0169e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a54816113d7610c6d565b6113e19190612ded565b1115611419576040517fb36c128400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54811115611455576040517fccfad01800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601560019054906101000a900460ff161561149c576040517fab35696f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600b54816114aa3361115d565b6114b49190612ded565b11156114ec576040517f6a3eaa7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008110806114fc5750600b5481115b15611533576040517fccfad01800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61153c81610bbc565b341015611575576040517fd44b3c6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61157e83611a31565b60125461158b9190612ded565b60128190555061159b3384611f11565b505050565b80600760006115ad611c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661165a611c26565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161169f9190612641565b60405180910390a35050565b6116b3611dcd565b80600c8190555050565b60115481565b6116cb611dcd565b8060138190555050565b6116e0848484610c8a565b60008373ffffffffffffffffffffffffffffffffffffffff163b146117425761170b84848484611f2f565b611741576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600b5481565b60135481565b61175c611dcd565b803273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f4af0169e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a54816117ce610c6d565b6117d89190612ded565b1115611810576040517fb36c128400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5481111561184c576040517fccfad01800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601560019054906101000a900460ff1615611893576040517fab35696f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83518110156118d6576118c38482815181106118b5576118b4612f83565b5b602002602001015184611f11565b80806118ce90612fb2565b915050611896565b50505050565b60606118e782611bc7565b61191d576040517f2f9aab5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515601560009054906101000a900460ff161515036119ca576014805461194590612d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461197190612d8d565b80156119be5780601f10611993576101008083540402835291602001916119be565b820191906000526020600020905b8154815290600101906020018083116119a157829003601f168201915b50505050509050611a26565b60006119d461207f565b905060008151116119f45760405180602001604052806000815250611a22565b806119fe84612111565b600e604051602001611a12939291906130ca565b6040516020818303038152906040525b9150505b919050565b60105481565b600080611a3d3361115d565b83611a489190612ded565b90506011548111158015611a5f5750601354601254105b15611a6d5780915050611aab565b6000611a783361115d565b148015611a86575060115481115b8015611a955750601354601254105b15611aa557601154915050611aab565b60009150505b919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b4c611dcd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29061316d565b60405180910390fd5b611bc481611e4b565b50565b600081611bd2611c2e565b11158015611be1575060005482105b8015611c1f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611c46611c2e565b11611ccc57600054811015611ccb5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611cc9575b60008103611cbf576004600083600190039350838152602001908152602001600020549050611c95565b8092505050611cfe565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611d8b868684612271565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611dd561227a565b73ffffffffffffffffffffffffffffffffffffffff16611df3611291565b73ffffffffffffffffffffffffffffffffffffffff1614611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e40906131d9565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611f2b828260405180602001604052806000815250612282565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f55611c26565b8786866040518563ffffffff1660e01b8152600401611f77949392919061324e565b6020604051808303816000875af1925050508015611fb357506040513d601f19601f82011682018060405250810190611fb091906132af565b60015b61202c573d8060008114611fe3576040519150601f19603f3d011682016040523d82523d6000602084013e611fe8565b606091505b506000815103612024576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600d805461208e90612d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546120ba90612d8d565b80156121075780601f106120dc57610100808354040283529160200191612107565b820191906000526020600020905b8154815290600101906020018083116120ea57829003601f168201915b5050505050905090565b606060008203612158576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061226c565b600082905060005b6000821461218a57808061217390612fb2565b915050600a82612183919061330b565b9150612160565b60008167ffffffffffffffff8111156121a6576121a56128c9565b5b6040519080825280601f01601f1916602001820160405280156121d85781602001600182028036833780820191505090505b5090505b60008514612265576001826121f19190612e43565b9150600a85612200919061333c565b603061220c9190612ded565b60f81b81838151811061222257612221612f83565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561225e919061330b565b94506121dc565b8093505050505b919050565b60009392505050565b600033905090565b61228c838361231f565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461231a57600080549050600083820390505b6122cc6000868380600101945086611f2f565b612302576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106122b957816000541461231757600080fd5b50505b505050565b6000805490506000820361235f576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61236c6000848385611d6e565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123e3836123d46000866000611d74565b6123dd856124da565b17611d9c565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461248457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612449565b50600082036124bf576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506124d56000848385611dc7565b505050565b60006001821460e11b9050919050565b8280546124f690612d8d565b90600052602060002090601f016020900481019282612518576000855561255f565b82601f1061253157805160ff191683800117855561255f565b8280016001018555821561255f579182015b8281111561255e578251825591602001919060010190612543565b5b50905061256c9190612570565b5090565b5b80821115612589576000816000905550600101612571565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125d6816125a1565b81146125e157600080fd5b50565b6000813590506125f3816125cd565b92915050565b60006020828403121561260f5761260e612597565b5b600061261d848285016125e4565b91505092915050565b60008115159050919050565b61263b81612626565b82525050565b60006020820190506126566000830184612632565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269657808201518184015260208101905061267b565b838111156126a5576000848401525b50505050565b6000601f19601f8301169050919050565b60006126c78261265c565b6126d18185612667565b93506126e1818560208601612678565b6126ea816126ab565b840191505092915050565b6000602082019050818103600083015261270f81846126bc565b905092915050565b6000819050919050565b61272a81612717565b811461273557600080fd5b50565b60008135905061274781612721565b92915050565b60006020828403121561276357612762612597565b5b600061277184828501612738565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127a58261277a565b9050919050565b6127b58161279a565b82525050565b60006020820190506127d060008301846127ac565b92915050565b6127df8161279a565b81146127ea57600080fd5b50565b6000813590506127fc816127d6565b92915050565b6000806040838503121561281957612818612597565b5b6000612827858286016127ed565b925050602061283885828601612738565b9150509250929050565b61284b81612717565b82525050565b60006020820190506128666000830184612842565b92915050565b60008060006060848603121561288557612884612597565b5b6000612893868287016127ed565b93505060206128a4868287016127ed565b92505060406128b586828701612738565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612901826126ab565b810181811067ffffffffffffffff821117156129205761291f6128c9565b5b80604052505050565b600061293361258d565b905061293f82826128f8565b919050565b600067ffffffffffffffff82111561295f5761295e6128c9565b5b612968826126ab565b9050602081019050919050565b82818337600083830152505050565b600061299761299284612944565b612929565b9050828152602081018484840111156129b3576129b26128c4565b5b6129be848285612975565b509392505050565b600082601f8301126129db576129da6128bf565b5b81356129eb848260208601612984565b91505092915050565b600060208284031215612a0a57612a09612597565b5b600082013567ffffffffffffffff811115612a2857612a2761259c565b5b612a34848285016129c6565b91505092915050565b600060208284031215612a5357612a52612597565b5b6000612a61848285016127ed565b91505092915050565b612a7381612626565b8114612a7e57600080fd5b50565b600081359050612a9081612a6a565b92915050565b60008060408385031215612aad57612aac612597565b5b6000612abb858286016127ed565b9250506020612acc85828601612a81565b9150509250929050565b600067ffffffffffffffff821115612af157612af06128c9565b5b612afa826126ab565b9050602081019050919050565b6000612b1a612b1584612ad6565b612929565b905082815260208101848484011115612b3657612b356128c4565b5b612b41848285612975565b509392505050565b600082601f830112612b5e57612b5d6128bf565b5b8135612b6e848260208601612b07565b91505092915050565b60008060008060808587031215612b9157612b90612597565b5b6000612b9f878288016127ed565b9450506020612bb0878288016127ed565b9350506040612bc187828801612738565b925050606085013567ffffffffffffffff811115612be257612be161259c565b5b612bee87828801612b49565b91505092959194509250565b600067ffffffffffffffff821115612c1557612c146128c9565b5b602082029050602081019050919050565b600080fd5b6000612c3e612c3984612bfa565b612929565b90508083825260208201905060208402830185811115612c6157612c60612c26565b5b835b81811015612c8a5780612c7688826127ed565b845260208401935050602081019050612c63565b5050509392505050565b600082601f830112612ca957612ca86128bf565b5b8135612cb9848260208601612c2b565b91505092915050565b60008060408385031215612cd957612cd8612597565b5b600083013567ffffffffffffffff811115612cf757612cf661259c565b5b612d0385828601612c94565b9250506020612d1485828601612738565b9150509250929050565b60008060408385031215612d3557612d34612597565b5b6000612d43858286016127ed565b9250506020612d54858286016127ed565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612da557607f821691505b602082108103612db857612db7612d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612df882612717565b9150612e0383612717565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e3857612e37612dbe565b5b828201905092915050565b6000612e4e82612717565b9150612e5983612717565b925082821015612e6c57612e6b612dbe565b5b828203905092915050565b6000612e8282612717565b9150612e8d83612717565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ec657612ec5612dbe565b5b828202905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612f07601f83612667565b9150612f1282612ed1565b602082019050919050565b60006020820190508181036000830152612f3681612efa565b9050919050565b600081905092915050565b50565b6000612f58600083612f3d565b9150612f6382612f48565b600082019050919050565b6000612f7982612f4b565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612fbd82612717565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fef57612fee612dbe565b5b600182019050919050565b600081905092915050565b60006130108261265c565b61301a8185612ffa565b935061302a818560208601612678565b80840191505092915050565b60008190508160005260206000209050919050565b6000815461305881612d8d565b6130628186612ffa565b9450600182166000811461307d576001811461308e576130c1565b60ff198316865281860193506130c1565b61309785613036565b60005b838110156130b95781548189015260018201915060208101905061309a565b838801955050505b50505092915050565b60006130d68286613005565b91506130e28285613005565b91506130ee828461304b565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613157602683612667565b9150613162826130fb565b604082019050919050565b600060208201905081810360008301526131868161314a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131c3602083612667565b91506131ce8261318d565b602082019050919050565b600060208201905081810360008301526131f2816131b6565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613220826131f9565b61322a8185613204565b935061323a818560208601612678565b613243816126ab565b840191505092915050565b600060808201905061326360008301876127ac565b61327060208301866127ac565b61327d6040830185612842565b818103606083015261328f8184613215565b905095945050505050565b6000815190506132a9816125cd565b92915050565b6000602082840312156132c5576132c4612597565b5b60006132d38482850161329a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061331682612717565b915061332183612717565b925082613331576133306132dc565b5b828204905092915050565b600061334782612717565b915061335283612717565b925082613362576133616132dc565b5b82820690509291505056fea26469706673582212209156b641feb965cf353745b8405b793301b4ddce331161a3402b59700d94cf5d64736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261666b7265696777697871787a6e73766c666e376964616d3735616e766867696365366f727077686936766a6764746661337161797666756b342f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261666b7265696777697871787a6e73766c666e376964616d3735616e766867696365366f727077686936766a6764746661337161797666756b342f0000000000000000000000000000000000000000000000000000000000