gAJjZG9jdXRpbHMubm9kZXMKZG9jdW1lbnQKcQEpgXECfXEDKFUJbmFtZXR5cGVzcQR9cQUoWBMAAABkZWxldGluZy1hdHRyaWJ1dGVzcQaIWBQAAABtb2NrLk5vbkNhbGxhYmxlTW9ja3EHiFgVAAAAbW9jay5Nb2NrLmF0dGFjaF9tb2NrcQiIWAkAAABtb2NrLk1vY2txCYhYEwAAAG1vY2suTW9jay5fX2NsYXNzX19xCohYFgAAAG1vY2suTW9jay5tZXRob2RfY2FsbHNxC4hYGQAAAG1vY2suTW9jay5fZ2V0X2NoaWxkX21vY2txDIhYFwAAAG1vY2suTW9jay5tb2NrX2FkZF9zcGVjcQ2IWBEAAABtb2NrLk1vY2suX19kaXJfX3EOiFgOAAAAdGhlIG1vY2sgY2xhc3NxD05YFgAAAG1vY2suTW9jay5yZXR1cm5fdmFsdWVxEIhVATGIWBUAAABtb2NrLk1vY2suc2lkZV9lZmZlY3RxEYhYFAAAAG1vY2suTW9jay5tb2NrX2NhbGxzcRKIWBQAAABtb2NrLk1vY2sucmVzZXRfbW9ja3ETiFgUAAAAbW9jay5Nb2NrLmNhbGxfY291bnRxFIhYGQAAAG1vY2suTW9jay5hc3NlcnRfYW55X2NhbGxxFYhYHQAAAGF0dGFjaGluZyBtb2NrcyBhcyBhdHRyaWJ1dGVzcRZOWBgAAABtb2NrLk1vY2suY2FsbF9hcmdzX2xpc3RxF4hYEAAAAG1vY2suTW9jay5jYWxsZWRxGIhYEQAAAG1vY2suUHJvcGVydHlNb2NrcRmIWBoAAABtb2NrLk1vY2suYXNzZXJ0X2hhc19jYWxsc3EaiFgYAAAAbW9jay5Nb2NrLmNvbmZpZ3VyZV9tb2NrcRuIWAcAAABjYWxsaW5ncRxOWBwAAABtb2NrLk1vY2suYXNzZXJ0X2NhbGxlZF93aXRocR2IWBMAAABtb2NrLk1vY2suY2FsbF9hcmdzcR6IWCEAAABtb2NrLk1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGhxH4hYEwAAAGRlbGV0aW5nIGF0dHJpYnV0ZXNxIE51VRFzdWJzdGl0dXRpb25fZGVmc3EhfXEiVQ5wYXJzZV9tZXNzYWdlc3EjXXEkVQ5jdXJyZW50X3NvdXJjZXElTlUKZGVjb3JhdGlvbnEmTlUSYXV0b2Zvb3Rub3RlX3N0YXJ0cSdLAlUHbmFtZWlkc3EofXEpKGgGVRNkZWxldGluZy1hdHRyaWJ1dGVzcSpoB2gHaAhoCGgJaAloCmgKaAtoC2gMaAxoDWgNaA5oDmgPVQ50aGUtbW9jay1jbGFzc3EraBBoEFUBMVUDaWQzcSxoEWgRaBJoEmgTaBNoFGgUaBVoFWgWVR1hdHRhY2hpbmctbW9ja3MtYXMtYXR0cmlidXRlc3EtaBdoF2gYaBhoGWgZaBpoGmgbaBtoHFUHY2FsbGluZ3EuaB1oHWgeaB5oH2gfaCBVA2lkMnEvdVUIY2hpbGRyZW5xMF1xMShjZG9jdXRpbHMubm9kZXMKc2VjdGlvbgpxMimBcTN9cTQoVQlyYXdzb3VyY2VxNVUAVQZwYXJlbnRxNmgCVQZzb3VyY2VxN2Nkb2N1dGlscy5ub2RlcwpyZXBydW5pY29kZQpxOFgbAAAAL2NvbXBpbGUvbW9jay9kb2NzL21vY2sudHh0cTmFgXE6fXE7YlUHdGFnbmFtZXE8VQdzZWN0aW9ucT1VCmF0dHJpYnV0ZXNxPn1xPyhVCGR1cG5hbWVzcUBdcUFVB2NsYXNzZXNxQl1xQ1UIYmFja3JlZnNxRF1xRVUDaWRzcUZdcUdoK2FVBW5hbWVzcUhdcUloD2F1VQRsaW5lcUpLAlUIZG9jdW1lbnRxS2gCaDBdcUwoY2RvY3V0aWxzLm5vZGVzCnRpdGxlCnFNKYFxTn1xTyhoNVgOAAAAVGhlIE1vY2sgQ2xhc3NxUGg2aDNoN2g6aDxVBXRpdGxlcVFoPn1xUihoQF1xU2hCXXFUaERdcVVoRl1xVmhIXXFXdWhKSwJoS2gCaDBdcVhjZG9jdXRpbHMubm9kZXMKVGV4dApxWVgOAAAAVGhlIE1vY2sgQ2xhc3NxWoWBcVt9cVwoaDVoUGg2aE51YmF1YmNkb2N1dGlscy5ub2Rlcwpjb21tZW50CnFdKYFxXn1xXyhoNVgZAAAAY2xhc3MgU29tZUNsYXNzOgogICAgcGFzc3FgaDZoM2g3aDpoPFUHY29tbWVudHFhaD59cWIoVQx0ZXN0bm9kZXR5cGVxY1gJAAAAdGVzdHNldHVwcWRVCXhtbDpzcGFjZXFlVQhwcmVzZXJ2ZXFmaEZdcWdoRF1xaGhAXXFpaEJdcWpoSF1xa1UGZ3JvdXBzcWxdcW1VB2RlZmF1bHRxbmFVB29wdGlvbnNxb31xcHVoSksGaEtoAmgwXXFxaFlYGQAAAGNsYXNzIFNvbWVDbGFzczoKICAgIHBhc3NxcoWBcXN9cXQoaDVVAGg2aF51YmF1YmNkb2N1dGlscy5ub2RlcwpwYXJhZ3JhcGgKcXUpgXF2fXF3KGg1WGIBAABgTW9ja2AgaXMgYSBmbGV4aWJsZSBtb2NrIG9iamVjdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSB1c2Ugb2Ygc3R1YnMgYW5kCnRlc3QgZG91YmxlcyB0aHJvdWdob3V0IHlvdXIgY29kZS4gTW9ja3MgYXJlIGNhbGxhYmxlIGFuZCBjcmVhdGUgYXR0cmlidXRlcyBhcwpuZXcgbW9ja3Mgd2hlbiB5b3UgYWNjZXNzIHRoZW0gWyNdXy4gQWNjZXNzaW5nIHRoZSBzYW1lIGF0dHJpYnV0ZSB3aWxsIGFsd2F5cwpyZXR1cm4gdGhlIHNhbWUgbW9jay4gTW9ja3MgcmVjb3JkIGhvdyB5b3UgdXNlIHRoZW0sIGFsbG93aW5nIHlvdSB0byBtYWtlCmFzc2VydGlvbnMgYWJvdXQgd2hhdCB5b3VyIGNvZGUgaGFzIGRvbmUgdG8gdGhlbS5xeGg2aDNoN2g6aDxVCXBhcmFncmFwaHF5aD59cXooaEBdcXtoQl1xfGhEXXF9aEZdcX5oSF1xf3VoSksMaEtoAmgwXXGAKGNkb2N1dGlscy5ub2Rlcwp0aXRsZV9yZWZlcmVuY2UKcYEpgXGCfXGDKGg1WAYAAABgTW9ja2BxhGg+fXGFKGhAXXGGaEJdcYdoRF1xiGhGXXGJaEhdcYp1aDZodmgwXXGLaFlYBAAAAE1vY2txjIWBcY19cY4oaDVVAGg2aIJ1YmFoPFUPdGl0bGVfcmVmZXJlbmNlcY91YmhZWLIAAAAgaXMgYSBmbGV4aWJsZSBtb2NrIG9iamVjdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSB1c2Ugb2Ygc3R1YnMgYW5kCnRlc3QgZG91YmxlcyB0aHJvdWdob3V0IHlvdXIgY29kZS4gTW9ja3MgYXJlIGNhbGxhYmxlIGFuZCBjcmVhdGUgYXR0cmlidXRlcyBhcwpuZXcgbW9ja3Mgd2hlbiB5b3UgYWNjZXNzIHRoZW0gcZCFgXGRfXGSKGg1WLIAAAAgaXMgYSBmbGV4aWJsZSBtb2NrIG9iamVjdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSB1c2Ugb2Ygc3R1YnMgYW5kCnRlc3QgZG91YmxlcyB0aHJvdWdob3V0IHlvdXIgY29kZS4gTW9ja3MgYXJlIGNhbGxhYmxlIGFuZCBjcmVhdGUgYXR0cmlidXRlcyBhcwpuZXcgbW9ja3Mgd2hlbiB5b3UgYWNjZXNzIHRoZW0gcZNoNmh2dWJjZG9jdXRpbHMubm9kZXMKZm9vdG5vdGVfcmVmZXJlbmNlCnGUKYFxlX1xlihoNVgEAAAAWyNdX3GXVQhyZXNvbHZlZHGYSwFoNmh2aDxVEmZvb3Rub3RlX3JlZmVyZW5jZXGZaD59cZooVQRhdXRvcZtLAWhGXXGcVQNpZDFxnWFoRF1xnmhAXXGfaEJdcaBoSF1xoVUFcmVmaWRxomgsdWgwXXGjaFlYAQAAADGFgXGkfXGlKGg1VQBoNmiVdWJhdWJoWVimAAAALiBBY2Nlc3NpbmcgdGhlIHNhbWUgYXR0cmlidXRlIHdpbGwgYWx3YXlzCnJldHVybiB0aGUgc2FtZSBtb2NrLiBNb2NrcyByZWNvcmQgaG93IHlvdSB1c2UgdGhlbSwgYWxsb3dpbmcgeW91IHRvIG1ha2UKYXNzZXJ0aW9ucyBhYm91dCB3aGF0IHlvdXIgY29kZSBoYXMgZG9uZSB0byB0aGVtLnGmhYFxp31xqChoNVimAAAALiBBY2Nlc3NpbmcgdGhlIHNhbWUgYXR0cmlidXRlIHdpbGwgYWx3YXlzCnJldHVybiB0aGUgc2FtZSBtb2NrLiBNb2NrcyByZWNvcmQgaG93IHlvdSB1c2UgdGhlbSwgYWxsb3dpbmcgeW91IHRvIG1ha2UKYXNzZXJ0aW9ucyBhYm91dCB3aGF0IHlvdXIgY29kZSBoYXMgZG9uZSB0byB0aGVtLnGpaDZodnViZXViaHUpgXGqfXGrKGg1WAIBAAA6Y2xhc3M6YE1hZ2ljTW9ja2AgaXMgYSBzdWJjbGFzcyBvZiBgTW9ja2Agd2l0aCBhbGwgdGhlIG1hZ2ljIG1ldGhvZHMKcHJlLWNyZWF0ZWQgYW5kIHJl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aWNhdGlvbiBmb3IgdGhlIG1vY2sgb2JqZWN0LiBJZgp5b3UgcGFzcyBpbiBhbiBvYmplY3QgdGhlbiBhIGxpc3Qgb2Ygc3RyaW5ncyBpcyBmb3JtZWQgYnkgY2FsbGluZyBkaXIgb24KdGhlIG9iamVjdCAoZXhjbHVkaW5nIHVuc3VwcG9ydGVkIG1hZ2ljIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHMpLgpBY2Nlc3NpbmcgYW55IGF0dHJpYnV0ZSBub3QgaW4gdGhpcyBsaXN0IHdpbGwgcmFpc2UgYW4gYEF0dHJpYnV0ZUVycm9yYC4KCklmIGBzcGVjYCBpcyBhbiBvYmplY3QgKHJhdGhlciB0aGFuIGEgbGlzdCBvZiBzdHJpbmdzKSB0aGVuCjphdHRyOmBfX2NsYXNzX19gIHJldHVybnMgdGhlIGNsYXNzIG9mIHRoZSBzcGVjIG9iamVjdC4gVGhpcyBhbGxvd3MgbW9ja3MKdG8gcGFzcyBgaXNpbnN0YW5jZWAgdGVzdHMuCnIwAwAAaDZqIgMAAGg3aDpoPFUJbGlzdF9pdGVtcjEDAABoPn1yMgMAAChoQF1yMwMAAGhCXXI0AwAAaERdcjUDAABoRl1yNgMAAGhIXXI3AwAAdWhKTmhLaAJoMF1yOAMAAChodSmBcjkDAAB9cjoDAAAoaDVYYgEAAGBzcGVjYDogVGhpcyBjYW4gYmUgZWl0aGVyIGEgbGlzdCBvZiBzdHJpbmdzIG9yIGFuIGV4aXN0aW5nIG9iamVjdCAoYQpjbGFzcyBvciBpbnN0YW5jZSkgdGhhdCBhY3RzIGFzIHRoZSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgbW9jayBvYmplY3QuIElmCnlvdSBwYXNzIGluIGFuIG9iamVjdCB0aGVuIGEgbGlzdCBvZiBzdHJpbmdzIGlzIGZvcm1lZCBieSBjYWxsaW5nIGRpciBvbgp0aGUgb2JqZWN0IChleGNsdWRpbmcgdW5zdXBwb3J0ZWQgbWFnaWMgYXR0cmlidXRlcyBhbmQgbWV0aG9kcykuCkFjY2Vzc2luZyBhbnkgYXR0cmlidXRlIG5vdCBpbiB0aGlzIGxpc3Qgd2lsbCByYWlzZSBhbiBgQXR0cmlidXRlRXJyb3JgLnI7AwAAaDZqLgMAAGg3aDpoPGh5aD59cjwDAAAoaEBdcj0DAABoQl1yPgMAAGhEXXI/AwAAaEZdckADAABoSF1yQQMAAHVoSksoaDBdckIDAAAoaIEpgXJDAwAAfXJEAwAAKGg1WAYAAABgc3BlY2ByRQMAAGg+fXJGAwAAKGhAXXJHAwAAaEJdckgDAABoRF1ySQMAAGhGXXJKAwAAaEhdcksDAAB1aDZqOQMAAGgwXXJMAwAAaFlYBAAAAHNwZWNyTQMAAIWBck4DAAB9ck8DAAAoaDVVAGg2akMDAAB1YmFoPGiPdWJoWVhLAQAAOiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBsaXN0IG9mIHN0cmluZ3Mgb3IgYW4gZXhpc3Rpbmcgb2JqZWN0IChhCmNsYXNzIG9yIGluc3RhbmNlKSB0aGF0IGFjdHMgYXMgdGhlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBtb2NrIG9iamVjdC4gSWYKeW91IHBhc3MgaW4gYW4gb2JqZWN0IHRoZW4gYSBsaXN0IG9mIHN0cmluZ3MgaXMgZm9ybWVkIGJ5IGNhbGxpbmcgZGlyIG9uCnRoZSBvYmplY3QgKGV4Y2x1ZGluZyB1bnN1cHBvcnRlZCBtYWdpYyBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzKS4KQWNjZXNzaW5nIGFueSBhdHRyaWJ1dGUgbm90IGluIHRoaXMgbGlzdCB3aWxsIHJhaXNlIGFuIHJQAwAAhYFyUQMAAH1yUgMAAChoNVhLAQAAOiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBsaXN0IG9mIHN0cmluZ3Mgb3IgYW4gZXhpc3Rpbmcgb2JqZWN0IChhCmNsYXNzIG9yIGluc3RhbmNlKSB0aGF0IGFjdHMgYXMgdGhlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBtb2NrIG9iamVjdC4gSWYKeW91IHBhc3MgaW4gYW4gb2JqZWN0IHRoZW4gYSBsaXN0IG9mIHN0cmluZ3MgaXMgZm9ybWVkIGJ5IGNhbGxpbmcgZGlyIG9uCnRoZSBvYmplY3QgKGV4Y2x1ZGluZyB1bnN1cHBvcnRlZCBtYWdpYyBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzKS4KQWNjZXNzaW5nIGFueSBhdHRyaWJ1dGUgbm90IGluIHRoaXMgbGlzdCB3aWxsIHJhaXNlIGFuIHJTAwAAaDZqOQMAAHViaIEpgXJUAwAAfXJVAwAAKGg1WBAAAABgQXR0cmlidXRlRXJyb3JgclYDAABoPn1yVwMAAChoQF1yWAMAAGhCXXJZAwAAaERdcloDAABoRl1yWwMAAGhIXXJcAwAAdWg2ajkDAABoMF1yXQMAAGhZWA4AAABBdHRyaWJ1dGVFcnJvcnJeAwAAhYFyXwMAAH1yYAMAAChoNVUAaDZqVAMAAHViYWg8aI91YmhZWAEAAAAuhYFyYQMAAH1yYgMAAChoNVgBAAAALmg2ajkDAAB1YmV1Ymh1KYFyYwMAAH1yZAMAAChoNVihAAAASWYgYHNwZWNgIGlzIGFuIG9iamVjdCAocmF0aGVyIHRoYW4gYSBsaXN0IG9mIHN0cmluZ3MpIHRoZW4KOmF0dHI6YF9fY2xhc3NfX2AgcmV0dXJucyB0aGUgY2xhc3Mgb2YgdGhlIHNwZWMgb2JqZWN0LiBUaGlzIGFsbG93cyBtb2Nrcwp0byBwYXNzIGBpc2luc3RhbmNlYCB0ZXN0cy5yZQMAAGg2ai4DAABoN2g6aDxoeWg+fXJmAwAAKGhAXXJnAwAAaEJdcmgDAABoRF1yaQMAAGhGXXJqAwAAaEhdcmsDAAB1aEpLLmgwXXJsAwAAKGhZWAMAAABJZiBybQMAAIWBcm4DAAB9cm8DAAAoaDVYAwAAAElmIHJwAwAAaDZqYwMAAHViaIEpgXJxAwAAfXJyAwAAKGg1WAYAAABgc3BlY2BycwMAAGg+fXJ0AwAAKGhAXXJ1AwAAaEJdcnYDAABoRF1ydwMAAGhGXXJ4AwAAaEhdcnkDAAB1aDZqYwMAAGgwXXJ6AwAAaFlYBAAAAHNwZWNyewMAAIWBcnwDAAB9cn0DAAAoaDVVAGg2anEDAAB1YmFoPGiPdWJoWVgzAAAAIGlzIGFuIG9iamVjdCAocmF0aGVyIHRoYW4gYSBsaXN0IG9mIHN0cmluZ3MpIHRoZW4Kcn4DAACFgXJ/AwAAfXKAAwAAKGg1WDMAAAAgaXMgYW4gb2JqZWN0IChyYXRoZXIgdGhhbiBhIGxpc3Qgb2Ygc3RyaW5ncykgdGhlbgpygQMAAGg2amMDAAB1Ymi0KYFyggMAAH1ygwMAAChoNVgRAAAAOmF0dHI6YF9fY2xhc3NfX2ByhAMAAGg2amMDAABoN2g6aDxouGg+fXKFAwAAKFUHcmVmdHlwZXKGAwAAWAQAAABhdHRycocDAABovIlovVgJAAAAX19jbGFzc19fcogDAABVCXJlZmRvbWFpbnKJAwAAWAIAAABweXKKAwAAaEZdcosDAABoRF1yjAMAAFULcmVmZXhwbGljaXRyjQMAAIloQF1yjgMAAGhCXXKPAwAAaEhdcpADAABox2jIaMlqXQIAAGjKaMt1aEpLLmgwXXKRAwAAaM0pgXKSAwAAfXKTAwAAKGg1aoQDAABoPn1ylAMAAChoQF1ylQMAAGhCXXKWAwAAKGjTaooDAABYBwAAAHB5LWF0dHJylwMAAGVoRF1ymAMAAGhGXXKZAwAAaEhdcpoDAAB1aDZqggMAAGgwXXKbAwAAaFlYCQAAAF9fY2xhc3NfX3KcAwAAhYFynQMAAH1yngMAAChoNVUAaDZqkgMAAHViYWg8aNx1YmF1YmhZWEEAAAAgcmV0dXJucyB0aGUgY2xhc3Mgb2YgdGhlIHNwZWMgb2JqZWN0LiBUaGlzIGFsbG93cyBtb2Nrcwp0byBwYXNzIHKfAwAAhYFyoAMAAH1yoQMAAChoNVhBAAAAIHJldHVybnMgdGhlIGNsYXNzIG9mIHRoZSBzcGVjIG9iamVjdC4gVGhpcyBhbGxvd3MgbW9ja3MKdG8gcGFzcyByogMAAGg2amMDAAB1YmiBKYFyowMAAH1ypAMAAChoNVgMAAAAYGlzaW5zdGFuY2VgcqUDAABoPn1ypgMAAChoQF1ypwMAAGhCXXKoAwAAaERdcqkDAABoRl1yqgMAAGhIXXKrAwAAdWg2amMDAABoMF1yrAMAAGhZWAoAAABpc2luc3RhbmNlcq0DAACFgXKuAwAAfXKvAwAAKGg1VQBoNmqjAwAAdWJhaDxoj3ViaFlYBwAAACB0ZXN0cy5ysAMAAIWBcrEDAAB9crIDAAAoaDVYBwAAACB0ZXN0cy5yswMAAGg2amMDAAB1YmV1YmV1YmotAwAAKYFytAMAAH1ytQMAAChoNVi1AAAAYHNwZWNfc2V0YDogQSBzdHJpY3RlciB2YXJpYW50IG9mIGBzcGVjYC4gSWYgdXNlZCwgYXR0ZW1wdGluZyB0byAqc2V0KgpvciBnZXQgYW4gYXR0cmlidXRlIG9uIHRoZSBtb2NrIHRoYXQgaXNuJ3Qgb24gdGhlIG9iamVjdCBwYXNzZWQgYXMKYHNwZWNfc2V0YCB3aWxsIHJhaXNlIGFuIGBBdHRyaWJ1dGVFcnJvcmAuCnK2AwAAaDZqIgMAAGg3aDpoPGoxAwAAaD59crcDAAAoaEBdcrgDAABoQl1yuQMAAGhEXXK6AwAAaEZdcrsDAABoSF1yvAMAAHVoSk5oS2gCaDBdcr0DAABodSmBcr4DAAB9cr8DAAAoaDVYtAAAAGBzcGVjX3NldGA6IEEgc3RyaWN0ZXIgdmFyaWFudCBvZiBgc3BlY2AuIElmIHVzZWQsIGF0dGVtcHRpbmcgdG8gKnNldCoKb3IgZ2V0IGFuIGF0dHJpYnV0ZSBvbiB0aGUgbW9jayB0aGF0IGlzbid0IG9uIHRoZSBvYmplY3QgcGFzc2VkIGFzCmBzcGVjX3NldGAgd2lsbCByYWlzZSBhbiBgQXR0cmlidXRlRXJyb3JgLnLAAwAAaDZqtAMAAGg3aDpoPGh5aD59csEDAAAoaEBdcsIDAABoQl1ywwMAAGhEXXLEAwAAaEZdcsUDAABoSF1yxgMAAHVoSksyaDBdcscDAAAoaIEpgXLIAwAAfXLJAwAAKGg1WAoAAABgc3BlY19zZXRgcsoDAABoPn1yywMAAChoQF1yzAMAAGhCXXLNAwAAaERdcs4DAABoRl1yzwMAAGhIXXLQAwAAdWg2ar4DAABoMF1y0QMAAGhZWAgAAABzcGVjX3NldHLSAwAAhYFy0wMAAH1y1AMAAChoNVUAaDZqyAMAAHViYWg8aI91YmhZWBgAAAA6IEEgc3RyaWN0ZXIgdmFyaWFudCBvZiBy1QMAAIWBctYDAAB9ctcDAAAoaDVYGAAAADogQSBzdHJpY3RlciB2YXJpYW50IG9mIHLYAwAAaDZqvgMAAHViaIEpgXLZAwAAfXLaAwAAKGg1WAYAAABgc3BlY2By2wMAAGg+fXLcAwAAKGhAXXLdAwAAaEJdct4DAABoRF1y3wMAAGhGXXLgAwAAaEhdcuEDAAB1aDZqvgMAAGgwXXLiAwAAaFlYBAAAAHNwZWNy4wMAAIWBcuQDAAB9cuUDAAAoaDVVAGg2atkDAAB1YmFoPGiPdWJoWVgZAAAALiBJZiB1c2VkLCBhdHRlbXB0aW5nIHRvIHLmAwAAhYFy5wMAAH1y6AMAAChoNVgZAAAALiBJZiB1c2VkLCBhdHRlbXB0aW5nIHRvIHLpAwAAaDZqvgMAAHViY2RvY3V0aWxzLm5vZGVzCmVtcGhhc2lzCnLqAwAAKYFy6wMAAH1y7AMAAChoNVgFAAAAKnNldCpy7QMAAGg+fXLuAwAAKGhAXXLvAwAAaEJdcvADAABoRF1y8QMAAGhGXXLyAwAAaEhdcvMDAAB1aDZqvgMAAGgwXXL0AwAAaFlYAwAAAHNldHL1AwAAhYFy9gMAAH1y9wMAAChoNVUAaDZq6wMAAHViYWg8VQhlbXBoYXNpc3L4AwAAdWJoWVhEAAAACm9yIGdldCBhbiBhdHRyaWJ1dGUgb24gdGhlIG1vY2sgdGhhdCBpc24ndCBvbiB0aGUgb2JqZWN0IHBhc3NlZCBhcwpy+QMAAIWBcvoDAAB9cvsDAAAoaDVYRAAAAApvciBnZXQgYW4gYXR0cmlidXRlIG9uIHRoZSBtb2NrIHRoYXQgaXNuJ3Qgb24gdGhlIG9iamVjdCBwYXNzZWQgYXMKcvwDAABoNmq+AwAAdWJogSmBcv0DAAB9cv4DAAAoaDVYCgAAAGBzcGVjX3NldGBy/wMAAGg+fXIABAAAKGhAXXIBBAAAaEJdcgIEAABoRF1yAwQAAGhGXXIEBAAAaEhdcgUEAAB1aDZqvgMAAGgwXXIGBAAAaFlYCAAAAHNwZWNfc2V0cgcEAACFgXIIBAAAfXIJBAAAKGg1VQBoNmr9AwAAdWJhaDxoj3ViaFlYDwAAACB3aWxsIHJhaXNlIGFuIHIKBAAAhYFyCwQAAH1yDAQAAChoNVgPAAAAIHdpbGwgcmFpc2UgYW4gcg0EAABoNmq+AwAAdWJogSmBcg4EAAB9cg8EAAAoaDVYEAAAAGBBdHRyaWJ1dGVFcnJvcmByEAQAAGg+fXIRBAAAKGhAXXISBAAAaEJdchMEAABoRF1yFAQAAGhGXXIVBAAAaEhdchYEAAB1aDZqvgMAAGgwXXIXBAAAaFlYDgAAAEF0dHJpYnV0ZUVycm9ychgEAACFgXIZBAAAfXIaBAAAKGg1VQBoNmoOBAAAdWJhaDxoj3ViaFlYAQAAAC6FgXIbBAAAfXIcBAAAKGg1WAEAAAAuaDZqvgMAAHViZXViYXViai0DAAApgXIdBAAAfXIeBAAAKGg1WOACAABgc2lkZV9lZmZlY3RgOiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgTW9jayBpcyBjYWxsZWQuIFNlZQp0aGUgOmF0dHI6YH5Nb2NrLnNpZGVfZWZmZWN0YCBhdHRyaWJ1dGUuIFVzZWZ1bCBmb3IgcmFpc2luZyBleGNlcHRpb25zIG9yCmR5bmFtaWNhbGx5IGNoYW5naW5nIHJldHVybiB2YWx1ZXMuIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgc2FtZQphcmd1bWVudHMgYXMgdGhlIG1vY2ssIGFuZCB1bmxlc3MgaXQgcmV0dXJucyA6ZGF0YTpgREVGQVVMVGAsIHRoZSByZXR1cm4KdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSByZXR1cm4gdmFsdWUuCgpBbHRlcm5hdGl2ZWx5IGBzaWRlX2VmZmVjdGAgY2FuIGJlIGFuIGV4Y2VwdGlvbiBjbGFzcyBvciBpbnN0YW5jZS4gSW4KdGhpcyBjYXNlIHRoZSBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB0aGUgbW9jayBpcyBjYWxsZWQuCgpJZiBgc2lkZV9lZmZlY3RgIGlzIGFuIGl0ZXJhYmxlIHRoZW4gZWFjaCBjYWxsIHRvIHRoZSBtb2NrIHdpbGwgcmV0dXJuCnRoZSBuZXh0IHZhbHVlIGZyb20gdGhlIGl0ZXJhYmxlLiBJZiBhbnkgb2YgdGhlIG1lbWJlcnMgb2YgdGhlIGl0ZXJhYmxlCmFyZSBleGNlcHRpb25zIHRoZXkgd2lsbCBiZSByYWlzZWQgaW5zdGVhZCBvZiByZXR1cm5lZC4KCkEgYHNpZGVfZWZmZWN0YCBjYW4gYmUgY2xlYXJlZCBieSBzZXR0aW5nIGl0IHRvIGBOb25lYC4Kch8EAABoNmoiAwAAaDdoOmg8ajEDAABoPn1yIAQAAChoQF1yIQQAAGhCXXIiBAAAaERdciMEAABoRl1yJAQAAGhIXXIlBAAAdWhKTmhLaAJoMF1yJgQAAChodSmBcicEAAB9cigEAAAoaDVYVwEAAGBzaWRlX2VmZmVjdGA6IEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBNb2NrIGlzIGNh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NmoxEgAAaDBdckgSAABoWVgFAAAAdGhlaXJySRIAAIWBckoSAAB9cksSAAAoaDVVAGg2aj8SAAB1YmFoPGr4AwAAdWJoWVgYAAAAIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXM6ckwSAACFgXJNEgAAfXJOEgAAKGg1WBgAAAAgbWV0aG9kcyBhbmQgYXR0cmlidXRlczpyTxIAAGg2ajESAAB1YmV1Ymp6BgAAKYFyUBIAAH1yURIAAChoNVjtAAAAPj4+IG1vY2sgPSBNb2NrKCkKPj4+IG1vY2subWV0aG9kKCkKPE1vY2sgbmFtZT0nbW9jay5tZXRob2QoKScgaWQ9Jy4uLic+Cj4+PiBtb2NrLnByb3BlcnR5Lm1ldGhvZC5hdHRyaWJ1dGUoKQo8TW9jayBuYW1lPSdtb2NrLnByb3BlcnR5Lm1ldGhvZC5hdHRyaWJ1dGUoKScgaWQ9Jy4uLic+Cj4+PiBtb2NrLm1ldGhvZF9jYWxscwpbY2FsbC5tZXRob2QoKSwgY2FsbC5wcm9wZXJ0eS5tZXRob2QuYXR0cmlidXRlKCldclISAABoNmooEgAAaDdoOmg8an4GAABoPn1yUxIAAChVDHRlc3Rub2RldHlwZXJUEgAAWAcAAABkb2N0ZXN0clUSAABoZWhmaEZdclYSAABoRF1yVxIAAGhAXXJYEgAAaEJdclkSAABoSF1yWhIAAFUGZ3JvdXBzclsSAABdclwSAABobmFob31yXRIAAHVoSk3MAWhLaAJoMF1yXhIAAGhZWO0AAAA+Pj4gbW9jayA9IE1vY2soKQo+Pj4gbW9jay5tZXRob2QoKQo8TW9jayBuYW1lPSdtb2NrLm1ldGhvZCgpJyBpZD0nLi4uJz4KPj4+IG1vY2sucHJvcGVydHkubWV0aG9kLmF0dHJpYnV0ZSgpCjxNb2NrIG5hbWU9J21vY2sucHJvcGVydHkubWV0aG9kLmF0dHJpYnV0ZSgpJyBpZD0nLi4uJz4KPj4+IG1vY2subWV0aG9kX2NhbGxzCltjYWxsLm1ldGhvZCgpLCBjYWxsLnByb3BlcnR5Lm1ldGhvZC5hdHRyaWJ1dGUoKV1yXxIAAIWBcmASAAB9cmESAAAoaDVVAGg2alASAAB1YmF1Ymh1KYFyYhIAAH1yYxIAAChoNVilAAAATWVtYmVycyBv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Y2hpbmcgbW9ja3MgdG8gYSBwYXJlbnQgdGhhdCByZWNvcmRzIGFsbCBjYWxscyB0byB0aGUKY2hpbGRyZW4gYW5kIGFsbG93cyB5b3UgdG8gbWFrZSBhc3NlcnRpb25zIGFib3V0IHRoZSBvcmRlciBvZiBjYWxscyBiZXR3ZWVuCm1vY2tzOnInGwAAaDZq2BoAAHViZXVianoGAAApgXIoGwAAfXIpGwAAKGg1WPUAAAA+Pj4gcGFyZW50ID0gTWFnaWNNb2NrKCkKPj4+IGNoaWxkMSA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9Tm9uZSkKPj4+IGNoaWxkMiA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9Tm9uZSkKPj4+IHBhcmVudC5jaGlsZDEgPSBjaGlsZDEKPj4+IHBhcmVudC5jaGlsZDIgPSBjaGlsZDIKPj4+IGNoaWxkMSgxKQo+Pj4gY2hpbGQyKDIpCj4+PiBwYXJlbnQubW9ja19jYWxscwpbY2FsbC5jaGlsZDEoMSksIGNhbGwuY2hpbGQyKDIpXXIqGwAAaDZqwhoAAGg3aDpoPGp+BgAAaD59cisbAAAoVQx0ZXN0bm9kZXR5cGVyLBsAAFgHAAAAZG9jdGVzdHItGwAAaGVoZmhGXXIuGwAAaERdci8bAABoQF1yMBsAAGhCXXIxGwAAaEhdcjIbAABVBmdyb3Vwc3IzGwAAXXI0GwAAaG5haG99cjUbAAB1aEpNFgNoS2gCaDBdcjYbAABoWVj1AAAAPj4+IHBhcmVudCA9IE1hZ2ljTW9jaygpCj4+PiBjaGlsZDEgPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPU5vbmUpCj4+PiBjaGlsZDIgPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPU5vbmUpCj4+PiBwYXJlbnQuY2hpbGQxID0gY2hpbGQxCj4+PiBwYXJlbnQuY2hpbGQyID0gY2hpbGQyCj4+PiBjaGlsZDEoMSkKPj4+IGNoaWxkMigyKQo+Pj4gcGFyZW50Lm1vY2tfY2FsbHMKW2NhbGwuY2hpbGQxKDEpLCBjYWxsLmNoaWxkMigyKV1yNxsAAIWBcjgbAAB9cjkbAAAoaDVVAGg2aigbAAB1YmF1Ymh1KYFyOhsAAH1yOxsAAChoNViLAAAAVGhlIGV4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dGlvbnMgYXJlIG1hZ2ljIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMgKHRob3NlIHRoYXQgaGF2ZQpsZWFkaW5nIGFuZCB0cmFpbGluZyBkb3VibGUgdW5kZXJzY29yZXMpLiBNb2NrIGRvZXNuJ3QgY3JlYXRlIHRoZXNlIGJ1dAppbnN0ZWFkIG9mIHJhaXNlcyBhbiBgYEF0dHJpYnV0ZUVycm9yYGAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgaW50ZXJwcmV0ZXIKd2lsbCBvZnRlbiBpbXBsaWNpdGx5IHJlcXVlc3QgdGhlc2UgbWV0aG9kcywgYW5kIGdldHMgKnZlcnkqIGNvbmZ1c2VkIHRvCmdldCBhIG5ldyBNb2NrIG9iamVjdCB3aGVuIGl0IGV4cGVjdHMgYSBtYWdpYyBtZXRob2QuIElmIHlvdSBuZWVkIG1hZ2ljCm1ldGhvZCBzdXBwb3J0IHNlZSA6cmVmOmBtYWdpYyBtZXRob2RzIDxtYWdpYy1tZXRob2RzPmAucuIbAABoNmrIGwAAaDdoOmg8aHloPn1y4xsAAChoQF1y5BsAAGhCXXLlGwAAaERdcuYbAABoRl1y5xsAAGhIXXLoGwAAdWhKTUUDaDBdcukbAAAoaFlYowAAAFRoZSBvbmx5IGV4Y2VwdGlvbnMgYXJlIG1hZ2ljIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMgKHRob3NlIHRoYXQgaGF2ZQpsZWFkaW5nIGFuZCB0cmFpbGluZyBkb3VibGUgdW5kZXJzY29yZXMpLiBNb2NrIGRvZXNuJ3QgY3JlYXRlIHRoZXNlIGJ1dAppbnN0ZWFkIG9mIHJhaXNlcyBhbiBy6hsAAIWBcusbAAB9cuwbAAAoaDVYowAAAFRoZSBvbmx5IGV4Y2VwdGlvbnMgYXJlIG1hZ2ljIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMgKHRob3NlIHRoYXQgaGF2ZQpsZWFkaW5nIGFuZCB0cmFpbGluZyBkb3VibGUgdW5kZXJzY29yZXMpLiBNb2NrIGRvZXNuJ3QgY3JlYXRlIHRoZXNlIGJ1dAppbnN0ZWFkIG9mIHJhaXNlcyBhbiBy7RsAAGg2auAbAAB1YmjNKYFy7hsAAH1y7xsAAChoNVgSAAAAYGBBdHRyaWJ1dGVFcnJvcmBgcvAbAABoPn1y8RsAAChoQF1y8hsAAGhCXXLzGwAAaERdcvQbAABoRl1y9RsAAGhIXXL2GwAAdWg2auAbAABoMF1y9xsAAGhZWA4AAABBdHRyaWJ1dGVFcnJvcnL4GwAAhYFy+RsAAH1y+hsAAChoNVUAaDZq7hsAAHViYWg8aNx1YmhZWFgAAAAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgaW50ZXJwcmV0ZXIKd2lsbCBvZnRlbiBpbXBsaWNpdGx5IHJlcXVlc3QgdGhlc2UgbWV0aG9kcywgYW5kIGdldHMgcvsbAACFgXL8GwAAfXL9GwAAKGg1WFgAAAAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgaW50ZXJwcmV0ZXIKd2lsbCBvZnRlbiBpbXBsaWNpdGx5IHJlcXVlc3QgdGhlc2UgbWV0aG9kcywgYW5kIGdldHMgcv4bAABoNmrgGwAAdWJq6gMAACmBcv8bAAB9cgAcAAAoaDVYBgAAACp2ZXJ5KnIBHAAAaD59cgIcAAAoaEBdcgMcAABoQl1yBBwAAGhEXXIFHAAAaEZdcgYcAABoSF1yBxwAAHVoNmrgGwAAaDBdcggcAABoWVgEAAAAdmVyeXIJHAAAhYFyChwAAH1yCxwAAChoNVUAaDZq/xsAAHViYWg8avgDAAB1YmhZWGgAAAAgY29uZnVzZWQgdG8KZ2V0IGEgbmV3IE1vY2sgb2JqZWN0IHdoZW4gaXQgZXhwZWN0cyBhIG1hZ2ljIG1ldGhvZC4gSWYgeW91IG5lZWQgbWFnaWMKbWV0aG9kIHN1cHBvcnQgc2VlIHIMHAAAhYFyDRwAAH1yDhwAAChoNVhoAAAAIGNvbmZ1c2VkIHRvCmdldCBhIG5ldyBNb2NrIG9iamVjdCB3aGVuIGl0IGV4cGVjdHMgYSBtYWdpYyBtZXRob2QuIElmIHlvdSBuZWVkIG1hZ2ljCm1ldGhvZCBzdXBwb3J0IHNlZSByDxwAAGg2auAbAAB1Ymi0KYFyEBwAAH1yERwAAChoNVgkAAAAOnJlZjpgbWFnaWMgbWV0aG9kcyA8bWFnaWMtbWV0aG9kcz5gchIcAABoNmrgGwAAaDdoOmg8aLhoPn1yExwAAChVB3JlZnR5cGVyFBwAAFgDAAAAcmVmchUcAABovIhovVgNAAAAbWFnaWMtbWV0aG9kc3IWHAAAVQlyZWZkb21haW5yFxwAAFgDAAAAc3RkchgcAABoRl1yGRwAAGhEXXIaHAAAVQtyZWZleHBsaWNpdHIbHAAAiGhAXXIcHAAAaEJdch0cAABoSF1yHhwAAGjHaMh1aEpNRQNoMF1yHxwAAGrqAwAAKYFyIBwAAH1yIRwAAChoNWoSHAAAaD59ciIcAAAoaEBdciMcAABoQl1yJBwAACho02oYHAAAWAcAAABzdGQtcmVmciUcAABlaERdciYcAABoRl1yJxwAAGhIXXIoHAAAdWg2ahAcAABoMF1yKRwAAGhZWA0AAABtYWdpYyBtZXRob2RzciocAACFgXIrHAAAfXIsHAAAKGg1VQBoNmogHAAAdWJhaDxq+AMAAHViYXViaFlYAQAAAC6FgXItHAAAfXIuHAAAKGg1WAEAAAAuaDZq4BsAAHViZXViZXViZXViZWg1VQBVC3RyYW5zZm9ybWVyci8cAABOVQ1mb290bm90ZV9yZWZzcjAcAAB9cjEcAABVCHJlZm5hbWVzcjIcAAB9cjMcAABVEHN5bWJvbF9mb290bm90ZXNyNBwAAF1yNRwAAFURYXV0b2Zvb3Rub3RlX3JlZnNyNhwAAF1yNxwAAGiVYVUUc3ltYm9sX2Zvb3Rub3RlX3JlZnNyOBwAAF1yORwAAFUJY2l0YXRpb25zcjocAABdcjscAABoS2gCVQxjdXJyZW50X2xpbmVyPBwAAE5VEnRyYW5zZm9ybV9tZXNzYWdlc3I9HAAAXXI+HAAAKGNkb2N1dGlscy5ub2RlcwpzeXN0ZW1fbWVzc2FnZQpyPxwAACmBckAcAAB9ckEcAAAoaDVVAGg+fXJCHAAAKGhAXXJDHAAAVQVsZXZlbHJEHAAASwFoRl1yRRwAAGhEXXJGHAAAVQZzb3VyY2VyRxwAAGg6aEJdckgcAABoSF1ySRwAAFUEbGluZXJKHAAASx1VBHR5cGVySxwAAFUESU5GT3JMHAAAdWgwXXJNHAAAaHUpgXJOHAAAfXJPHAAAKGg1VQBoPn1yUBwAAChoQF1yURwAAGhCXXJSHAAAaERdclMcAABoRl1yVBwAAGhIXXJVHAAAdWg2akAcAABoMF1yVhwAAGhZWC0AAABIeXBlcmxpbmsgdGFyZ2V0ICJpbmRleC0wIiBpcyBub3QgcmVmZXJlbmNlZC5yVxwAAIWBclgcAAB9clkcAAAoaDVVAGg2ak4cAAB1YmFoPGh5dWJhaDxVDnN5c3RlbV9tZXNzYWdlclocAAB1Ymo/HAAAKYFyWxwAAH1yXBwAAChoNVUAaD59cl0cAAAoaEBdcl4cAABVBWxldmVscl8cAABLAWhGXXJgHAAAaERdcmEcAABVBnNvdXJjZXJiHAAAaDpoQl1yYxwAAGhIXXJkHAAAVQRsaW5lcmUcAABLHlUEdHlwZXJmHAAAakwcAAB1aDBdcmccAABodSmBcmgcAAB9cmkcAAAoaDVVAGg+fXJqHAAAKGhAXXJrHAAAaEJdcmwcAABoRF1ybRwAAGhGXXJuHAAAaEhdcm8cAAB1aDZqWxwAAGgwXXJwHAAAaFlYLQAAAEh5cGVybGluayB0YXJnZXQgImluZGV4LTEiIGlzIG5vdCByZWZlcmVuY2VkLnJxHAAAhYFychwAAH1ycxwAAChoNVUAaDZqaBwAAHViYWg8aHl1YmFoPGpaHAAAdWJqPxwAACmBcnQcAAB9cnUcAAAoaDVVAGg+fXJ2HAAAKGhAXXJ3HAAAVQVsZXZlbHJ4HAAASwFoRl1yeRwAAGhEXXJ6HAAAVQZzb3VyY2VyexwAAGg6aEJdcnwcAABoSF1yfRwAAFUEbGluZXJ+HAAASx9VBHR5cGVyfxwAAGpMHAAAdWgwXXKAHAAAaHUpgXKBHAAAfXKCHAAAKGg1VQBoPn1ygxwAAChoQF1yhBwAAGhCXXKFHAAAaERdcoYcAABoRl1yhxwAAGhIXXKIHAAAdWg2anQcAABoMF1yiRwAAGhZWC0AAABIeXBlcmxpbmsgdGFyZ2V0ICJpbmRleC0yIiBpcyBub3QgcmVmZXJlbmNlZC5yihwAAIWBcoscAAB9cowcAAAoaDVVAGg2aoEcAAB1YmFoPGh5dWJhaDxqWhwAAHViaj8cAAApgXKNHAAAfXKOHAAAKGg1VQBoPn1yjxwAAChoQF1ykBwAAFUFbGV2ZWxykRwAAEsBaEZdcpIcAABoRF1ykxwAAFUGc291cmNlcpQcAABoOmhCXXKVHAAAaEhdcpYcAABVBGxpbmVylxwAAEsgVQR0eXBlcpgcAABqTBwAAHVoMF1ymRwAAGh1KYFymhwAAH1ymxwAAChoNVUAaD59cpwcAAAoaEBdcp0cAABoQl1ynhwAAGhEXXKfHAAAaEZdcqAcAABoSF1yoRwAAHVoNmqNHAAAaDBdcqIcAABoWVgtAAAASHlwZXJsaW5rIHRhcmdldCAiaW5kZXgtMyIgaXMgbm90IHJlZmVyZW5jZWQucqMcAACFgXKkHAAAfXKlHAAAKGg1VQBoNmqaHAAAdWJhaDxoeXViYWg8alocAAB1Ymo/HAAAKYFyphwAAH1ypxwAAChoNVUAaD59cqgcAAAoaEBdcqkcAABVBWxldmVscqocAABLAWhGXXKrHAAAaERdcqwcAABVBnNvdXJjZXKtHAAAaDpoQl1yrhwAAGhIXXKvHAAAVQRsaW5lcrAcAABLIlUEdHlwZXKxHAAAakwcAAB1aDBdcrIcAABodSmBcrMcAAB9crQcAAAoaDVVAGg+fXK1HAAAKGhAXXK2HAAAaEJdcrccAABoRF1yuBwAAGhGXXK5HAAAaEhdcrocAAB1aDZqphwAAGgwXXK7HAAAaFlYLQAAAEh5cGVybGluayB0YXJnZXQgImluZGV4LTQiIGlzIG5vdCByZWZlcmVuY2VkLnK8HAAAhYFyvRwAAH1yvhwAAChoNVUAaDZqsxwAAHViYWg8aHl1YmFoPGpaHAAAdWJqPxwAACmBcr8cAAB9csAcAAAoaDVVAGg+fXLBHAAAKGhAXXLCHAAAVQVsZXZlbHLDHAAASwFoRl1yxBwAAGhEXXLFHAAAVQZzb3VyY2VyxhwAAGg6aEJdcsccAABoSF1yyBwAAFUEbGluZXLJHAAATWwCVQR0eXBlcsocAABqTBwAAHVoMF1yyxwAAGh1KYFyzBwAAH1yzRwAAChoNVUAaD59cs4cAAAoaEBdcs8cAABoQl1y0BwAAGhEXXLRHAAAaEZdctIcAABoSF1y0xwAAHVoNmq/HAAAaDBdctQcAABoWVgtAAAASHlwZXJsaW5rIHRhcmdldCAiaW5kZXgtNSIgaXMgbm90IHJlZmVyZW5jZWQuctUcAACFgXLWHAAAfXLXHAAAKGg1VQBoNmrMHAAAdWJhaDxoeXViYWg8alocAAB1Ymo/HAAAKYFy2BwAAH1y2RwAAChoNVUAaD59ctocAAAoaEBdctscAABVBWxldmVsctwcAABLAWhGXXLdHAAAaERdct4cAABVBnNvdXJjZXLfHAAAaDpoQl1y4BwAAGhIXXLhHAAAVQRsaW5lcuIcAABNbgJVBHR5cGVy4xwAAGpMHAAAdWgwXXLkHAAAaHUpgXLlHAAAfXLmHAAAKGg1VQBoPn1y5xwAAChoQF1y6BwAAGhCXXLpHAAAaERdcuocAABoRl1y6xwAAGhIXXLsHAAAdWg2atgcAABoMF1y7RwAAGhZWC0AAABIeXBlcmxpbmsgdGFyZ2V0ICJpbmRleC02IiBpcyBub3QgcmVmZXJlbmNlZC5y7hwAAIWBcu8cAAB9cvAcAAAoaDVVAGg2auUcAAB1YmFoPGh5dWJhaDxqWhwAAHViaj8cAAApgXLxHAAAfXLyHAAAKGg1VQBoPn1y8xwAAChoQF1y9BwAAFUFbGV2ZWxy9RwAAEsBaEZdcvYcAABoRF1y9xwAAFUGc291cmNlcvgcAABoOmhCXXL5HAAAaEhdcvocAABVBGxpbmVy+xwAAE3tAlUEdHlwZXL8HAAAakwcAAB1aDBdcv0cAABodSmBcv4cAAB9cv8cAAAoaDVVAGg+fXIAHQAAKGhAXXIBHQAAaEJdcgIdAABoRF1yAx0AAGhGXXIEHQAAaEhdcgUdAAB1aDZq8RwAAGgwXXIGHQAAaFlYOQAAAEh5cGVybGluayB0YXJnZXQgImRlbGV0aW5nLWF0dHJpYnV0ZXMiIGlzIG5vdCByZWZlcmVuY2VkLnIHHQAAhYFyCB0AAH1yCR0AAChoNVUAaDZq/hwAAHViYWg8aHl1YmFoPGpaHAAAdWJlVQhyZXBvcnRlcnIKHQAATlUIaWRfc3RhcnRyCx0AAEsEVQ1hdXRvZm9vdG5vdGVzcgwdAABdcg0dAABqyBsAAGFVDWNpdGF0aW9uX3JlZnNyDh0AAH1yDx0AAFUQaW5kaXJlY3RfdGFyZ2V0c3IQHQAAXXIRHQAAVQhzZXR0aW5nc3ISHQAAKGNkb2N1dGlscy5mcm9udGVuZApWYWx1ZXMKchMdAABvchQdAAB9chUdAAAoVRJmb290bm90ZV9iYWNrbGlua3NyFh0AAEsBVRNyZWNvcmRfZGVwZW5kZW5jaWVzchcdAABOVQxyZmNfYmFzZV91cmxyGB0AAFUbaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvchkdAABVCXRyYWNlYmFja3IaHQAAiFUOcGVwX3JlZmVyZW5jZXNyGx0AAE5VDnN0cmlwX2NvbW1lbnRzchwdAABOVQ10b2NfYmFja2xpbmtzch0dAABVBWVudHJ5ch4dAABVDWxhbmd1YWdlX2NvZGVyHx0AAFUCZW5yIB0AAFUJZGF0ZXN0YW1wciEdAABOVQxyZXBvcnRfbGV2ZWxyIh0AAEsCVQxfZGVzdGluYXRpb25yIx0AAE5VCmhhbHRfbGV2ZWxyJB0AAEsFVQ1zdHJpcF9jbGFzc2VzciUdAABOaFFOVRxlcnJvcl9lbmNvZGluZ19lcnJvcl9oYW5kbGVyciYdAABVEGJhY2tzbGFzaHJlcGxhY2VyJx0AAFUFZGVidWdyKB0AAE5VEGVtYmVkX3N0eWxlc2hlZXRyKR0AAIlVHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVyciodAABVBnN0cmljdHIrHQAAVQ1zZWN0bnVtX3hmb3JtciwdAABLAVUPZHVtcF90cmFuc2Zvcm1zci0dAABOVQ1kb2NpbmZvX3hmb3Jtci4dAABLAVUOd2FybmluZ19zdHJlYW1yLx0AAE5VFXBlcF9maWxlX3VybF90ZW1wbGF0ZXIwHQAAVQhwZXAtJTA0ZHIxHQAAVRFleGl0X3N0YXR1c19sZXZlbHIyHQAASwVVBmNvbmZpZ3IzHQAATlUOc3RyaWN0X3Zpc2l0b3JyNB0AAE5VFWNsb2FrX2VtYWlsX2FkZHJlc3Nlc3I1HQAAiFUddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2VyNh0AAIlVA2VudnI3HQAATlUPZHVtcF9wc2V1ZG9feG1scjgdAABOVRBleHBvc2VfaW50ZXJuYWxzcjkdAABOVRJzZWN0c3VidGl0bGVfeGZvcm1yOh0AAIlVC3NvdXJjZV9saW5rcjsdAABOVQ5yZmNfcmVmZXJlbmNlc3I8HQAATlUPb3V0cHV0X2VuY29kaW5ncj0dAABVBXV0Zi04cj4dAABVCnNvdXJjZV91cmxyPx0AAE5VDmlucHV0X2VuY29kaW5nckAdAABVCXV0Zi04LXNpZ3JBHQAAVQ9fZGlzYWJsZV9jb25maWdyQh0AAE5VCWlkX3ByZWZpeHJDHQAAVQBVCXRhYl93aWR0aHJEHQAASwhVDmVycm9yX2VuY29kaW5nckUdAABVCW1hYy1yb21hbnJGHQAAVQdfc291cmNlckcdAABVGy9jb21waWxlL21vY2svZG9jcy9tb2NrLnR4dHJIHQAAVQ9nZXR0ZXh0X2NvbXBhY3RySR0AAIhVCWdlbmVyYXRvcnJKHQAATlUOZHVtcF9pbnRlcm5hbHNySx0AAE5VDHBlcF9iYXNlX3VybHJMHQAAVR9odHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvck0dAABVEHN5bnRheF9oaWdobGlnaHRyTh0AAFUFc2hvcnRyTx0AAFUcaW5wdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcnJQHQAAaisdAABVDmF1dG9faWRfcHJlZml4clEdAABVAmlkclIdAABVDmRvY3RpdGxlX3hmb3JtclMdAACJVRtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXNyVB0AAE5VDV9jb25maWdfZmlsZXNyVR0AAF1yVh0AAFUWZmlsZV9pbnNlcnRpb25fZW5hYmxlZHJXHQAASwFVC3Jhd19lbmFibGVkclgdAABLAVUNZHVtcF9zZXR0aW5nc3JZHQAATnViVRVzeW1ib2xfZm9vdG5vdGVfc3RhcnRyWh0AAEsAVQNpZHNyWx0AAH1yXB0AAChoLGrIGwAAaCpqHBoAAGgHapQUAABoHWopBgAAaAlqUQIAAGgKar0TAABoC2oREgAAaAxqWQwAAGgNapIJAABoDmqsCwAAaC9qHBoAAGqZFwAAaqUXAABoEGptDQAAaJ1olWonAgAAaioCAABqhBcAAGqHFwAAaBFqDw4AAGrQAQAAatUBAABq6AEAAGrrAQAAav0BAABqAAIAAGoSAgAAahUCAABoK2gzaBRqFw0AAGgVah8HAABoE2rjCAAAaBdqKxEAAGgYasEMAABoGWqIFgAAaBpq+gcAAGgSatgSAABoG2r4CgAAaC5qpRcAAGgIak0KAABoHmoFEAAAaC1qwhoAAGgfaqUGAAB1VRJzdWJzdGl0dXRpb25fbmFtZXNyXR0AAH1yXh0AAGg8aEtoPn1yXx0AAChoQF1yYB0AAGhGXXJhHQAAaERdcmIdAABVBnNvdXJjZXJjHQAAaDpoQl1yZB0AAGhIXXJlHQAAdVUJZm9vdG5vdGVzcmYdAABdcmcdAABVBnJlZmlkc3JoHQAAfXJpHQAAKGgqXXJqHQAAahIaAABhapkXAABdcmsdAABqnBcAAGFoLF1ybB0AAGiVYXV1Yi4=