From b65d9720c6f12bb478f9dc6c58d513df096da6cb Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 11 Aug 2026 10:30:24 -0400 Subject: [PATCH] chore(downsample): bump version to 2.0.1 --- packages/downsample/package.json | 2 +- .../itkwasm_downsample_emscripten/_version.py | 2 +- .../itkwasm_downsample_emscripten/js_package.py | 2 +- .../itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py | 2 +- .../python/itkwasm-downsample/itkwasm_downsample/_version.py | 2 +- packages/downsample/typescript/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/downsample/package.json b/packages/downsample/package.json index d56afa935..190ffb99f 100644 --- a/packages/downsample/package.json +++ b/packages/downsample/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/downsample-build", - "version": "2.0.0", + "version": "2.0.1", "private": true, "description": "Pipelines for downsampling images.", "type": "module", diff --git a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py index 8c0d5d5bb..159d48b87 100644 --- a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py +++ b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/_version.py @@ -1 +1 @@ -__version__ = "2.0.0" +__version__ = "2.0.1" diff --git a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py index 7a1eecf3b..6674407db 100644 --- a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py +++ b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIGJyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgR3I9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlicihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIExyPSIyLjAuMCIsZGU9THI7dmFyIE9yPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sUD1Pcjt2YXIgSnI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LG5BPUpyO2Z1bmN0aW9uIEhyKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBQLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgUC5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBQLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBQLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgUC5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgUC5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIFAuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgUC5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBuQS5GbG9hdDMyOnt0PW5ldyBGbG9hdDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBuQS5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIGo9SHI7dmFyIE1yPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPU1yO3ZhciBFdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxZcj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxtZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksaGU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLHZBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxsdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixQcj17Y2FuSGFuZGxlOkE9Pmx0KEEpJiZBW0V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiB1dChBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksRGUoQSl9fSxxcj17Y2FuSGFuZGxlOkE9Pmx0KEEpJiZ2QSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sY3Q9bmV3IE1hcChbWyJwcm94eSIsUHJdLFsidGhyb3ciLHFyXV0pO2Z1bmN0aW9uIFRyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB1dChBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIobyl7aWYoIW98fCFvLmRhdGEpcmV0dXJuO2lmKCFUcih0LG8ub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtvLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDppLHR5cGU6SSxwYXRoOmd9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LG8uZGF0YSksUT0oby5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChnQSksQjt0cnl7bGV0IHM9Zy5zbGljZSgwLC0xKS5yZWR1Y2UoKGwsQyk9PmxbQ10sQSksYT1nLnJlZHVjZSgobCxDKT0+bFtDXSxBKTtzd2l0Y2goSSl7Y2FzZSJHRVQiOkI9YTticmVhaztjYXNlIlNFVCI6c1tnLnNsaWNlKC0xKVswXV09Z0Eoby5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9YS5hcHBseShzLFEpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IGEoLi4uUSk7Qj1qcihsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6Q309bmV3IE1lc3NhZ2VDaGFubmVsO3V0KEEsQyksQj13ZShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbdkFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW3ZBXTowfSkpLnRoZW4ocz0+e2xldFthLGxdPXpBKHMpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHtpZDppfSksbCksST09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksZnQoZSksaGUgaW4gQSYmdHlwZW9mIEFbaGVdPT0iZnVuY3Rpb24iJiZBW2hlXSgpKX0pLmNhdGNoKHM9PntsZXRbYSxsXT16QSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW3ZBXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2lkOml9KSxsKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIHhyKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGZ0KEEpe3hyKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gRGUoQSxlKXtyZXR1cm4geWUoQSxbXSxlKX1mdW5jdGlvbiBqQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gcHQoQSl7cmV0dXJuIEJBKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2Z0KEEpfSl9dmFyIFpBPW5ldyBXZWFrTWFwLFZBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCBlPShaQS5nZXQoQSl8fDApLTE7WkEuc2V0KEEsZSksZT09PTAmJnB0KEEpfSk7ZnVuY3Rpb24gS3IoQSxlKXtsZXQgdD0oWkEuZ2V0KGUpfHwwKSsxO1pBLnNldChlLHQpLFZBJiZWQS5yZWdpc3RlcihBLGUsQSl9ZnVuY3Rpb24gV3IoQSl7VkEmJlZBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24geWUoQSxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgcj0hMSxvPW5ldyBQcm94eSh0LHtnZXQoaSxJKXtpZihqQShyKSxJPT09bWUpcmV0dXJuKCk9PntXcihvKSxwdChBKSxyPSEwfTtpZihJPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9Pm99O2xldCBnPUJBKEEse3R5cGU6IkdFVCIscGF0aDplLm1hcChRPT5RLnRvU3RyaW5nKCkpfSkudGhlbihnQSk7cmV0dXJuIGcudGhlbi5iaW5kKGcpfXJldHVybiB5ZShBLFsuLi5lLEldKX0sc2V0KGksSSxnKXtqQShyKTtsZXRbUSxCXT16QShnKTtyZXR1cm4gQkEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLEldLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOlF9LEIpLnRoZW4oZ0EpfSxhcHBseShpLEksZyl7akEocik7bGV0IFE9ZVtlLmxlbmd0aC0xXTtpZihRPT09WXIpcmV0dXJuIEJBKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oZ0EpO2lmKFE9PT0iYmluZCIpcmV0dXJuIHllKEEsZS5zbGljZSgwLC0xKSk7bGV0W0Isc109UXQoZyk7cmV0dXJuIEJBKEEse3R5cGU6IkFQUExZIixwYXRoOmUubWFwKGE9PmEudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkJ9LHMpLnRoZW4oZ0EpfSxjb25zdHJ1Y3QoaSxJKXtqQShyKTtsZXRbZyxRXT1RdChJKTtyZXR1cm4gQkEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Omd9LFEpLnRoZW4oZ0EpfX0pO3JldHVybiBLcihvLEEpLG99ZnVuY3Rpb24gX3IoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUXQoQSl7bGV0IGU9QS5tYXAoekEpO3JldHVybltlLm1hcCh0PT50WzBdKSxfcihlLm1hcCh0PT50WzFdKSldfXZhciBkdD1uZXcgV2Vha01hcDtmdW5jdGlvbiB3ZShBLGUpe3JldHVybiBkdC5zZXQoQSxlKSxBfWZ1bmN0aW9uIGpyKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tFdF06ITB9KX1mdW5jdGlvbiB6QShBKXtmb3IobGV0W2UsdF1vZiBjdClpZih0LmNhbkhhbmRsZShBKSl7bGV0W3Isb109dC5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOmUsdmFsdWU6cn0sb119cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LGR0LmdldChBKXx8W11dfWZ1bmN0aW9uIGdBKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGN0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gQkEoQSxlLHQpe3JldHVybiBuZXcgUHJvbWlzZShyPT57bGV0IG89dnIoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGkoSSl7IUkuZGF0YXx8IUkuZGF0YS5pZHx8SS5kYXRhLmlkIT09b3x8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSkscihJLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOm99LGUpLHQpfSl9ZnVuY3Rpb24gdnIoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIFVBKEEsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZSxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6WnJ9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOlFBfT1PYmplY3Qse2l0ZXJhdG9yOmtBLHRvU3RyaW5nVGFnOkR0fT1TeW1ib2wsJEE9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4oZSx0KT0+QS5jYWxsKGUsdCkpKE9iamVjdC5wcm90b3R5cGUpLE5BPShBLGUpPT57bGV0IHQ9QSxyPVtdO2Zvcig7dCE9bnVsbCYmdCE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihyLmluZGV4T2YodCkhPT0tMSlyZXR1cm4hMTtpZihyLnB1c2godCksJEEodCxlKSlyZXR1cm4hMDt0PVFBKHQpfXJldHVybiExfSxWcj0oQSxlKT0+QSE9bnVsbCYmTkEoQSxlKT9BW2VdOnZvaWQgMCxTZT0oQT0+ZT0+e2xldCB0PVpyLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxLPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5TZShlKT09PUEpLEFlPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTpzQX09QXJyYXksRUE9QWUoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGxBKEEpe3JldHVybiBBIT09bnVsbCYmIUVBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIUVBKEEuY29uc3RydWN0b3IpJiZxKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciB3dD1LKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHpyKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmd3QoQS5idWZmZXIpLGV9dmFyIFhyPUFlKCJzdHJpbmciKSxxPUFlKCJmdW5jdGlvbiIpLFJ0PUFlKCJudW1iZXIiKSxjQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLCRyPUE9PkE9PT0hMHx8QT09PSExLFhBPUE9PntpZighY0EoQSkpcmV0dXJuITE7bGV0IGU9UUEoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8UUEoZSk9PT1udWxsKSYmIU5BKEEsRHQpJiYhTkEoQSxrQSl9LEFvPUE9PntpZighY0EoQSl8fGxBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVvPUsoIkRhdGUiKSx0bz1LKCJGaWxlIikscm89QT0+ISEoQSYmdHlwZW9mIEEudXJpPCJ1Iiksb289QT0+QSYmdHlwZW9mIEEuZ2V0UGFydHM8InUiLGlvPUsoIkJsb2IiKSxJbz1LKCJGaWxlTGlzdCIpLG5vPUE9PmNBKEEpJiZxKEEucGlwZSk7ZnVuY3Rpb24gZ28oKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp7fX12YXIgeXQ9Z28oKSxtdD10eXBlb2YgeXQuRm9ybURhdGE8InUiP3l0LkZvcm1EYXRhOnZvaWQgMCxhbz1BPT57aWYoIUEpcmV0dXJuITE7aWYobXQmJkEgaW5zdGFuY2VvZiBtdClyZXR1cm4hMDtsZXQgZT1RQShBKTtpZighZXx8ZT09PU9iamVjdC5wcm90b3R5cGV8fCFxKEEuYXBwZW5kKSlyZXR1cm4hMTtsZXQgdD1TZShBKTtyZXR1cm4gdD09PSJmb3JtZGF0YSJ8fHQ9PT0ib2JqZWN0IiYmcShBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIn0sc289SygiVVJMU2VhcmNoUGFyYW1zIiksW0NvLEJvLFFvLEVvXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChLKSxsbz1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gYkEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixvO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxzQShBKSlmb3Iocj0wLG89QS5sZW5ndGg7cjxvO3IrKyllLmNhbGwobnVsbCxBW3JdLHIsQSk7ZWxzZXtpZihsQShBKSlyZXR1cm47bGV0IGk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxJPWkubGVuZ3RoLGc7Zm9yKHI9MDtyPEk7cisrKWc9aVtyXSxlLmNhbGwobnVsbCxBW2ddLGcsQSl9fWZ1bmN0aW9uIFN0KEEsZSl7aWYobEEoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxvO2Zvcig7ci0tID4wOylpZihvPXRbcl0sZT09PW8udG9Mb3dlckNhc2UoKSlyZXR1cm4gbztyZXR1cm4gbnVsbH12YXIgYUE9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxGdD1BPT4hRUEoQSkmJkEhPT1hQTtmdW5jdGlvbiBSZSguLi5BKXtsZXR7Y2FzZWxlc3M6ZSxza2lwVW5kZWZpbmVkOnR9PUZ0KHRoaXMpJiZ0aGlzfHx7fSxyPXt9LG89KGksSSk9PntpZihJPT09Il9fcHJvdG9fXyJ8fEk9PT0iY29uc3RydWN0b3IifHxJPT09InByb3RvdHlwZSIpcmV0dXJuO2xldCBnPWUmJnR5cGVvZiBJPT0ic3RyaW5nIiYmU3QocixJKXx8SSxRPSRBKHIsZyk/cltnXTp2b2lkIDA7WEEoUSkmJlhBKGkpP3JbZ109UmUoUSxpKTpYQShpKT9yW2ddPVJlKHt9LGkpOnNBKGkpP3JbZ109aS5zbGljZSgpOighdHx8IUVBKGkpKSYmKHJbZ109aSl9O2ZvcihsZXQgaT0wLEk9QS5sZW5ndGg7aTxJO2krKyl7bGV0IGc9QVtpXTtpZighZ3x8bEEoZyl8fChiQShnLG8pLHR5cGVvZiBnIT0ib2JqZWN0Inx8c0EoZykpKWNvbnRpbnVlO2xldCBRPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZyk7Zm9yKGxldCBCPTA7QjxRLmxlbmd0aDtCKyspe2xldCBzPVFbQl07Rm8uY2FsbChnLHMpJiZvKGdbc10scyl9fXJldHVybiByfXZhciBjbz0oQSxlLHQse2FsbE93bktleXM6cn09e30pPT4oYkEoZSwobyxpKT0+e3QmJnEobyk/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsaSx7X19wcm90b19fOm51bGwsdmFsdWU6VUEobyx0KSx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGkse19fcHJvdG9fXzpudWxsLHZhbHVlOm8sd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0se2FsbE93bktleXM6cn0pLEEpLHVvPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZm89KEEsZSx0LHIpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQS5wcm90b3R5cGUsImNvbnN0cnVjdG9yIix7X19wcm90b19fOm51bGwsdmFsdWU6QSx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse19fcHJvdG9fXzpudWxsLHZhbHVlOmUucHJvdG90eXBlfSksdCYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSx0KX0scG89KEEsZSx0LHIpPT57bGV0IG8saSxJLGc9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGk9by5sZW5ndGg7aS0tID4wOylJPW9baV0sKCFyfHxyKEksQSxlKSkmJiFnW0ldJiYoZVtJXT1BW0ldLGdbSV09ITApO0E9dCE9PSExJiZRQShBKX13aGlsZShBJiYoIXR8fHQoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0saG89KEEsZSx0KT0+e0E9U3RyaW5nKEEpLCh0PT09dm9pZCAwfHx0PkEubGVuZ3RoKSYmKHQ9QS5sZW5ndGgpLHQtPWUubGVuZ3RoO2xldCByPUEuaW5kZXhPZihlLHQpO3JldHVybiByIT09LTEmJnI9PT10fSx5bz1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoc0EoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoIVJ0KGUpKXJldHVybiBudWxsO2xldCB0PW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspdFtlXT1BW2VdO3JldHVybiB0fSxtbz0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmUUEoVWludDhBcnJheSkpLERvPShBLGUpPT57bGV0IHI9KEEmJkFba0FdKS5jYWxsKEEpLG87Zm9yKDsobz1yLm5leHQoKSkmJiFvLmRvbmU7KXtsZXQgaT1vLnZhbHVlO2UuY2FsbChBLGlbMF0saVsxXSl9fSx3bz0oQSxlKT0+e2xldCB0LHI9W107Zm9yKDsodD1BLmV4ZWMoZSkpIT09bnVsbDspci5wdXNoKHQpO3JldHVybiByfSxSbz1LKCJIVE1MRm9ybUVsZW1lbnQiKSxTbz1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXHNdKFthLXpcZF0pKFx3KikvZyxmdW5jdGlvbih0LHIsbyl7cmV0dXJuIHIudG9VcHBlckNhc2UoKStvfSkse3Byb3BlcnR5SXNFbnVtZXJhYmxlOkZvfT1PYmplY3QucHJvdG90eXBlLFVvPUsoIlJlZ0V4cCIpLFV0PShBLGUpPT57bGV0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSkscj17fTtiQSh0LChvLGkpPT57bGV0IEk7KEk9ZShvLGksQSkpIT09ITEmJihyW2ldPUl8fG8pfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxyKX0sTm89QT0+e1V0KEEsKGUsdCk9PntpZihxKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluY2x1ZGVzKHQpKXJldHVybiExO2xldCByPUFbdF07aWYocShyKSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK3QrIiciKX0pfX0pfSxrbz0oQSxlKT0+e2xldCB0PXt9LHI9bz0+e28uZm9yRWFjaChpPT57dFtpXT0hMH0pfTtyZXR1cm4gc0EoQSk/cihBKTpyKFN0cmluZyhBKS5zcGxpdChlKSksdH0sYm89KCk9Pnt9LEdvPShBLGUpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTplO2Z1bmN0aW9uIExvKEEpe3JldHVybiEhKEEmJnEoQS5hcHBlbmQpJiZBW0R0XT09PSJGb3JtRGF0YSImJkFba0FdKX12YXIgT289QT0+e2xldCBlPW5ldyBXZWFrU2V0LHQ9cj0+e2lmKGNBKHIpKXtpZihlLmhhcyhyKSlyZXR1cm47aWYobEEocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlLmFkZChyKTtsZXQgbz1zQShyKT9bXTp7fTtyZXR1cm4gYkEociwoaSxJKT0+e2xldCBnPXQoaSk7IUVBKGcpJiYob1tJXT1nKX0pLGUuZGVsZXRlKHIpLG99fXJldHVybiByfTtyZXR1cm4gdChBKX0sSm89SygiQXN5bmNGdW5jdGlvbiIpLEhvPUE9PkEmJihjQShBKXx8cShBKSkmJnEoQS50aGVuKSYmcShBLmNhdGNoKSxOdD0oKEEsZSk9PkE/c2V0SW1tZWRpYXRlOmU/KCh0LHIpPT4oYUEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6byxkYXRhOml9KT0+e289PT1hQSYmaT09PXQmJnIubGVuZ3RoJiZyLnNoaWZ0KCkoKX0sITEpLG89PntyLnB1c2gobyksYUEucG9zdE1lc3NhZ2UodCwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6dD0+c2V0VGltZW91dCh0KSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixxKGFBLnBvc3RNZXNzYWdlKSksTW89dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKGFBKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fE50LGt0PUE9PkEhPW51bGwmJnEoQVtrQV0pLFlvPUE9PkEhPW51bGwmJk5BKEEsa0EpJiZrdChBKSxuPXtpc0FycmF5OnNBLGlzQXJyYXlCdWZmZXI6d3QsaXNCdWZmZXI6bEEsaXNGb3JtRGF0YTphbyxpc0FycmF5QnVmZmVyVmlldzp6cixpc1N0cmluZzpYcixpc051bWJlcjpSdCxpc0Jvb2xlYW46JHIsaXNPYmplY3Q6Y0EsaXNQbGFpbk9iamVjdDpYQSxpc0VtcHR5T2JqZWN0OkFvLGlzUmVhZGFibGVTdHJlYW06Q28saXNSZXF1ZXN0OkJvLGlzUmVzcG9uc2U6UW8saXNIZWFkZXJzOkVvLGlzVW5kZWZpbmVkOkVBLGlzRGF0ZTplbyxpc0ZpbGU6dG8saXNSZWFjdE5hdGl2ZUJsb2I6cm8saXNSZWFjdE5hdGl2ZTpvbyxpc0Jsb2I6aW8saXNSZWdFeHA6VW8saXNGdW5jdGlvbjpxLGlzU3RyZWFtOm5vLGlzVVJMU2VhcmNoUGFyYW1zOnNvLGlzVHlwZWRBcnJheTptbyxpc0ZpbGVMaXN0OklvLGZvckVhY2g6YkEsbWVyZ2U6UmUsZXh0ZW5kOmNvLHRyaW06bG8sc3RyaXBCT006dW8saW5oZXJpdHM6Zm8sdG9GbGF0T2JqZWN0OnBvLGtpbmRPZjpTZSxraW5kT2ZUZXN0OkssZW5kc1dpdGg6aG8sdG9BcnJheTp5byxmb3JFYWNoRW50cnk6RG8sbWF0Y2hBbGw6d28saXNIVE1MRm9ybTpSbyxoYXNPd25Qcm9wZXJ0eTokQSxoYXNPd25Qcm9wOiRBLGhhc093bkluUHJvdG90eXBlQ2hhaW46TkEsZ2V0U2FmZVByb3A6VnIscmVkdWNlRGVzY3JpcHRvcnM6VXQsZnJlZXplTWV0aG9kczpObyx0b09iamVjdFNldDprbyx0b0NhbWVsQ2FzZTpTbyxub29wOmJvLHRvRmluaXRlTnVtYmVyOkdvLGZpbmRLZXk6U3QsZ2xvYmFsOmFBLGlzQ29udGV4dERlZmluZWQ6RnQsaXNTcGVjQ29tcGxpYW50Rm9ybTpMbyx0b0pTT05PYmplY3Q6T28saXNBc3luY0ZuOkpvLGlzVGhlbmFibGU6SG8sc2V0SW1tZWRpYXRlOk50LGFzYXA6TW8saXNJdGVyYWJsZTprdCxpc1NhZmVJdGVyYWJsZTpZb307dmFyIFBvPW4udG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksYnQ9QT0+e2xldCBlPXt9LHQscixvO3JldHVybiBBJiZBLnNwbGl0KGAKYCkuZm9yRWFjaChmdW5jdGlvbihJKXtvPUkuaW5kZXhPZigiOiIpLHQ9SS5zdWJzdHJpbmcoMCxvKS50cmltKCkudG9Mb3dlckNhc2UoKSxyPUkuc3Vic3RyaW5nKG8rMSkudHJpbSgpLCEoIXR8fGVbdF0mJlBvW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2gocik6ZVt0XT1bcl06ZVt0XT1lW3RdP2VbdF0rIiwgIityOnIpfSksZX07ZnVuY3Rpb24gcW8oQSl7bGV0IGU9MCx0PUEubGVuZ3RoO2Zvcig7ZTx0Oyl7bGV0IHI9QS5jaGFyQ29kZUF0KGUpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7ZSs9MX1mb3IoO3Q+ZTspe2xldCByPUEuY2hhckNvZGVBdCh0LTEpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7dC09MX1yZXR1cm4gZT09PTAmJnQ9PT1BLmxlbmd0aD9BOkEuc2xpY2UoZSx0KX12YXIgVG89bmV3IFJlZ0V4cCgiW1xcdTAwMDAtXFx1MDAwOFxcdTAwMGEtXFx1MDAxZlxcdTAwN2ZdKyIsImciKSx4bz1uZXcgUmVnRXhwKCJbXlxcdTAwMDlcXHUwMDIwLVxcdTAwN2VcXHUwMDgwLVxcdTAwZmZdKyIsImciKTtmdW5jdGlvbiBGZShBLGUpe3JldHVybiBuLmlzQXJyYXkoQSk/QS5tYXAodD0+RmUodCxlKSk6cW8oU3RyaW5nKEEpLnJlcGxhY2UoZSwiIikpfXZhciBHdD1BPT5GZShBLFRvKSxLbz1BPT5GZShBLHhvKTtmdW5jdGlvbiBlZShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBuLmZvckVhY2goQS50b0pTT04oKSwodCxyKT0+e2Vbcl09S28odCl9KSxlfXZhciBMdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIEdBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gdGUoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOm4uaXNBcnJheShBKT9BLm1hcCh0ZSk6R3QoU3RyaW5nKEEpKX1mdW5jdGlvbiBXbyhBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgX289QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gVWUoQSxlLHQscixvKXtpZihuLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYobyYmKGU9dCksISFuLmlzU3RyaW5nKGUpKXtpZihuLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihuLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIGpvKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIHZvKEEsZSl7bGV0IHQ9bi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse19fcHJvdG9fXzpudWxsLHZhbHVlOmZ1bmN0aW9uKG8saSxJKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxvLGksSSl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHVBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IG89dGhpcztmdW5jdGlvbiBpKGcsUSxCKXtsZXQgcz1HQShRKTtpZighcylyZXR1cm47bGV0IGE9bi5maW5kS2V5KG8scyk7KCFhfHxvW2FdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJm9bYV0hPT0hMSkmJihvW2F8fFFdPXRlKGcpKX1sZXQgST0oZyxRKT0+bi5mb3JFYWNoKGcsKEIscyk9PmkoQixzLFEpKTtpZihuLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKUkoZSx0KTtlbHNlIGlmKG4uaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIV9vKGUpKUkoYnQoZSksdCk7ZWxzZSBpZihuLmlzT2JqZWN0KGUpJiZuLmlzU2FmZUl0ZXJhYmxlKGUpKXtsZXQgZz1PYmplY3QuY3JlYXRlKG51bGwpLFEsQjtmb3IobGV0IHMgb2YgZSl7aWYoIW4uaXNBcnJheShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO0I9c1swXSxuLmhhc093blByb3AoZyxCKT8oUT1nW0JdLGdbQl09bi5pc0FycmF5KFEpP1suLi5RLHNbMV1dOltRLHNbMV1dKTpnW0JdPXNbMV19SShnLHQpfWVsc2UgZSE9bnVsbCYmaSh0LGUscik7cmV0dXJuIHRoaXN9Z2V0KGUsdCl7aWYoZT1HQShlKSxlKXtsZXQgcj1uLmZpbmRLZXkodGhpcyxlKTtpZihyKXtsZXQgbz10aGlzW3JdO2lmKCF0KXJldHVybiBvO2lmKHQ9PT0hMClyZXR1cm4gV28obyk7aWYobi5pc0Z1bmN0aW9uKHQpKXJldHVybiB0LmNhbGwodGhpcyxvLHIpO2lmKG4uaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhvKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsdCl7aWYoZT1HQShlKSxlKXtsZXQgcj1uLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hIShyJiZ0aGlzW3JdIT09dm9pZCAwJiYoIXR8fFVlKHRoaXMsdGhpc1tyXSxyLHQpKSl9cmV0dXJuITF9ZGVsZXRlKGUsdCl7bGV0IHI9dGhpcyxvPSExO2Z1bmN0aW9uIGkoSSl7aWYoST1HQShJKSxJKXtsZXQgZz1uLmZpbmRLZXkocixJKTtnJiYoIXR8fFVlKHIscltnXSxnLHQpKSYmKGRlbGV0ZSByW2ddLG89ITApfX1yZXR1cm4gbi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLG99Y2xlYXIoZSl7bGV0IHQ9T2JqZWN0LmtleXModGhpcykscj10Lmxlbmd0aCxvPSExO2Zvcig7ci0tOyl7bGV0IGk9dFtyXTsoIWV8fFVlKHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLG89ITApfXJldHVybiBvfW5vcm1hbGl6ZShlKXtsZXQgdD10aGlzLHI9e307cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChvLGkpPT57bGV0IEk9bi5maW5kS2V5KHIsaSk7aWYoSSl7dFtJXT10ZShvKSxkZWxldGUgdFtpXTtyZXR1cm59bGV0IGc9ZT9qbyhpKTpTdHJpbmcoaSkudHJpbSgpO2chPT1pJiZkZWxldGUgdFtpXSx0W2ddPXRlKG8pLHJbZ109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gbi5mb3JFYWNoKHRoaXMsKHIsbyk9PntyIT1udWxsJiZyIT09ITEmJih0W29dPWUmJm4uaXNBcnJheShyKT9yLmpvaW4oIiwgIik6cil9KSx0fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLHRdKT0+ZSsiOiAiK3QpLmpvaW4oYApgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4udCl7bGV0IHI9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaChvPT5yLnNldChvKSkscn1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHI9KHRoaXNbTHRdPXRoaXNbTHRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMsbz10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBpKEkpe2xldCBnPUdBKEkpO3JbZ118fCh2byhvLEkpLHJbZ109ITApfXJldHVybiBuLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSksdGhpc319O3VBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtuLnJlZHVjZURlc2NyaXB0b3JzKHVBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQocil7dGhpc1t0XT1yfX19KTtuLmZyZWV6ZU1ldGhvZHModUEpO3ZhciBGPXVBO3ZhciBabz0iW1JFREFDVEVEICoqKipdIjtmdW5jdGlvbiBWbyhBKXtpZihuLmhhc093blByb3AoQSwidG9KU09OIikpcmV0dXJuITA7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKEEpO2Zvcig7ZSYmZSE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihuLmhhc093blByb3AoZSwidG9KU09OIikpcmV0dXJuITA7ZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9cmV0dXJuITF9ZnVuY3Rpb24gem8oQSxlKXtsZXQgdD1uZXcgU2V0KGUubWFwKGk9PlN0cmluZyhpKS50b0xvd2VyQ2FzZSgpKSkscj1bXSxvPWk9PntpZihpPT09bnVsbHx8dHlwZW9mIGkhPSJvYmplY3QifHxuLmlzQnVmZmVyKGkpKXJldHVybiBpO2lmKHIuaW5kZXhPZihpKSE9PS0xKXJldHVybjtpIGluc3RhbmNlb2YgRiYmKGk9aS50b0pTT04oKSksci5wdXNoKGkpO2xldCBJO2lmKG4uaXNBcnJheShpKSlJPVtdLGkuZm9yRWFjaCgoZyxRKT0+e2xldCBCPW8oZyk7bi5pc1VuZGVmaW5lZChCKXx8KElbUV09Qil9KTtlbHNle2lmKCFuLmlzUGxhaW5PYmplY3QoaSkmJlZvKGkpKXJldHVybiByLnBvcCgpLGk7ST1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXRbZyxRXW9mIE9iamVjdC5lbnRyaWVzKGkpKXtsZXQgQj10LmhhcyhnLnRvTG93ZXJDYXNlKCkpP1pvOm8oUSk7bi5pc1VuZGVmaW5lZChCKXx8KElbZ109Qil9fXJldHVybiByLnBvcCgpLEl9O3JldHVybiBvKEEpfXZhciBHPWNsYXNzIEEgZXh0ZW5kcyBFcnJvcntzdGF0aWMgZnJvbShlLHQscixvLGksSSl7bGV0IGc9bmV3IEEoZS5tZXNzYWdlLHR8fGUuY29kZSxyLG8saSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmUsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxnLm5hbWU9ZS5uYW1lLGUuc3RhdHVzIT1udWxsJiZnLnN0YXR1cz09bnVsbCYmKGcuc3RhdHVzPWUuc3RhdHVzKSxJJiZPYmplY3QuYXNzaWduKGcsSSksZ31jb25zdHJ1Y3RvcihlLHQscixvLGkpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7X19wcm90b19fOm51bGwsdmFsdWU6ZSxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdGhpcy5pc0F4aW9zRXJyb3I9ITAsdCYmKHRoaXMuY29kZT10KSxyJiYodGhpcy5jb25maWc9ciksbyYmKHRoaXMucmVxdWVzdD1vKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzKX10b0pTT04oKXtsZXQgZT10aGlzLmNvbmZpZyx0PWUmJm4uaGFzT3duUHJvcChlLCJyZWRhY3QiKT9lLnJlZGFjdDp2b2lkIDAscj1uLmlzQXJyYXkodCkmJnQubGVuZ3RoPjA/em8oZSx0KTpuLnRvSlNPTk9iamVjdChlKTtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6cixjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX07Ry5FUlJfQkFEX09QVElPTl9WQUxVRT0iRVJSX0JBRF9PUFRJT05fVkFMVUUiO0cuRVJSX0JBRF9PUFRJT049IkVSUl9CQURfT1BUSU9OIjtHLkVDT05OQUJPUlRFRD0iRUNPTk5BQk9SVEVEIjtHLkVUSU1FRE9VVD0iRVRJTUVET1VUIjtHLkVDT05OUkVGVVNFRD0iRUNPTk5SRUZVU0VEIjtHLkVSUl9ORVRXT1JLPSJFUlJfTkVUV09SSyI7Ry5FUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTPSJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIjtHLkVSUl9ERVBSRUNBVEVEPSJFUlJfREVQUkVDQVRFRCI7Ry5FUlJfQkFEX1JFU1BPTlNFPSJFUlJfQkFEX1JFU1BPTlNFIjtHLkVSUl9CQURfUkVRVUVTVD0iRVJSX0JBRF9SRVFVRVNUIjtHLkVSUl9DQU5DRUxFRD0iRVJSX0NBTkNFTEVEIjtHLkVSUl9OT1RfU1VQUE9SVD0iRVJSX05PVF9TVVBQT1JUIjtHLkVSUl9JTlZBTElEX1VSTD0iRVJSX0lOVkFMSURfVVJMIjtHLkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQ9IkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQiO3ZhciBmPUc7dmFyIHJlPW51bGw7dmFyIGJlPTEwMDtmdW5jdGlvbiBrZShBKXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KEEpfHxuLmlzQXJyYXkoQSl9ZnVuY3Rpb24gT3QoQSl7cmV0dXJuIG4uZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gTmUoQSxlLHQpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihvLGkpe3JldHVybiBvPU90KG8pLCF0JiZpPyJbIitvKyJdIjpvfSkuam9pbih0PyIuIjoiIik6ZX1mdW5jdGlvbiBYbyhBKXtyZXR1cm4gbi5pc0FycmF5KEEpJiYhQS5zb21lKGtlKX12YXIgJG89bi50b0ZsYXRPYmplY3Qobix7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIEFpKEEsZSx0KXtpZighbi5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhyZXx8Rm9ybURhdGEpLHQ9bi50b0ZsYXRPYmplY3QodCx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGgseSl7cmV0dXJuIW4uaXNVbmRlZmluZWQoeVtoXSl9KTtsZXQgcj10Lm1ldGFUb2tlbnMsbz10LnZpc2l0b3J8fGMsaT10LmRvdHMsST10LmluZGV4ZXMsZz10LkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYixRPXQubWF4RGVwdGg9PT12b2lkIDA/YmU6dC5tYXhEZXB0aCxCPWcmJm4uaXNTcGVjQ29tcGxpYW50Rm9ybShlKSxzPVtdO2lmKCFuLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBhKEUpe2lmKEU9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKEUpKXJldHVybiBFLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oRSkpcmV0dXJuIEUudG9TdHJpbmcoKTtpZighQiYmbi5pc0Jsb2IoRSkpdGhyb3cgbmV3IGYoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7aWYobi5pc0FycmF5QnVmZmVyKEUpfHxuLmlzVHlwZWRBcnJheShFKSl7aWYoQiYmdHlwZW9mIGc9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBnKFtFXSk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKEUpO3Rocm93IG5ldyBmKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIsZi5FUlJfTk9UX1NVUFBPUlQpfXJldHVybiBFfWZ1bmN0aW9uIGwoRSl7aWYoRT5RKXRocm93IG5ldyBmKCJPYmplY3QgaXMgdG9vIGRlZXBseSBuZXN0ZWQgKCIrRSsiIGxldmVscykuIE1heCBkZXB0aDogIitRLGYuRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gQyhFLGgpe2lmKFE9PT0xLzApcmV0dXJuIEpTT04uc3RyaW5naWZ5KEUpO2xldCB5PVtdO3JldHVybiBKU09OLnN0cmluZ2lmeShFLGZ1bmN0aW9uKEosUyl7aWYoIW4uaXNPYmplY3QoUykpcmV0dXJuIFM7Zm9yKDt5Lmxlbmd0aCYmeVt5Lmxlbmd0aC0xXSE9PXRoaXM7KXkucG9wKCk7cmV0dXJuIHkucHVzaChTKSxsKGgreS5sZW5ndGgtMSksU30pfWZ1bmN0aW9uIGMoRSxoLHkpe2xldCBEPUU7aWYobi5pc1JlYWN0TmF0aXZlKGUpJiZuLmlzUmVhY3ROYXRpdmVCbG9iKEUpKXJldHVybiBlLmFwcGVuZChOZSh5LGgsaSksYShFKSksITE7aWYoRSYmIXkmJnR5cGVvZiBFPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChoLCJ7fSIpKWg9cj9oOmguc2xpY2UoMCwtMiksRT1DKEUsMSk7ZWxzZSBpZihuLmlzQXJyYXkoRSkmJlhvKEUpfHwobi5pc0ZpbGVMaXN0KEUpfHxuLmVuZHNXaXRoKGgsIltdIikpJiYoRD1uLnRvQXJyYXkoRSkpKXJldHVybiBoPU90KGgpLEQuZm9yRWFjaChmdW5jdGlvbihTLFgpeyEobi5pc1VuZGVmaW5lZChTKXx8Uz09PW51bGwpJiZlLmFwcGVuZChJPT09ITA/TmUoW2hdLFgsaSk6ST09PW51bGw/aDpoKyJbXSIsYShTKSl9KSwhMX1yZXR1cm4ga2UoRSk/ITA6KGUuYXBwZW5kKE5lKHksaCxpKSxhKEUpKSwhMSl9bGV0IHA9T2JqZWN0LmFzc2lnbigkbyx7ZGVmYXVsdFZpc2l0b3I6Yyxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTprZX0pO2Z1bmN0aW9uIHUoRSxoLHk9MCl7aWYoIW4uaXNVbmRlZmluZWQoRSkpe2lmKGwoeSkscy5pbmRleE9mKEUpIT09LTEpdGhyb3cgbmV3IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitoLmpvaW4oIi4iKSk7cy5wdXNoKEUpLG4uZm9yRWFjaChFLGZ1bmN0aW9uKEosUyl7KCEobi5pc1VuZGVmaW5lZChKKXx8Sj09PW51bGwpJiZvLmNhbGwoZSxKLG4uaXNTdHJpbmcoUyk/Uy50cmltKCk6UyxoLHApKT09PSEwJiZ1KEosaD9oLmNvbmNhdChTKTpbU10seSsxKX0pLHMucG9wKCl9fWlmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gdShBKSxlfXZhciByQT1BaTtmdW5jdGlvbiBKdChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjAvZyxmdW5jdGlvbihyKXtyZXR1cm4gZVtyXX0pfWZ1bmN0aW9uIEh0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmckEoQSx0aGlzLGUpfXZhciBNdD1IdC5wcm90b3R5cGU7TXQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O010LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/cj0+ZS5jYWxsKHRoaXMscixKdCk6SnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gdChvWzBdKSsiPSIrdChvWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIG9lPUh0O2Z1bmN0aW9uIGVpKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpfWZ1bmN0aW9uIExBKEEsZSx0KXtpZighZSlyZXR1cm4gQTtBPUF8fCIiO2xldCByPW4uaXNGdW5jdGlvbih0KT97c2VyaWFsaXplOnR9OnQsbz1uLmdldFNhZmVQcm9wKHIsImVuY29kZSIpfHxlaSxpPW4uZ2V0U2FmZVByb3Aociwic2VyaWFsaXplIiksSTtpZihpP0k9aShlLHIpOkk9bi5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IG9lKGUscikudG9TdHJpbmcobyksSSl7bGV0IGc9QS5pbmRleE9mKCIjIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK0l9cmV0dXJuIEF9dmFyIEdlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSx0LHIpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6cj9yLnN5bmNocm9ub3VzOiExLHJ1bldoZW46cj9yLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXtuLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihyKXtyIT09bnVsbCYmZShyKX0pfX0sTGU9R2U7dmFyIGZBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExLGxlZ2FjeUludGVyY2VwdG9yUmVxUmVzT3JkZXJpbmc6ITAsYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOiExLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6ITB9O3ZhciBZdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6b2U7dmFyIFB0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgcXQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgVHQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6WXQsRm9ybURhdGE6UHQsQmxvYjpxdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBIZT17fTtHcihIZSx7aGFzQnJvd3NlckVudjooKT0+SmUsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT50aSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PnJpLG5hdmlnYXRvcjooKT0+T2Usb3JpZ2luOigpPT5vaX0pO3ZhciBKZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixPZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsdGk9SmUmJighT2V8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoT2UucHJvZHVjdCk8MCkscmk9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG9pPUplJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBSPXsuLi5IZSwuLi5UdH07ZnVuY3Rpb24gTWUoQSxlKXtyZXR1cm4gckEoQSxuZXcgUi5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbih0LHIsbyxpKXtyZXR1cm4gUi5pc05vZGUmJm4uaXNCdWZmZXIodCk/KHRoaXMuYXBwZW5kKHIsdC50b1N0cmluZygiYmFzZTY0IikpLCExKTppLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4uZX0pfXZhciB4dD1iZTtmdW5jdGlvbiBLdChBKXtpZihBPnh0KXRocm93IG5ldyBmKCJGb3JtRGF0YSBmaWVsZCBpcyB0b28gZGVlcGx5IG5lc3RlZCAoIitBKyIgbGV2ZWxzKS4gTWF4IGRlcHRoOiAiK3h0LGYuRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gaWkoQSl7bGV0IGU9W10sdD0vXHcrfFxbKFx3KildL2cscjtmb3IoOyhyPXQuZXhlYyhBKSkhPT1udWxsOylLdChlLmxlbmd0aCksZS5wdXNoKHJbMF09PT0iW10iPyIiOnJbMV18fHJbMF0pO3JldHVybiBlfWZ1bmN0aW9uIElpKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixvPXQubGVuZ3RoLGk7Zm9yKHI9MDtyPG87cisrKWk9dFtyXSxlW2ldPUFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gbmkoQSl7ZnVuY3Rpb24gZSh0LHIsbyxpKXtLdChpKTtsZXQgST10W2krK107aWYoST09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBnPU51bWJlci5pc0Zpbml0ZSgrSSksUT1pPj10Lmxlbmd0aDtyZXR1cm4gST0hSSYmbi5pc0FycmF5KG8pP28ubGVuZ3RoOkksUT8obi5oYXNPd25Qcm9wKG8sSSk/b1tJXT1uLmlzQXJyYXkob1tJXSk/b1tJXS5jb25jYXQocik6W29bSV0scl06b1tJXT1yLCFnKTooKCFuLmhhc093blByb3AobyxJKXx8IW4uaXNPYmplY3Qob1tJXSkpJiYob1tJXT1bXSksZSh0LHIsb1tJXSxpKSYmbi5pc0FycmF5KG9bSV0pJiYob1tJXT1JaShvW0ldKSksIWcpfWlmKG4uaXNGb3JtRGF0YShBKSYmbi5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCB0PXt9O3JldHVybiBuLmZvckVhY2hFbnRyeShBLChyLG8pPT57ZShpaShyKSxvLHQsMCl9KSx0fXJldHVybiBudWxsfXZhciBpZT1uaTt2YXIgcEE9KEEsZSk9PkEhPW51bGwmJm4uaGFzT3duUHJvcChBLGUpP0FbZV06dm9pZCAwO2Z1bmN0aW9uIGdpKEEsZSx0KXtpZihuLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksbi50cmltKEEpfWNhdGNoKHIpe2lmKHIubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgcn1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBZZT17dHJhbnNpdGlvbmFsOmZBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCByPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIsbz1yLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxpPW4uaXNPYmplY3QoZSk7aWYoaSYmbi5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLG4uaXNGb3JtRGF0YShlKSlyZXR1cm4gbz9KU09OLnN0cmluZ2lmeShpZShlKSk6ZTtpZihuLmlzQXJyYXlCdWZmZXIoZSl8fG4uaXNCdWZmZXIoZSl8fG4uaXNTdHJlYW0oZSl8fG4uaXNGaWxlKGUpfHxuLmlzQmxvYihlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKG4uaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKG4uaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBnO2lmKGkpe2xldCBRPXBBKHRoaXMsImZvcm1TZXJpYWxpemVyIik7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gTWUoZSxRKS50b1N0cmluZygpO2lmKChnPW4uaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgQj1wQSh0aGlzLCJlbnYiKSxzPUImJkIuRm9ybURhdGE7cmV0dXJuIHJBKGc/eyJmaWxlc1tdIjplfTplLHMmJm5ldyBzLFEpfX1yZXR1cm4gaXx8bz8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLGdpKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXBBKHRoaXMsInRyYW5zaXRpb25hbCIpfHxZZS50cmFuc2l0aW9uYWwscj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89cEEodGhpcywicmVzcG9uc2VUeXBlIiksaT1vPT09Impzb24iO2lmKG4uaXNSZXNwb25zZShlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJm4uaXNTdHJpbmcoZSkmJihyJiYhb3x8aSkpe2xldCBnPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJmk7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUscEEodGhpcywicGFyc2VSZXZpdmVyIikpfWNhdGNoKFEpe2lmKGcpdGhyb3cgUS5uYW1lPT09IlN5bnRheEVycm9yIj9mLmZyb20oUSxmLkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHBBKHRoaXMsInJlc3BvbnNlIikpOlF9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpSLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpSLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwicXVlcnkiXSxBPT57WWUuaGVhZGVyc1tBXT17fX0pO3ZhciBkQT1ZZTtmdW5jdGlvbiBPQShBLGUpe2xldCB0PXRoaXN8fGRBLHI9ZXx8dCxvPUYuZnJvbShyLmhlYWRlcnMpLGk9ci5kYXRhO3JldHVybiBuLmZvckVhY2goQSxmdW5jdGlvbihnKXtpPWcuY2FsbCh0LGksby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gSkEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX12YXIgUGU9Y2xhc3MgZXh0ZW5kcyBme2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlPz8iY2FuY2VsZWQiLGYuRVJSX0NBTkNFTEVELHQsciksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIix0aGlzLl9fQ0FOQ0VMX189ITB9fSx2PVBlO2Z1bmN0aW9uIEhBKEEsZSx0KXtsZXQgcj10LmNvbmZpZy52YWxpZGF0ZVN0YXR1czshdC5zdGF0dXN8fCFyfHxyKHQuc3RhdHVzKT9BKHQpOmUobmV3IGYoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIit0LnN0YXR1cyx0LnN0YXR1cz49NDAwJiZ0LnN0YXR1czw1MDA/Zi5FUlJfQkFEX1JFUVVFU1Q6Zi5FUlJfQkFEX1JFU1BPTlNFLHQuY29uZmlnLHQucmVxdWVzdCx0KSl9ZnVuY3Rpb24gcWUoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KTooPzpcL1wvKT8vLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIGFpKEEsZSl7QT1BfHwxMDtsZXQgdD1uZXcgQXJyYXkoQSkscj1uZXcgQXJyYXkoQSksbz0wLGk9MCxJO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oUSl7bGV0IEI9RGF0ZS5ub3coKSxzPXJbaV07SXx8KEk9QiksdFtvXT1RLHJbb109QjtsZXQgYT1pLGw9MDtmb3IoO2EhPT1vOylsKz10W2ErK10sYT1hJUE7aWYobz0obysxKSVBLG89PT1pJiYoaT0oaSsxKSVBKSxCLUk8ZSlyZXR1cm47bGV0IEM9cyYmQi1zO3JldHVybiBDP01hdGgucm91bmQobCoxZTMvQyk6dm9pZCAwfX12YXIgV3Q9YWk7ZnVuY3Rpb24gc2koQSxlKXtsZXQgdD0wLHI9MWUzL2UsbyxpLEk9KEIscz1EYXRlLm5vdygpKT0+e3Q9cyxvPW51bGwsaSYmKGNsZWFyVGltZW91dChpKSxpPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLGE9cy10O2E+PXI/SShCLHMpOihvPUIsaXx8KGk9c2V0VGltZW91dCgoKT0+e2k9bnVsbCxJKG8pfSxyLWEpKSl9LCgpPT5vJiZJKG8pXX12YXIgX3Q9c2k7dmFyIGhBPShBLGUsdD0zKT0+e2xldCByPTAsbz1XdCg1MCwyNTApO3JldHVybiBfdChpPT57aWYoIWl8fHR5cGVvZiBpLmxvYWRlZCE9Im51bWJlciIpcmV0dXJuO2xldCBJPWkubG9hZGVkLGc9aS5sZW5ndGhDb21wdXRhYmxlP2kudG90YWw6dm9pZCAwLFE9ZyE9bnVsbD9NYXRoLm1pbihJLGcpOkksQj1NYXRoLm1heCgwLFEtcikscz1vKEIpO3I9TWF0aC5tYXgocixRKTtsZXQgYT17bG9hZGVkOlEsdG90YWw6Zyxwcm9ncmVzczpnP1EvZzp2b2lkIDAsYnl0ZXM6QixyYXRlOnN8fHZvaWQgMCxlc3RpbWF0ZWQ6cyYmZz8oZy1RKS9zOnZvaWQgMCxldmVudDppLGxlbmd0aENvbXB1dGFibGU6ZyE9bnVsbCxbZT8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShhKX0sdCl9LFRlPShBLGUpPT57bGV0IHQ9QSE9bnVsbDtyZXR1cm5bcj0+ZVswXSh7bGVuZ3RoQ29tcHV0YWJsZTp0LHRvdGFsOkEsbG9hZGVkOnJ9KSxlWzFdXX0seGU9QT0+KC4uLmUpPT5uLmFzYXAoKCk9PkEoLi4uZSkpO3ZhciBqdD1SLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsZSk9PnQ9Pih0PW5ldyBVUkwodCxSLm9yaWdpbiksQS5wcm90b2NvbD09PXQucHJvdG9jb2wmJkEuaG9zdD09PXQuaG9zdCYmKGV8fEEucG9ydD09PXQucG9ydCkpKShuZXcgVVJMKFIub3JpZ2luKSxSLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChSLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIHZ0PVIuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLGUsdCxyLG8saSxJKXtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybjtsZXQgZz1bYCR7QX09JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YF07bi5pc051bWJlcih0KSYmZy5wdXNoKGBleHBpcmVzPSR7bmV3IERhdGUodCkudG9VVENTdHJpbmcoKX1gKSxuLmlzU3RyaW5nKHIpJiZnLnB1c2goYHBhdGg9JHtyfWApLG4uaXNTdHJpbmcobykmJmcucHVzaChgZG9tYWluPSR7b31gKSxpPT09ITAmJmcucHVzaCgic2VjdXJlIiksbi5pc1N0cmluZyhJKSYmZy5wdXNoKGBTYW1lU2l0ZT0ke0l9YCksZG9jdW1lbnQuY29va2llPWcuam9pbigiOyAiKX0scmVhZChBKXtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybiBudWxsO2xldCBlPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtsZXQgcj1lW3RdLnJlcGxhY2UoL15ccysvLCIiKSxvPXIuaW5kZXhPZigiPSIpO2lmKG8hPT0tMSYmci5zbGljZSgwLG8pPT09QSl0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyLnNsaWNlKG8rMSkpfWNhdGNoe3JldHVybiByLnNsaWNlKG8rMSl9fXJldHVybiBudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUsIi8iKX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBLZShBKXtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciPyExOi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoQSl9ZnVuY3Rpb24gV2UoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIitlLnJlcGxhY2UoL15cLysvLCIiKTpBfXZhciBDaT0vXmh0dHBzPzooPyFcL1wvKS9pLEJpPS9bXHRcblxyXS9nO2Z1bmN0aW9uIFFpKEEpe2xldCBlPTA7Zm9yKDtlPEEubGVuZ3RoJiZBLmNoYXJDb2RlQXQoZSk8PTMyOyllKys7cmV0dXJuIEEuc2xpY2UoZSl9ZnVuY3Rpb24gRWkoQSl7cmV0dXJuIFFpKEEpLnJlcGxhY2UoQmksIiIpfWZ1bmN0aW9uIFp0KEEsZSl7aWYodHlwZW9mIEE9PSJzdHJpbmciJiZDaS50ZXN0KEVpKEEpKSl0aHJvdyBuZXcgZignSW52YWxpZCBVUkw6IG1pc3NpbmcgIi8vIiBhZnRlciBwcm90b2NvbCcsZi5FUlJfSU5WQUxJRF9VUkwsZSl9ZnVuY3Rpb24gTUEoQSxlLHQscil7WnQoZSxyKTtsZXQgbz0hS2UoZSk7cmV0dXJuIEEmJihvfHx0PT09ITEpPyhadChBLHIpLFdlKEEsZSkpOmV9dmFyIFZ0PUE9PkEgaW5zdGFuY2VvZiBGP3suLi5BfTpBO2Z1bmN0aW9uIFcoQSxlKXtBPUF8fHt9LGU9ZXx8e307bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaGFzT3duUHJvcGVydHkiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7ZnVuY3Rpb24gcihzLGEsbCxDKXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KHMpJiZuLmlzUGxhaW5PYmplY3QoYSk/bi5tZXJnZS5jYWxsKHtjYXNlbGVzczpDfSxzLGEpOm4uaXNQbGFpbk9iamVjdChhKT9uLm1lcmdlKHt9LGEpOm4uaXNBcnJheShhKT9hLnNsaWNlKCk6YX1mdW5jdGlvbiBvKHMsYSxsLEMpe2lmKG4uaXNVbmRlZmluZWQoYSkpe2lmKCFuLmlzVW5kZWZpbmVkKHMpKXJldHVybiByKHZvaWQgMCxzLGwsQyl9ZWxzZSByZXR1cm4gcihzLGEsbCxDKX1mdW5jdGlvbiBpKHMsYSl7aWYoIW4uaXNVbmRlZmluZWQoYSkpcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIEkocyxhKXtpZihuLmlzVW5kZWZpbmVkKGEpKXtpZighbi5pc1VuZGVmaW5lZChzKSlyZXR1cm4gcih2b2lkIDAscyl9ZWxzZSByZXR1cm4gcih2b2lkIDAsYSl9ZnVuY3Rpb24gZyhzKXtsZXQgYT1uLmhhc093blByb3AoZSwidHJhbnNpdGlvbmFsIik/ZS50cmFuc2l0aW9uYWw6dm9pZCAwO2lmKCFuLmlzVW5kZWZpbmVkKGEpKWlmKG4uaXNQbGFpbk9iamVjdChhKSl7aWYobi5oYXNPd25Qcm9wKGEscykpcmV0dXJuIGFbc119ZWxzZSByZXR1cm47bGV0IGw9bi5oYXNPd25Qcm9wKEEsInRyYW5zaXRpb25hbCIpP0EudHJhbnNpdGlvbmFsOnZvaWQgMDtpZihuLmlzUGxhaW5PYmplY3QobCkmJm4uaGFzT3duUHJvcChsLHMpKXJldHVybiBsW3NdfWZ1bmN0aW9uIFEocyxhLGwpe2lmKG4uaGFzT3duUHJvcChlLGwpKXJldHVybiByKHMsYSk7aWYobi5oYXNPd25Qcm9wKEEsbCkpcmV0dXJuIHIodm9pZCAwLHMpfWxldCBCPXt1cmw6aSxtZXRob2Q6aSxkYXRhOmksYmFzZVVSTDpJLHRyYW5zZm9ybVJlcXVlc3Q6SSx0cmFuc2Zvcm1SZXNwb25zZTpJLHBhcmFtc1NlcmlhbGl6ZXI6SSx0aW1lb3V0OkksdGltZW91dE1lc3NhZ2U6SSx3aXRoQ3JlZGVudGlhbHM6SSx3aXRoWFNSRlRva2VuOkksYWRhcHRlcjpJLHJlc3BvbnNlVHlwZTpJLHhzcmZDb29raWVOYW1lOkkseHNyZkhlYWRlck5hbWU6SSxvblVwbG9hZFByb2dyZXNzOkksb25Eb3dubG9hZFByb2dyZXNzOkksZGVjb21wcmVzczpJLG1heENvbnRlbnRMZW5ndGg6SSxtYXhCb2R5TGVuZ3RoOkksYmVmb3JlUmVkaXJlY3Q6SSx0cmFuc3BvcnQ6SSxodHRwQWdlbnQ6SSxodHRwc0FnZW50OkksY2FuY2VsVG9rZW46SSxzb2NrZXRQYXRoOkksYWxsb3dlZFNvY2tldFBhdGhzOkkscmVzcG9uc2VFbmNvZGluZzpJLHZhbGlkYXRlU3RhdHVzOlEsaGVhZGVyczoocyxhLGwpPT5vKFZ0KHMpLFZ0KGEpLGwsITApfTtyZXR1cm4gbi5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLmV9KSxmdW5jdGlvbihhKXtpZihhPT09Il9fcHJvdG9fXyJ8fGE9PT0iY29uc3RydWN0b3IifHxhPT09InByb3RvdHlwZSIpcmV0dXJuO2xldCBsPW4uaGFzT3duUHJvcChCLGEpP0JbYV06byxDPW4uaGFzT3duUHJvcChBLGEpP0FbYV06dm9pZCAwLGM9bi5oYXNPd25Qcm9wKGUsYSk/ZVthXTp2b2lkIDAscD1sKEMsYyxhKTtuLmlzVW5kZWZpbmVkKHApJiZsIT09UXx8KHRbYV09cCl9KSxuLmhhc093blByb3AoZSwidmFsaWRhdGVTdGF0dXMiKSYmbi5pc1VuZGVmaW5lZChlLnZhbGlkYXRlU3RhdHVzKSYmZygidmFsaWRhdGVTdGF0dXNVbmRlZmluZWRSZXNvbHZlcyIpPT09ITEmJihuLmhhc093blByb3AoQSwidmFsaWRhdGVTdGF0dXMiKT90LnZhbGlkYXRlU3RhdHVzPXIodm9pZCAwLEEudmFsaWRhdGVTdGF0dXMpOmRlbGV0ZSB0LnZhbGlkYXRlU3RhdHVzKSx0fXZhciBsaT1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07ZnVuY3Rpb24gY2koQSxlLHQpe2lmKHQhPT0iY29udGVudC1vbmx5Iil7QS5zZXQoZSk7cmV0dXJufU9iamVjdC5lbnRyaWVzKGV8fHt9KS5mb3JFYWNoKChbcixvXSk9PntsaS5pbmNsdWRlcyhyLnRvTG93ZXJDYXNlKCkpJiZBLnNldChyLG8pfSl9dmFyIHVpPUE9PmVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9naSwoZSx0KT0+U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LDE2KSkpO2Z1bmN0aW9uIGZpKEEpe2xldCBlPVcoe30sQSksdD1sPT5uLmhhc093blByb3AoZSxsKT9lW2xdOnZvaWQgMCxyPXQoImRhdGEiKSxvPXQoIndpdGhYU1JGVG9rZW4iKSxpPXQoInhzcmZIZWFkZXJOYW1lIiksST10KCJ4c3JmQ29va2llTmFtZSIpLGc9dCgiaGVhZGVycyIpLFE9dCgiYXV0aCIpLEI9dCgiYmFzZVVSTCIpLHM9dCgiYWxsb3dBYnNvbHV0ZVVybHMiKSxhPXQoInVybCIpO2lmKGUuaGVhZGVycz1nPUYuZnJvbShnKSxlLnVybD1MQShNQShCLGEscyxlKSx0KCJwYXJhbXMiKSx0KCJwYXJhbXNTZXJpYWxpemVyIikpLFEpe2xldCBsPW4uZ2V0U2FmZVByb3AoUSwidXNlcm5hbWUiKXx8IiIsQz1uLmdldFNhZmVQcm9wKFEsInBhc3N3b3JkIil8fCIiO3RyeXtnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYShsKyI6IisoQz91aShDKToiIikpKX1jYXRjaChjKXt0aHJvdyBmLmZyb20oYyxmLkVSUl9CQURfT1BUSU9OX1ZBTFVFLEEpfX1pZihuLmlzRm9ybURhdGEocikmJihSLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8Ui5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnZ8fG4uaXNSZWFjdE5hdGl2ZShyKT9nLnNldENvbnRlbnRUeXBlKHZvaWQgMCk6bi5pc0Z1bmN0aW9uKHIuZ2V0SGVhZGVycykmJmNpKGcsci5nZXRIZWFkZXJzKCksdCgiZm9ybURhdGFIZWFkZXJQb2xpY3kiKSkpLFIuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYobi5pc0Z1bmN0aW9uKG8pJiYobz1vKGUpKSxvPT09ITB8fG89PW51bGwmJmp0KGUudXJsKSkpe2xldCBDPWkmJkkmJnZ0LnJlYWQoSSk7QyYmZy5zZXQoaSxDKX1yZXR1cm4gZX12YXIgSWU9Zmk7dmFyIHBpPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsenQ9cGkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBvPUllKEEpLGk9by5kYXRhLEk9Ri5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6USxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxzLGEsbCxDLGM7ZnVuY3Rpb24gcCgpe0MmJkMoKSxjJiZjKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDt1Lm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksdS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiBFKCl7aWYoIXUpcmV0dXJuO2xldCB5PUYuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHUmJnUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEo9e2RhdGE6IWd8fGc9PT0idGV4dCJ8fGc9PT0ianNvbiI/dS5yZXNwb25zZVRleHQ6dS5yZXNwb25zZSxzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczp5LGNvbmZpZzpBLHJlcXVlc3Q6dX07SEEoZnVuY3Rpb24oWCl7dChYKSxwKCl9LGZ1bmN0aW9uKFgpe3IoWCkscCgpfSxKKSx1PW51bGx9Im9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPUU6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuc3RhcnRzV2l0aCgiZmlsZToiKSl8fHNldFRpbWVvdXQoRSl9LHUub25hYm9ydD1mdW5jdGlvbigpe3UmJihyKG5ldyBmKCJSZXF1ZXN0IGFib3J0ZWQiLGYuRUNPTk5BQk9SVEVELEEsdSkpLHAoKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oRCl7bGV0IEo9RCYmRC5tZXNzYWdlP0QubWVzc2FnZToiTmV0d29yayBFcnJvciIsUz1uZXcgZihKLGYuRVJSX05FVFdPUkssQSx1KTtTLmV2ZW50PUR8fG51bGwscihTKSxwKCksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe2xldCBEPW8udGltZW91dD8idGltZW91dCBvZiAiK28udGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixKPW8udHJhbnNpdGlvbmFsfHxmQTtvLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihEPW8udGltZW91dEVycm9yTWVzc2FnZSkscihuZXcgZihELEouY2xhcmlmeVRpbWVvdXRFcnJvcj9mLkVUSU1FRE9VVDpmLkVDT05OQUJPUlRFRCxBLHUpKSxwKCksdT1udWxsfSxpPT09dm9pZCAwJiZJLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIHUmJm4uZm9yRWFjaChlZShJKSxmdW5jdGlvbihELEope3Uuc2V0UmVxdWVzdEhlYWRlcihKLEQpfSksbi5pc1VuZGVmaW5lZChvLndpdGhDcmVkZW50aWFscyl8fCh1LndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzKSxnJiZnIT09Impzb24iJiYodS5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLEImJihbbCxjXT1oQShCLCEwKSx1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSksUSYmdS51cGxvYWQmJihbYSxDXT1oQShRKSx1LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYSksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChvLmNhbmNlbFRva2VufHxvLnNpZ25hbCkmJihzPXk9Pnt1JiYocigheXx8eS50eXBlP25ldyB2KG51bGwsQSx1KTp5KSx1LmFib3J0KCkscCgpLHU9bnVsbCl9LG8uY2FuY2VsVG9rZW4mJm8uY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLG8uc2lnbmFsJiYoby5zaWduYWwuYWJvcnRlZD9zKCk6by5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IGg9cWUoby51cmwpO2lmKGgmJiFSLnByb3RvY29scy5pbmNsdWRlcyhoKSl7cihuZXcgZigiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitoKyI6IixmLkVSUl9CQURfUkVRVUVTVCxBKSkscCgpO3JldHVybn11LnNlbmQoaXx8bnVsbCl9KX07dmFyIGRpPShBLGUpPT57aWYoQT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdLCFlJiYhQS5sZW5ndGgpcmV0dXJuO2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIscj0hMSxvPWZ1bmN0aW9uKFEpe2lmKCFyKXtyPSEwLEkoKTtsZXQgQj1RIGluc3RhbmNlb2YgRXJyb3I/UTp0aGlzLnJlYXNvbjt0LmFib3J0KEIgaW5zdGFuY2VvZiBmP0I6bmV3IHYoQiBpbnN0YW5jZW9mIEVycm9yP0IubWVzc2FnZTpCKSl9fSxpPWUmJnNldFRpbWVvdXQoKCk9PntpPW51bGwsbyhuZXcgZihgdGltZW91dCBvZiAke2V9bXMgZXhjZWVkZWRgLGYuRVRJTUVET1VUKSl9LGUpLEk9KCk9PntBJiYoaSYmY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCxBLmZvckVhY2goUT0+e1EudW5zdWJzY3JpYmU/US51bnN1YnNjcmliZShvKTpRLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChRPT5RLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvLHtvbmNlOiEwfSkpO2xldHtzaWduYWw6Z309dDtyZXR1cm4gZy51bnN1YnNjcmliZT0oKT0+bi5hc2FwKEkpLGd9LFh0PWRpO3ZhciBoaT1mdW5jdGlvbiooQSxlKXtsZXQgdD1BLmJ5dGVMZW5ndGg7aWYoIWV8fHQ8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHI9MCxvO2Zvcig7cjx0OylvPXIrZSx5aWVsZCBBLnNsaWNlKHIsbykscj1vfSx5aT1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IHQgb2YgbWkoQSkpeWllbGQqaGkodCxlKX0sbWk9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOnQsdmFsdWU6cn09YXdhaXQgZS5yZWFkKCk7aWYodClicmVhazt5aWVsZCByfX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxfZT0oQSxlLHQscik9PntsZXQgbz15aShBLGUpLGk9MCxJLGc9UT0+e0l8fChJPSEwLHImJnIoUSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKFEpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IG8ubmV4dCgpO2lmKEIpe2coKSxRLmNsb3NlKCk7cmV0dXJufWxldCBhPXMuYnl0ZUxlbmd0aDtpZih0KXtsZXQgbD1pKz1hO3QobCl9US5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBnKEIpLEJ9fSxjYW5jZWwoUSl7cmV0dXJuIGcoUSksby5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIG5lPUE9PkE+PTQ4JiZBPD01N3x8QT49NjUmJkE8PTcwfHxBPj05NyYmQTw9MTAyLERpPShBLGUsdCk9PmUrMjx0JiZuZShBLmNoYXJDb2RlQXQoZSsxKSkmJm5lKEEuY2hhckNvZGVBdChlKzIpKTtmdW5jdGlvbiBqZShBKXtpZighQXx8dHlwZW9mIEEhPSJzdHJpbmcifHwhQS5zdGFydHNXaXRoKCJkYXRhOiIpKXJldHVybiAwO2xldCBlPUEuaW5kZXhPZigiLCIpO2lmKGU8MClyZXR1cm4gMDtsZXQgdD1BLnNsaWNlKDUsZSkscj1BLnNsaWNlKGUrMSk7aWYoLztiYXNlNjQvaS50ZXN0KHQpKXtsZXQgST1yLmxlbmd0aCxnPXIubGVuZ3RoO2ZvcihsZXQgQz0wO0M8ZztDKyspaWYoci5jaGFyQ29kZUF0KEMpPT09MzcmJkMrMjxnKXtsZXQgYz1yLmNoYXJDb2RlQXQoQysxKSxwPXIuY2hhckNvZGVBdChDKzIpO25lKGMpJiZuZShwKSYmKEktPTIsQys9Mil9bGV0IFE9MCxCPWctMSxzPUM9PkM+PTImJnIuY2hhckNvZGVBdChDLTIpPT09MzcmJnIuY2hhckNvZGVBdChDLTEpPT09NTEmJihyLmNoYXJDb2RlQXQoQyk9PT02OHx8ci5jaGFyQ29kZUF0KEMpPT09MTAwKTtCPj0wJiYoci5jaGFyQ29kZUF0KEIpPT09NjE/KFErKyxCLS0pOnMoQikmJihRKyssQi09MykpLFE9PT0xJiZCPj0wJiYoci5jaGFyQ29kZUF0KEIpPT09NjF8fHMoQikpJiZRKys7bGV0IGw9TWF0aC5mbG9vcihJLzQpKjMtKFF8fDApO3JldHVybiBsPjA/bDowfWxldCBpPTA7Zm9yKGxldCBJPTAsZz1yLmxlbmd0aDtJPGc7SSsrKXtsZXQgUT1yLmNoYXJDb2RlQXQoSSk7aWYoUT09PTM3JiZEaShyLEksZykpaSs9MSxJKz0yO2Vsc2UgaWYoUTwxMjgpaSs9MTtlbHNlIGlmKFE8MjA0OClpKz0yO2Vsc2UgaWYoUT49NTUyOTYmJlE8PTU2MzE5JiZJKzE8Zyl7bGV0IEI9ci5jaGFyQ29kZUF0KEkrMSk7Qj49NTYzMjAmJkI8PTU3MzQzPyhpKz00LEkrKyk6aSs9M31lbHNlIGkrPTN9cmV0dXJuIGl9dmFyIHlBPSIxLjE4LjEiO3ZhciAkdD02NCoxMDI0LHtpc0Z1bmN0aW9uOmdlfT1uLHdpPUE9PmVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9naSwoZSx0KT0+U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LDE2KSkpLEFyPUE9PntpZighbi5pc1N0cmluZyhBKSlyZXR1cm4gQTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChBKX1jYXRjaHtyZXR1cm4gQX19LGVyPShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFJpPUE9PntsZXQgZT1BLmluZGV4T2YoIjovLyIpLHQ9QTtyZXR1cm4gZSE9PS0xJiYodD10LnNsaWNlKGUrMykpLHQuaW5jbHVkZXMoIkAiKXx8dC5pbmNsdWRlcygiOiIpfSxTaT1BPT57bGV0IGU9bi5nbG9iYWwhPT12b2lkIDAmJm4uZ2xvYmFsIT09bnVsbD9uLmdsb2JhbDpnbG9iYWxUaGlzLHtSZWFkYWJsZVN0cmVhbTp0LFRleHRFbmNvZGVyOnJ9PWU7QT1uLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LHtSZXF1ZXN0OmUuUmVxdWVzdCxSZXNwb25zZTplLlJlc3BvbnNlfSxBKTtsZXR7ZmV0Y2g6byxSZXF1ZXN0OmksUmVzcG9uc2U6SX09QSxnPW8/Z2Uobyk6dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iLFE9Z2UoaSksQj1nZShJKTtpZighZylyZXR1cm4hMTtsZXQgcz1nJiZnZSh0KSxhPWcmJih0eXBlb2Ygcj09ImZ1bmN0aW9uIj8oRT0+aD0+RS5lbmNvZGUoaCkpKG5ldyByKTphc3luYyBFPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgaShFKS5hcnJheUJ1ZmZlcigpKSksbD1RJiZzJiZlcigoKT0+e2xldCBFPSExLGg9bmV3IGkoUi5vcmlnaW4se2JvZHk6bmV3IHQsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEU9ITAsImhhbGYifX0pLHk9aC5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIGguYm9keSE9bnVsbCYmaC5ib2R5LmNhbmNlbCgpLEUmJiF5fSksQz1CJiZzJiZlcigoKT0+bi5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksYz17c3RyZWFtOkMmJihFPT5FLmJvZHkpfTtnJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goRT0+eyFjW0VdJiYoY1tFXT0oaCx5KT0+e2xldCBEPWgmJmhbRV07aWYoRClyZXR1cm4gRC5jYWxsKGgpO3Rocm93IG5ldyBmKGBSZXNwb25zZSB0eXBlICcke0V9JyBpcyBub3Qgc3VwcG9ydGVkYCxmLkVSUl9OT1RfU1VQUE9SVCx5KX0pfSk7bGV0IHA9YXN5bmMgRT0+e2lmKEU9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoRSkpcmV0dXJuIEUuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oRSkpcmV0dXJuKGF3YWl0IG5ldyBpKFIub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6RX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhFKXx8bi5pc0FycmF5QnVmZmVyKEUpKXJldHVybiBFLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhFKSYmKEU9RSsiIiksbi5pc1N0cmluZyhFKSlyZXR1cm4oYXdhaXQgYShFKSkuYnl0ZUxlbmd0aH0sdT1hc3luYyhFLGgpPT57bGV0IHk9bi50b0Zpbml0ZU51bWJlcihFLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIHk/P3AoaCl9O3JldHVybiBhc3luYyBFPT57bGV0e3VybDpoLG1ldGhvZDp5LGRhdGE6RCxzaWduYWw6SixjYW5jZWxUb2tlbjpTLHRpbWVvdXQ6WCxvbkRvd25sb2FkUHJvZ3Jlc3M6Y2Usb25VcGxvYWRQcm9ncmVzczp1ZSxyZXNwb25zZVR5cGU6JCxoZWFkZXJzOkFBLHdpdGhDcmVkZW50aWFsczpLQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpJdCxtYXhDb250ZW50TGVuZ3RoOl8sbWF4Qm9keUxlbmd0aDpXQX09SWUoRSksUkE9bi5pc051bWJlcihfKSYmXz4tMSxmZT1uLmlzTnVtYmVyKFdBKSYmV0E+LTEsVXI9dz0+bi5oYXNPd25Qcm9wKEUsdyk/RVt3XTp2b2lkIDAsbnQ9b3x8ZmV0Y2g7JD0kPygkKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgZUE9WHQoW0osUyYmUy50b0Fib3J0U2lnbmFsKCldLFgpLGI9bnVsbCxpQT1lQSYmZUEudW5zdWJzY3JpYmUmJigoKT0+e2VBLnVuc3Vic2NyaWJlKCl9KSxDQSxTQT1udWxsLGd0PSgpPT5uZXcgZigiUmVxdWVzdCBib2R5IGxhcmdlciB0aGFuIG1heEJvZHlMZW5ndGggbGltaXQiLGYuRVJSX0JBRF9SRVFVRVNULEUsYik7dHJ5e2xldCB3LHg9VXIoImF1dGgiKTtpZih4KXtsZXQgbT1uLmdldFNhZmVQcm9wKHgsInVzZXJuYW1lIil8fCIiLFQ9bi5nZXRTYWZlUHJvcCh4LCJwYXNzd29yZCIpfHwiIjt3PXt1c2VybmFtZTptLHBhc3N3b3JkOlR9fWlmKFJpKGgpKXtsZXQgbT1uZXcgVVJMKGgsUi5vcmlnaW4pO2lmKCF3JiYobS51c2VybmFtZXx8bS5wYXNzd29yZCkpe2xldCBUPUFyKG0udXNlcm5hbWUpLHRBPUFyKG0ucGFzc3dvcmQpO3c9e3VzZXJuYW1lOlQscGFzc3dvcmQ6dEF9fShtLnVzZXJuYW1lfHxtLnBhc3N3b3JkKSYmKG0udXNlcm5hbWU9IiIsbS5wYXNzd29yZD0iIixoPW0uaHJlZil9aWYodyYmKEFBLmRlbGV0ZSgiYXV0aG9yaXphdGlvbiIpLEFBLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSh3aSgody51c2VybmFtZXx8IiIpKyI6Iisody5wYXNzd29yZHx8IiIpKSkpKSxSQSYmdHlwZW9mIGg9PSJzdHJpbmciJiZoLnN0YXJ0c1dpdGgoImRhdGE6IikmJmplKGgpPl8pdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK18rIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsYik7aWYoZmUmJnkhPT0iZ2V0IiYmeSE9PSJoZWFkIil7bGV0IG09YXdhaXQgcChEKTtpZih0eXBlb2YgbT09Im51bWJlciImJmlzRmluaXRlKG0pJiYoQ0E9bSxtPldBKSl0aHJvdyBndCgpfWxldCBfQT1mZSYmKG4uaXNSZWFkYWJsZVN0cmVhbShEKXx8bi5pc1N0cmVhbShEKSksYXQ9KG0sVCx0QSk9Pl9lKG0sJHQsSUE9PntpZihmZSYmSUE+V0EpdGhyb3cgU0E9Z3QoKTtUJiZUKElBKX0sdEEpO2lmKGwmJnkhPT0iZ2V0IiYmeSE9PSJoZWFkIiYmKHVlfHxfQSkpe2lmKENBPUNBPz9hd2FpdCB1KEFBLEQpLENBIT09MHx8X0Epe2xldCBtPW5ldyBpKGgse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxUO2lmKG4uaXNGb3JtRGF0YShEKSYmKFQ9bS5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZBQS5zZXRDb250ZW50VHlwZShUKSxtLmJvZHkpe2xldFt0QSxJQV09dWUmJlRlKENBLGhBKHhlKHVlKSkpfHxbXTtEPWF0KG0uYm9keSx0QSxJQSl9fX1lbHNlIGlmKF9BJiYhUSYmcyYmeSE9PSJnZXQiJiZ5IT09ImhlYWQiKUQ9YXQoRCk7ZWxzZSBpZihfQSYmUSYmIWwmJnkhPT0iZ2V0IiYmeSE9PSJoZWFkIil0aHJvdyBuZXcgZigiU3RyZWFtIHJlcXVlc3QgYm9kaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IGZldGNoIGltcGxlbWVudGF0aW9uIixmLkVSUl9OT1RfU1VQUE9SVCxFLGIpO24uaXNTdHJpbmcoS0EpfHwoS0E9S0E/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IE5yPVEmJiJjcmVkZW50aWFscyJpbiBpLnByb3RvdHlwZTtpZihuLmlzRm9ybURhdGEoRCkpe2xldCBtPUFBLmdldENvbnRlbnRUeXBlKCk7bSYmL15tdWx0aXBhcnRcL2Zvcm0tZGF0YS9pLnRlc3QobSkmJiEvYm91bmRhcnk9L2kudGVzdChtKSYmQUEuZGVsZXRlKCJjb250ZW50LXR5cGUiKX1BQS5zZXQoIlVzZXItQWdlbnQiLCJheGlvcy8iK3lBLCExKTtsZXQgc3Q9ey4uLkl0LHNpZ25hbDplQSxtZXRob2Q6eS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6ZWUoQUEubm9ybWFsaXplKCkpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOk5yP0tBOnZvaWQgMH07Yj1RJiZuZXcgaShoLHN0KTtsZXQgWj1hd2FpdChRP250KGIsSXQpOm50KGgsc3QpKSxDdD1GLmZyb20oWi5oZWFkZXJzKTtpZihSQSl7bGV0IG09bi50b0Zpbml0ZU51bWJlcihDdC5nZXRDb250ZW50TGVuZ3RoKCkpO2lmKG0hPW51bGwmJm0+Xyl0aHJvdyBuZXcgZigibWF4Q29udGVudExlbmd0aCBzaXplIG9mICIrXysiIGV4Y2VlZGVkIixmLkVSUl9CQURfUkVTUE9OU0UsRSxiKX1sZXQgcGU9QyYmKCQ9PT0ic3RyZWFtInx8JD09PSJyZXNwb25zZSIpO2lmKEMmJlouYm9keSYmKGNlfHxSQXx8cGUmJmlBKSl7bGV0IG09e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goRkE9PnttW0ZBXT1aW0ZBXX0pO2xldCBUPW4udG9GaW5pdGVOdW1iZXIoQ3QuZ2V0Q29udGVudExlbmd0aCgpKSxbdEEsSUFdPWNlJiZUZShULGhBKHhlKGNlKSwhMCkpfHxbXSxCdD0wLGtyPUZBPT57aWYoUkEmJihCdD1GQSxCdD5fKSl0aHJvdyBuZXcgZigibWF4Q29udGVudExlbmd0aCBzaXplIG9mICIrXysiIGV4Y2VlZGVkIixmLkVSUl9CQURfUkVTUE9OU0UsRSxiKTt0QSYmdEEoRkEpfTtaPW5ldyBJKF9lKFouYm9keSwkdCxrciwoKT0+e0lBJiZJQSgpLGlBJiZpQSgpfSksbSl9JD0kfHwidGV4dCI7bGV0IFY9YXdhaXQgY1tuLmZpbmRLZXkoYywkKXx8InRleHQiXShaLEUpO2lmKFJBJiYhQyYmIXBlKXtsZXQgbTtpZihWIT1udWxsJiYodHlwZW9mIFYuYnl0ZUxlbmd0aD09Im51bWJlciI/bT1WLmJ5dGVMZW5ndGg6dHlwZW9mIFYuc2l6ZT09Im51bWJlciI/bT1WLnNpemU6dHlwZW9mIFY9PSJzdHJpbmciJiYobT10eXBlb2Ygcj09ImZ1bmN0aW9uIj9uZXcgcigpLmVuY29kZShWKS5ieXRlTGVuZ3RoOlYubGVuZ3RoKSksdHlwZW9mIG09PSJudW1iZXIiJiZtPl8pdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK18rIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsYil9cmV0dXJuIXBlJiZpQSYmaUEoKSxhd2FpdCBuZXcgUHJvbWlzZSgobSxUKT0+e0hBKG0sVCx7ZGF0YTpWLGhlYWRlcnM6Ri5mcm9tKFouaGVhZGVycyksc3RhdHVzOlouc3RhdHVzLHN0YXR1c1RleHQ6Wi5zdGF0dXNUZXh0LGNvbmZpZzpFLHJlcXVlc3Q6Yn0pfSl9Y2F0Y2godyl7aWYoaUEmJmlBKCksZUEmJmVBLmFib3J0ZWQmJmVBLnJlYXNvbiBpbnN0YW5jZW9mIGYpe2xldCB4PWVBLnJlYXNvbjt0aHJvdyB4LmNvbmZpZz1FLGImJih4LnJlcXVlc3Q9YiksdyE9PXgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOncsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx4fWlmKFNBKXRocm93IGImJiFTQS5yZXF1ZXN0JiYoU0EucmVxdWVzdD1iKSxTQTtpZih3IGluc3RhbmNlb2YgZil0aHJvdyBiJiYhdy5yZXF1ZXN0JiYody5yZXF1ZXN0PWIpLHc7aWYodyYmdy5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3Qody5tZXNzYWdlKSl7bGV0IHg9bmV3IGYoIk5ldHdvcmsgRXJyb3IiLGYuRVJSX05FVFdPUkssRSxiLHcmJncucmVzcG9uc2UpO3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOncuY2F1c2V8fHcsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx4fXRocm93IGYuZnJvbSh3LHcmJncuY29kZSxFLGIsdyYmdy5yZXNwb25zZSl9fX0sRmk9bmV3IE1hcCx2ZT1BPT57bGV0IGU9QSYmQS5lbnZ8fHt9LHtmZXRjaDp0LFJlcXVlc3Q6cixSZXNwb25zZTpvfT1lLGk9W3Isbyx0XSxJPWkubGVuZ3RoLGc9SSxRLEIscz1GaTtmb3IoO2ctLTspUT1pW2ddLEI9cy5nZXQoUSksQj09PXZvaWQgMCYmcy5zZXQoUSxCPWc/bmV3IE1hcDpTaShlKSkscz1CO3JldHVybiBCfSxXZz12ZSgpO3ZhciBaZT17aHR0cDpyZSx4aHI6enQsZmV0Y2g6e2dldDp2ZX19O24uZm9yRWFjaChaZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7X19wcm90b19fOm51bGwsdmFsdWU6ZX0pfX0pO3ZhciB0cj1BPT5gLSAke0F9YCxOaT1BPT5uLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITE7ZnVuY3Rpb24ga2koQSxlKXtBPW4uaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEscixvLGk9e307Zm9yKGxldCBJPTA7STx0O0krKyl7cj1BW0ldO2xldCBnO2lmKG89ciwhTmkocikmJihvPVplWyhnPVN0cmluZyhyKSkudG9Mb3dlckNhc2UoKV0sbz09PXZvaWQgMCkpdGhyb3cgbmV3IGYoYFVua25vd24gYWRhcHRlciAnJHtnfSdgKTtpZihvJiYobi5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO2lbZ3x8IiMiK0ldPW99aWYoIW8pe2xldCBJPU9iamVjdC5lbnRyaWVzKGkpLm1hcCgoW1EsQl0pPT5gYWRhcHRlciAke1F9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxnPXQ/SS5sZW5ndGg+MT9gc2luY2UgOgpgK0kubWFwKHRyKS5qb2luKGAKYCk6IiAiK3RyKElbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGYoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitnLGYuRVJSX05PVF9TVVBQT1JUKX1yZXR1cm4gb312YXIgYWU9e2dldEFkYXB0ZXI6a2ksYWRhcHRlcnM6WmV9O2Z1bmN0aW9uIFZlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyB2KG51bGwsQSl9ZnVuY3Rpb24gc2UoQSl7cmV0dXJuIFZlKEEpLEEuaGVhZGVycz1GLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9T0EuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLGFlLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxkQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24ocil7VmUoQSksQS5yZXNwb25zZT1yO3RyeXtyLmRhdGE9T0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2Uscil9ZmluYWxseXtkZWxldGUgQS5yZXNwb25zZX1yZXR1cm4gci5oZWFkZXJzPUYuZnJvbShyLmhlYWRlcnMpLHJ9LGZ1bmN0aW9uKHIpe2lmKCFKQShyKSYmKFZlKEEpLHImJnIucmVzcG9uc2UpKXtBLnJlc3BvbnNlPXIucmVzcG9uc2U7dHJ5e3IucmVzcG9uc2UuZGF0YT1PQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKX1maW5hbGx5e2RlbGV0ZSBBLnJlc3BvbnNlfXIucmVzcG9uc2UuaGVhZGVycz1GLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKX1yZXR1cm4gUHJvbWlzZS5yZWplY3Qocil9KX12YXIgQ2U9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57Q2VbQV09ZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHJyPXt9O0NlLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbyhpLEkpe3JldHVybiJbQXhpb3MgdiIreUErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitpKyInIitJKyhyPyIuICIrcjoiIil9cmV0dXJuKGksSSxnKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgZihvKEksIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGYuRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhcnJbSV0mJihycltJXT0hMCxjb25zb2xlLndhcm4obyhJLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShpLEksZyk6ITB9fTtDZS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxyKT0+KGNvbnNvbGUud2FybihgJHtyfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBiaShBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QifHxBPT09bnVsbCl0aHJvdyBuZXcgZigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsZi5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHI9T2JqZWN0LmtleXMoQSksbz1yLmxlbmd0aDtmb3IoO28tLSA+MDspe2xldCBpPXJbb10sST1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKT9lW2ldOnZvaWQgMDtpZihJKXtsZXQgZz1BW2ldLFE9Zz09PXZvaWQgMHx8SShnLGksQSk7aWYoUSE9PSEwKXRocm93IG5ldyBmKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK1EsZi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBmKCJVbmtub3duIG9wdGlvbiAiK2ksZi5FUlJfQkFEX09QVElPTil9fXZhciBZQT17YXNzZXJ0T3B0aW9uczpiaSx2YWxpZGF0b3JzOkNlfTt2YXIgSD1ZQS52YWxpZGF0b3JzLG1BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IExlLHJlc3BvbnNlOm5ldyBMZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IG89e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uobyk6bz1uZXcgRXJyb3I7bGV0IGk9KCgpPT57aWYoIW8uc3RhY2spcmV0dXJuIiI7bGV0IEk9by5zdGFjay5pbmRleE9mKGAKYCk7cmV0dXJuIEk9PT0tMT8iIjpvLnN0YWNrLnNsaWNlKEkrMSl9KSgpO3RyeXtpZighci5zdGFjaylyLnN0YWNrPWk7ZWxzZSBpZihpKXtsZXQgST1pLmluZGV4T2YoYApgKSxnPUk9PT0tMT8tMTppLmluZGV4T2YoYApgLEkrMSksUT1nPT09LTE/IiI6aS5zbGljZShnKzEpO1N0cmluZyhyLnN0YWNrKS5lbmRzV2l0aChRKXx8KHIuc3RhY2srPWAKYCtpKX19Y2F0Y2h7fX10aHJvdyByfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9Vyh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6cixwYXJhbXNTZXJpYWxpemVyOm8saGVhZGVyczppfT10O3IhPT12b2lkIDAmJllBLmFzc2VydE9wdGlvbnMocix7c2lsZW50SlNPTlBhcnNpbmc6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpILnRyYW5zaXRpb25hbChILmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxsZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksdmFsaWRhdGVTdGF0dXNVbmRlZmluZWRSZXNvbHZlczpILnRyYW5zaXRpb25hbChILmJvb2xlYW4pfSwhMSksbyE9bnVsbCYmKG4uaXNGdW5jdGlvbihvKT90LnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpvfTpZQS5hc3NlcnRPcHRpb25zKG8se2VuY29kZTpILmZ1bmN0aW9uLHNlcmlhbGl6ZTpILmZ1bmN0aW9ufSwhMCkpLHQuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP3QuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczp0LmFsbG93QWJzb2x1dGVVcmxzPSEwKSxZQS5hc3NlcnRPcHRpb25zKHQse2Jhc2VVcmw6SC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46SC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IEk9aSYmbi5tZXJnZShpLmNvbW1vbixpW3QubWV0aG9kXSk7aSYmbi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsInF1ZXJ5IiwiY29tbW9uIl0sYz0+e2RlbGV0ZSBpW2NdfSksdC5oZWFkZXJzPUYuY29uY2F0KEksaSk7bGV0IGc9W10sUT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24ocCl7aWYodHlwZW9mIHAucnVuV2hlbj09ImZ1bmN0aW9uIiYmcC5ydW5XaGVuKHQpPT09ITEpcmV0dXJuO1E9USYmcC5zeW5jaHJvbm91cztsZXQgdT10LnRyYW5zaXRpb25hbHx8ZkE7dSYmdS5sZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nP2cudW5zaGlmdChwLmZ1bGZpbGxlZCxwLnJlamVjdGVkKTpnLnB1c2gocC5mdWxmaWxsZWQscC5yZWplY3RlZCl9KTtsZXQgQj1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKHApe0IucHVzaChwLmZ1bGZpbGxlZCxwLnJlamVjdGVkKX0pO2xldCBzLGE9MCxsO2lmKCFRKXtsZXQgYz1bc2UuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihjLnVuc2hpZnQoLi4uZyksYy5wdXNoKC4uLkIpLGw9Yy5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUodCk7YTxsOylzPXMudGhlbihjW2ErK10sY1thKytdKTtyZXR1cm4gc31sPWcubGVuZ3RoO2xldCBDPXQ7Zm9yKDthPGw7KXtsZXQgYz1nW2ErK10scD1nW2ErK107dHJ5e0M9YyhDKX1jYXRjaCh1KXtwLmNhbGwodGhpcyx1KTticmVha319dHJ5e3M9c2UuY2FsbCh0aGlzLEMpfWNhdGNoKGMpe3JldHVybiBQcm9taXNlLnJlamVjdChjKX1mb3IoYT0wLGw9Qi5sZW5ndGg7YTxsOylzPXMudGhlbihCW2ErK10sQlthKytdKTtyZXR1cm4gc31nZXRVcmkoZSl7ZT1XKHRoaXMuZGVmYXVsdHMsZSk7bGV0IHQ9TUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMsZSk7cmV0dXJuIExBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7bUEucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMucmVxdWVzdChXKHJ8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOnImJm4uaGFzT3duUHJvcChyLCJkYXRhIik/ci5kYXRhOnZvaWQgMH0pKX19KTtuLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giLCJxdWVyeSJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKGksSSxnKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFcoZ3x8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6aSxkYXRhOkl9KSl9fW1BLnByb3RvdHlwZVtlXT10KCksZSE9PSJxdWVyeSImJihtQS5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApKX0pO3ZhciBQQT1tQTt2YXIgemU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Q9aX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4obz0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KXIuX2xpc3RlbmVyc1tpXShvKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPW89PntsZXQgaSxJPW5ldyBQcm9taXNlKGc9PntyLnN1YnNjcmliZShnKSxpPWd9KS50aGVuKG8pO3JldHVybiBJLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoaSl9LEl9LGUoZnVuY3Rpb24oaSxJLGcpe3IucmVhc29ufHwoci5yZWFzb249bmV3IHYoaSxJLGcpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihvKXtlPW99KSxjYW5jZWw6ZX19fSxvcj16ZTtmdW5jdGlvbiBYZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gJGUoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIEF0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExLFdlYlNlcnZlcklzRG93bjo1MjEsQ29ubmVjdGlvblRpbWVkT3V0OjUyMixPcmlnaW5Jc1VucmVhY2hhYmxlOjUyMyxUaW1lb3V0T2NjdXJyZWQ6NTI0LFNzbEhhbmRzaGFrZUZhaWxlZDo1MjUsSW52YWxpZFNzbENlcnRpZmljYXRlOjUyNn07T2JqZWN0LmVudHJpZXMoQXQpLmZvckVhY2goKFtBLGVdKT0+e0F0W2VdPUF9KTt2YXIgaXI9QXQ7ZnVuY3Rpb24gSXIoQSl7bGV0IGU9bmV3IFBBKEEpLHQ9VUEoUEEucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIG4uZXh0ZW5kKHQsUEEucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxuLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKG8pe3JldHVybiBJcihXKEEsbykpfSx0fXZhciBVPUlyKGRBKTtVLkF4aW9zPVBBO1UuQ2FuY2VsZWRFcnJvcj12O1UuQ2FuY2VsVG9rZW49b3I7VS5pc0NhbmNlbD1KQTtVLlZFUlNJT049eUE7VS50b0Zvcm1EYXRhPXJBO1UuQXhpb3NFcnJvcj1mO1UuQ2FuY2VsPVUuQ2FuY2VsZWRFcnJvcjtVLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O1Uuc3ByZWFkPVhlO1UuaXNBeGlvc0Vycm9yPSRlO1UubWVyZ2VDb25maWc9VztVLkF4aW9zSGVhZGVycz1GO1UuZm9ybVRvSlNPTj1BPT5pZShuLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO1UuZ2V0QWRhcHRlcj1hZS5nZXRBZGFwdGVyO1UuSHR0cFN0YXR1c0NvZGU9aXI7VS5kZWZhdWx0PVU7dmFyIERBPVU7dmFye0F4aW9zOlRhLEF4aW9zRXJyb3I6eGEsQ2FuY2VsZWRFcnJvcjpLYSxpc0NhbmNlbDpXYSxDYW5jZWxUb2tlbjpfYSxWRVJTSU9OOmphLGFsbDp2YSxDYW5jZWw6WmEsaXNBeGlvc0Vycm9yOlZhLHNwcmVhZDp6YSx0b0Zvcm1EYXRhOlhhLEF4aW9zSGVhZGVyczokYSxIdHRwU3RhdHVzQ29kZTpBcyxmb3JtVG9KU09OOmVzLGdldEFkYXB0ZXI6dHMsbWVyZ2VDb25maWc6cnMsY3JlYXRlOm9zfT1EQTthc3luYyBmdW5jdGlvbiBHaShBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IG89YXdhaXQgREEuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxpPVVSTC5jcmVhdGVPYmplY3RVUkwoby5kYXRhKTtyPW5ldyBXb3JrZXIoaSx7dHlwZToibW9kdWxlIn0pfWVsc2Ugcj1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gcn12YXIgcUE9R2k7ZnVuY3Rpb24gbnIoQSl7bGV0IGU9RGUoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVttZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBMaShBLGUsdCl7bGV0IHI7aWYoQSE9bnVsbCl7bGV0IGk9QTtyZXR1cm4gaS53b3JrZXJQcm94eSE9PXZvaWQgMD8ocj1pLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpyLHdvcmtlcjppfSk6bnIoQSl9bGV0IG89YXdhaXQgcUEoZSx0KTtyZXR1cm4gbnIobyl9dmFyIGdyPUxpO3ZhciBUQSx6LHR0LGV0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7dHQ9bmV3IFVpbnQ4QXJyYXkoei5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LEJlPWNsYXNze2luaXQoKXtyZXR1cm4gVEF8fCh0eXBlb2YgZmV0Y2g8InUiP1RBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrYXIpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsZXQpKS50aGVuKHRoaXMuX2luaXQpOlRBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKGFyLCJiYXNlNjQiKSxldCkudGhlbih0aGlzLl9pbml0KSxUQSl9X2luaXQoZSl7ej1lLmluc3RhbmNlLGV0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIXopdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHI9ZS5ieXRlTGVuZ3RoLG89ei5leHBvcnRzLm1hbGxvYyhyKTt0dC5zZXQoZSxvKSx0PXR8fE51bWJlcih6LmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShvLHIpKTtsZXQgaT16LmV4cG9ydHMubWFsbG9jKHQpLEk9ei5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhpLHQsbyxyKSxnPXR0LnNsaWNlKGksaStJKTtyZXR1cm4gei5leHBvcnRzLmZyZWUobyksei5leHBvcnRzLmZyZWUoaSksZ319LGFyPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIHNyPW5ldyBCZSxDcj0hMTthc3luYyBmdW5jdGlvbiBPaShBLGUsdCl7bGV0IHI9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9yPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9yPUE6cj10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxyLmVuZHNXaXRoKCIuanMiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0zKSksci5lbmRzV2l0aCgiLndhc20iKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC01KSksci5lbmRzV2l0aCgiLndhc20uenN0IikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtOSkpO2xldCBvPWAke3J9Lndhc21gLGk9YXdhaXQgREEuZ2V0KGAke299LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7Q3J8fChhd2FpdCBzci5pbml0KCksQ3I9ITApO2xldCBnPXNyLmRlY29kZShuZXcgVWludDhBcnJheShpLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Omd9KX12YXIgQnI9T2k7dmFyIFFyPWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBjcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixFcj1uZXcgVGV4dEVuY29kZXIsbHI9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIEppKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxpPUEuZnNfc3RhdChlKS5zaXplLEk9bnVsbDtjcj9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihpKTpJPW5ldyBBcnJheUJ1ZmZlcihpKTtsZXQgZz1uZXcgVWludDhBcnJheShJKTtyZXR1cm4gQS5mc19yZWFkKHIsZywwLGksMCksQS5mc19jbG9zZShyKSxnfWZ1bmN0aW9uIHVyKEEsZSx0KXtsZXQgcj1udWxsO2NyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBvPW5ldyBVaW50OEFycmF5KHIpLGk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIG8uc2V0KGkpLG99ZnVuY3Rpb24gTihBLGUsdCxyKXtsZXQgbz0wO3JldHVybiBlIT09bnVsbCYmKG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKT4+PjAsQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiBvQShBLGUsdCl7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZSksbz1BLmxlbmd0aEJ5dGVzVVRGOChyKSsxLGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LG9dKT4+PjA7QS5zdHJpbmdUb1VURjgocixpLG8pfWZ1bmN0aW9uIEwoQSxlLHQscil7bGV0IG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSk+Pj4wLGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksST11cihBLG8saSk7cmV0dXJuIGoocixJLmJ1ZmZlcil9ZnVuY3Rpb24geEEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKT4+PjAscj1BLlVURjhUb1N0cmluZyh0KTtyZXR1cm4gSlNPTi5wYXJzZShyKX1mdW5jdGlvbiBIaShBLGUsdCxyKXtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IGE9RXIuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPU4oQSxhLHMsMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O29BKEEsQyxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPUVyLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPU4oQSxhLHMsMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O29BKEEsQyxzKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgYT1CLmRhdGEuZGF0YSxsPU4oQSxhLHMsMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O29BKEEsQyxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9Qi5kYXRhLGw9TihBLGEuZGF0YSxzLDApLEM9TihBLGEuZGlyZWN0aW9uLHMsMSksYz10eXBlb2YgYS5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShhLm1ldGFkYXRhLmVudHJpZXMoKSk6W10scD17aW1hZ2VUeXBlOmEuaW1hZ2VUeXBlLG5hbWU6YS5uYW1lLG9yaWdpbjphLm9yaWdpbixzcGFjaW5nOmEuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsc2l6ZTphLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpjfTtvQShBLHAscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPUIuZGF0YSxsPU4oQSxhLnBvaW50cyxzLDApLEM9TihBLGEuY2VsbHMscywxKSxjPU4oQSxhLnBvaW50RGF0YSxzLDIpLHA9TihBLGEuY2VsbERhdGEscywzKSx1PXttZXNoVHlwZTphLm1lc2hUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6YS5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGNlbGxCdWZmZXJTaXplOmEuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mQ2VsbFBpeGVsczphLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3B9YH07b0EoQSx1LHMpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9Qi5kYXRhLGw9TihBLGEucG9pbnRzLHMsMCksQz1OKEEsYS5wb2ludERhdGEscywxKSxjPXtwb2ludFNldFR5cGU6YS5wb2ludFNldFR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gfTtvQShBLGMscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPUIuZGF0YSxsPVtdLEM9MDthLmZvckVhY2goYz0+e2xldCBwPSIiLHU9IiI7Yy50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKHA9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtOKEEsYy5maXhlZFBhcmFtZXRlcnMscyxDKX1gLEMrPTEsdT1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke04oQSxjLnBhcmFtZXRlcnMscyxDKX1gLEMrPTEpO2xldCBFPXt0cmFuc2Zvcm1UeXBlOmMudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpjLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpjLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOmMubmFtZSxpbnB1dFNwYWNlTmFtZTpjLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpjLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOnUsZml4ZWRQYXJhbWV0ZXJzOnB9O2wucHVzaChFKX0pLG9BKEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPUIuZGF0YSxsPU4oQSxhLnBvaW50cyxzLDApLEM9TihBLGEudmVydGljZXMscywxKSxjPU4oQSxhLmxpbmVzLHMsMikscD1OKEEsYS5wb2x5Z29ucyxzLDMpLHU9TihBLGEudHJpYW5nbGVTdHJpcHMscyw0KSxFPU4oQSxhLnBvaW50RGF0YSxzLDUpLGg9TihBLGEucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOmEucG9seURhdGFUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTphLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxsaW5lc0J1ZmZlclNpemU6YS5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAscG9seWdvbnNCdWZmZXJTaXplOmEucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTphLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtFfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7aH1gfTtvQShBLHkscyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxpPTA7dHJ5e2k9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgST1BLmdldE1vZHVsZVN0ZG91dCgpLGc9QS5nZXRNb2R1bGVTdGRlcnIoKSxRPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZpPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7bGV0IGE9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk+Pj4wLGM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSkscD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQyxjKTthPXtkYXRhOmxyLmRlY29kZShwKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKT4+PjAsYz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxwPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLGMpO2E9SlNPTi5wYXJzZShsci5kZWNvZGUocCkpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pPj4+MCxjPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO2E9e2RhdGE6dXIoQSxDLGMpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e2E9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e2E9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpKaShBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQz14QShBLHMpO0MuZGF0YT1MKEEscywwLEMuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEMuZGlyZWN0aW9uPUwoQSxzLDEsbkEuRmxvYXQ2NCksQy5tZXRhZGF0YT1uZXcgTWFwKEMubWV0YWRhdGEpLGE9QzticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9eEEoQSxzKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9TChBLHMsMCxDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qy5wb2ludHM9aihDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxscz4wP0MuY2VsbHM9TChBLHMsMSxDLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpDLmNlbGxzPWooQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUwoQSxzLDIsQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9aihDLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxQaXhlbHM+MD9DLmNlbGxEYXRhPUwoQSxzLDMsQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpDLmNlbGxEYXRhPWooQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IEM9eEEoQSxzKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9TChBLHMsMCxDLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPWooQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TChBLHMsMSxDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9aihDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QzticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IEM9eEEoQSxzKSxjPTA7Qy5mb3JFYWNoKChwLHUpPT57cC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKHAubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKENbdV0uZml4ZWRQYXJhbWV0ZXJzPUwoQSxzLGMsbkEuRmxvYXQ2NCkpLGMrPTEscC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKENbdV0ucGFyYW1ldGVycz1MKEEscyxjLHAudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksYys9MSl9KSxhPUM7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQz14QShBLHMpO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1MKEEscywwLG5BLkZsb2F0MzIpOkMucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQy52ZXJ0aWNlc0J1ZmZlclNpemU+MD9DLnZlcnRpY2VzPUwoQSxzLDEsUC5VSW50MzIpOkMudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEMubGluZXNCdWZmZXJTaXplPjA/Qy5saW5lcz1MKEEscywyLFAuVUludDMyKTpDLmxpbmVzPW5ldyBVaW50MzJBcnJheSxDLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0MucG9seWdvbnM9TChBLHMsMyxQLlVJbnQzMik6Qy5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9DLnRyaWFuZ2xlU3RyaXBzPUwoQSxzLDQsUC5VSW50MzIpOkMudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUwoQSxzLDUsQy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPWooQy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbFBpeGVscz4wP0MuY2VsbERhdGE9TChBLHMsNixDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpDLmNlbGxEYXRhPWooQy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QzticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOmF9O1EucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTppLHN0ZG91dDpJLHN0ZGVycjpnLG91dHB1dHM6UX19dmFyIGZyPUhpO3ZhciBNaT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gWWkoQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8QS5sZW5ndGg7cisrKXtsZXQgbz1QaShBW3JdLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gUGkoQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxNaSYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIHByPVlpO2Z1bmN0aW9uIHFpKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBkcj1xaTtmdW5jdGlvbiBUaShBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgaHI9VGk7ZnVuY3Rpb24geGkoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIHlyPXhpO3ZhciBLaTtmdW5jdGlvbiBRZSgpe3JldHVybiBLaX12YXIgV2k7ZnVuY3Rpb24gbXIoKXtyZXR1cm4gV2l9dmFyIF9pO2Z1bmN0aW9uIEVlKCl7cmV0dXJuIF9pfXZhciBydD1uZXcgTWFwO2Z1bmN0aW9uIGppKCl7bGV0IEE9RWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIERyKCl7bGV0IEE9UWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gbGUoKXtsZXQgQT1tcigpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIHZpKEEsZSx0KXtsZXQgcj1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihyPW5ldyBVUkwoQS5ocmVmKSxvPXIuaHJlZikscnQuaGFzKG8pKXJldHVybiBydC5nZXQobyk7e2xldCBpPWF3YWl0IEJyKEEsZT8udG9TdHJpbmcoKT8/RHIoKSx0Pz9sZSgpKTtyZXR1cm4gcnQuc2V0KG8saSksaX19YXN5bmMgZnVuY3Rpb24gWmkoQSxlLHQscixvKXtpZighYXdhaXQgUXIoKSl7bGV0IHU9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KHUpLG5ldyBFcnJvcih1KX1sZXQgaT1vPy53ZWJXb3JrZXI/P251bGw7aWYoaT09PSExKXtsZXQgdT1hd2FpdCB2aShBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P2xlKCkpO3JldHVybiBmcih1LGUsdCxyKX1sZXQgST1pLGc9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P2ppKCksUT10eXBlb2YgZyE9InN0cmluZyImJnR5cGVvZiBnPy5ocmVmPCJ1Ij9nLmhyZWY6Zyx7d29ya2VyUHJveHk6Qix3b3JrZXI6c309YXdhaXQgZ3IoSSxRLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P2xlKCkpO0k9cztsZXQgYT1bXTtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS50eXBlPT09ZC5CaW5hcnlTdHJlYW0pe2xldCBFPXUuZGF0YS5kYXRhO2EucHVzaChFKX1lbHNlIGlmKHUudHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IEU9dS5kYXRhLmRhdGE7YS5wdXNoKEUpfWVsc2UgaWYodS50eXBlPT09ZC5JbWFnZSl7bGV0IEU9dS5kYXRhO0UuZGF0YSE9PW51bGwmJmEucHVzaCguLi5kcihFKSl9ZWxzZSBpZih1LnR5cGU9PT1kLk1lc2gpe2xldCBFPXUuZGF0YTthLnB1c2goLi4uaHIoRSkpfWVsc2UgaWYodS50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IEU9dS5kYXRhO2EucHVzaCguLi55cihFKSl9fSk7bGV0IGw9bz8ucGlwZWxpbmVCYXNlVXJsPz9EcigpLEM9dHlwZW9mIGwhPSJzdHJpbmciJiZ0eXBlb2YgbD8uaHJlZjwidSI/bC5ocmVmOmwsYz1yIT1udWxsP3dlKHIscHIoYSxvPy5ub0NvcHkpKTpudWxsLHA9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCksQyxlLHQsYyxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9sZSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6cC5yZXR1cm5WYWx1ZSxzdGRvdXQ6cC5zdGRvdXQsc3RkZXJyOnAuc3RkZXJyLG91dHB1dHM6cC5vdXRwdXRzLHdlYldvcmtlcjpJfX12YXIgTz1aaTt2YXIgVmk9bnVsbDtmdW5jdGlvbiB3cigpe3JldHVybiBWaX12YXIgb3Qsemk9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGl0ay13YXNtL2Rvd25zYW1wbGVAJHtkZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIFZzKEEpe290PUF9ZnVuY3Rpb24gTSgpe2lmKHR5cGVvZiBvdDwidSIpcmV0dXJuIG90O2xldCBBPVFlKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOnppfXZhciBpdCxYaT1udWxsO2Z1bmN0aW9uIFJyKEEpe2l0PUF9ZnVuY3Rpb24gaygpe2lmKHR5cGVvZiBpdDwidSIpcmV0dXJuIGl0O2xldCBBPUVlKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlhpfXZhciB3QT1udWxsO2FzeW5jIGZ1bmN0aW9uIFNyKCl7bGV0IEE9aygpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7d0E9YXdhaXQgcUEoZSl9ZnVuY3Rpb24gckMoQSl7d0E9QX1hc3luYyBmdW5jdGlvbiBZKCl7aWYod0EhPT1udWxsKXJldHVybiB3QS50ZXJtaW5hdGVkJiZhd2FpdCBTcigpLHdBO2xldCBBPXdyKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IFNyKCksd0EpfWFzeW5jIGZ1bmN0aW9uICRpKEEsZT17c2hyaW5rRmFjdG9yczpbMiwyXX0pe2xldCB0PVt7dHlwZTpkLkltYWdlfV0scj1be3R5cGU6ZC5JbWFnZSxkYXRhOkF9XSxvPVtdO2lmKG8ucHVzaCgiMCIpLG8ucHVzaCgiMCIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgZS5zaHJpbmtGYWN0b3JzPCJ1Iil7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO28ucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgYz0+e28ucHVzaChjLnRvU3RyaW5nKCkpfSkpfXR5cGVvZiBlLmluZm9ybWF0aW9uT25seTwidSImJmUuaW5mb3JtYXRpb25Pbmx5JiZvLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBnPSJkb3duc2FtcGxlLWJpbi1zaHJpbmsiLFE9ZT8ud2ViV29ya2VyO1E9PT12b2lkIDAmJihRPWF3YWl0IFkoKSk7bGV0e3dlYldvcmtlcjpCLHJldHVyblZhbHVlOnMsc3RkZXJyOmEsb3V0cHV0czpsfT1hd2FpdCBPKGcsbyx0LHIse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6aygpLHdlYldvcmtlcjpRLG5vQ29weTplPy5ub0NvcHl9KTtpZihzIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkIsZG93bnNhbXBsZWQ6bFswXT8uZGF0YX19dmFyIEFJPSRpO2FzeW5jIGZ1bmN0aW9uIGVJKEEsZT17c2hyaW5rRmFjdG9yczpbMiwyXX0pe2xldCB0PVt7dHlwZTpkLkltYWdlfV0scj1be3R5cGU6ZC5JbWFnZSxkYXRhOkF9XSxvPVtdO2lmKG8ucHVzaCgiMCIpLG8ucHVzaCgiMCIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgZS5zaHJpbmtGYWN0b3JzPCJ1Iil7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO28ucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgYz0+e28ucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBlLmNyb3BSYWRpdXM8InUiKXtpZihlLmNyb3BSYWRpdXMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCciY3JvcC1yYWRpdXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7by5wdXNoKCItLWNyb3AtcmFkaXVzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5jcm9wUmFkaXVzLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9bGV0IGc9ImRvd25zYW1wbGUtbGFiZWwtaW1hZ2UiLFE9ZT8ud2ViV29ya2VyO1E9PT12b2lkIDAmJihRPWF3YWl0IFkoKSk7bGV0e3dlYldvcmtlcjpCLHJldHVyblZhbHVlOnMsc3RkZXJyOmEsb3V0cHV0czpsfT1hd2FpdCBPKGcsbyx0LHIse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6aygpLHdlYldvcmtlcjpRLG5vQ29weTplPy5ub0NvcHl9KTtpZihzIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkIsZG93bnNhbXBsZWQ6bFswXT8uZGF0YX19dmFyIHRJPWVJO2FzeW5jIGZ1bmN0aW9uIHJJKEE9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgZT1be3R5cGU6ZC5Kc29uQ29tcGF0aWJsZX1dLHQ9W10scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIEEuc2hyaW5rRmFjdG9yczwidSIpe2lmKEEuc2hyaW5rRmFjdG9ycy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaHJpbmstZmFjdG9ycyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtyLnB1c2goIi0tc2hyaW5rLWZhY3RvcnMiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNocmlua0ZhY3RvcnMubWFwKGFzeW5jIGw9PntyLnB1c2gobC50b1N0cmluZygpKX0pKX1sZXQgaT0iZG93bnNhbXBsZS1zaWdtYSIsST1BPy53ZWJXb3JrZXI7ST09PXZvaWQgMCYmKEk9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6QixvdXRwdXRzOnN9PWF3YWl0IE8oaSxyLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOkksbm9Db3B5OkE/Lm5vQ29weX0pO2lmKFEhPT0wJiZCIT09IiIpdGhyb3cgbmV3IEVycm9yKEIpO3JldHVybnt3ZWJXb3JrZXI6ZyxzaWdtYTpzWzBdPy5kYXRhfX12YXIgb0k9ckk7YXN5bmMgZnVuY3Rpb24gaUkoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxyPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLG89W107aWYoby5wdXNoKCIwIiksby5wdXNoKCIwIiksby5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnNocmlua0ZhY3RvcnM8InUiKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7by5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUuY3JvcFJhZGl1czwidSIpe2lmKGUuY3JvcFJhZGl1cy5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoJyJjcm9wLXJhZGl1cyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDInKTtvLnB1c2goIi0tY3JvcC1yYWRpdXMiKSxhd2FpdCBQcm9taXNlLmFsbChlLmNyb3BSYWRpdXMubWFwKGFzeW5jIGM9PntvLnB1c2goYy50b1N0cmluZygpKX0pKX1sZXQgZz0iZG93bnNhbXBsZSIsUT1lPy53ZWJXb3JrZXI7UT09PXZvaWQgMCYmKFE9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOkIscmV0dXJuVmFsdWU6cyxzdGRlcnI6YSxvdXRwdXRzOmx9PWF3YWl0IE8oZyxvLHQscix7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOlEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHMhPT0wJiZhIT09IiIpdGhyb3cgbmV3IEVycm9yKGEpO3JldHVybnt3ZWJXb3JrZXI6Qixkb3duc2FtcGxlZDpsWzBdPy5kYXRhfX12YXIgSUk9aUk7YXN5bmMgZnVuY3Rpb24gbkkoQT17c2l6ZTpbMSwxXSxzaWdtYTpbMSwxXX0pe2xldCBlPVt7dHlwZTpkLkpzb25Db21wYXRpYmxlfV0sdD1bXSxyPVtdO2lmKHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgQS5zaXplPCJ1Iil7aWYoQS5zaXplLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInNpemUiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLXNpemUiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNpemUubWFwKGFzeW5jIGw9PntyLnB1c2gobC50b1N0cmluZygpKX0pKX1pZih0eXBlb2YgQS5zaWdtYTwidSIpe2lmKEEuc2lnbWEubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2lnbWEiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLXNpZ21hIiksYXdhaXQgUHJvbWlzZS5hbGwoQS5zaWdtYS5tYXAoYXN5bmMgbD0+e3IucHVzaChsLnRvU3RyaW5nKCkpfSkpfXR5cGVvZiBBLm1heEtlcm5lbFdpZHRoPCJ1IiYmci5wdXNoKCItLW1heC1rZXJuZWwtd2lkdGgiLEEubWF4S2VybmVsV2lkdGgudG9TdHJpbmcoKSksdHlwZW9mIEEubWF4S2VybmVsRXJyb3I8InUiJiZyLnB1c2goIi0tbWF4LWtlcm5lbC1lcnJvciIsQS5tYXhLZXJuZWxFcnJvci50b1N0cmluZygpKTtsZXQgaT0iZ2F1c3NpYW4ta2VybmVsLXJhZGl1cyIsST1BPy53ZWJXb3JrZXI7ST09PXZvaWQgMCYmKEk9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6QixvdXRwdXRzOnN9PWF3YWl0IE8oaSxyLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOkksbm9Db3B5OkE/Lm5vQ29weX0pO2lmKFEhPT0wJiZCIT09IiIpdGhyb3cgbmV3IEVycm9yKEIpO3JldHVybnt3ZWJXb3JrZXI6ZyxyYWRpdXM6c1swXT8uZGF0YX19dmFyIGdJPW5JO2FzeW5jIGZ1bmN0aW9uIGFJKEEsZSx0LHI9e30pe2xldCBvPVt7dHlwZTpkLkpzb25Db21wYXRpYmxlfV0saT1be3R5cGU6ZC5UcmFuc2Zvcm1MaXN0LGRhdGE6QX0se3R5cGU6ZC5JbWFnZSxkYXRhOmV9LHt0eXBlOmQuSW1hZ2UsZGF0YTp0fV0sST1bXTtJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIjIiKSxJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIHIucGFkZGluZzwidSImJkkucHVzaCgiLS1wYWRkaW5nIixyLnBhZGRpbmcudG9TdHJpbmcoKSk7bGV0IGE9InJlc2FtcGxlLWJvdW5kaW5nLWJveCIsbD1yPy53ZWJXb3JrZXI7bD09PXZvaWQgMCYmKGw9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOkMscmV0dXJuVmFsdWU6YyxzdGRlcnI6cCxvdXRwdXRzOnV9PWF3YWl0IE8oYSxJLG8saSx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOmwsbm9Db3B5OnI/Lm5vQ29weX0pO2lmKGMhPT0wJiZwIT09IiIpdGhyb3cgbmV3IEVycm9yKHApO3JldHVybnt3ZWJXb3JrZXI6Qyxib3VuZGluZ0JveDp1WzBdPy5kYXRhfX12YXIgc0k9YUk7YXN5bmMgZnVuY3Rpb24gQ0koQSxlLHQ9e30pe2xldCByPVt7dHlwZTpkLkltYWdlfV0sbz1be3R5cGU6ZC5JbWFnZSxkYXRhOkF9LHt0eXBlOmQuSW1hZ2UsZGF0YTplfV0saT1bXTtpZihpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIjAiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIHQudHJhbnNmb3JtPCJ1Iil7bGV0IHU9by5sZW5ndGgudG9TdHJpbmcoKTtvLnB1c2goe3R5cGU6ZC5UcmFuc2Zvcm1MaXN0LGRhdGE6dC50cmFuc2Zvcm19KSxpLnB1c2goIi0tdHJhbnNmb3JtIix1KX1pZih0eXBlb2YgdC5pbnRlcnBvbGF0b3I8InUiKXtpZighWyJsaW5lYXIiLCJuZWFyZXN0X25laWdoYm9yIiwibGFiZWxfaW1hZ2UiLCJiX3NwbGluZSIsIndpbmRvd2VkX3NpbmMiLCJnYXVzc2lhbiJdLmluY2x1ZGVzKHQuaW50ZXJwb2xhdG9yKSl0aHJvdyBuZXcgRXJyb3IoJyJpbnRlcnBvbGF0b3IiIG9wdGlvbiBtdXN0IGJlIG9uZSBvZiBsaW5lYXIsIG5lYXJlc3RfbmVpZ2hib3IsIGxhYmVsX2ltYWdlLCBiX3NwbGluZSwgd2luZG93ZWRfc2luYywgZ2F1c3NpYW4nKTtpLnB1c2goIi0taW50ZXJwb2xhdG9yIix0LmludGVycG9sYXRvci50b1N0cmluZygpKX10eXBlb2YgdC5kZWZhdWx0VmFsdWU8InUiJiZpLnB1c2goIi0tZGVmYXVsdC12YWx1ZSIsdC5kZWZhdWx0VmFsdWUudG9TdHJpbmcoKSk7bGV0IEI9InJlc2FtcGxlLXRvLXJlZmVyZW5jZSIscz10Py53ZWJXb3JrZXI7cz09PXZvaWQgMCYmKHM9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOmEscmV0dXJuVmFsdWU6bCxzdGRlcnI6QyxvdXRwdXRzOmN9PWF3YWl0IE8oQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOnMsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZDIT09IiIpdGhyb3cgbmV3IEVycm9yKEMpO3JldHVybnt3ZWJXb3JrZXI6YSxvdXRwdXQ6Y1swXT8uZGF0YX19dmFyIEJJPUNJO2FzeW5jIGZ1bmN0aW9uIFFJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxyPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLG89W107aWYoby5wdXNoKCIwIiksby5wdXNoKCIwIiksby5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnNpemU8InUiKXtpZihlLnNpemUubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2l6ZSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tc2l6ZSIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2l6ZS5tYXAoYXN5bmMgYz0+e28ucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBlLm91dHB1dFNwYWNpbmc8InUiKXtpZihlLm91dHB1dFNwYWNpbmcubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcib3V0cHV0LXNwYWNpbmciIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7by5wdXNoKCItLW91dHB1dC1zcGFjaW5nIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5vdXRwdXRTcGFjaW5nLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUub3V0cHV0T3JpZ2luPCJ1Iil7aWYoZS5vdXRwdXRPcmlnaW4ubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcib3V0cHV0LW9yaWdpbiIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tb3V0cHV0LW9yaWdpbiIpLGF3YWl0IFByb21pc2UuYWxsKGUub3V0cHV0T3JpZ2luLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUub3V0cHV0RGlyZWN0aW9uPCJ1Iil7aWYoZS5vdXRwdXREaXJlY3Rpb24ubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcib3V0cHV0LWRpcmVjdGlvbiIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tb3V0cHV0LWRpcmVjdGlvbiIpLGF3YWl0IFByb21pc2UuYWxsKGUub3V0cHV0RGlyZWN0aW9uLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUudHJhbnNmb3JtPCJ1Iil7bGV0IGM9ci5sZW5ndGgudG9TdHJpbmcoKTtyLnB1c2goe3R5cGU6ZC5UcmFuc2Zvcm1MaXN0LGRhdGE6ZS50cmFuc2Zvcm19KSxvLnB1c2goIi0tdHJhbnNmb3JtIixjKX1pZih0eXBlb2YgZS5pbnRlcnBvbGF0b3I8InUiKXtpZighWyJsaW5lYXIiLCJuZWFyZXN0X25laWdoYm9yIiwibGFiZWxfaW1hZ2UiLCJiX3NwbGluZSIsIndpbmRvd2VkX3NpbmMiLCJnYXVzc2lhbiJdLmluY2x1ZGVzKGUuaW50ZXJwb2xhdG9yKSl0aHJvdyBuZXcgRXJyb3IoJyJpbnRlcnBvbGF0b3IiIG9wdGlvbiBtdXN0IGJlIG9uZSBvZiBsaW5lYXIsIG5lYXJlc3RfbmVpZ2hib3IsIGxhYmVsX2ltYWdlLCBiX3NwbGluZSwgd2luZG93ZWRfc2luYywgZ2F1c3NpYW4nKTtvLnB1c2goIi0taW50ZXJwb2xhdG9yIixlLmludGVycG9sYXRvci50b1N0cmluZygpKX10eXBlb2YgZS5kZWZhdWx0VmFsdWU8InUiJiZvLnB1c2goIi0tZGVmYXVsdC12YWx1ZSIsZS5kZWZhdWx0VmFsdWUudG9TdHJpbmcoKSk7bGV0IGc9InJlc2FtcGxlIixRPWU/LndlYldvcmtlcjtRPT09dm9pZCAwJiYoUT1hd2FpdCBZKCkpO2xldHt3ZWJXb3JrZXI6QixyZXR1cm5WYWx1ZTpzLHN0ZGVycjphLG91dHB1dHM6bH09YXdhaXQgTyhnLG8sdCxyLHtwaXBlbGluZUJhc2VVcmw6TSgpLHBpcGVsaW5lV29ya2VyVXJsOmsoKSx3ZWJXb3JrZXI6USxub0NvcHk6ZT8ubm9Db3B5fSk7aWYocyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpCLG91dHB1dDpsWzBdPy5kYXRhfX12YXIgRUk9UUk7dmFyIEZyPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBDcj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIEJyPShBLGUpPT57Zm9yKHZhciB0IGluIGUpQ3IoQSx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBldD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxRcj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxFcj1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksUWU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFRBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSx0dD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixjcj17Y2FuSGFuZGxlOkE9PnR0KEEpJiZBW2V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBfQShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksZHIoQSl9fSxmcj17Y2FuSGFuZGxlOkE9PnR0KEEpJiZUQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0scnQ9bmV3IE1hcChbWyJwcm94eSIsY3JdLFsidGhyb3ciLGZyXV0pO2Z1bmN0aW9uIGxyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBfQShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIobyl7aWYoIW98fCFvLmRhdGEpcmV0dXJuO2lmKCFscih0LG8ub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7by5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOkksdHlwZTppLHBhdGg6c309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxRPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKHJBKSxCO3RyeXtsZXQgZz1zLnNsaWNlKDAsLTEpLnJlZHVjZSgoYyxDKT0+Y1tDXSxBKSxhPXMucmVkdWNlKChjLEMpPT5jW0NdLEEpO3N3aXRjaChpKXtjYXNlIkdFVCI6Qj1hO2JyZWFrO2Nhc2UiU0VUIjpnW3Muc2xpY2UoLTEpWzBdXT1yQShvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1hLmFwcGx5KGcsUSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgYz1uZXcgYSguLi5RKTtCPXlyKGMpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Yyxwb3J0MjpDfT1uZXcgTWVzc2FnZUNoYW5uZWw7X0EoQSxDKSxCPWNlKGMsW2NdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChnKXtCPXt2YWx1ZTpnLFtUQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKGc9Pih7dmFsdWU6ZyxbVEFdOjB9KSkudGhlbihnPT57bGV0W2EsY109S0EoZyk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2lkOkl9KSxjKSxpPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxvdChlKSxRZSBpbiBBJiZ0eXBlb2YgQVtRZV09PSJmdW5jdGlvbiImJkFbUWVdKCkpfSkuY2F0Y2goZz0+e2xldFthLGNdPUtBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbVEFdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6SX0pLGMpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gdXIoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gb3QoQSl7dXIoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBkcihBLGUpe3JldHVybiBFZShBLFtdLGUpfWZ1bmN0aW9uIE1BKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBJdChBKXtyZXR1cm4gc0EoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57b3QoQSl9KX12YXIgUEE9bmV3IFdlYWtNYXAseEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KFBBLmdldChBKXx8MCktMTtQQS5zZXQoQSxlKSxlPT09MCYmSXQoQSl9KTtmdW5jdGlvbiBocihBLGUpe2xldCB0PShQQS5nZXQoZSl8fDApKzE7UEEuc2V0KGUsdCkseEEmJnhBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBEcihBKXt4QSYmeEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBFZShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCByPSExLG89bmV3IFByb3h5KHQse2dldChJLGkpe2lmKE1BKHIpLGk9PT1FcilyZXR1cm4oKT0+e0RyKG8pLEl0KEEpLHI9ITB9O2lmKGk9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IHM9c0EoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKFE9PlEudG9TdHJpbmcoKSl9KS50aGVuKHJBKTtyZXR1cm4gcy50aGVuLmJpbmQocyl9cmV0dXJuIEVlKEEsWy4uLmUsaV0pfSxzZXQoSSxpLHMpe01BKHIpO2xldFtRLEJdPUtBKHMpO3JldHVybiBzQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsaV0ubWFwKGc9PmcudG9TdHJpbmcoKSksdmFsdWU6UX0sQikudGhlbihyQSl9LGFwcGx5KEksaSxzKXtNQShyKTtsZXQgUT1lW2UubGVuZ3RoLTFdO2lmKFE9PT1RcilyZXR1cm4gc0EoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihyQSk7aWYoUT09PSJiaW5kIilyZXR1cm4gRWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixnXT1BdChzKTtyZXR1cm4gc0EoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoYT0+YS50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sZykudGhlbihyQSl9LGNvbnN0cnVjdChJLGkpe01BKHIpO2xldFtzLFFdPUF0KGkpO3JldHVybiBzQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sUSkudGhlbihyQSl9fSk7cmV0dXJuIGhyKG8sQSksb31mdW5jdGlvbiBwcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBBdChBKXtsZXQgZT1BLm1hcChLQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLHByKGUubWFwKHQ9PnRbMV0pKV19dmFyIGl0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGNlKEEsZSl7cmV0dXJuIGl0LnNldChBLGUpLEF9ZnVuY3Rpb24geXIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W2V0XTohMH0pfWZ1bmN0aW9uIEtBKEEpe2ZvcihsZXRbZSx0XW9mIHJ0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixvXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxvXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0saXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gckEoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gcnQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBzQShBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKHI9PntsZXQgbz1tcigpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShpKXshaS5kYXRhfHwhaS5kYXRhLmlkfHxpLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxyKGkuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBtcigpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24geUEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp3cn09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6Z0F9PU9iamVjdCx7aXRlcmF0b3I6d0EsdG9TdHJpbmdUYWc6YXR9PVN5bWJvbCxXQT0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLHQpPT5BLmNhbGwoZSx0KSkoT2JqZWN0LnByb3RvdHlwZSksbUE9KEEsZSk9PntsZXQgdD1BLHI9W107Zm9yKDt0IT1udWxsJiZ0IT09T2JqZWN0LnByb3RvdHlwZTspe2lmKHIuaW5kZXhPZih0KSE9PS0xKXJldHVybiExO2lmKHIucHVzaCh0KSxXQSh0LGUpKXJldHVybiEwO3Q9Z0EodCl9cmV0dXJuITF9LFNyPShBLGUpPT5BIT1udWxsJiZtQShBLGUpP0FbZV06dm9pZCAwLGxlPShBPT5lPT57bGV0IHQ9d3IuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLE09QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PmxlKGUpPT09QSksWkE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OklBfT1BcnJheSxhQT1aQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYhYUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhYUEoQS5jb25zdHJ1Y3RvcikmJkgoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIEN0PU0oIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gUnIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZDdChBLmJ1ZmZlciksZX12YXIgRnI9WkEoInN0cmluZyIpLEg9WkEoImZ1bmN0aW9uIiksQnQ9WkEoIm51bWJlciIpLEJBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsTnI9QT0+QT09PSEwfHxBPT09ITEsakE9QT0+e2lmKCFCQShBKSlyZXR1cm4hMTtsZXQgZT1nQShBKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxnQShlKT09PW51bGwpJiYhbUEoQSxhdCkmJiFtQShBLHdBKX0sVXI9QT0+e2lmKCFCQShBKXx8Q0EoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sR3I9TSgiRGF0ZSIpLGtyPU0oIkZpbGUiKSxMcj1BPT4hIShBJiZ0eXBlb2YgQS51cmk8InUiKSxicj1BPT5BJiZ0eXBlb2YgQS5nZXRQYXJ0czwidSIsSnI9TSgiQmxvYiIpLEhyPU0oIkZpbGVMaXN0IiksT3I9QT0+QkEoQSkmJkgoQS5waXBlKTtmdW5jdGlvbiBZcigpe3JldHVybiB0eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnt9fXZhciBzdD1ZcigpLGd0PXR5cGVvZiBzdC5Gb3JtRGF0YTwidSI/c3QuRm9ybURhdGE6dm9pZCAwLHFyPUE9PntpZighQSlyZXR1cm4hMTtpZihndCYmQSBpbnN0YW5jZW9mIGd0KXJldHVybiEwO2xldCBlPWdBKEEpO2lmKCFlfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8IUgoQS5hcHBlbmQpKXJldHVybiExO2xldCB0PWxlKEEpO3JldHVybiB0PT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZIKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0ifSxNcj1NKCJVUkxTZWFyY2hQYXJhbXMiKSxbVHIsUHIseHIsS3JdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKE0pLF9yPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBTQShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCByLG87aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLElBKEEpKWZvcihyPTAsbz1BLmxlbmd0aDtyPG87cisrKWUuY2FsbChudWxsLEFbcl0scixBKTtlbHNle2lmKENBKEEpKXJldHVybjtsZXQgST10P09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGk9SS5sZW5ndGgscztmb3Iocj0wO3I8aTtyKyspcz1JW3JdLGUuY2FsbChudWxsLEFbc10scyxBKX19ZnVuY3Rpb24gUXQoQSxlKXtpZihDQShBKSlyZXR1cm4gbnVsbDtlPWUudG9Mb3dlckNhc2UoKTtsZXQgdD1PYmplY3Qua2V5cyhBKSxyPXQubGVuZ3RoLG87Zm9yKDtyLS0gPjA7KWlmKG89dFtyXSxlPT09by50b0xvd2VyQ2FzZSgpKXJldHVybiBvO3JldHVybiBudWxsfXZhciBvQT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLEV0PUE9PiFhQShBKSYmQSE9PW9BO2Z1bmN0aW9uIGZlKC4uLkEpe2xldHtjYXNlbGVzczplLHNraXBVbmRlZmluZWQ6dH09RXQodGhpcykmJnRoaXN8fHt9LHI9e30sbz0oSSxpKT0+e2lmKGk9PT0iX19wcm90b19fInx8aT09PSJjb25zdHJ1Y3RvciJ8fGk9PT0icHJvdG90eXBlIilyZXR1cm47bGV0IHM9ZSYmdHlwZW9mIGk9PSJzdHJpbmciJiZRdChyLGkpfHxpLFE9V0EocixzKT9yW3NdOnZvaWQgMDtqQShRKSYmakEoSSk/cltzXT1mZShRLEkpOmpBKEkpP3Jbc109ZmUoe30sSSk6SUEoSSk/cltzXT1JLnNsaWNlKCk6KCF0fHwhYUEoSSkpJiYocltzXT1JKX07Zm9yKGxldCBJPTAsaT1BLmxlbmd0aDtJPGk7SSsrKXtsZXQgcz1BW0ldO2lmKCFzfHxDQShzKXx8KFNBKHMsbyksdHlwZW9mIHMhPSJvYmplY3QifHxJQShzKSkpY29udGludWU7bGV0IFE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtmb3IobGV0IEI9MDtCPFEubGVuZ3RoO0IrKyl7bGV0IGc9UVtCXTtyby5jYWxsKHMsZykmJm8oc1tnXSxnKX19cmV0dXJuIHJ9dmFyIGpyPShBLGUsdCx7YWxsT3duS2V5czpyfT17fSk9PihTQShlLChvLEkpPT57dCYmSChvKT9PYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJLHtfX3Byb3RvX186bnVsbCx2YWx1ZTp5QShvLHQpLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSSx7X19wcm90b19fOm51bGwsdmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfSx7YWxsT3duS2V5czpyfSksQSksV3I9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxacj0oQSxlLHQscik9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwiY29uc3RydWN0b3IiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTpBLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7X19wcm90b19fOm51bGwsdmFsdWU6ZS5wcm90b3R5cGV9KSx0JiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLHQpfSxWcj0oQSxlLHQscik9PntsZXQgbyxJLGkscz17fTtpZihlPWV8fHt9LEE9PW51bGwpcmV0dXJuIGU7ZG97Zm9yKG89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksST1vLmxlbmd0aDtJLS0gPjA7KWk9b1tJXSwoIXJ8fHIoaSxBLGUpKSYmIXNbaV0mJihlW2ldPUFbaV0sc1tpXT0hMCk7QT10IT09ITEmJmdBKEEpfXdoaWxlKEEmJighdHx8dChBLGUpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBlfSx6cj0oQSxlLHQpPT57QT1TdHJpbmcoQSksKHQ9PT12b2lkIDB8fHQ+QS5sZW5ndGgpJiYodD1BLmxlbmd0aCksdC09ZS5sZW5ndGg7bGV0IHI9QS5pbmRleE9mKGUsdCk7cmV0dXJuIHIhPT0tMSYmcj09PXR9LFhyPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZihJQShBKSlyZXR1cm4gQTtsZXQgZT1BLmxlbmd0aDtpZighQnQoZSkpcmV0dXJuIG51bGw7bGV0IHQ9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOyl0W2VdPUFbZV07cmV0dXJuIHR9LHZyPShBPT5lPT5BJiZlIGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZnQShVaW50OEFycmF5KSksJHI9KEEsZSk9PntsZXQgcj0oQSYmQVt3QV0pLmNhbGwoQSksbztmb3IoOyhvPXIubmV4dCgpKSYmIW8uZG9uZTspe2xldCBJPW8udmFsdWU7ZS5jYWxsKEEsSVswXSxJWzFdKX19LEFvPShBLGUpPT57bGV0IHQscj1bXTtmb3IoOyh0PUEuZXhlYyhlKSkhPT1udWxsOylyLnB1c2godCk7cmV0dXJuIHJ9LGVvPU0oIkhUTUxGb3JtRWxlbWVudCIpLHRvPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKHQscixvKXtyZXR1cm4gci50b1VwcGVyQ2FzZSgpK299KSx7cHJvcGVydHlJc0VudW1lcmFibGU6cm99PU9iamVjdC5wcm90b3R5cGUsb289TSgiUmVnRXhwIiksY3Q9KEEsZSk9PntsZXQgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxyPXt9O1NBKHQsKG8sSSk9PntsZXQgaTsoaT1lKG8sSSxBKSkhPT0hMSYmKHJbSV09aXx8byl9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLHIpfSxJbz1BPT57Y3QoQSwoZSx0KT0+e2lmKEgoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5jbHVkZXModCkpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihIKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK3QrIlwnIil9KX19KX0saW89KEEsZSk9PntsZXQgdD17fSxyPW89PntvLmZvckVhY2goST0+e3RbSV09ITB9KX07cmV0dXJuIElBKEEpP3IoQSk6cihTdHJpbmcoQSkuc3BsaXQoZSkpLHR9LG5vPSgpPT57fSxzbz0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiBnbyhBKXtyZXR1cm4hIShBJiZIKEEuYXBwZW5kKSYmQVthdF09PT0iRm9ybURhdGEiJiZBW3dBXSl9dmFyIGFvPUE9PntsZXQgZT1uZXcgV2Vha1NldCx0PXI9PntpZihCQShyKSl7aWYoZS5oYXMocikpcmV0dXJuO2lmKENBKHIpKXJldHVybiByO2lmKCEoInRvSlNPTiJpbiByKSl7ZS5hZGQocik7bGV0IG89SUEocik/W106e307cmV0dXJuIFNBKHIsKEksaSk9PntsZXQgcz10KEkpOyFhQShzKSYmKG9baV09cyl9KSxlLmRlbGV0ZShyKSxvfX1yZXR1cm4gcn07cmV0dXJuIHQoQSl9LENvPU0oIkFzeW5jRnVuY3Rpb24iKSxCbz1BPT5BJiYoQkEoQSl8fEgoQSkpJiZIKEEudGhlbikmJkgoQS5jYXRjaCksZnQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KG9BLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOm8sZGF0YTpJfSk9PntvPT09b0EmJkk9PT10JiZyLmxlbmd0aCYmci5zaGlmdCgpKCl9LCExKSxvPT57ci5wdXNoKG8pLG9BLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsSChvQS5wb3N0TWVzc2FnZSkpLFFvPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChvQSk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxmdCxsdD1BPT5BIT1udWxsJiZIKEFbd0FdKSxFbz1BPT5BIT1udWxsJiZtQShBLHdBKSYmbHQoQSksbj17aXNBcnJheTpJQSxpc0FycmF5QnVmZmVyOkN0LGlzQnVmZmVyOkNBLGlzRm9ybURhdGE6cXIsaXNBcnJheUJ1ZmZlclZpZXc6UnIsaXNTdHJpbmc6RnIsaXNOdW1iZXI6QnQsaXNCb29sZWFuOk5yLGlzT2JqZWN0OkJBLGlzUGxhaW5PYmplY3Q6akEsaXNFbXB0eU9iamVjdDpVcixpc1JlYWRhYmxlU3RyZWFtOlRyLGlzUmVxdWVzdDpQcixpc1Jlc3BvbnNlOnhyLGlzSGVhZGVyczpLcixpc1VuZGVmaW5lZDphQSxpc0RhdGU6R3IsaXNGaWxlOmtyLGlzUmVhY3ROYXRpdmVCbG9iOkxyLGlzUmVhY3ROYXRpdmU6YnIsaXNCbG9iOkpyLGlzUmVnRXhwOm9vLGlzRnVuY3Rpb246SCxpc1N0cmVhbTpPcixpc1VSTFNlYXJjaFBhcmFtczpNcixpc1R5cGVkQXJyYXk6dnIsaXNGaWxlTGlzdDpIcixmb3JFYWNoOlNBLG1lcmdlOmZlLGV4dGVuZDpqcix0cmltOl9yLHN0cmlwQk9NOldyLGluaGVyaXRzOlpyLHRvRmxhdE9iamVjdDpWcixraW5kT2Y6bGUsa2luZE9mVGVzdDpNLGVuZHNXaXRoOnpyLHRvQXJyYXk6WHIsZm9yRWFjaEVudHJ5OiRyLG1hdGNoQWxsOkFvLGlzSFRNTEZvcm06ZW8saGFzT3duUHJvcGVydHk6V0EsaGFzT3duUHJvcDpXQSxoYXNPd25JblByb3RvdHlwZUNoYWluOm1BLGdldFNhZmVQcm9wOlNyLHJlZHVjZURlc2NyaXB0b3JzOmN0LGZyZWV6ZU1ldGhvZHM6SW8sdG9PYmplY3RTZXQ6aW8sdG9DYW1lbENhc2U6dG8sbm9vcDpubyx0b0Zpbml0ZU51bWJlcjpzbyxmaW5kS2V5OlF0LGdsb2JhbDpvQSxpc0NvbnRleHREZWZpbmVkOkV0LGlzU3BlY0NvbXBsaWFudEZvcm06Z28sdG9KU09OT2JqZWN0OmFvLGlzQXN5bmNGbjpDbyxpc1RoZW5hYmxlOkJvLHNldEltbWVkaWF0ZTpmdCxhc2FwOlFvLGlzSXRlcmFibGU6bHQsaXNTYWZlSXRlcmFibGU6RW99O3ZhciBjbz1uLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHV0PUE9PntsZXQgZT17fSx0LHIsbztyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihpKXtvPWkuaW5kZXhPZigiOiIpLHQ9aS5zdWJzdHJpbmcoMCxvKS50cmltKCkudG9Mb3dlckNhc2UoKSxyPWkuc3Vic3RyaW5nKG8rMSkudHJpbSgpLCEoIXR8fGVbdF0mJmNvW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2gocik6ZVt0XT1bcl06ZVt0XT1lW3RdP2VbdF0rIiwgIityOnIpfSksZX07ZnVuY3Rpb24gZm8oQSl7bGV0IGU9MCx0PUEubGVuZ3RoO2Zvcig7ZTx0Oyl7bGV0IHI9QS5jaGFyQ29kZUF0KGUpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7ZSs9MX1mb3IoO3Q+ZTspe2xldCByPUEuY2hhckNvZGVBdCh0LTEpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7dC09MX1yZXR1cm4gZT09PTAmJnQ9PT1BLmxlbmd0aD9BOkEuc2xpY2UoZSx0KX12YXIgbG89bmV3IFJlZ0V4cCgiW1xcXFx1MDAwMC1cXFxcdTAwMDhcXFxcdTAwMGEtXFxcXHUwMDFmXFxcXHUwMDdmXSsiLCJnIiksdW89bmV3IFJlZ0V4cCgiW15cXFxcdTAwMDlcXFxcdTAwMjAtXFxcXHUwMDdlXFxcXHUwMDgwLVxcXFx1MDBmZl0rIiwiZyIpO2Z1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIG4uaXNBcnJheShBKT9BLm1hcCh0PT51ZSh0LGUpKTpmbyhTdHJpbmcoQSkucmVwbGFjZShlLCIiKSl9dmFyIGR0PUE9PnVlKEEsbG8pLGhvPUE9PnVlKEEsdW8pO2Z1bmN0aW9uIFZBKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaChBLnRvSlNPTigpLCh0LHIpPT57ZVtyXT1obyh0KX0pLGV9dmFyIGh0PVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gUkEoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB6QShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6bi5pc0FycmF5KEEpP0EubWFwKHpBKTpkdChTdHJpbmcoQSkpfWZ1bmN0aW9uIERvKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksdD0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLHI7Zm9yKDtyPXQuZXhlYyhBKTspZVtyWzFdXT1yWzJdO3JldHVybiBlfXZhciBwbz1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBkZShBLGUsdCxyLG8pe2lmKG4uaXNGdW5jdGlvbihyKSlyZXR1cm4gci5jYWxsKHRoaXMsZSx0KTtpZihvJiYoZT10KSwhIW4uaXNTdHJpbmcoZSkpe2lmKG4uaXNTdHJpbmcocikpcmV0dXJuIGUuaW5kZXhPZihyKSE9PS0xO2lmKG4uaXNSZWdFeHAocikpcmV0dXJuIHIudGVzdChlKX19ZnVuY3Rpb24geW8oQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLChlLHQscik9PnQudG9VcHBlckNhc2UoKStyKX1mdW5jdGlvbiBtbyhBLGUpe2xldCB0PW4udG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChyPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEscit0LHtfX3Byb3RvX186bnVsbCx2YWx1ZTpmdW5jdGlvbihvLEksaSl7cmV0dXJuIHRoaXNbcl0uY2FsbCh0aGlzLGUsbyxJLGkpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciBRQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LHIpe2xldCBvPXRoaXM7ZnVuY3Rpb24gSShzLFEsQil7bGV0IGc9UkEoUSk7aWYoIWcpcmV0dXJuO2xldCBhPW4uZmluZEtleShvLGcpOyghYXx8b1thXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZvW2FdIT09ITEpJiYob1thfHxRXT16QShzKSl9bGV0IGk9KHMsUSk9Pm4uZm9yRWFjaChzLChCLGcpPT5JKEIsZyxRKSk7aWYobi5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilpKGUsdCk7ZWxzZSBpZihuLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFwbyhlKSlpKHV0KGUpLHQpO2Vsc2UgaWYobi5pc09iamVjdChlKSYmbi5pc1NhZmVJdGVyYWJsZShlKSl7bGV0IHM9T2JqZWN0LmNyZWF0ZShudWxsKSxRLEI7Zm9yKGxldCBnIG9mIGUpe2lmKCFuLmlzQXJyYXkoZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtCPWdbMF0sbi5oYXNPd25Qcm9wKHMsQik/KFE9c1tCXSxzW0JdPW4uaXNBcnJheShRKT9bLi4uUSxnWzFdXTpbUSxnWzFdXSk6c1tCXT1nWzFdfWkocyx0KX1lbHNlIGUhPW51bGwmJkkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9UkEoZSksZSl7bGV0IHI9bi5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IG89dGhpc1tyXTtpZighdClyZXR1cm4gbztpZih0PT09ITApcmV0dXJuIERvKG8pO2lmKG4uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsbyxyKTtpZihuLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMobyk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9UkEoZSksZSl7bGV0IHI9bi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxkZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsbz0hMTtmdW5jdGlvbiBJKGkpe2lmKGk9UkEoaSksaSl7bGV0IHM9bi5maW5kS2V5KHIsaSk7cyYmKCF0fHxkZShyLHJbc10scyx0KSkmJihkZWxldGUgcltzXSxvPSEwKX19cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goSSk6SShlKSxvfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsbz0hMTtmb3IoO3ItLTspe2xldCBJPXRbcl07KCFlfHxkZSh0aGlzLHRoaXNbSV0sSSxlLCEwKSkmJihkZWxldGUgdGhpc1tJXSxvPSEwKX1yZXR1cm4gb31ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBuLmZvckVhY2godGhpcywobyxJKT0+e2xldCBpPW4uZmluZEtleShyLEkpO2lmKGkpe3RbaV09ekEobyksZGVsZXRlIHRbSV07cmV0dXJufWxldCBzPWU/eW8oSSk6U3RyaW5nKEkpLnRyaW0oKTtzIT09SSYmZGVsZXRlIHRbSV0sdFtzXT16QShvKSxyW3NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChyLG8pPT57ciE9bnVsbCYmciE9PSExJiYodFtvXT1lJiZuLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4udCl7bGV0IHI9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaChvPT5yLnNldChvKSkscn1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHI9KHRoaXNbaHRdPXRoaXNbaHRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMsbz10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBJKGkpe2xldCBzPVJBKGkpO3Jbc118fChtbyhvLGkpLHJbc109ITApfXJldHVybiBuLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKEkpOkkoZSksdGhpc319O1FBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtuLnJlZHVjZURlc2NyaXB0b3JzKFFBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQocil7dGhpc1t0XT1yfX19KTtuLmZyZWV6ZU1ldGhvZHMoUUEpO3ZhciBGPVFBO3ZhciB3bz0iW1JFREFDVEVEICoqKipdIjtmdW5jdGlvbiBTbyhBKXtpZihuLmhhc093blByb3AoQSwidG9KU09OIikpcmV0dXJuITA7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKEEpO2Zvcig7ZSYmZSE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihuLmhhc093blByb3AoZSwidG9KU09OIikpcmV0dXJuITA7ZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9cmV0dXJuITF9ZnVuY3Rpb24gUm8oQSxlKXtsZXQgdD1uZXcgU2V0KGUubWFwKEk9PlN0cmluZyhJKS50b0xvd2VyQ2FzZSgpKSkscj1bXSxvPUk9PntpZihJPT09bnVsbHx8dHlwZW9mIEkhPSJvYmplY3QifHxuLmlzQnVmZmVyKEkpKXJldHVybiBJO2lmKHIuaW5kZXhPZihJKSE9PS0xKXJldHVybjtJIGluc3RhbmNlb2YgRiYmKEk9SS50b0pTT04oKSksci5wdXNoKEkpO2xldCBpO2lmKG4uaXNBcnJheShJKSlpPVtdLEkuZm9yRWFjaCgocyxRKT0+e2xldCBCPW8ocyk7bi5pc1VuZGVmaW5lZChCKXx8KGlbUV09Qil9KTtlbHNle2lmKCFuLmlzUGxhaW5PYmplY3QoSSkmJlNvKEkpKXJldHVybiByLnBvcCgpLEk7aT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXRbcyxRXW9mIE9iamVjdC5lbnRyaWVzKEkpKXtsZXQgQj10LmhhcyhzLnRvTG93ZXJDYXNlKCkpP3dvOm8oUSk7bi5pc1VuZGVmaW5lZChCKXx8KGlbc109Qil9fXJldHVybiByLnBvcCgpLGl9O3JldHVybiBvKEEpfXZhciBrPWNsYXNzIEEgZXh0ZW5kcyBFcnJvcntzdGF0aWMgZnJvbShlLHQscixvLEksaSl7bGV0IHM9bmV3IEEoZS5tZXNzYWdlLHR8fGUuY29kZSxyLG8sSSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmUsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxzLm5hbWU9ZS5uYW1lLGUuc3RhdHVzIT1udWxsJiZzLnN0YXR1cz09bnVsbCYmKHMuc3RhdHVzPWUuc3RhdHVzKSxpJiZPYmplY3QuYXNzaWduKHMsaSksc31jb25zdHJ1Y3RvcihlLHQscixvLEkpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7X19wcm90b19fOm51bGwsdmFsdWU6ZSxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdGhpcy5pc0F4aW9zRXJyb3I9ITAsdCYmKHRoaXMuY29kZT10KSxyJiYodGhpcy5jb25maWc9ciksbyYmKHRoaXMucmVxdWVzdD1vKSxJJiYodGhpcy5yZXNwb25zZT1JLHRoaXMuc3RhdHVzPUkuc3RhdHVzKX10b0pTT04oKXtsZXQgZT10aGlzLmNvbmZpZyx0PWUmJm4uaGFzT3duUHJvcChlLCJyZWRhY3QiKT9lLnJlZGFjdDp2b2lkIDAscj1uLmlzQXJyYXkodCkmJnQubGVuZ3RoPjA/Um8oZSx0KTpuLnRvSlNPTk9iamVjdChlKTtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6cixjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX07ay5FUlJfQkFEX09QVElPTl9WQUxVRT0iRVJSX0JBRF9PUFRJT05fVkFMVUUiO2suRVJSX0JBRF9PUFRJT049IkVSUl9CQURfT1BUSU9OIjtrLkVDT05OQUJPUlRFRD0iRUNPTk5BQk9SVEVEIjtrLkVUSU1FRE9VVD0iRVRJTUVET1VUIjtrLkVDT05OUkVGVVNFRD0iRUNPTk5SRUZVU0VEIjtrLkVSUl9ORVRXT1JLPSJFUlJfTkVUV09SSyI7ay5FUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTPSJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIjtrLkVSUl9ERVBSRUNBVEVEPSJFUlJfREVQUkVDQVRFRCI7ay5FUlJfQkFEX1JFU1BPTlNFPSJFUlJfQkFEX1JFU1BPTlNFIjtrLkVSUl9CQURfUkVRVUVTVD0iRVJSX0JBRF9SRVFVRVNUIjtrLkVSUl9DQU5DRUxFRD0iRVJSX0NBTkNFTEVEIjtrLkVSUl9OT1RfU1VQUE9SVD0iRVJSX05PVF9TVVBQT1JUIjtrLkVSUl9JTlZBTElEX1VSTD0iRVJSX0lOVkFMSURfVVJMIjtrLkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQ9IkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQiO3ZhciBmPWs7dmFyIFhBPW51bGw7dmFyIHBlPTEwMDtmdW5jdGlvbiBEZShBKXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KEEpfHxuLmlzQXJyYXkoQSl9ZnVuY3Rpb24gRHQoQSl7cmV0dXJuIG4uZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gaGUoQSxlLHQpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihvLEkpe3JldHVybiBvPUR0KG8pLCF0JiZJPyJbIitvKyJdIjpvfSkuam9pbih0PyIuIjoiIik6ZX1mdW5jdGlvbiBGbyhBKXtyZXR1cm4gbi5pc0FycmF5KEEpJiYhQS5zb21lKERlKX12YXIgTm89bi50b0ZsYXRPYmplY3Qobix7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIFVvKEEsZSx0KXtpZighbi5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhYQXx8Rm9ybURhdGEpLHQ9bi50b0ZsYXRPYmplY3QodCx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGQsRCl7cmV0dXJuIW4uaXNVbmRlZmluZWQoRFtkXSl9KTtsZXQgcj10Lm1ldGFUb2tlbnMsbz10LnZpc2l0b3J8fHUsST10LmRvdHMsaT10LmluZGV4ZXMscz10LkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYixRPXQubWF4RGVwdGg9PT12b2lkIDA/cGU6dC5tYXhEZXB0aCxCPXMmJm4uaXNTcGVjQ29tcGxpYW50Rm9ybShlKSxnPVtdO2lmKCFuLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBhKEUpe2lmKEU9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKEUpKXJldHVybiBFLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oRSkpcmV0dXJuIEUudG9TdHJpbmcoKTtpZighQiYmbi5pc0Jsb2IoRSkpdGhyb3cgbmV3IGYoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7aWYobi5pc0FycmF5QnVmZmVyKEUpfHxuLmlzVHlwZWRBcnJheShFKSl7aWYoQiYmdHlwZW9mIHM9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBzKFtFXSk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKEUpO3Rocm93IG5ldyBmKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIsZi5FUlJfTk9UX1NVUFBPUlQpfXJldHVybiBFfWZ1bmN0aW9uIGMoRSl7aWYoRT5RKXRocm93IG5ldyBmKCJPYmplY3QgaXMgdG9vIGRlZXBseSBuZXN0ZWQgKCIrRSsiIGxldmVscykuIE1heCBkZXB0aDogIitRLGYuRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gQyhFLGQpe2lmKFE9PT0xLzApcmV0dXJuIEpTT04uc3RyaW5naWZ5KEUpO2xldCBEPVtdO3JldHVybiBKU09OLnN0cmluZ2lmeShFLGZ1bmN0aW9uKGIsUil7aWYoIW4uaXNPYmplY3QoUikpcmV0dXJuIFI7Zm9yKDtELmxlbmd0aCYmRFtELmxlbmd0aC0xXSE9PXRoaXM7KUQucG9wKCk7cmV0dXJuIEQucHVzaChSKSxjKGQrRC5sZW5ndGgtMSksUn0pfWZ1bmN0aW9uIHUoRSxkLEQpe2xldCB5PUU7aWYobi5pc1JlYWN0TmF0aXZlKGUpJiZuLmlzUmVhY3ROYXRpdmVCbG9iKEUpKXJldHVybiBlLmFwcGVuZChoZShELGQsSSksYShFKSksITE7aWYoRSYmIUQmJnR5cGVvZiBFPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChkLCJ7fSIpKWQ9cj9kOmQuc2xpY2UoMCwtMiksRT1DKEUsMSk7ZWxzZSBpZihuLmlzQXJyYXkoRSkmJkZvKEUpfHwobi5pc0ZpbGVMaXN0KEUpfHxuLmVuZHNXaXRoKGQsIltdIikpJiYoeT1uLnRvQXJyYXkoRSkpKXJldHVybiBkPUR0KGQpLHkuZm9yRWFjaChmdW5jdGlvbihSLFopeyEobi5pc1VuZGVmaW5lZChSKXx8Uj09PW51bGwpJiZlLmFwcGVuZChpPT09ITA/aGUoW2RdLFosSSk6aT09PW51bGw/ZDpkKyJbXSIsYShSKSl9KSwhMX1yZXR1cm4gRGUoRSk/ITA6KGUuYXBwZW5kKGhlKEQsZCxJKSxhKEUpKSwhMSl9bGV0IGg9T2JqZWN0LmFzc2lnbihObyx7ZGVmYXVsdFZpc2l0b3I6dSxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTpEZX0pO2Z1bmN0aW9uIGwoRSxkLEQ9MCl7aWYoIW4uaXNVbmRlZmluZWQoRSkpe2lmKGMoRCksZy5pbmRleE9mKEUpIT09LTEpdGhyb3cgbmV3IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitkLmpvaW4oIi4iKSk7Zy5wdXNoKEUpLG4uZm9yRWFjaChFLGZ1bmN0aW9uKGIsUil7KCEobi5pc1VuZGVmaW5lZChiKXx8Yj09PW51bGwpJiZvLmNhbGwoZSxiLG4uaXNTdHJpbmcoUik/Ui50cmltKCk6UixkLGgpKT09PSEwJiZsKGIsZD9kLmNvbmNhdChSKTpbUl0sRCsxKX0pLGcucG9wKCl9fWlmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gbChBKSxlfXZhciAkPVVvO2Z1bmN0aW9uIHB0KEEpe2xldCBlPXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjAvZyxmdW5jdGlvbihyKXtyZXR1cm4gZVtyXX0pfWZ1bmN0aW9uIHl0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmJChBLHRoaXMsZSl9dmFyIG10PXl0LnByb3RvdHlwZTttdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX07bXQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IHQ9ZT9yPT5lLmNhbGwodGhpcyxyLHB0KTpwdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgdkE9eXQ7ZnVuY3Rpb24gR28oQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBGQShBLGUsdCl7aWYoIWUpcmV0dXJuIEE7QT1BfHwiIjtsZXQgcj1uLmlzRnVuY3Rpb24odCk/e3NlcmlhbGl6ZTp0fTp0LG89bi5nZXRTYWZlUHJvcChyLCJlbmNvZGUiKXx8R28sST1uLmdldFNhZmVQcm9wKHIsInNlcmlhbGl6ZSIpLGk7aWYoST9pPUkoZSxyKTppPW4uaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyB2QShlLHIpLnRvU3RyaW5nKG8pLGkpe2xldCBzPUEuaW5kZXhPZigiJTIzIik7cyE9PS0xJiYoQT1BLnNsaWNlKDAscykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2l9cmV0dXJuIEF9dmFyIHllPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSx0LHIpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6cj9yLnN5bmNocm9ub3VzOiExLHJ1bldoZW46cj9yLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXtuLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihyKXtyIT09bnVsbCYmZShyKX0pfX0sbWU9eWU7dmFyIEVBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExLGxlZ2FjeUludGVyY2VwdG9yUmVxUmVzT3JkZXJpbmc6ITAsYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOiExLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6ITB9O3ZhciB3dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6dkE7dmFyIFN0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgUnQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgRnQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6d3QsRm9ybURhdGE6U3QsQmxvYjpSdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBSZT17fTtCcihSZSx7aGFzQnJvd3NlckVudjooKT0+U2UsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5rbyxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PkxvLG5hdmlnYXRvcjooKT0+d2Usb3JpZ2luOigpPT5ib30pO3ZhciBTZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1Iix3ZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsa289U2UmJighd2V8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2Yod2UucHJvZHVjdCk8MCksTG89dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLGJvPVNlJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBTPXsuLi5SZSwuLi5GdH07ZnVuY3Rpb24gRmUoQSxlKXtyZXR1cm4gJChBLG5ldyBTLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKHQscixvLEkpe3JldHVybiBTLmlzTm9kZSYmbi5pc0J1ZmZlcih0KT8odGhpcy5hcHBlbmQocix0LnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOkkuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi5lfSl9dmFyIE50PXBlO2Z1bmN0aW9uIFV0KEEpe2lmKEE+TnQpdGhyb3cgbmV3IGYoIkZvcm1EYXRhIGZpZWxkIGlzIHRvbyBkZWVwbHkgbmVzdGVkICgiK0ErIiBsZXZlbHMpLiBNYXggZGVwdGg6ICIrTnQsZi5FUlJfRk9STV9EQVRBX0RFUFRIX0VYQ0VFREVEKX1mdW5jdGlvbiBKbyhBKXtsZXQgZT1bXSx0PS9cXHcrfFxcWyhcXHcqKV0vZyxyO2Zvcig7KHI9dC5leGVjKEEpKSE9PW51bGw7KVV0KGUubGVuZ3RoKSxlLnB1c2goclswXT09PSJbXSI/IiI6clsxXXx8clswXSk7cmV0dXJuIGV9ZnVuY3Rpb24gSG8oQSl7bGV0IGU9e30sdD1PYmplY3Qua2V5cyhBKSxyLG89dC5sZW5ndGgsSTtmb3Iocj0wO3I8bztyKyspST10W3JdLGVbSV09QVtJXTtyZXR1cm4gZX1mdW5jdGlvbiBPbyhBKXtmdW5jdGlvbiBlKHQscixvLEkpe1V0KEkpO2xldCBpPXRbSSsrXTtpZihpPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IHM9TnVtYmVyLmlzRmluaXRlKCtpKSxRPUk+PXQubGVuZ3RoO3JldHVybiBpPSFpJiZuLmlzQXJyYXkobyk/by5sZW5ndGg6aSxRPyhuLmhhc093blByb3AobyxpKT9vW2ldPW4uaXNBcnJheShvW2ldKT9vW2ldLmNvbmNhdChyKTpbb1tpXSxyXTpvW2ldPXIsIXMpOigoIW4uaGFzT3duUHJvcChvLGkpfHwhbi5pc09iamVjdChvW2ldKSkmJihvW2ldPVtdKSxlKHQscixvW2ldLEkpJiZuLmlzQXJyYXkob1tpXSkmJihvW2ldPUhvKG9baV0pKSwhcyl9aWYobi5pc0Zvcm1EYXRhKEEpJiZuLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIG4uZm9yRWFjaEVudHJ5KEEsKHIsbyk9PntlKEpvKHIpLG8sdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyICRBPU9vO3ZhciBjQT0oQSxlKT0+QSE9bnVsbCYmbi5oYXNPd25Qcm9wKEEsZSk/QVtlXTp2b2lkIDA7ZnVuY3Rpb24gWW8oQSxlLHQpe2lmKG4uaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxuLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIE5lPXt0cmFuc2l0aW9uYWw6RUEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9bi5pc09iamVjdChlKTtpZihJJiZuLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksbi5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KCRBKGUpKTplO2lmKG4uaXNBcnJheUJ1ZmZlcihlKXx8bi5pc0J1ZmZlcihlKXx8bi5pc1N0cmVhbShlKXx8bi5pc0ZpbGUoZSl8fG4uaXNCbG9iKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYobi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IHM7aWYoSSl7bGV0IFE9Y0EodGhpcywiZm9ybVNlcmlhbGl6ZXIiKTtpZihyLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBGZShlLFEpLnRvU3RyaW5nKCk7aWYoKHM9bi5pc0ZpbGVMaXN0KGUpKXx8ci5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBCPWNBKHRoaXMsImVudiIpLGc9QiYmQi5Gb3JtRGF0YTtyZXR1cm4gJChzP3siZmlsZXNbXSI6ZX06ZSxnJiZuZXcgZyxRKX19cmV0dXJuIEl8fG8/KHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxZbyhlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgdD1jQSh0aGlzLCJ0cmFuc2l0aW9uYWwiKXx8TmUudHJhbnNpdGlvbmFsLHI9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxvPWNBKHRoaXMsInJlc3BvbnNlVHlwZSIpLEk9bz09PSJqc29uIjtpZihuLmlzUmVzcG9uc2UoZSl8fG4uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZuLmlzU3RyaW5nKGUpJiYociYmIW98fEkpKXtsZXQgcz0hKHQmJnQuc2lsZW50SlNPTlBhcnNpbmcpJiZJO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLGNBKHRoaXMsInBhcnNlUmV2aXZlciIpKX1jYXRjaChRKXtpZihzKXRocm93IFEubmFtZT09PSJTeW50YXhFcnJvciI/Zi5mcm9tKFEsZi5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCxjQSh0aGlzLCJyZXNwb25zZSIpKTpRfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6Uy5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6Uy5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsInF1ZXJ5Il0sQT0+e05lLmhlYWRlcnNbQV09e319KTt2YXIgZkE9TmU7ZnVuY3Rpb24gTkEoQSxlKXtsZXQgdD10aGlzfHxmQSxyPWV8fHQsbz1GLmZyb20oci5oZWFkZXJzKSxJPXIuZGF0YTtyZXR1cm4gbi5mb3JFYWNoKEEsZnVuY3Rpb24ocyl7ST1zLmNhbGwodCxJLG8ubm9ybWFsaXplKCksZT9lLnN0YXR1czp2b2lkIDApfSksby5ub3JtYWxpemUoKSxJfWZ1bmN0aW9uIFVBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9dmFyIFVlPWNsYXNzIGV4dGVuZHMgZntjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZT8/ImNhbmNlbGVkIixmLkVSUl9DQU5DRUxFRCx0LHIpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciIsdGhpcy5fX0NBTkNFTF9fPSEwfX0seD1VZTtmdW5jdGlvbiBHQShBLGUsdCl7bGV0IHI9dC5jb25maWcudmFsaWRhdGVTdGF0dXM7IXQuc3RhdHVzfHwhcnx8cih0LnN0YXR1cyk/QSh0KTplKG5ldyBmKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrdC5zdGF0dXMsdC5zdGF0dXM+PTQwMCYmdC5zdGF0dXM8NTAwP2YuRVJSX0JBRF9SRVFVRVNUOmYuRVJSX0JBRF9SRVNQT05TRSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIEdlKEEpe2xldCBlPS9eKFstK1xcd117MSwyNX0pOig/OlxcL1xcLyk/Ly5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBxbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLG89MCxJPTAsaTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKFEpe2xldCBCPURhdGUubm93KCksZz1yW0ldO2l8fChpPUIpLHRbb109USxyW29dPUI7bGV0IGE9SSxjPTA7Zm9yKDthIT09bzspYys9dFthKytdLGE9YSVBO2lmKG89KG8rMSklQSxvPT09SSYmKEk9KEkrMSklQSksQi1pPGUpcmV0dXJuO2xldCBDPWcmJkItZztyZXR1cm4gQz9NYXRoLnJvdW5kKGMqMWUzL0MpOnZvaWQgMH19dmFyIEd0PXFvO2Z1bmN0aW9uIE1vKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLG8sSSxpPShCLGc9RGF0ZS5ub3coKSk9Pnt0PWcsbz1udWxsLEkmJihjbGVhclRpbWVvdXQoSSksST1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IGc9RGF0ZS5ub3coKSxhPWctdDthPj1yP2koQixnKToobz1CLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsaShvKX0sci1hKSkpfSwoKT0+byYmaShvKV19dmFyIGt0PU1vO3ZhciBsQT0oQSxlLHQ9Myk9PntsZXQgcj0wLG89R3QoNTAsMjUwKTtyZXR1cm4ga3QoST0+e2lmKCFJfHx0eXBlb2YgSS5sb2FkZWQhPSJudW1iZXIiKXJldHVybjtsZXQgaT1JLmxvYWRlZCxzPUkubGVuZ3RoQ29tcHV0YWJsZT9JLnRvdGFsOnZvaWQgMCxRPXMhPW51bGw/TWF0aC5taW4oaSxzKTppLEI9TWF0aC5tYXgoMCxRLXIpLGc9byhCKTtyPU1hdGgubWF4KHIsUSk7bGV0IGE9e2xvYWRlZDpRLHRvdGFsOnMscHJvZ3Jlc3M6cz9RL3M6dm9pZCAwLGJ5dGVzOkIscmF0ZTpnfHx2b2lkIDAsZXN0aW1hdGVkOmcmJnM/KHMtUSkvZzp2b2lkIDAsZXZlbnQ6SSxsZW5ndGhDb21wdXRhYmxlOnMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoYSl9LHQpfSxrZT0oQSxlKT0+e2xldCB0PUEhPW51bGw7cmV0dXJuW3I9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6dCx0b3RhbDpBLGxvYWRlZDpyfSksZVsxXV19LExlPUE9PiguLi5lKT0+bi5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgTHQ9Uy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT50PT4odD1uZXcgVVJMKHQsUy5vcmlnaW4pLEEucHJvdG9jb2w9PT10LnByb3RvY29sJiZBLmhvc3Q9PT10Lmhvc3QmJihlfHxBLnBvcnQ9PT10LnBvcnQpKSkobmV3IFVSTChTLm9yaWdpbiksUy5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoUy5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBidD1TLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLHQscixvLEksaSl7aWYodHlwZW9mIGRvY3VtZW50PiJ1IilyZXR1cm47bGV0IHM9W2Ake0F9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfWBdO24uaXNOdW1iZXIodCkmJnMucHVzaChgZXhwaXJlcz0ke25ldyBEYXRlKHQpLnRvVVRDU3RyaW5nKCl9YCksbi5pc1N0cmluZyhyKSYmcy5wdXNoKGBwYXRoPSR7cn1gKSxuLmlzU3RyaW5nKG8pJiZzLnB1c2goYGRvbWFpbj0ke299YCksST09PSEwJiZzLnB1c2goInNlY3VyZSIpLG4uaXNTdHJpbmcoaSkmJnMucHVzaChgU2FtZVNpdGU9JHtpfWApLGRvY3VtZW50LmNvb2tpZT1zLmpvaW4oIjsgIil9LHJlYWQoQSl7aWYodHlwZW9mIGRvY3VtZW50PiJ1IilyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IHI9ZVt0XS5yZXBsYWNlKC9eXFxzKy8sIiIpLG89ci5pbmRleE9mKCI9Iik7aWYobyE9PS0xJiZyLnNsaWNlKDAsbyk9PT1BKXRyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHIuc2xpY2UobysxKSl9Y2F0Y2h7cmV0dXJuIHIuc2xpY2UobysxKX19cmV0dXJuIG51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSwiLyIpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIGJlKEEpe3JldHVybiB0eXBlb2YgQSE9InN0cmluZyI/ITE6L14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gSmUoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlxcLysvLCIiKTpBfXZhciBUbz0vXmh0dHBzPzooPyFcXC9cXC8pL2ksUG89L1tcXHRcXG5cXHJdL2c7ZnVuY3Rpb24geG8oQSl7bGV0IGU9MDtmb3IoO2U8QS5sZW5ndGgmJkEuY2hhckNvZGVBdChlKTw9MzI7KWUrKztyZXR1cm4gQS5zbGljZShlKX1mdW5jdGlvbiBLbyhBKXtyZXR1cm4geG8oQSkucmVwbGFjZShQbywiIil9ZnVuY3Rpb24gSnQoQSxlKXtpZih0eXBlb2YgQT09InN0cmluZyImJlRvLnRlc3QoS28oQSkpKXRocm93IG5ldyBmKFwnSW52YWxpZCBVUkw6IG1pc3NpbmcgIi8vIiBhZnRlciBwcm90b2NvbFwnLGYuRVJSX0lOVkFMSURfVVJMLGUpfWZ1bmN0aW9uIGtBKEEsZSx0LHIpe0p0KGUscik7bGV0IG89IWJlKGUpO3JldHVybiBBJiYob3x8dD09PSExKT8oSnQoQSxyKSxKZShBLGUpKTplfXZhciBIdD1BPT5BIGluc3RhbmNlb2YgRj97Li4uQX06QTtmdW5jdGlvbiBUKEEsZSl7QT1BfHx7fSxlPWV8fHt9O2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImhhc093blByb3BlcnR5Iix7X19wcm90b19fOm51bGwsdmFsdWU6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO2Z1bmN0aW9uIHIoZyxhLGMsQyl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChnKSYmbi5pc1BsYWluT2JqZWN0KGEpP24ubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Q30sZyxhKTpuLmlzUGxhaW5PYmplY3QoYSk/bi5tZXJnZSh7fSxhKTpuLmlzQXJyYXkoYSk/YS5zbGljZSgpOmF9ZnVuY3Rpb24gbyhnLGEsYyxDKXtpZihuLmlzVW5kZWZpbmVkKGEpKXtpZighbi5pc1VuZGVmaW5lZChnKSlyZXR1cm4gcih2b2lkIDAsZyxjLEMpfWVsc2UgcmV0dXJuIHIoZyxhLGMsQyl9ZnVuY3Rpb24gSShnLGEpe2lmKCFuLmlzVW5kZWZpbmVkKGEpKXJldHVybiByKHZvaWQgMCxhKX1mdW5jdGlvbiBpKGcsYSl7aWYobi5pc1VuZGVmaW5lZChhKSl7aWYoIW4uaXNVbmRlZmluZWQoZykpcmV0dXJuIHIodm9pZCAwLGcpfWVsc2UgcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIHMoZyl7bGV0IGE9bi5oYXNPd25Qcm9wKGUsInRyYW5zaXRpb25hbCIpP2UudHJhbnNpdGlvbmFsOnZvaWQgMDtpZighbi5pc1VuZGVmaW5lZChhKSlpZihuLmlzUGxhaW5PYmplY3QoYSkpe2lmKG4uaGFzT3duUHJvcChhLGcpKXJldHVybiBhW2ddfWVsc2UgcmV0dXJuO2xldCBjPW4uaGFzT3duUHJvcChBLCJ0cmFuc2l0aW9uYWwiKT9BLnRyYW5zaXRpb25hbDp2b2lkIDA7aWYobi5pc1BsYWluT2JqZWN0KGMpJiZuLmhhc093blByb3AoYyxnKSlyZXR1cm4gY1tnXX1mdW5jdGlvbiBRKGcsYSxjKXtpZihuLmhhc093blByb3AoZSxjKSlyZXR1cm4gcihnLGEpO2lmKG4uaGFzT3duUHJvcChBLGMpKXJldHVybiByKHZvaWQgMCxnKX1sZXQgQj17dXJsOkksbWV0aG9kOkksZGF0YTpJLGJhc2VVUkw6aSx0cmFuc2Zvcm1SZXF1ZXN0OmksdHJhbnNmb3JtUmVzcG9uc2U6aSxwYXJhbXNTZXJpYWxpemVyOmksdGltZW91dDppLHRpbWVvdXRNZXNzYWdlOmksd2l0aENyZWRlbnRpYWxzOmksd2l0aFhTUkZUb2tlbjppLGFkYXB0ZXI6aSxyZXNwb25zZVR5cGU6aSx4c3JmQ29va2llTmFtZTppLHhzcmZIZWFkZXJOYW1lOmksb25VcGxvYWRQcm9ncmVzczppLG9uRG93bmxvYWRQcm9ncmVzczppLGRlY29tcHJlc3M6aSxtYXhDb250ZW50TGVuZ3RoOmksbWF4Qm9keUxlbmd0aDppLGJlZm9yZVJlZGlyZWN0OmksdHJhbnNwb3J0OmksaHR0cEFnZW50OmksaHR0cHNBZ2VudDppLGNhbmNlbFRva2VuOmksc29ja2V0UGF0aDppLGFsbG93ZWRTb2NrZXRQYXRoczppLHJlc3BvbnNlRW5jb2Rpbmc6aSx2YWxpZGF0ZVN0YXR1czpRLGhlYWRlcnM6KGcsYSxjKT0+byhIdChnKSxIdChhKSxjLCEwKX07cmV0dXJuIG4uZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi5lfSksZnVuY3Rpb24oYSl7aWYoYT09PSJfX3Byb3RvX18ifHxhPT09ImNvbnN0cnVjdG9yInx8YT09PSJwcm90b3R5cGUiKXJldHVybjtsZXQgYz1uLmhhc093blByb3AoQixhKT9CW2FdOm8sQz1uLmhhc093blByb3AoQSxhKT9BW2FdOnZvaWQgMCx1PW4uaGFzT3duUHJvcChlLGEpP2VbYV06dm9pZCAwLGg9YyhDLHUsYSk7bi5pc1VuZGVmaW5lZChoKSYmYyE9PVF8fCh0W2FdPWgpfSksbi5oYXNPd25Qcm9wKGUsInZhbGlkYXRlU3RhdHVzIikmJm4uaXNVbmRlZmluZWQoZS52YWxpZGF0ZVN0YXR1cykmJnMoInZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXMiKT09PSExJiYobi5oYXNPd25Qcm9wKEEsInZhbGlkYXRlU3RhdHVzIik/dC52YWxpZGF0ZVN0YXR1cz1yKHZvaWQgMCxBLnZhbGlkYXRlU3RhdHVzKTpkZWxldGUgdC52YWxpZGF0ZVN0YXR1cyksdH12YXIgX289WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO2Z1bmN0aW9uIGpvKEEsZSx0KXtpZih0IT09ImNvbnRlbnQtb25seSIpe0Euc2V0KGUpO3JldHVybn1PYmplY3QuZW50cmllcyhlfHx7fSkuZm9yRWFjaCgoW3Isb10pPT57X28uaW5jbHVkZXMoci50b0xvd2VyQ2FzZSgpKSYmQS5zZXQocixvKX0pfXZhciBXbz1BPT5lbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZ2ksKGUsdCk9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxNikpKTtmdW5jdGlvbiBabyhBKXtsZXQgZT1UKHt9LEEpLHQ9Yz0+bi5oYXNPd25Qcm9wKGUsYyk/ZVtjXTp2b2lkIDAscj10KCJkYXRhIiksbz10KCJ3aXRoWFNSRlRva2VuIiksST10KCJ4c3JmSGVhZGVyTmFtZSIpLGk9dCgieHNyZkNvb2tpZU5hbWUiKSxzPXQoImhlYWRlcnMiKSxRPXQoImF1dGgiKSxCPXQoImJhc2VVUkwiKSxnPXQoImFsbG93QWJzb2x1dGVVcmxzIiksYT10KCJ1cmwiKTtpZihlLmhlYWRlcnM9cz1GLmZyb20ocyksZS51cmw9RkEoa0EoQixhLGcsZSksdCgicGFyYW1zIiksdCgicGFyYW1zU2VyaWFsaXplciIpKSxRKXtsZXQgYz1uLmdldFNhZmVQcm9wKFEsInVzZXJuYW1lIil8fCIiLEM9bi5nZXRTYWZlUHJvcChRLCJwYXNzd29yZCIpfHwiIjt0cnl7cy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoYysiOiIrKEM/V28oQyk6IiIpKSl9Y2F0Y2godSl7dGhyb3cgZi5mcm9tKHUsZi5FUlJfQkFEX09QVElPTl9WQUxVRSxBKX19aWYobi5pc0Zvcm1EYXRhKHIpJiYoUy5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fFMuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52fHxuLmlzUmVhY3ROYXRpdmUocik/cy5zZXRDb250ZW50VHlwZSh2b2lkIDApOm4uaXNGdW5jdGlvbihyLmdldEhlYWRlcnMpJiZqbyhzLHIuZ2V0SGVhZGVycygpLHQoImZvcm1EYXRhSGVhZGVyUG9saWN5IikpKSxTLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKG4uaXNGdW5jdGlvbihvKSYmKG89byhlKSksbz09PSEwfHxvPT1udWxsJiZMdChlLnVybCkpKXtsZXQgQz1JJiZpJiZidC5yZWFkKGkpO0MmJnMuc2V0KEksQyl9cmV0dXJuIGV9dmFyIEFlPVpvO3ZhciBWbz10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLE90PVZvJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxyKXtsZXQgbz1BZShBKSxJPW8uZGF0YSxpPUYuZnJvbShvLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6cyxvblVwbG9hZFByb2dyZXNzOlEsb25Eb3dubG9hZFByb2dyZXNzOkJ9PW8sZyxhLGMsQyx1O2Z1bmN0aW9uIGgoKXtDJiZDKCksdSYmdSgpLG8uY2FuY2VsVG9rZW4mJm8uY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZyksby5zaWduYWwmJm8uc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7bC5vcGVuKG8ubWV0aG9kLnRvVXBwZXJDYXNlKCksby51cmwsITApLGwudGltZW91dD1vLnRpbWVvdXQ7ZnVuY3Rpb24gRSgpe2lmKCFsKXJldHVybjtsZXQgRD1GLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxiPXtkYXRhOiFzfHxzPT09InRleHQifHxzPT09Impzb24iP2wucmVzcG9uc2VUZXh0OmwucmVzcG9uc2Usc3RhdHVzOmwuc3RhdHVzLHN0YXR1c1RleHQ6bC5zdGF0dXNUZXh0LGhlYWRlcnM6RCxjb25maWc6QSxyZXF1ZXN0Omx9O0dBKGZ1bmN0aW9uKFope3QoWiksaCgpfSxmdW5jdGlvbihaKXtyKFopLGgoKX0sYiksbD1udWxsfSJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1FOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWx8fGwucmVhZHlTdGF0ZSE9PTR8fGwuc3RhdHVzPT09MCYmIShsLnJlc3BvbnNlVVJMJiZsLnJlc3BvbnNlVVJMLnN0YXJ0c1dpdGgoImZpbGU6IikpfHxzZXRUaW1lb3V0KEUpfSxsLm9uYWJvcnQ9ZnVuY3Rpb24oKXtsJiYocihuZXcgZigiUmVxdWVzdCBhYm9ydGVkIixmLkVDT05OQUJPUlRFRCxBLGwpKSxoKCksbD1udWxsKX0sbC5vbmVycm9yPWZ1bmN0aW9uKHkpe2xldCBiPXkmJnkubWVzc2FnZT95Lm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFI9bmV3IGYoYixmLkVSUl9ORVRXT1JLLEEsbCk7Ui5ldmVudD15fHxudWxsLHIoUiksaCgpLGw9bnVsbH0sbC5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgeT1vLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitvLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsYj1vLnRyYW5zaXRpb25hbHx8RUE7by50aW1lb3V0RXJyb3JNZXNzYWdlJiYoeT1vLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHIobmV3IGYoeSxiLmNsYXJpZnlUaW1lb3V0RXJyb3I/Zi5FVElNRURPVVQ6Zi5FQ09OTkFCT1JURUQsQSxsKSksaCgpLGw9bnVsbH0sST09PXZvaWQgMCYmaS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goVkEoaSksZnVuY3Rpb24oeSxiKXtsLnNldFJlcXVlc3RIZWFkZXIoYix5KX0pLG4uaXNVbmRlZmluZWQoby53aXRoQ3JlZGVudGlhbHMpfHwobC53aXRoQ3JlZGVudGlhbHM9ISFvLndpdGhDcmVkZW50aWFscykscyYmcyE9PSJqc29uIiYmKGwucmVzcG9uc2VUeXBlPW8ucmVzcG9uc2VUeXBlKSxCJiYoW2MsdV09bEEoQiwhMCksbC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYykpLFEmJmwudXBsb2FkJiYoW2EsQ109bEEoUSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGEpLGwudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEMpKSwoby5jYW5jZWxUb2tlbnx8by5zaWduYWwpJiYoZz1EPT57bCYmKHIoIUR8fEQudHlwZT9uZXcgeChudWxsLEEsbCk6RCksbC5hYm9ydCgpLGgoKSxsPW51bGwpfSxvLmNhbmNlbFRva2VuJiZvLmNhbmNlbFRva2VuLnN1YnNjcmliZShnKSxvLnNpZ25hbCYmKG8uc2lnbmFsLmFib3J0ZWQ/ZygpOm8uc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSkpO2xldCBkPUdlKG8udXJsKTtpZihkJiYhUy5wcm90b2NvbHMuaW5jbHVkZXMoZCkpe3IobmV3IGYoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrZCsiOiIsZi5FUlJfQkFEX1JFUVVFU1QsQSkpLGgoKTtyZXR1cm59bC5zZW5kKEl8fG51bGwpfSl9O3ZhciB6bz0oQSxlKT0+e2lmKEE9QT9BLmZpbHRlcihCb29sZWFuKTpbXSwhZSYmIUEubGVuZ3RoKXJldHVybjtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9ITEsbz1mdW5jdGlvbihRKXtpZighcil7cj0hMCxpKCk7bGV0IEI9USBpbnN0YW5jZW9mIEVycm9yP1E6dGhpcy5yZWFzb247dC5hYm9ydChCIGluc3RhbmNlb2YgZj9COm5ldyB4KEIgaW5zdGFuY2VvZiBFcnJvcj9CLm1lc3NhZ2U6QikpfX0sST1lJiZzZXRUaW1lb3V0KCgpPT57ST1udWxsLG8obmV3IGYoYHRpbWVvdXQgb2YgJHtlfW1zIGV4Y2VlZGVkYCxmLkVUSU1FRE9VVCkpfSxlKSxpPSgpPT57QSYmKEkmJmNsZWFyVGltZW91dChJKSxJPW51bGwsQS5mb3JFYWNoKFE9PntRLnVuc3Vic2NyaWJlP1EudW5zdWJzY3JpYmUobyk6US5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KSxBPW51bGwpfTtBLmZvckVhY2goUT0+US5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbyx7b25jZTohMH0pKTtsZXR7c2lnbmFsOnN9PXQ7cmV0dXJuIHMudW5zdWJzY3JpYmU9KCk9Pm4uYXNhcChpKSxzfSxZdD16bzt2YXIgWG89ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsbztmb3IoO3I8dDspbz1yK2UseWllbGQgQS5zbGljZShyLG8pLHI9b30sdm89YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mICRvKEEpKXlpZWxkKlhvKHQsZSl9LCRvPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sSGU9KEEsZSx0LHIpPT57bGV0IG89dm8oQSxlKSxJPTAsaSxzPVE9PntpfHwoaT0hMCxyJiZyKFEpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChRKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpnfT1hd2FpdCBvLm5leHQoKTtpZihCKXtzKCksUS5jbG9zZSgpO3JldHVybn1sZXQgYT1nLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGM9SSs9YTt0KGMpfVEuZW5xdWV1ZShuZXcgVWludDhBcnJheShnKSl9Y2F0Y2goQil7dGhyb3cgcyhCKSxCfX0sY2FuY2VsKFEpe3JldHVybiBzKFEpLG8ucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBlZT1BPT5BPj00OCYmQTw9NTd8fEE+PTY1JiZBPD03MHx8QT49OTcmJkE8PTEwMixBST0oQSxlLHQpPT5lKzI8dCYmZWUoQS5jaGFyQ29kZUF0KGUrMSkpJiZlZShBLmNoYXJDb2RlQXQoZSsyKSk7ZnVuY3Rpb24gT2UoQSl7aWYoIUF8fHR5cGVvZiBBIT0ic3RyaW5nInx8IUEuc3RhcnRzV2l0aCgiZGF0YToiKSlyZXR1cm4gMDtsZXQgZT1BLmluZGV4T2YoIiwiKTtpZihlPDApcmV0dXJuIDA7bGV0IHQ9QS5zbGljZSg1LGUpLHI9QS5zbGljZShlKzEpO2lmKC87YmFzZTY0L2kudGVzdCh0KSl7bGV0IGk9ci5sZW5ndGgscz1yLmxlbmd0aDtmb3IobGV0IEM9MDtDPHM7QysrKWlmKHIuY2hhckNvZGVBdChDKT09PTM3JiZDKzI8cyl7bGV0IHU9ci5jaGFyQ29kZUF0KEMrMSksaD1yLmNoYXJDb2RlQXQoQysyKTtlZSh1KSYmZWUoaCkmJihpLT0yLEMrPTIpfWxldCBRPTAsQj1zLTEsZz1DPT5DPj0yJiZyLmNoYXJDb2RlQXQoQy0yKT09PTM3JiZyLmNoYXJDb2RlQXQoQy0xKT09PTUxJiYoci5jaGFyQ29kZUF0KEMpPT09Njh8fHIuY2hhckNvZGVBdChDKT09PTEwMCk7Qj49MCYmKHIuY2hhckNvZGVBdChCKT09PTYxPyhRKyssQi0tKTpnKEIpJiYoUSsrLEItPTMpKSxRPT09MSYmQj49MCYmKHIuY2hhckNvZGVBdChCKT09PTYxfHxnKEIpKSYmUSsrO2xldCBjPU1hdGguZmxvb3IoaS80KSozLShRfHwwKTtyZXR1cm4gYz4wP2M6MH1sZXQgST0wO2ZvcihsZXQgaT0wLHM9ci5sZW5ndGg7aTxzO2krKyl7bGV0IFE9ci5jaGFyQ29kZUF0KGkpO2lmKFE9PT0zNyYmQUkocixpLHMpKUkrPTEsaSs9MjtlbHNlIGlmKFE8MTI4KUkrPTE7ZWxzZSBpZihRPDIwNDgpSSs9MjtlbHNlIGlmKFE+PTU1Mjk2JiZRPD01NjMxOSYmaSsxPHMpe2xldCBCPXIuY2hhckNvZGVBdChpKzEpO0I+PTU2MzIwJiZCPD01NzM0Mz8oSSs9NCxpKyspOkkrPTN9ZWxzZSBJKz0zfXJldHVybiBJfXZhciB1QT0iMS4xOC4xIjt2YXIgcXQ9NjQqMTAyNCx7aXNGdW5jdGlvbjp0ZX09bixlST1BPT5lbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZ2ksKGUsdCk9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxNikpKSxNdD1BPT57aWYoIW4uaXNTdHJpbmcoQSkpcmV0dXJuIEE7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoQSl9Y2F0Y2h7cmV0dXJuIEF9fSxUdD0oQSwuLi5lKT0+e3RyeXtyZXR1cm4hIUEoLi4uZSl9Y2F0Y2h7cmV0dXJuITF9fSx0ST1BPT57bGV0IGU9QS5pbmRleE9mKCI6Ly8iKSx0PUE7cmV0dXJuIGUhPT0tMSYmKHQ9dC5zbGljZShlKzMpKSx0LmluY2x1ZGVzKCJAIil8fHQuaW5jbHVkZXMoIjoiKX0sckk9QT0+e2xldCBlPW4uZ2xvYmFsIT09dm9pZCAwJiZuLmdsb2JhbCE9PW51bGw/bi5nbG9iYWw6Z2xvYmFsVGhpcyx7UmVhZGFibGVTdHJlYW06dCxUZXh0RW5jb2RlcjpyfT1lO0E9bi5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSx7UmVxdWVzdDplLlJlcXVlc3QsUmVzcG9uc2U6ZS5SZXNwb25zZX0sQSk7bGV0e2ZldGNoOm8sUmVxdWVzdDpJLFJlc3BvbnNlOml9PUEscz1vP3RlKG8pOnR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIixRPXRlKEkpLEI9dGUoaSk7aWYoIXMpcmV0dXJuITE7bGV0IGc9cyYmdGUodCksYT1zJiYodHlwZW9mIHI9PSJmdW5jdGlvbiI/KEU9PmQ9PkUuZW5jb2RlKGQpKShuZXcgcik6YXN5bmMgRT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IEkoRSkuYXJyYXlCdWZmZXIoKSkpLGM9USYmZyYmVHQoKCk9PntsZXQgRT0hMSxkPW5ldyBJKFMub3JpZ2luLHtib2R5Om5ldyB0LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBFPSEwLCJoYWxmIn19KSxEPWQuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBkLmJvZHkhPW51bGwmJmQuYm9keS5jYW5jZWwoKSxFJiYhRH0pLEM9QiYmZyYmVHQoKCk9Pm4uaXNSZWFkYWJsZVN0cmVhbShuZXcgaSgiIikuYm9keSkpLHU9e3N0cmVhbTpDJiYoRT0+RS5ib2R5KX07cyYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKEU9PnshdVtFXSYmKHVbRV09KGQsRCk9PntsZXQgeT1kJiZkW0VdO2lmKHkpcmV0dXJuIHkuY2FsbChkKTt0aHJvdyBuZXcgZihgUmVzcG9uc2UgdHlwZSBcJyR7RX1cJyBpcyBub3Qgc3VwcG9ydGVkYCxmLkVSUl9OT1RfU1VQUE9SVCxEKX0pfSk7bGV0IGg9YXN5bmMgRT0+e2lmKEU9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoRSkpcmV0dXJuIEUuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oRSkpcmV0dXJuKGF3YWl0IG5ldyBJKFMub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6RX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhFKXx8bi5pc0FycmF5QnVmZmVyKEUpKXJldHVybiBFLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhFKSYmKEU9RSsiIiksbi5pc1N0cmluZyhFKSlyZXR1cm4oYXdhaXQgYShFKSkuYnl0ZUxlbmd0aH0sbD1hc3luYyhFLGQpPT57bGV0IEQ9bi50b0Zpbml0ZU51bWJlcihFLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIEQ/P2goZCl9O3JldHVybiBhc3luYyBFPT57bGV0e3VybDpkLG1ldGhvZDpELGRhdGE6eSxzaWduYWw6YixjYW5jZWxUb2tlbjpSLHRpbWVvdXQ6WixvbkRvd25sb2FkUHJvZ3Jlc3M6Z2Usb25VcGxvYWRQcm9ncmVzczphZSxyZXNwb25zZVR5cGU6VixoZWFkZXJzOnosd2l0aENyZWRlbnRpYWxzOk9BPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOldlLG1heENvbnRlbnRMZW5ndGg6UCxtYXhCb2R5TGVuZ3RoOllBfT1BZShFKSxoQT1uLmlzTnVtYmVyKFApJiZQPi0xLENlPW4uaXNOdW1iZXIoWUEpJiZZQT4tMSxzcj1tPT5uLmhhc093blByb3AoRSxtKT9FW21dOnZvaWQgMCxaZT1vfHxmZXRjaDtWPVY/KFYrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBYPVl0KFtiLFImJlIudG9BYm9ydFNpZ25hbCgpXSxaKSxHPW51bGwsZUE9WCYmWC51bnN1YnNjcmliZSYmKCgpPT57WC51bnN1YnNjcmliZSgpfSksbkEsREE9bnVsbCxWZT0oKT0+bmV3IGYoIlJlcXVlc3QgYm9keSBsYXJnZXIgdGhhbiBtYXhCb2R5TGVuZ3RoIGxpbWl0IixmLkVSUl9CQURfUkVRVUVTVCxFLEcpO3RyeXtsZXQgbSxxPXNyKCJhdXRoIik7aWYocSl7bGV0IHA9bi5nZXRTYWZlUHJvcChxLCJ1c2VybmFtZSIpfHwiIixZPW4uZ2V0U2FmZVByb3AocSwicGFzc3dvcmQiKXx8IiI7bT17dXNlcm5hbWU6cCxwYXNzd29yZDpZfX1pZih0SShkKSl7bGV0IHA9bmV3IFVSTChkLFMub3JpZ2luKTtpZighbSYmKHAudXNlcm5hbWV8fHAucGFzc3dvcmQpKXtsZXQgWT1NdChwLnVzZXJuYW1lKSx2PU10KHAucGFzc3dvcmQpO209e3VzZXJuYW1lOlkscGFzc3dvcmQ6dn19KHAudXNlcm5hbWV8fHAucGFzc3dvcmQpJiYocC51c2VybmFtZT0iIixwLnBhc3N3b3JkPSIiLGQ9cC5ocmVmKX1pZihtJiYoei5kZWxldGUoImF1dGhvcml6YXRpb24iKSx6LnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYShlSSgobS51c2VybmFtZXx8IiIpKyI6IisobS5wYXNzd29yZHx8IiIpKSkpKSxoQSYmdHlwZW9mIGQ9PSJzdHJpbmciJiZkLnN0YXJ0c1dpdGgoImRhdGE6IikmJk9lKGQpPlApdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK1ArIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsRyk7aWYoQ2UmJkQhPT0iZ2V0IiYmRCE9PSJoZWFkIil7bGV0IHA9YXdhaXQgaCh5KTtpZih0eXBlb2YgcD09Im51bWJlciImJmlzRmluaXRlKHApJiYobkE9cCxwPllBKSl0aHJvdyBWZSgpfWxldCBxQT1DZSYmKG4uaXNSZWFkYWJsZVN0cmVhbSh5KXx8bi5pc1N0cmVhbSh5KSksemU9KHAsWSx2KT0+SGUocCxxdCx0QT0+e2lmKENlJiZ0QT5ZQSl0aHJvdyBEQT1WZSgpO1kmJlkodEEpfSx2KTtpZihjJiZEIT09ImdldCImJkQhPT0iaGVhZCImJihhZXx8cUEpKXtpZihuQT1uQT8/YXdhaXQgbCh6LHkpLG5BIT09MHx8cUEpe2xldCBwPW5ldyBJKGQse21ldGhvZDoiUE9TVCIsYm9keTp5LGR1cGxleDoiaGFsZiJ9KSxZO2lmKG4uaXNGb3JtRGF0YSh5KSYmKFk9cC5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZ6LnNldENvbnRlbnRUeXBlKFkpLHAuYm9keSl7bGV0W3YsdEFdPWFlJiZrZShuQSxsQShMZShhZSkpKXx8W107eT16ZShwLmJvZHksdix0QSl9fX1lbHNlIGlmKHFBJiYhUSYmZyYmRCE9PSJnZXQiJiZEIT09ImhlYWQiKXk9emUoeSk7ZWxzZSBpZihxQSYmUSYmIWMmJkQhPT0iZ2V0IiYmRCE9PSJoZWFkIil0aHJvdyBuZXcgZigiU3RyZWFtIHJlcXVlc3QgYm9kaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IGZldGNoIGltcGxlbWVudGF0aW9uIixmLkVSUl9OT1RfU1VQUE9SVCxFLEcpO24uaXNTdHJpbmcoT0EpfHwoT0E9T0E/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IGdyPVEmJiJjcmVkZW50aWFscyJpbiBJLnByb3RvdHlwZTtpZihuLmlzRm9ybURhdGEoeSkpe2xldCBwPXouZ2V0Q29udGVudFR5cGUoKTtwJiYvXm11bHRpcGFydFxcL2Zvcm0tZGF0YS9pLnRlc3QocCkmJiEvYm91bmRhcnk9L2kudGVzdChwKSYmei5kZWxldGUoImNvbnRlbnQtdHlwZSIpfXouc2V0KCJVc2VyLUFnZW50IiwiYXhpb3MvIit1QSwhMSk7bGV0IFhlPXsuLi5XZSxzaWduYWw6WCxtZXRob2Q6RC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6VkEoei5ub3JtYWxpemUoKSksYm9keTp5LGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Z3I/T0E6dm9pZCAwfTtHPVEmJm5ldyBJKGQsWGUpO2xldCBfPWF3YWl0KFE/WmUoRyxXZSk6WmUoZCxYZSkpLHZlPUYuZnJvbShfLmhlYWRlcnMpO2lmKGhBKXtsZXQgcD1uLnRvRmluaXRlTnVtYmVyKHZlLmdldENvbnRlbnRMZW5ndGgoKSk7aWYocCE9bnVsbCYmcD5QKXRocm93IG5ldyBmKCJtYXhDb250ZW50TGVuZ3RoIHNpemUgb2YgIitQKyIgZXhjZWVkZWQiLGYuRVJSX0JBRF9SRVNQT05TRSxFLEcpfWxldCBCZT1DJiYoVj09PSJzdHJlYW0ifHxWPT09InJlc3BvbnNlIik7aWYoQyYmXy5ib2R5JiYoZ2V8fGhBfHxCZSYmZUEpKXtsZXQgcD17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChwQT0+e3BbcEFdPV9bcEFdfSk7bGV0IFk9bi50b0Zpbml0ZU51bWJlcih2ZS5nZXRDb250ZW50TGVuZ3RoKCkpLFt2LHRBXT1nZSYma2UoWSxsQShMZShnZSksITApKXx8W10sJGU9MCxhcj1wQT0+e2lmKGhBJiYoJGU9cEEsJGU+UCkpdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK1ArIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsRyk7diYmdihwQSl9O189bmV3IGkoSGUoXy5ib2R5LHF0LGFyLCgpPT57dEEmJnRBKCksZUEmJmVBKCl9KSxwKX1WPVZ8fCJ0ZXh0IjtsZXQgaj1hd2FpdCB1W24uZmluZEtleSh1LFYpfHwidGV4dCJdKF8sRSk7aWYoaEEmJiFDJiYhQmUpe2xldCBwO2lmKGohPW51bGwmJih0eXBlb2Ygai5ieXRlTGVuZ3RoPT0ibnVtYmVyIj9wPWouYnl0ZUxlbmd0aDp0eXBlb2Ygai5zaXplPT0ibnVtYmVyIj9wPWouc2l6ZTp0eXBlb2Ygaj09InN0cmluZyImJihwPXR5cGVvZiByPT0iZnVuY3Rpb24iP25ldyByKCkuZW5jb2RlKGopLmJ5dGVMZW5ndGg6ai5sZW5ndGgpKSx0eXBlb2YgcD09Im51bWJlciImJnA+UCl0aHJvdyBuZXcgZigibWF4Q29udGVudExlbmd0aCBzaXplIG9mICIrUCsiIGV4Y2VlZGVkIixmLkVSUl9CQURfUkVTUE9OU0UsRSxHKX1yZXR1cm4hQmUmJmVBJiZlQSgpLGF3YWl0IG5ldyBQcm9taXNlKChwLFkpPT57R0EocCxZLHtkYXRhOmosaGVhZGVyczpGLmZyb20oXy5oZWFkZXJzKSxzdGF0dXM6Xy5zdGF0dXMsc3RhdHVzVGV4dDpfLnN0YXR1c1RleHQsY29uZmlnOkUscmVxdWVzdDpHfSl9KX1jYXRjaChtKXtpZihlQSYmZUEoKSxYJiZYLmFib3J0ZWQmJlgucmVhc29uIGluc3RhbmNlb2YgZil7bGV0IHE9WC5yZWFzb247dGhyb3cgcS5jb25maWc9RSxHJiYocS5yZXF1ZXN0PUcpLG0hPT1xJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocSwiY2F1c2UiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTptLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkscX1pZihEQSl0aHJvdyBHJiYhREEucmVxdWVzdCYmKERBLnJlcXVlc3Q9RyksREE7aWYobSBpbnN0YW5jZW9mIGYpdGhyb3cgRyYmIW0ucmVxdWVzdCYmKG0ucmVxdWVzdD1HKSxtO2lmKG0mJm0ubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KG0ubWVzc2FnZSkpe2xldCBxPW5ldyBmKCJOZXR3b3JrIEVycm9yIixmLkVSUl9ORVRXT1JLLEUsRyxtJiZtLnJlc3BvbnNlKTt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkocSwiY2F1c2UiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTptLmNhdXNlfHxtLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkscX10aHJvdyBmLmZyb20obSxtJiZtLmNvZGUsRSxHLG0mJm0ucmVzcG9uc2UpfX19LG9JPW5ldyBNYXAsWWU9QT0+e2xldCBlPUEmJkEuZW52fHx7fSx7ZmV0Y2g6dCxSZXF1ZXN0OnIsUmVzcG9uc2U6b309ZSxJPVtyLG8sdF0saT1JLmxlbmd0aCxzPWksUSxCLGc9b0k7Zm9yKDtzLS07KVE9SVtzXSxCPWcuZ2V0KFEpLEI9PT12b2lkIDAmJmcuc2V0KFEsQj1zP25ldyBNYXA6ckkoZSkpLGc9QjtyZXR1cm4gQn0seG49WWUoKTt2YXIgcWU9e2h0dHA6WEEseGhyOk90LGZldGNoOntnZXQ6WWV9fTtuLmZvckVhY2gocWUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmV9KX19KTt2YXIgUHQ9QT0+YC0gJHtBfWAsaUk9QT0+bi5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExO2Z1bmN0aW9uIG5JKEEsZSl7QT1uLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDp0fT1BLHIsbyxJPXt9O2ZvcihsZXQgaT0wO2k8dDtpKyspe3I9QVtpXTtsZXQgcztpZihvPXIsIWlJKHIpJiYobz1xZVsocz1TdHJpbmcocikpLnRvTG93ZXJDYXNlKCldLG89PT12b2lkIDApKXRocm93IG5ldyBmKGBVbmtub3duIGFkYXB0ZXIgXCcke3N9XCdgKTtpZihvJiYobi5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO0lbc3x8IiUyMyIraV09b31pZighbyl7bGV0IGk9T2JqZWN0LmVudHJpZXMoSSkubWFwKChbUSxCXSk9PmBhZGFwdGVyICR7UX0gYCsoQj09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLHM9dD9pLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtpLm1hcChQdCkuam9pbihgJTBBYCk6IiAiK1B0KGlbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGYoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitzLGYuRVJSX05PVF9TVVBQT1JUKX1yZXR1cm4gb312YXIgcmU9e2dldEFkYXB0ZXI6bkksYWRhcHRlcnM6cWV9O2Z1bmN0aW9uIE1lKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyB4KG51bGwsQSl9ZnVuY3Rpb24gb2UoQSl7cmV0dXJuIE1lKEEpLEEuaGVhZGVycz1GLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9TkEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLHJlLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxmQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24ocil7TWUoQSksQS5yZXNwb25zZT1yO3RyeXtyLmRhdGE9TkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2Uscil9ZmluYWxseXtkZWxldGUgQS5yZXNwb25zZX1yZXR1cm4gci5oZWFkZXJzPUYuZnJvbShyLmhlYWRlcnMpLHJ9LGZ1bmN0aW9uKHIpe2lmKCFVQShyKSYmKE1lKEEpLHImJnIucmVzcG9uc2UpKXtBLnJlc3BvbnNlPXIucmVzcG9uc2U7dHJ5e3IucmVzcG9uc2UuZGF0YT1OQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKX1maW5hbGx5e2RlbGV0ZSBBLnJlc3BvbnNlfXIucmVzcG9uc2UuaGVhZGVycz1GLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKX1yZXR1cm4gUHJvbWlzZS5yZWplY3Qocil9KX12YXIgSWU9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57SWVbQV09ZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHh0PXt9O0llLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbyhJLGkpe3JldHVybiJbQXhpb3MgdiIrdUErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiBcJyIrSSsiXCciK2krKHI/Ii4gIityOiIiKX1yZXR1cm4oSSxpLHMpPT57aWYoZT09PSExKXRocm93IG5ldyBmKG8oaSwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZi5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiF4dFtpXSYmKHh0W2ldPSEwLGNvbnNvbGUud2FybihvKGksIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKEksaSxzKTohMH19O0llLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIHNJKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCJ8fEE9PT1udWxsKXRocm93IG5ldyBmKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixmLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgcj1PYmplY3Qua2V5cyhBKSxvPXIubGVuZ3RoO2Zvcig7by0tID4wOyl7bGV0IEk9cltvXSxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLEkpP2VbSV06dm9pZCAwO2lmKGkpe2xldCBzPUFbSV0sUT1zPT09dm9pZCAwfHxpKHMsSSxBKTtpZihRIT09ITApdGhyb3cgbmV3IGYoIm9wdGlvbiAiK0krIiBtdXN0IGJlICIrUSxmLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IGYoIlVua25vd24gb3B0aW9uICIrSSxmLkVSUl9CQURfT1BUSU9OKX19dmFyIExBPXthc3NlcnRPcHRpb25zOnNJLHZhbGlkYXRvcnM6SWV9O3ZhciBKPUxBLnZhbGlkYXRvcnMsZEE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgbWUscmVzcG9uc2U6bmV3IG1lfX1hc3luYyByZXF1ZXN0KGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsdCl9Y2F0Y2gocil7aWYociBpbnN0YW5jZW9mIEVycm9yKXtsZXQgbz17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShvKTpvPW5ldyBFcnJvcjtsZXQgST0oKCk9PntpZighby5zdGFjaylyZXR1cm4iIjtsZXQgaT1vLnN0YWNrLmluZGV4T2YoYCUwQWApO3JldHVybiBpPT09LTE/IiI6by5zdGFjay5zbGljZShpKzEpfSkoKTt0cnl7aWYoIXIuc3RhY2spci5zdGFjaz1JO2Vsc2UgaWYoSSl7bGV0IGk9SS5pbmRleE9mKGAlMEFgKSxzPWk9PT0tMT8tMTpJLmluZGV4T2YoYCUwQWAsaSsxKSxRPXM9PT0tMT8iIjpJLnNsaWNlKHMrMSk7U3RyaW5nKHIuc3RhY2spLmVuZHNXaXRoKFEpfHwoci5zdGFjays9YCUwQWArSSl9fWNhdGNoe319dGhyb3cgcn19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PVQodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOnIscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6SX09dDtyIT09dm9pZCAwJiZMQS5hc3NlcnRPcHRpb25zKHIse3NpbGVudEpTT05QYXJzaW5nOkoudHJhbnNpdGlvbmFsKEouYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Si50cmFuc2l0aW9uYWwoSi5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOkoudHJhbnNpdGlvbmFsKEouYm9vbGVhbiksbGVnYWN5SW50ZXJjZXB0b3JSZXFSZXNPcmRlcmluZzpKLnRyYW5zaXRpb25hbChKLmJvb2xlYW4pLGFkdmVydGlzZVpzdGRBY2NlcHRFbmNvZGluZzpKLnRyYW5zaXRpb25hbChKLmJvb2xlYW4pLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6Si50cmFuc2l0aW9uYWwoSi5ib29sZWFuKX0sITEpLG8hPW51bGwmJihuLmlzRnVuY3Rpb24obyk/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6b306TEEuYXNzZXJ0T3B0aW9ucyhvLHtlbmNvZGU6Si5mdW5jdGlvbixzZXJpYWxpemU6Si5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksTEEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOkouc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOkouc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBpPUkmJm4ubWVyZ2UoSS5jb21tb24sSVt0Lm1ldGhvZF0pO0kmJm4uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJxdWVyeSIsImNvbW1vbiJdLHU9PntkZWxldGUgSVt1XX0pLHQuaGVhZGVycz1GLmNvbmNhdChpLEkpO2xldCBzPVtdLFE9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lmKHR5cGVvZiBoLnJ1bldoZW49PSJmdW5jdGlvbiImJmgucnVuV2hlbih0KT09PSExKXJldHVybjtRPVEmJmguc3luY2hyb25vdXM7bGV0IGw9dC50cmFuc2l0aW9uYWx8fEVBO2wmJmwubGVnYWN5SW50ZXJjZXB0b3JSZXFSZXNPcmRlcmluZz9zLnVuc2hpZnQoaC5mdWxmaWxsZWQsaC5yZWplY3RlZCk6cy5wdXNoKGguZnVsZmlsbGVkLGgucmVqZWN0ZWQpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihoKXtCLnB1c2goaC5mdWxmaWxsZWQsaC5yZWplY3RlZCl9KTtsZXQgZyxhPTAsYztpZighUSl7bGV0IHU9W29lLmJpbmQodGhpcyksdm9pZCAwXTtmb3IodS51bnNoaWZ0KC4uLnMpLHUucHVzaCguLi5CKSxjPXUubGVuZ3RoLGc9UHJvbWlzZS5yZXNvbHZlKHQpO2E8YzspZz1nLnRoZW4odVthKytdLHVbYSsrXSk7cmV0dXJuIGd9Yz1zLmxlbmd0aDtsZXQgQz10O2Zvcig7YTxjOyl7bGV0IHU9c1thKytdLGg9c1thKytdO3RyeXtDPXUoQyl9Y2F0Y2gobCl7aC5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtnPW9lLmNhbGwodGhpcyxDKX1jYXRjaCh1KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QodSl9Zm9yKGE9MCxjPUIubGVuZ3RoO2E8YzspZz1nLnRoZW4oQlthKytdLEJbYSsrXSk7cmV0dXJuIGd9Z2V0VXJpKGUpe2U9VCh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PWtBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzLGUpO3JldHVybiBGQSh0LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe2RBLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLnJlcXVlc3QoVChyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpyJiZuLmhhc093blByb3AociwiZGF0YSIpP3IuZGF0YTp2b2lkIDB9KSl9fSk7bi5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIiwicXVlcnkiXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIpe3JldHVybiBmdW5jdGlvbihJLGkscyl7cmV0dXJuIHRoaXMucmVxdWVzdChUKHN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOnI/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOkksZGF0YTppfSkpfX1kQS5wcm90b3R5cGVbZV09dCgpLGUhPT0icXVlcnkiJiYoZEEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKSl9KTt2YXIgYkE9ZEE7dmFyIFRlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihJKXt0PUl9KTtsZXQgcj10aGlzO3RoaXMucHJvbWlzZS50aGVuKG89PntpZighci5fbGlzdGVuZXJzKXJldHVybjtsZXQgST1yLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7SS0tID4wOylyLl9saXN0ZW5lcnNbSV0obyk7ci5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1vPT57bGV0IEksaT1uZXcgUHJvbWlzZShzPT57ci5zdWJzY3JpYmUocyksST1zfSkudGhlbihvKTtyZXR1cm4gaS5jYW5jZWw9ZnVuY3Rpb24oKXtyLnVuc3Vic2NyaWJlKEkpfSxpfSxlKGZ1bmN0aW9uKEksaSxzKXtyLnJlYXNvbnx8KHIucmVhc29uPW5ldyB4KEksaSxzKSx0KHIucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1yPT57ZS5hYm9ydChyKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24obyl7ZT1vfSksY2FuY2VsOmV9fX0sS3Q9VGU7ZnVuY3Rpb24gUGUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIHhlKEEpe3JldHVybiBuLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBLZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMSxXZWJTZXJ2ZXJJc0Rvd246NTIxLENvbm5lY3Rpb25UaW1lZE91dDo1MjIsT3JpZ2luSXNVbnJlYWNoYWJsZTo1MjMsVGltZW91dE9jY3VycmVkOjUyNCxTc2xIYW5kc2hha2VGYWlsZWQ6NTI1LEludmFsaWRTc2xDZXJ0aWZpY2F0ZTo1MjZ9O09iamVjdC5lbnRyaWVzKEtlKS5mb3JFYWNoKChbQSxlXSk9PntLZVtlXT1BfSk7dmFyIF90PUtlO2Z1bmN0aW9uIGp0KEEpe2xldCBlPW5ldyBiQShBKSx0PXlBKGJBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBuLmV4dGVuZCh0LGJBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksbi5leHRlbmQodCxlLG51bGwse2FsbE93bktleXM6ITB9KSx0LmNyZWF0ZT1mdW5jdGlvbihvKXtyZXR1cm4ganQoVChBLG8pKX0sdH12YXIgTj1qdChmQSk7Ti5BeGlvcz1iQTtOLkNhbmNlbGVkRXJyb3I9eDtOLkNhbmNlbFRva2VuPUt0O04uaXNDYW5jZWw9VUE7Ti5WRVJTSU9OPXVBO04udG9Gb3JtRGF0YT0kO04uQXhpb3NFcnJvcj1mO04uQ2FuY2VsPU4uQ2FuY2VsZWRFcnJvcjtOLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O04uc3ByZWFkPVBlO04uaXNBeGlvc0Vycm9yPXhlO04ubWVyZ2VDb25maWc9VDtOLkF4aW9zSGVhZGVycz1GO04uZm9ybVRvSlNPTj1BPT4kQShuLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO04uZ2V0QWRhcHRlcj1yZS5nZXRBZGFwdGVyO04uSHR0cFN0YXR1c0NvZGU9X3Q7Ti5kZWZhdWx0PU47dmFyIGllPU47dmFye0F4aW9zOk1zLEF4aW9zRXJyb3I6VHMsQ2FuY2VsZWRFcnJvcjpQcyxpc0NhbmNlbDp4cyxDYW5jZWxUb2tlbjpLcyxWRVJTSU9OOl9zLGFsbDpqcyxDYW5jZWw6V3MsaXNBeGlvc0Vycm9yOlpzLHNwcmVhZDpWcyx0b0Zvcm1EYXRhOnpzLEF4aW9zSGVhZGVyczpYcyxIdHRwU3RhdHVzQ29kZTp2cyxmb3JtVG9KU09OOiRzLGdldEFkYXB0ZXI6QWcsbWVyZ2VDb25maWc6ZWcsY3JlYXRlOnRnfT1pZTt2YXIgSkEsVyxqZSxfZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe2plPW5ldyBVaW50OEFycmF5KFcuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxuZT1jbGFzc3tpbml0KCl7cmV0dXJuIEpBfHwodHlwZW9mIGZldGNoPCJ1Ij9KQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK1d0KS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLF9lKSkudGhlbih0aGlzLl9pbml0KTpKQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShXdCwiYmFzZTY0IiksX2UpLnRoZW4odGhpcy5faW5pdCksSkEpfV9pbml0KGUpe1c9ZS5pbnN0YW5jZSxfZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFXKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCByPWUuYnl0ZUxlbmd0aCxvPVcuZXhwb3J0cy5tYWxsb2Mocik7amUuc2V0KGUsbyksdD10fHxOdW1iZXIoVy5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxyKSk7bGV0IEk9Vy5leHBvcnRzLm1hbGxvYyh0KSxpPVcuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoSSx0LG8scikscz1qZS5zbGljZShJLEkraSk7cmV0dXJuIFcuZXhwb3J0cy5mcmVlKG8pLFcuZXhwb3J0cy5mcmVlKEkpLHN9fSxXdD0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBadD1uZXcgbmUsVnQ9ITE7YXN5bmMgZnVuY3Rpb24gZ0koQSxlLHQpe2xldCByPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP3I9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3I9QTpyPWAke2V9LyR7QX1gLHIuZW5kc1dpdGgoIi5qcyIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTMpKSxyLmVuZHNXaXRoKCIud2FzbSIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTUpKSxyLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC05KSk7bGV0IG89YCR7cn0ud2FzbWAsST1hd2FpdCBpZS5nZXQoYCR7b30uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOnR9KTtWdHx8KGF3YWl0IFp0LmluaXQoKSxWdD0hMCk7bGV0IHM9WnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KEkuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3J9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciB6dD1nSTt2YXIgc2U9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBhSShBLGUsdCl7bGV0IHI9QSxvPUEsST1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihyPW5ldyBVUkwoQS5ocmVmKSxvPXIuaHJlZiksc2UuaGFzKG8pP0k9YXdhaXQgc2UuZ2V0KG8pOihzZS5zZXQobyx6dChyLGUsdCkpLEk9YXdhaXQgc2UuZ2V0KG8pKSxJfXZhciBYdD1hSTt2YXIgQ0k9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LHc9Q0k7dmFyIEJJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sTz1CSTt2YXIgUUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LGlBPVFJO2Z1bmN0aW9uIEVJKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBPLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgTy5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBPLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBPLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgTy5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgTy5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIE8uVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgTy5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBpQS5GbG9hdDMyOnt0PW5ldyBGbG9hdDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBpQS5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIEs9RUk7dmFyIEFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLHZ0PW5ldyBUZXh0RW5jb2RlciwkdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gY0koQSxlKXtsZXQgdD17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxyPUEuZnNfb3BlbihlLHQuZmxhZ3MpLEk9QS5mc19zdGF0KGUpLnNpemUsaT1udWxsO0FyP2k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKEkpOmk9bmV3IEFycmF5QnVmZmVyKEkpO2xldCBzPW5ldyBVaW50OEFycmF5KGkpO3JldHVybiBBLmZzX3JlYWQocixzLDAsSSwwKSxBLmZzX2Nsb3NlKHIpLHN9ZnVuY3Rpb24gZXIoQSxlLHQpe2xldCByPW51bGw7QXI/cj1uZXcgU2hhcmVkQXJyYXlCdWZmZXIodCk6cj1uZXcgQXJyYXlCdWZmZXIodCk7bGV0IG89bmV3IFVpbnQ4QXJyYXkociksST1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSx0KTtyZXR1cm4gby5zZXQoSSksb31mdW5jdGlvbiBVKEEsZSx0LHIpe2xldCBvPTA7cmV0dXJuIGUhPT1udWxsJiYobz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LHIsZS5idWZmZXIuYnl0ZUxlbmd0aF0pPj4+MCxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLG8pKSxvfWZ1bmN0aW9uIEFBKEEsZSx0KXtsZXQgcj1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KHIpKzEsST1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pPj4+MDtBLnN0cmluZ1RvVVRGOChyLEksbyl9ZnVuY3Rpb24gTChBLGUsdCxyKXtsZXQgbz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKT4+PjAsST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxpPWVyKEEsbyxJKTtyZXR1cm4gSyhyLGkuYnVmZmVyKX1mdW5jdGlvbiBIQShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pPj4+MCxyPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKHIpfWZ1bmN0aW9uIGZJKEEsZSx0LHIpe3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihCLGcpe3N3aXRjaChCLnR5cGUpe2Nhc2Ugdy5UZXh0U3RyZWFtOntsZXQgYT12dC5lbmNvZGUoQi5kYXRhLmRhdGEpLGM9VShBLGEsZywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07QUEoQSxDLGcpO2JyZWFrfWNhc2Ugdy5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9dnQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGM9VShBLGEsZywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07QUEoQSxDLGcpO2JyZWFrfWNhc2Ugdy5CaW5hcnlTdHJlYW06e2xldCBhPUIuZGF0YS5kYXRhLGM9VShBLGEsZywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07QUEoQSxDLGcpO2JyZWFrfWNhc2Ugdy5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2Ugdy5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSB3LkltYWdlOntsZXQgYT1CLmRhdGEsYz1VKEEsYS5kYXRhLGcsMCksQz1VKEEsYS5kaXJlY3Rpb24sZywxKSx1PXR5cGVvZiBhLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGEubWV0YWRhdGEuZW50cmllcygpKTpbXSxoPXtpbWFnZVR5cGU6YS5pbWFnZVR5cGUsbmFtZTphLm5hbWUsb3JpZ2luOmEub3JpZ2luLHNwYWNpbmc6YS5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxzaXplOmEuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG1ldGFkYXRhOnV9O0FBKEEsaCxnKTticmVha31jYXNlIHcuTWVzaDp7bGV0IGE9Qi5kYXRhLGM9VShBLGEucG9pbnRzLGcsMCksQz1VKEEsYS5jZWxscyxnLDEpLHU9VShBLGEucG9pbnREYXRhLGcsMiksaD1VKEEsYS5jZWxsRGF0YSxnLDMpLGw9e21lc2hUeXBlOmEubWVzaFR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZDZWxsczphLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsY2VsbEJ1ZmZlclNpemU6YS5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7aH1gfTtBQShBLGwsZyk7YnJlYWt9Y2FzZSB3LlBvaW50U2V0OntsZXQgYT1CLmRhdGEsYz1VKEEsYS5wb2ludHMsZywwKSxDPVUoQSxhLnBvaW50RGF0YSxnLDEpLHU9e3BvaW50U2V0VHlwZTphLnBvaW50U2V0VHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWB9O0FBKEEsdSxnKTticmVha31jYXNlIHcuVHJhbnNmb3JtTGlzdDp7bGV0IGE9Qi5kYXRhLGM9W10sQz0wO2EuZm9yRWFjaCh1PT57bGV0IGg9IiIsbD0iIjt1LnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoaD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1UoQSx1LmZpeGVkUGFyYW1ldGVycyxnLEMpfWAsQys9MSxsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7VShBLHUucGFyYW1ldGVycyxnLEMpfWAsQys9MSk7bGV0IEU9e3RyYW5zZm9ybVR5cGU6dS50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOnUubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOnUubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6dS5uYW1lLGlucHV0U3BhY2VOYW1lOnUuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOnUub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6bCxmaXhlZFBhcmFtZXRlcnM6aH07Yy5wdXNoKEUpfSksQUEoQSxjLGcpO2JyZWFrfWNhc2Ugdy5Qb2x5RGF0YTp7bGV0IGE9Qi5kYXRhLGM9VShBLGEucG9pbnRzLGcsMCksQz1VKEEsYS52ZXJ0aWNlcyxnLDEpLHU9VShBLGEubGluZXMsZywyKSxoPVUoQSxhLnBvbHlnb25zLGcsMyksbD1VKEEsYS50cmlhbmdsZVN0cmlwcyxnLDQpLEU9VShBLGEucG9pbnREYXRhLGcsNSksZD1VKEEsYS5wb2ludERhdGEsZyw2KSxEPXtwb2x5RGF0YVR5cGU6YS5wb2x5RGF0YVR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsdmVydGljZXNCdWZmZXJTaXplOmEudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGxpbmVzQnVmZmVyU2l6ZTphLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxwb2x5Z29uc0J1ZmZlclNpemU6YS5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtofWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOmEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6YS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0V9YCxudW1iZXJPZkNlbGxQaXhlbHM6YS5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtkfWB9O0FBKEEsRCxnKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgbz1BLnN0YWNrU2F2ZSgpLEk9MDt0cnl7ST1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKG8pfWxldCBpPUEuZ2V0TW9kdWxlU3Rkb3V0KCkscz1BLmdldE1vZHVsZVN0ZGVycigpLFE9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJkk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24oQixnKXtsZXQgYT1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2Ugdy5UZXh0U3RyZWFtOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKT4+PjAsdT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKSxoPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLHUpO2E9e2RhdGE6JHQuZGVjb2RlKGgpfTticmVha31jYXNlIHcuSnNvbkNvbXBhdGlibGU6e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pPj4+MCx1PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pLGg9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsdSk7YT1KU09OLnBhcnNlKCR0LmRlY29kZShoKSk7YnJlYWt9Y2FzZSB3LkJpbmFyeVN0cmVhbTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSk+Pj4wLHU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSk7YT17ZGF0YTplcihBLEMsdSl9O2JyZWFrfWNhc2Ugdy5UZXh0RmlsZTp7YT17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIHcuQmluYXJ5RmlsZTp7YT17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmNJKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIHcuSW1hZ2U6e2xldCBDPUhBKEEsZyk7Qy5kYXRhPUwoQSxnLDAsQy5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQy5kaXJlY3Rpb249TChBLGcsMSxpQS5GbG9hdDY0KSxDLm1ldGFkYXRhPW5ldyBNYXAoQy5tZXRhZGF0YSksYT1DO2JyZWFrfWNhc2Ugdy5NZXNoOntsZXQgQz1IQShBLGcpO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1MKEEsZywwLEMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpDLnBvaW50cz1LKEMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxzPjA/Qy5jZWxscz1MKEEsZywxLEMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkMuY2VsbHM9SyhDLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TChBLGcsMixDLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpDLnBvaW50RGF0YT1LKEMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbFBpeGVscz4wP0MuY2VsbERhdGE9TChBLGcsMyxDLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9SyhDLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUM7YnJlYWt9Y2FzZSB3LlBvaW50U2V0OntsZXQgQz1IQShBLGcpO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1MKEEsZywwLEMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qy5wb2ludHM9SyhDLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1MKEEsZywxLEMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpDLnBvaW50RGF0YT1LKEMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWNhc2Ugdy5UcmFuc2Zvcm1MaXN0OntsZXQgQz1IQShBLGcpLHU9MDtDLmZvckVhY2goKGgsbCk9PntoLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoaC5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQ1tsXS5maXhlZFBhcmFtZXRlcnM9TChBLGcsdSxpQS5GbG9hdDY0KSksdSs9MSxoLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQ1tsXS5wYXJhbWV0ZXJzPUwoQSxnLHUsaC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSx1Kz0xKX0pLGE9QzticmVha31jYXNlIHcuUG9seURhdGE6e2xldCBDPUhBKEEsZyk7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUwoQSxnLDAsaUEuRmxvYXQzMik6Qy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxDLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0MudmVydGljZXM9TChBLGcsMSxPLlVJbnQzMik6Qy52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQy5saW5lc0J1ZmZlclNpemU+MD9DLmxpbmVzPUwoQSxnLDIsTy5VSW50MzIpOkMubGluZXM9bmV3IFVpbnQzMkFycmF5LEMucG9seWdvbnNCdWZmZXJTaXplPjA/Qy5wb2x5Z29ucz1MKEEsZywzLE8uVUludDMyKTpDLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0MudHJpYW5nbGVTdHJpcHM9TChBLGcsNCxPLlVJbnQzMik6Qy50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TChBLGcsNSxDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9SyhDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1MKEEsZyw2LEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9SyhDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGM9e3R5cGU6Qi50eXBlLGRhdGE6YX07US5wdXNoKGMpfSkse3JldHVyblZhbHVlOkksc3Rkb3V0Omksc3RkZXJyOnMsb3V0cHV0czpRfX12YXIgdHI9Zkk7dmFyIGxJPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiB1SShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBvPWRJKEFbcl0sZSk7byE9PW51bGwmJnQucHVzaChvKX1yZXR1cm4gdH1mdW5jdGlvbiBkSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLGxJJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgcnI9dUk7ZnVuY3Rpb24gaEkoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIG9yPWhJO2Z1bmN0aW9uIERJKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBJcj1ESTtmdW5jdGlvbiBwSShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgaXI9cEk7YXN5bmMgZnVuY3Rpb24geUkoQSxlLHQscil7bGV0IG89dHIoQSxlLHQsciksST1bXTtyZXR1cm4gby5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24oaSl7aWYoaS50eXBlPT09dy5CaW5hcnlTdHJlYW18fGkudHlwZT09PXcuQmluYXJ5RmlsZSl7bGV0IHM9aS5kYXRhO0kucHVzaChzKX1lbHNlIGlmKGkudHlwZT09PXcuSW1hZ2Upe2xldCBzPWkuZGF0YTtJLnB1c2goLi4ub3IocykpfWVsc2UgaWYoaS50eXBlPT09dy5NZXNoKXtsZXQgcz1pLmRhdGE7SS5wdXNoKC4uLklyKHMpKX1lbHNlIGlmKGkudHlwZT09PXcuUG9seURhdGEpe2xldCBzPWkuZGF0YTtJLnB1c2goLi4uaXIocykpfX0pLGNlKG8scnIoSSwhMCkpfXZhciBucj15STt2YXIgbUk9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsZSx0LHIsbyxJKXtsZXQgaT1hd2FpdCBYdChBLGUsSSk7cmV0dXJuIGF3YWl0IG5yKGksdCxyLG8pfX07X0EobUkpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7UnIoRnIpO2V4cG9ydHtJSSBhcyBkb3duc2FtcGxlLEFJIGFzIGRvd25zYW1wbGVCaW5TaHJpbmssdEkgYXMgZG93bnNhbXBsZUxhYmVsSW1hZ2Usb0kgYXMgZG93bnNhbXBsZVNpZ21hLGdJIGFzIGdhdXNzaWFuS2VybmVsUmFkaXVzLFkgYXMgZ2V0RGVmYXVsdFdlYldvcmtlcixrIGFzIGdldFBpcGVsaW5lV29ya2VyVXJsLE0gYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxFSSBhcyByZXNhbXBsZSxzSSBhcyByZXNhbXBsZUJvdW5kaW5nQm94LEJJIGFzIHJlc2FtcGxlVG9SZWZlcmVuY2UsckMgYXMgc2V0RGVmYXVsdFdlYldvcmtlcixSciBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxWcyBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLGRlIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" +default_js_module = """data:text/javascript;base64,dmFyIGJyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgR3I9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlicihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIExyPSIyLjAuMSIsZGU9THI7dmFyIE9yPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sUD1Pcjt2YXIgSnI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LG5BPUpyO2Z1bmN0aW9uIEhyKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBQLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgUC5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBQLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBQLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgUC5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgUC5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIFAuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgUC5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBuQS5GbG9hdDMyOnt0PW5ldyBGbG9hdDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBuQS5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIGo9SHI7dmFyIE1yPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPU1yO3ZhciBFdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxZcj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxtZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksaGU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLHZBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxsdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixQcj17Y2FuSGFuZGxlOkE9Pmx0KEEpJiZBW0V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiB1dChBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksRGUoQSl9fSxxcj17Y2FuSGFuZGxlOkE9Pmx0KEEpJiZ2QSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sY3Q9bmV3IE1hcChbWyJwcm94eSIsUHJdLFsidGhyb3ciLHFyXV0pO2Z1bmN0aW9uIFRyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB1dChBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIobyl7aWYoIW98fCFvLmRhdGEpcmV0dXJuO2lmKCFUcih0LG8ub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtvLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDppLHR5cGU6SSxwYXRoOmd9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LG8uZGF0YSksUT0oby5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChnQSksQjt0cnl7bGV0IHM9Zy5zbGljZSgwLC0xKS5yZWR1Y2UoKGwsQyk9PmxbQ10sQSksYT1nLnJlZHVjZSgobCxDKT0+bFtDXSxBKTtzd2l0Y2goSSl7Y2FzZSJHRVQiOkI9YTticmVhaztjYXNlIlNFVCI6c1tnLnNsaWNlKC0xKVswXV09Z0Eoby5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9YS5hcHBseShzLFEpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IGEoLi4uUSk7Qj1qcihsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6Q309bmV3IE1lc3NhZ2VDaGFubmVsO3V0KEEsQyksQj13ZShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbdkFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW3ZBXTowfSkpLnRoZW4ocz0+e2xldFthLGxdPXpBKHMpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHtpZDppfSksbCksST09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksZnQoZSksaGUgaW4gQSYmdHlwZW9mIEFbaGVdPT0iZnVuY3Rpb24iJiZBW2hlXSgpKX0pLmNhdGNoKHM9PntsZXRbYSxsXT16QSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW3ZBXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2lkOml9KSxsKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIHhyKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGZ0KEEpe3hyKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gRGUoQSxlKXtyZXR1cm4geWUoQSxbXSxlKX1mdW5jdGlvbiBqQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gcHQoQSl7cmV0dXJuIEJBKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2Z0KEEpfSl9dmFyIFpBPW5ldyBXZWFrTWFwLFZBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCBlPShaQS5nZXQoQSl8fDApLTE7WkEuc2V0KEEsZSksZT09PTAmJnB0KEEpfSk7ZnVuY3Rpb24gS3IoQSxlKXtsZXQgdD0oWkEuZ2V0KGUpfHwwKSsxO1pBLnNldChlLHQpLFZBJiZWQS5yZWdpc3RlcihBLGUsQSl9ZnVuY3Rpb24gV3IoQSl7VkEmJlZBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24geWUoQSxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgcj0hMSxvPW5ldyBQcm94eSh0LHtnZXQoaSxJKXtpZihqQShyKSxJPT09bWUpcmV0dXJuKCk9PntXcihvKSxwdChBKSxyPSEwfTtpZihJPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9Pm99O2xldCBnPUJBKEEse3R5cGU6IkdFVCIscGF0aDplLm1hcChRPT5RLnRvU3RyaW5nKCkpfSkudGhlbihnQSk7cmV0dXJuIGcudGhlbi5iaW5kKGcpfXJldHVybiB5ZShBLFsuLi5lLEldKX0sc2V0KGksSSxnKXtqQShyKTtsZXRbUSxCXT16QShnKTtyZXR1cm4gQkEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLEldLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOlF9LEIpLnRoZW4oZ0EpfSxhcHBseShpLEksZyl7akEocik7bGV0IFE9ZVtlLmxlbmd0aC0xXTtpZihRPT09WXIpcmV0dXJuIEJBKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oZ0EpO2lmKFE9PT0iYmluZCIpcmV0dXJuIHllKEEsZS5zbGljZSgwLC0xKSk7bGV0W0Isc109UXQoZyk7cmV0dXJuIEJBKEEse3R5cGU6IkFQUExZIixwYXRoOmUubWFwKGE9PmEudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkJ9LHMpLnRoZW4oZ0EpfSxjb25zdHJ1Y3QoaSxJKXtqQShyKTtsZXRbZyxRXT1RdChJKTtyZXR1cm4gQkEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Omd9LFEpLnRoZW4oZ0EpfX0pO3JldHVybiBLcihvLEEpLG99ZnVuY3Rpb24gX3IoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUXQoQSl7bGV0IGU9QS5tYXAoekEpO3JldHVybltlLm1hcCh0PT50WzBdKSxfcihlLm1hcCh0PT50WzFdKSldfXZhciBkdD1uZXcgV2Vha01hcDtmdW5jdGlvbiB3ZShBLGUpe3JldHVybiBkdC5zZXQoQSxlKSxBfWZ1bmN0aW9uIGpyKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tFdF06ITB9KX1mdW5jdGlvbiB6QShBKXtmb3IobGV0W2UsdF1vZiBjdClpZih0LmNhbkhhbmRsZShBKSl7bGV0W3Isb109dC5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOmUsdmFsdWU6cn0sb119cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LGR0LmdldChBKXx8W11dfWZ1bmN0aW9uIGdBKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGN0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gQkEoQSxlLHQpe3JldHVybiBuZXcgUHJvbWlzZShyPT57bGV0IG89dnIoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGkoSSl7IUkuZGF0YXx8IUkuZGF0YS5pZHx8SS5kYXRhLmlkIT09b3x8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSkscihJLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOm99LGUpLHQpfSl9ZnVuY3Rpb24gdnIoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIFVBKEEsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZSxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6WnJ9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOlFBfT1PYmplY3Qse2l0ZXJhdG9yOmtBLHRvU3RyaW5nVGFnOkR0fT1TeW1ib2wsJEE9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4oZSx0KT0+QS5jYWxsKGUsdCkpKE9iamVjdC5wcm90b3R5cGUpLE5BPShBLGUpPT57bGV0IHQ9QSxyPVtdO2Zvcig7dCE9bnVsbCYmdCE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihyLmluZGV4T2YodCkhPT0tMSlyZXR1cm4hMTtpZihyLnB1c2godCksJEEodCxlKSlyZXR1cm4hMDt0PVFBKHQpfXJldHVybiExfSxWcj0oQSxlKT0+QSE9bnVsbCYmTkEoQSxlKT9BW2VdOnZvaWQgMCxTZT0oQT0+ZT0+e2xldCB0PVpyLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxLPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5TZShlKT09PUEpLEFlPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTpzQX09QXJyYXksRUE9QWUoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGxBKEEpe3JldHVybiBBIT09bnVsbCYmIUVBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIUVBKEEuY29uc3RydWN0b3IpJiZxKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciB3dD1LKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHpyKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmd3QoQS5idWZmZXIpLGV9dmFyIFhyPUFlKCJzdHJpbmciKSxxPUFlKCJmdW5jdGlvbiIpLFJ0PUFlKCJudW1iZXIiKSxjQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLCRyPUE9PkE9PT0hMHx8QT09PSExLFhBPUE9PntpZighY0EoQSkpcmV0dXJuITE7bGV0IGU9UUEoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8UUEoZSk9PT1udWxsKSYmIU5BKEEsRHQpJiYhTkEoQSxrQSl9LEFvPUE9PntpZighY0EoQSl8fGxBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVvPUsoIkRhdGUiKSx0bz1LKCJGaWxlIikscm89QT0+ISEoQSYmdHlwZW9mIEEudXJpPCJ1Iiksb289QT0+QSYmdHlwZW9mIEEuZ2V0UGFydHM8InUiLGlvPUsoIkJsb2IiKSxJbz1LKCJGaWxlTGlzdCIpLG5vPUE9PmNBKEEpJiZxKEEucGlwZSk7ZnVuY3Rpb24gZ28oKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp7fX12YXIgeXQ9Z28oKSxtdD10eXBlb2YgeXQuRm9ybURhdGE8InUiP3l0LkZvcm1EYXRhOnZvaWQgMCxhbz1BPT57aWYoIUEpcmV0dXJuITE7aWYobXQmJkEgaW5zdGFuY2VvZiBtdClyZXR1cm4hMDtsZXQgZT1RQShBKTtpZighZXx8ZT09PU9iamVjdC5wcm90b3R5cGV8fCFxKEEuYXBwZW5kKSlyZXR1cm4hMTtsZXQgdD1TZShBKTtyZXR1cm4gdD09PSJmb3JtZGF0YSJ8fHQ9PT0ib2JqZWN0IiYmcShBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIn0sc289SygiVVJMU2VhcmNoUGFyYW1zIiksW0NvLEJvLFFvLEVvXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChLKSxsbz1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gYkEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixvO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxzQShBKSlmb3Iocj0wLG89QS5sZW5ndGg7cjxvO3IrKyllLmNhbGwobnVsbCxBW3JdLHIsQSk7ZWxzZXtpZihsQShBKSlyZXR1cm47bGV0IGk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxJPWkubGVuZ3RoLGc7Zm9yKHI9MDtyPEk7cisrKWc9aVtyXSxlLmNhbGwobnVsbCxBW2ddLGcsQSl9fWZ1bmN0aW9uIFN0KEEsZSl7aWYobEEoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxvO2Zvcig7ci0tID4wOylpZihvPXRbcl0sZT09PW8udG9Mb3dlckNhc2UoKSlyZXR1cm4gbztyZXR1cm4gbnVsbH12YXIgYUE9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxGdD1BPT4hRUEoQSkmJkEhPT1hQTtmdW5jdGlvbiBSZSguLi5BKXtsZXR7Y2FzZWxlc3M6ZSxza2lwVW5kZWZpbmVkOnR9PUZ0KHRoaXMpJiZ0aGlzfHx7fSxyPXt9LG89KGksSSk9PntpZihJPT09Il9fcHJvdG9fXyJ8fEk9PT0iY29uc3RydWN0b3IifHxJPT09InByb3RvdHlwZSIpcmV0dXJuO2xldCBnPWUmJnR5cGVvZiBJPT0ic3RyaW5nIiYmU3QocixJKXx8SSxRPSRBKHIsZyk/cltnXTp2b2lkIDA7WEEoUSkmJlhBKGkpP3JbZ109UmUoUSxpKTpYQShpKT9yW2ddPVJlKHt9LGkpOnNBKGkpP3JbZ109aS5zbGljZSgpOighdHx8IUVBKGkpKSYmKHJbZ109aSl9O2ZvcihsZXQgaT0wLEk9QS5sZW5ndGg7aTxJO2krKyl7bGV0IGc9QVtpXTtpZighZ3x8bEEoZyl8fChiQShnLG8pLHR5cGVvZiBnIT0ib2JqZWN0Inx8c0EoZykpKWNvbnRpbnVlO2xldCBRPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZyk7Zm9yKGxldCBCPTA7QjxRLmxlbmd0aDtCKyspe2xldCBzPVFbQl07Rm8uY2FsbChnLHMpJiZvKGdbc10scyl9fXJldHVybiByfXZhciBjbz0oQSxlLHQse2FsbE93bktleXM6cn09e30pPT4oYkEoZSwobyxpKT0+e3QmJnEobyk/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsaSx7X19wcm90b19fOm51bGwsdmFsdWU6VUEobyx0KSx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGkse19fcHJvdG9fXzpudWxsLHZhbHVlOm8sd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0se2FsbE93bktleXM6cn0pLEEpLHVvPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZm89KEEsZSx0LHIpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQS5wcm90b3R5cGUsImNvbnN0cnVjdG9yIix7X19wcm90b19fOm51bGwsdmFsdWU6QSx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse19fcHJvdG9fXzpudWxsLHZhbHVlOmUucHJvdG90eXBlfSksdCYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSx0KX0scG89KEEsZSx0LHIpPT57bGV0IG8saSxJLGc9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGk9by5sZW5ndGg7aS0tID4wOylJPW9baV0sKCFyfHxyKEksQSxlKSkmJiFnW0ldJiYoZVtJXT1BW0ldLGdbSV09ITApO0E9dCE9PSExJiZRQShBKX13aGlsZShBJiYoIXR8fHQoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0saG89KEEsZSx0KT0+e0E9U3RyaW5nKEEpLCh0PT09dm9pZCAwfHx0PkEubGVuZ3RoKSYmKHQ9QS5sZW5ndGgpLHQtPWUubGVuZ3RoO2xldCByPUEuaW5kZXhPZihlLHQpO3JldHVybiByIT09LTEmJnI9PT10fSx5bz1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoc0EoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoIVJ0KGUpKXJldHVybiBudWxsO2xldCB0PW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspdFtlXT1BW2VdO3JldHVybiB0fSxtbz0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmUUEoVWludDhBcnJheSkpLERvPShBLGUpPT57bGV0IHI9KEEmJkFba0FdKS5jYWxsKEEpLG87Zm9yKDsobz1yLm5leHQoKSkmJiFvLmRvbmU7KXtsZXQgaT1vLnZhbHVlO2UuY2FsbChBLGlbMF0saVsxXSl9fSx3bz0oQSxlKT0+e2xldCB0LHI9W107Zm9yKDsodD1BLmV4ZWMoZSkpIT09bnVsbDspci5wdXNoKHQpO3JldHVybiByfSxSbz1LKCJIVE1MRm9ybUVsZW1lbnQiKSxTbz1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXHNdKFthLXpcZF0pKFx3KikvZyxmdW5jdGlvbih0LHIsbyl7cmV0dXJuIHIudG9VcHBlckNhc2UoKStvfSkse3Byb3BlcnR5SXNFbnVtZXJhYmxlOkZvfT1PYmplY3QucHJvdG90eXBlLFVvPUsoIlJlZ0V4cCIpLFV0PShBLGUpPT57bGV0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSkscj17fTtiQSh0LChvLGkpPT57bGV0IEk7KEk9ZShvLGksQSkpIT09ITEmJihyW2ldPUl8fG8pfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxyKX0sTm89QT0+e1V0KEEsKGUsdCk9PntpZihxKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluY2x1ZGVzKHQpKXJldHVybiExO2xldCByPUFbdF07aWYocShyKSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK3QrIiciKX0pfX0pfSxrbz0oQSxlKT0+e2xldCB0PXt9LHI9bz0+e28uZm9yRWFjaChpPT57dFtpXT0hMH0pfTtyZXR1cm4gc0EoQSk/cihBKTpyKFN0cmluZyhBKS5zcGxpdChlKSksdH0sYm89KCk9Pnt9LEdvPShBLGUpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTplO2Z1bmN0aW9uIExvKEEpe3JldHVybiEhKEEmJnEoQS5hcHBlbmQpJiZBW0R0XT09PSJGb3JtRGF0YSImJkFba0FdKX12YXIgT289QT0+e2xldCBlPW5ldyBXZWFrU2V0LHQ9cj0+e2lmKGNBKHIpKXtpZihlLmhhcyhyKSlyZXR1cm47aWYobEEocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlLmFkZChyKTtsZXQgbz1zQShyKT9bXTp7fTtyZXR1cm4gYkEociwoaSxJKT0+e2xldCBnPXQoaSk7IUVBKGcpJiYob1tJXT1nKX0pLGUuZGVsZXRlKHIpLG99fXJldHVybiByfTtyZXR1cm4gdChBKX0sSm89SygiQXN5bmNGdW5jdGlvbiIpLEhvPUE9PkEmJihjQShBKXx8cShBKSkmJnEoQS50aGVuKSYmcShBLmNhdGNoKSxOdD0oKEEsZSk9PkE/c2V0SW1tZWRpYXRlOmU/KCh0LHIpPT4oYUEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6byxkYXRhOml9KT0+e289PT1hQSYmaT09PXQmJnIubGVuZ3RoJiZyLnNoaWZ0KCkoKX0sITEpLG89PntyLnB1c2gobyksYUEucG9zdE1lc3NhZ2UodCwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6dD0+c2V0VGltZW91dCh0KSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixxKGFBLnBvc3RNZXNzYWdlKSksTW89dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKGFBKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fE50LGt0PUE9PkEhPW51bGwmJnEoQVtrQV0pLFlvPUE9PkEhPW51bGwmJk5BKEEsa0EpJiZrdChBKSxuPXtpc0FycmF5OnNBLGlzQXJyYXlCdWZmZXI6d3QsaXNCdWZmZXI6bEEsaXNGb3JtRGF0YTphbyxpc0FycmF5QnVmZmVyVmlldzp6cixpc1N0cmluZzpYcixpc051bWJlcjpSdCxpc0Jvb2xlYW46JHIsaXNPYmplY3Q6Y0EsaXNQbGFpbk9iamVjdDpYQSxpc0VtcHR5T2JqZWN0OkFvLGlzUmVhZGFibGVTdHJlYW06Q28saXNSZXF1ZXN0OkJvLGlzUmVzcG9uc2U6UW8saXNIZWFkZXJzOkVvLGlzVW5kZWZpbmVkOkVBLGlzRGF0ZTplbyxpc0ZpbGU6dG8saXNSZWFjdE5hdGl2ZUJsb2I6cm8saXNSZWFjdE5hdGl2ZTpvbyxpc0Jsb2I6aW8saXNSZWdFeHA6VW8saXNGdW5jdGlvbjpxLGlzU3RyZWFtOm5vLGlzVVJMU2VhcmNoUGFyYW1zOnNvLGlzVHlwZWRBcnJheTptbyxpc0ZpbGVMaXN0OklvLGZvckVhY2g6YkEsbWVyZ2U6UmUsZXh0ZW5kOmNvLHRyaW06bG8sc3RyaXBCT006dW8saW5oZXJpdHM6Zm8sdG9GbGF0T2JqZWN0OnBvLGtpbmRPZjpTZSxraW5kT2ZUZXN0OkssZW5kc1dpdGg6aG8sdG9BcnJheTp5byxmb3JFYWNoRW50cnk6RG8sbWF0Y2hBbGw6d28saXNIVE1MRm9ybTpSbyxoYXNPd25Qcm9wZXJ0eTokQSxoYXNPd25Qcm9wOiRBLGhhc093bkluUHJvdG90eXBlQ2hhaW46TkEsZ2V0U2FmZVByb3A6VnIscmVkdWNlRGVzY3JpcHRvcnM6VXQsZnJlZXplTWV0aG9kczpObyx0b09iamVjdFNldDprbyx0b0NhbWVsQ2FzZTpTbyxub29wOmJvLHRvRmluaXRlTnVtYmVyOkdvLGZpbmRLZXk6U3QsZ2xvYmFsOmFBLGlzQ29udGV4dERlZmluZWQ6RnQsaXNTcGVjQ29tcGxpYW50Rm9ybTpMbyx0b0pTT05PYmplY3Q6T28saXNBc3luY0ZuOkpvLGlzVGhlbmFibGU6SG8sc2V0SW1tZWRpYXRlOk50LGFzYXA6TW8saXNJdGVyYWJsZTprdCxpc1NhZmVJdGVyYWJsZTpZb307dmFyIFBvPW4udG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksYnQ9QT0+e2xldCBlPXt9LHQscixvO3JldHVybiBBJiZBLnNwbGl0KGAKYCkuZm9yRWFjaChmdW5jdGlvbihJKXtvPUkuaW5kZXhPZigiOiIpLHQ9SS5zdWJzdHJpbmcoMCxvKS50cmltKCkudG9Mb3dlckNhc2UoKSxyPUkuc3Vic3RyaW5nKG8rMSkudHJpbSgpLCEoIXR8fGVbdF0mJlBvW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2gocik6ZVt0XT1bcl06ZVt0XT1lW3RdP2VbdF0rIiwgIityOnIpfSksZX07ZnVuY3Rpb24gcW8oQSl7bGV0IGU9MCx0PUEubGVuZ3RoO2Zvcig7ZTx0Oyl7bGV0IHI9QS5jaGFyQ29kZUF0KGUpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7ZSs9MX1mb3IoO3Q+ZTspe2xldCByPUEuY2hhckNvZGVBdCh0LTEpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7dC09MX1yZXR1cm4gZT09PTAmJnQ9PT1BLmxlbmd0aD9BOkEuc2xpY2UoZSx0KX12YXIgVG89bmV3IFJlZ0V4cCgiW1xcdTAwMDAtXFx1MDAwOFxcdTAwMGEtXFx1MDAxZlxcdTAwN2ZdKyIsImciKSx4bz1uZXcgUmVnRXhwKCJbXlxcdTAwMDlcXHUwMDIwLVxcdTAwN2VcXHUwMDgwLVxcdTAwZmZdKyIsImciKTtmdW5jdGlvbiBGZShBLGUpe3JldHVybiBuLmlzQXJyYXkoQSk/QS5tYXAodD0+RmUodCxlKSk6cW8oU3RyaW5nKEEpLnJlcGxhY2UoZSwiIikpfXZhciBHdD1BPT5GZShBLFRvKSxLbz1BPT5GZShBLHhvKTtmdW5jdGlvbiBlZShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBuLmZvckVhY2goQS50b0pTT04oKSwodCxyKT0+e2Vbcl09S28odCl9KSxlfXZhciBMdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIEdBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gdGUoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOm4uaXNBcnJheShBKT9BLm1hcCh0ZSk6R3QoU3RyaW5nKEEpKX1mdW5jdGlvbiBXbyhBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgX289QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gVWUoQSxlLHQscixvKXtpZihuLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYobyYmKGU9dCksISFuLmlzU3RyaW5nKGUpKXtpZihuLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihuLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIGpvKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIHZvKEEsZSl7bGV0IHQ9bi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse19fcHJvdG9fXzpudWxsLHZhbHVlOmZ1bmN0aW9uKG8saSxJKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxvLGksSSl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHVBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IG89dGhpcztmdW5jdGlvbiBpKGcsUSxCKXtsZXQgcz1HQShRKTtpZighcylyZXR1cm47bGV0IGE9bi5maW5kS2V5KG8scyk7KCFhfHxvW2FdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJm9bYV0hPT0hMSkmJihvW2F8fFFdPXRlKGcpKX1sZXQgST0oZyxRKT0+bi5mb3JFYWNoKGcsKEIscyk9PmkoQixzLFEpKTtpZihuLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKUkoZSx0KTtlbHNlIGlmKG4uaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIV9vKGUpKUkoYnQoZSksdCk7ZWxzZSBpZihuLmlzT2JqZWN0KGUpJiZuLmlzU2FmZUl0ZXJhYmxlKGUpKXtsZXQgZz1PYmplY3QuY3JlYXRlKG51bGwpLFEsQjtmb3IobGV0IHMgb2YgZSl7aWYoIW4uaXNBcnJheShzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO0I9c1swXSxuLmhhc093blByb3AoZyxCKT8oUT1nW0JdLGdbQl09bi5pc0FycmF5KFEpP1suLi5RLHNbMV1dOltRLHNbMV1dKTpnW0JdPXNbMV19SShnLHQpfWVsc2UgZSE9bnVsbCYmaSh0LGUscik7cmV0dXJuIHRoaXN9Z2V0KGUsdCl7aWYoZT1HQShlKSxlKXtsZXQgcj1uLmZpbmRLZXkodGhpcyxlKTtpZihyKXtsZXQgbz10aGlzW3JdO2lmKCF0KXJldHVybiBvO2lmKHQ9PT0hMClyZXR1cm4gV28obyk7aWYobi5pc0Z1bmN0aW9uKHQpKXJldHVybiB0LmNhbGwodGhpcyxvLHIpO2lmKG4uaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhvKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsdCl7aWYoZT1HQShlKSxlKXtsZXQgcj1uLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hIShyJiZ0aGlzW3JdIT09dm9pZCAwJiYoIXR8fFVlKHRoaXMsdGhpc1tyXSxyLHQpKSl9cmV0dXJuITF9ZGVsZXRlKGUsdCl7bGV0IHI9dGhpcyxvPSExO2Z1bmN0aW9uIGkoSSl7aWYoST1HQShJKSxJKXtsZXQgZz1uLmZpbmRLZXkocixJKTtnJiYoIXR8fFVlKHIscltnXSxnLHQpKSYmKGRlbGV0ZSByW2ddLG89ITApfX1yZXR1cm4gbi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLG99Y2xlYXIoZSl7bGV0IHQ9T2JqZWN0LmtleXModGhpcykscj10Lmxlbmd0aCxvPSExO2Zvcig7ci0tOyl7bGV0IGk9dFtyXTsoIWV8fFVlKHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLG89ITApfXJldHVybiBvfW5vcm1hbGl6ZShlKXtsZXQgdD10aGlzLHI9e307cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChvLGkpPT57bGV0IEk9bi5maW5kS2V5KHIsaSk7aWYoSSl7dFtJXT10ZShvKSxkZWxldGUgdFtpXTtyZXR1cm59bGV0IGc9ZT9qbyhpKTpTdHJpbmcoaSkudHJpbSgpO2chPT1pJiZkZWxldGUgdFtpXSx0W2ddPXRlKG8pLHJbZ109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gbi5mb3JFYWNoKHRoaXMsKHIsbyk9PntyIT1udWxsJiZyIT09ITEmJih0W29dPWUmJm4uaXNBcnJheShyKT9yLmpvaW4oIiwgIik6cil9KSx0fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLHRdKT0+ZSsiOiAiK3QpLmpvaW4oYApgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4udCl7bGV0IHI9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaChvPT5yLnNldChvKSkscn1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHI9KHRoaXNbTHRdPXRoaXNbTHRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMsbz10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBpKEkpe2xldCBnPUdBKEkpO3JbZ118fCh2byhvLEkpLHJbZ109ITApfXJldHVybiBuLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSksdGhpc319O3VBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtuLnJlZHVjZURlc2NyaXB0b3JzKHVBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQocil7dGhpc1t0XT1yfX19KTtuLmZyZWV6ZU1ldGhvZHModUEpO3ZhciBGPXVBO3ZhciBabz0iW1JFREFDVEVEICoqKipdIjtmdW5jdGlvbiBWbyhBKXtpZihuLmhhc093blByb3AoQSwidG9KU09OIikpcmV0dXJuITA7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKEEpO2Zvcig7ZSYmZSE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihuLmhhc093blByb3AoZSwidG9KU09OIikpcmV0dXJuITA7ZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9cmV0dXJuITF9ZnVuY3Rpb24gem8oQSxlKXtsZXQgdD1uZXcgU2V0KGUubWFwKGk9PlN0cmluZyhpKS50b0xvd2VyQ2FzZSgpKSkscj1bXSxvPWk9PntpZihpPT09bnVsbHx8dHlwZW9mIGkhPSJvYmplY3QifHxuLmlzQnVmZmVyKGkpKXJldHVybiBpO2lmKHIuaW5kZXhPZihpKSE9PS0xKXJldHVybjtpIGluc3RhbmNlb2YgRiYmKGk9aS50b0pTT04oKSksci5wdXNoKGkpO2xldCBJO2lmKG4uaXNBcnJheShpKSlJPVtdLGkuZm9yRWFjaCgoZyxRKT0+e2xldCBCPW8oZyk7bi5pc1VuZGVmaW5lZChCKXx8KElbUV09Qil9KTtlbHNle2lmKCFuLmlzUGxhaW5PYmplY3QoaSkmJlZvKGkpKXJldHVybiByLnBvcCgpLGk7ST1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXRbZyxRXW9mIE9iamVjdC5lbnRyaWVzKGkpKXtsZXQgQj10LmhhcyhnLnRvTG93ZXJDYXNlKCkpP1pvOm8oUSk7bi5pc1VuZGVmaW5lZChCKXx8KElbZ109Qil9fXJldHVybiByLnBvcCgpLEl9O3JldHVybiBvKEEpfXZhciBHPWNsYXNzIEEgZXh0ZW5kcyBFcnJvcntzdGF0aWMgZnJvbShlLHQscixvLGksSSl7bGV0IGc9bmV3IEEoZS5tZXNzYWdlLHR8fGUuY29kZSxyLG8saSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmUsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxnLm5hbWU9ZS5uYW1lLGUuc3RhdHVzIT1udWxsJiZnLnN0YXR1cz09bnVsbCYmKGcuc3RhdHVzPWUuc3RhdHVzKSxJJiZPYmplY3QuYXNzaWduKGcsSSksZ31jb25zdHJ1Y3RvcihlLHQscixvLGkpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7X19wcm90b19fOm51bGwsdmFsdWU6ZSxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdGhpcy5pc0F4aW9zRXJyb3I9ITAsdCYmKHRoaXMuY29kZT10KSxyJiYodGhpcy5jb25maWc9ciksbyYmKHRoaXMucmVxdWVzdD1vKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzKX10b0pTT04oKXtsZXQgZT10aGlzLmNvbmZpZyx0PWUmJm4uaGFzT3duUHJvcChlLCJyZWRhY3QiKT9lLnJlZGFjdDp2b2lkIDAscj1uLmlzQXJyYXkodCkmJnQubGVuZ3RoPjA/em8oZSx0KTpuLnRvSlNPTk9iamVjdChlKTtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6cixjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX07Ry5FUlJfQkFEX09QVElPTl9WQUxVRT0iRVJSX0JBRF9PUFRJT05fVkFMVUUiO0cuRVJSX0JBRF9PUFRJT049IkVSUl9CQURfT1BUSU9OIjtHLkVDT05OQUJPUlRFRD0iRUNPTk5BQk9SVEVEIjtHLkVUSU1FRE9VVD0iRVRJTUVET1VUIjtHLkVDT05OUkVGVVNFRD0iRUNPTk5SRUZVU0VEIjtHLkVSUl9ORVRXT1JLPSJFUlJfTkVUV09SSyI7Ry5FUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTPSJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIjtHLkVSUl9ERVBSRUNBVEVEPSJFUlJfREVQUkVDQVRFRCI7Ry5FUlJfQkFEX1JFU1BPTlNFPSJFUlJfQkFEX1JFU1BPTlNFIjtHLkVSUl9CQURfUkVRVUVTVD0iRVJSX0JBRF9SRVFVRVNUIjtHLkVSUl9DQU5DRUxFRD0iRVJSX0NBTkNFTEVEIjtHLkVSUl9OT1RfU1VQUE9SVD0iRVJSX05PVF9TVVBQT1JUIjtHLkVSUl9JTlZBTElEX1VSTD0iRVJSX0lOVkFMSURfVVJMIjtHLkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQ9IkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQiO3ZhciBmPUc7dmFyIHJlPW51bGw7dmFyIGJlPTEwMDtmdW5jdGlvbiBrZShBKXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KEEpfHxuLmlzQXJyYXkoQSl9ZnVuY3Rpb24gT3QoQSl7cmV0dXJuIG4uZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gTmUoQSxlLHQpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihvLGkpe3JldHVybiBvPU90KG8pLCF0JiZpPyJbIitvKyJdIjpvfSkuam9pbih0PyIuIjoiIik6ZX1mdW5jdGlvbiBYbyhBKXtyZXR1cm4gbi5pc0FycmF5KEEpJiYhQS5zb21lKGtlKX12YXIgJG89bi50b0ZsYXRPYmplY3Qobix7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIEFpKEEsZSx0KXtpZighbi5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhyZXx8Rm9ybURhdGEpLHQ9bi50b0ZsYXRPYmplY3QodCx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGgseSl7cmV0dXJuIW4uaXNVbmRlZmluZWQoeVtoXSl9KTtsZXQgcj10Lm1ldGFUb2tlbnMsbz10LnZpc2l0b3J8fGMsaT10LmRvdHMsST10LmluZGV4ZXMsZz10LkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYixRPXQubWF4RGVwdGg9PT12b2lkIDA/YmU6dC5tYXhEZXB0aCxCPWcmJm4uaXNTcGVjQ29tcGxpYW50Rm9ybShlKSxzPVtdO2lmKCFuLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBhKEUpe2lmKEU9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKEUpKXJldHVybiBFLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oRSkpcmV0dXJuIEUudG9TdHJpbmcoKTtpZighQiYmbi5pc0Jsb2IoRSkpdGhyb3cgbmV3IGYoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7aWYobi5pc0FycmF5QnVmZmVyKEUpfHxuLmlzVHlwZWRBcnJheShFKSl7aWYoQiYmdHlwZW9mIGc9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBnKFtFXSk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKEUpO3Rocm93IG5ldyBmKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIsZi5FUlJfTk9UX1NVUFBPUlQpfXJldHVybiBFfWZ1bmN0aW9uIGwoRSl7aWYoRT5RKXRocm93IG5ldyBmKCJPYmplY3QgaXMgdG9vIGRlZXBseSBuZXN0ZWQgKCIrRSsiIGxldmVscykuIE1heCBkZXB0aDogIitRLGYuRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gQyhFLGgpe2lmKFE9PT0xLzApcmV0dXJuIEpTT04uc3RyaW5naWZ5KEUpO2xldCB5PVtdO3JldHVybiBKU09OLnN0cmluZ2lmeShFLGZ1bmN0aW9uKEosUyl7aWYoIW4uaXNPYmplY3QoUykpcmV0dXJuIFM7Zm9yKDt5Lmxlbmd0aCYmeVt5Lmxlbmd0aC0xXSE9PXRoaXM7KXkucG9wKCk7cmV0dXJuIHkucHVzaChTKSxsKGgreS5sZW5ndGgtMSksU30pfWZ1bmN0aW9uIGMoRSxoLHkpe2xldCBEPUU7aWYobi5pc1JlYWN0TmF0aXZlKGUpJiZuLmlzUmVhY3ROYXRpdmVCbG9iKEUpKXJldHVybiBlLmFwcGVuZChOZSh5LGgsaSksYShFKSksITE7aWYoRSYmIXkmJnR5cGVvZiBFPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChoLCJ7fSIpKWg9cj9oOmguc2xpY2UoMCwtMiksRT1DKEUsMSk7ZWxzZSBpZihuLmlzQXJyYXkoRSkmJlhvKEUpfHwobi5pc0ZpbGVMaXN0KEUpfHxuLmVuZHNXaXRoKGgsIltdIikpJiYoRD1uLnRvQXJyYXkoRSkpKXJldHVybiBoPU90KGgpLEQuZm9yRWFjaChmdW5jdGlvbihTLFgpeyEobi5pc1VuZGVmaW5lZChTKXx8Uz09PW51bGwpJiZlLmFwcGVuZChJPT09ITA/TmUoW2hdLFgsaSk6ST09PW51bGw/aDpoKyJbXSIsYShTKSl9KSwhMX1yZXR1cm4ga2UoRSk/ITA6KGUuYXBwZW5kKE5lKHksaCxpKSxhKEUpKSwhMSl9bGV0IHA9T2JqZWN0LmFzc2lnbigkbyx7ZGVmYXVsdFZpc2l0b3I6Yyxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTprZX0pO2Z1bmN0aW9uIHUoRSxoLHk9MCl7aWYoIW4uaXNVbmRlZmluZWQoRSkpe2lmKGwoeSkscy5pbmRleE9mKEUpIT09LTEpdGhyb3cgbmV3IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitoLmpvaW4oIi4iKSk7cy5wdXNoKEUpLG4uZm9yRWFjaChFLGZ1bmN0aW9uKEosUyl7KCEobi5pc1VuZGVmaW5lZChKKXx8Sj09PW51bGwpJiZvLmNhbGwoZSxKLG4uaXNTdHJpbmcoUyk/Uy50cmltKCk6UyxoLHApKT09PSEwJiZ1KEosaD9oLmNvbmNhdChTKTpbU10seSsxKX0pLHMucG9wKCl9fWlmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gdShBKSxlfXZhciByQT1BaTtmdW5jdGlvbiBKdChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjAvZyxmdW5jdGlvbihyKXtyZXR1cm4gZVtyXX0pfWZ1bmN0aW9uIEh0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmckEoQSx0aGlzLGUpfXZhciBNdD1IdC5wcm90b3R5cGU7TXQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O010LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/cj0+ZS5jYWxsKHRoaXMscixKdCk6SnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gdChvWzBdKSsiPSIrdChvWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIG9lPUh0O2Z1bmN0aW9uIGVpKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpfWZ1bmN0aW9uIExBKEEsZSx0KXtpZighZSlyZXR1cm4gQTtBPUF8fCIiO2xldCByPW4uaXNGdW5jdGlvbih0KT97c2VyaWFsaXplOnR9OnQsbz1uLmdldFNhZmVQcm9wKHIsImVuY29kZSIpfHxlaSxpPW4uZ2V0U2FmZVByb3Aociwic2VyaWFsaXplIiksSTtpZihpP0k9aShlLHIpOkk9bi5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IG9lKGUscikudG9TdHJpbmcobyksSSl7bGV0IGc9QS5pbmRleE9mKCIjIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK0l9cmV0dXJuIEF9dmFyIEdlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSx0LHIpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6cj9yLnN5bmNocm9ub3VzOiExLHJ1bldoZW46cj9yLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXtuLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihyKXtyIT09bnVsbCYmZShyKX0pfX0sTGU9R2U7dmFyIGZBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExLGxlZ2FjeUludGVyY2VwdG9yUmVxUmVzT3JkZXJpbmc6ITAsYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOiExLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6ITB9O3ZhciBZdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6b2U7dmFyIFB0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgcXQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgVHQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6WXQsRm9ybURhdGE6UHQsQmxvYjpxdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBIZT17fTtHcihIZSx7aGFzQnJvd3NlckVudjooKT0+SmUsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT50aSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PnJpLG5hdmlnYXRvcjooKT0+T2Usb3JpZ2luOigpPT5vaX0pO3ZhciBKZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixPZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsdGk9SmUmJighT2V8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoT2UucHJvZHVjdCk8MCkscmk9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG9pPUplJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBSPXsuLi5IZSwuLi5UdH07ZnVuY3Rpb24gTWUoQSxlKXtyZXR1cm4gckEoQSxuZXcgUi5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbih0LHIsbyxpKXtyZXR1cm4gUi5pc05vZGUmJm4uaXNCdWZmZXIodCk/KHRoaXMuYXBwZW5kKHIsdC50b1N0cmluZygiYmFzZTY0IikpLCExKTppLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4uZX0pfXZhciB4dD1iZTtmdW5jdGlvbiBLdChBKXtpZihBPnh0KXRocm93IG5ldyBmKCJGb3JtRGF0YSBmaWVsZCBpcyB0b28gZGVlcGx5IG5lc3RlZCAoIitBKyIgbGV2ZWxzKS4gTWF4IGRlcHRoOiAiK3h0LGYuRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gaWkoQSl7bGV0IGU9W10sdD0vXHcrfFxbKFx3KildL2cscjtmb3IoOyhyPXQuZXhlYyhBKSkhPT1udWxsOylLdChlLmxlbmd0aCksZS5wdXNoKHJbMF09PT0iW10iPyIiOnJbMV18fHJbMF0pO3JldHVybiBlfWZ1bmN0aW9uIElpKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixvPXQubGVuZ3RoLGk7Zm9yKHI9MDtyPG87cisrKWk9dFtyXSxlW2ldPUFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gbmkoQSl7ZnVuY3Rpb24gZSh0LHIsbyxpKXtLdChpKTtsZXQgST10W2krK107aWYoST09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBnPU51bWJlci5pc0Zpbml0ZSgrSSksUT1pPj10Lmxlbmd0aDtyZXR1cm4gST0hSSYmbi5pc0FycmF5KG8pP28ubGVuZ3RoOkksUT8obi5oYXNPd25Qcm9wKG8sSSk/b1tJXT1uLmlzQXJyYXkob1tJXSk/b1tJXS5jb25jYXQocik6W29bSV0scl06b1tJXT1yLCFnKTooKCFuLmhhc093blByb3AobyxJKXx8IW4uaXNPYmplY3Qob1tJXSkpJiYob1tJXT1bXSksZSh0LHIsb1tJXSxpKSYmbi5pc0FycmF5KG9bSV0pJiYob1tJXT1JaShvW0ldKSksIWcpfWlmKG4uaXNGb3JtRGF0YShBKSYmbi5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCB0PXt9O3JldHVybiBuLmZvckVhY2hFbnRyeShBLChyLG8pPT57ZShpaShyKSxvLHQsMCl9KSx0fXJldHVybiBudWxsfXZhciBpZT1uaTt2YXIgcEE9KEEsZSk9PkEhPW51bGwmJm4uaGFzT3duUHJvcChBLGUpP0FbZV06dm9pZCAwO2Z1bmN0aW9uIGdpKEEsZSx0KXtpZihuLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksbi50cmltKEEpfWNhdGNoKHIpe2lmKHIubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgcn1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBZZT17dHJhbnNpdGlvbmFsOmZBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCByPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIsbz1yLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxpPW4uaXNPYmplY3QoZSk7aWYoaSYmbi5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLG4uaXNGb3JtRGF0YShlKSlyZXR1cm4gbz9KU09OLnN0cmluZ2lmeShpZShlKSk6ZTtpZihuLmlzQXJyYXlCdWZmZXIoZSl8fG4uaXNCdWZmZXIoZSl8fG4uaXNTdHJlYW0oZSl8fG4uaXNGaWxlKGUpfHxuLmlzQmxvYihlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKG4uaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKG4uaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBnO2lmKGkpe2xldCBRPXBBKHRoaXMsImZvcm1TZXJpYWxpemVyIik7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gTWUoZSxRKS50b1N0cmluZygpO2lmKChnPW4uaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgQj1wQSh0aGlzLCJlbnYiKSxzPUImJkIuRm9ybURhdGE7cmV0dXJuIHJBKGc/eyJmaWxlc1tdIjplfTplLHMmJm5ldyBzLFEpfX1yZXR1cm4gaXx8bz8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLGdpKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXBBKHRoaXMsInRyYW5zaXRpb25hbCIpfHxZZS50cmFuc2l0aW9uYWwscj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89cEEodGhpcywicmVzcG9uc2VUeXBlIiksaT1vPT09Impzb24iO2lmKG4uaXNSZXNwb25zZShlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJm4uaXNTdHJpbmcoZSkmJihyJiYhb3x8aSkpe2xldCBnPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJmk7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUscEEodGhpcywicGFyc2VSZXZpdmVyIikpfWNhdGNoKFEpe2lmKGcpdGhyb3cgUS5uYW1lPT09IlN5bnRheEVycm9yIj9mLmZyb20oUSxmLkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHBBKHRoaXMsInJlc3BvbnNlIikpOlF9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpSLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpSLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwicXVlcnkiXSxBPT57WWUuaGVhZGVyc1tBXT17fX0pO3ZhciBkQT1ZZTtmdW5jdGlvbiBPQShBLGUpe2xldCB0PXRoaXN8fGRBLHI9ZXx8dCxvPUYuZnJvbShyLmhlYWRlcnMpLGk9ci5kYXRhO3JldHVybiBuLmZvckVhY2goQSxmdW5jdGlvbihnKXtpPWcuY2FsbCh0LGksby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gSkEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX12YXIgUGU9Y2xhc3MgZXh0ZW5kcyBme2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlPz8iY2FuY2VsZWQiLGYuRVJSX0NBTkNFTEVELHQsciksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIix0aGlzLl9fQ0FOQ0VMX189ITB9fSx2PVBlO2Z1bmN0aW9uIEhBKEEsZSx0KXtsZXQgcj10LmNvbmZpZy52YWxpZGF0ZVN0YXR1czshdC5zdGF0dXN8fCFyfHxyKHQuc3RhdHVzKT9BKHQpOmUobmV3IGYoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIit0LnN0YXR1cyx0LnN0YXR1cz49NDAwJiZ0LnN0YXR1czw1MDA/Zi5FUlJfQkFEX1JFUVVFU1Q6Zi5FUlJfQkFEX1JFU1BPTlNFLHQuY29uZmlnLHQucmVxdWVzdCx0KSl9ZnVuY3Rpb24gcWUoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KTooPzpcL1wvKT8vLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIGFpKEEsZSl7QT1BfHwxMDtsZXQgdD1uZXcgQXJyYXkoQSkscj1uZXcgQXJyYXkoQSksbz0wLGk9MCxJO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oUSl7bGV0IEI9RGF0ZS5ub3coKSxzPXJbaV07SXx8KEk9QiksdFtvXT1RLHJbb109QjtsZXQgYT1pLGw9MDtmb3IoO2EhPT1vOylsKz10W2ErK10sYT1hJUE7aWYobz0obysxKSVBLG89PT1pJiYoaT0oaSsxKSVBKSxCLUk8ZSlyZXR1cm47bGV0IEM9cyYmQi1zO3JldHVybiBDP01hdGgucm91bmQobCoxZTMvQyk6dm9pZCAwfX12YXIgV3Q9YWk7ZnVuY3Rpb24gc2koQSxlKXtsZXQgdD0wLHI9MWUzL2UsbyxpLEk9KEIscz1EYXRlLm5vdygpKT0+e3Q9cyxvPW51bGwsaSYmKGNsZWFyVGltZW91dChpKSxpPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLGE9cy10O2E+PXI/SShCLHMpOihvPUIsaXx8KGk9c2V0VGltZW91dCgoKT0+e2k9bnVsbCxJKG8pfSxyLWEpKSl9LCgpPT5vJiZJKG8pXX12YXIgX3Q9c2k7dmFyIGhBPShBLGUsdD0zKT0+e2xldCByPTAsbz1XdCg1MCwyNTApO3JldHVybiBfdChpPT57aWYoIWl8fHR5cGVvZiBpLmxvYWRlZCE9Im51bWJlciIpcmV0dXJuO2xldCBJPWkubG9hZGVkLGc9aS5sZW5ndGhDb21wdXRhYmxlP2kudG90YWw6dm9pZCAwLFE9ZyE9bnVsbD9NYXRoLm1pbihJLGcpOkksQj1NYXRoLm1heCgwLFEtcikscz1vKEIpO3I9TWF0aC5tYXgocixRKTtsZXQgYT17bG9hZGVkOlEsdG90YWw6Zyxwcm9ncmVzczpnP1EvZzp2b2lkIDAsYnl0ZXM6QixyYXRlOnN8fHZvaWQgMCxlc3RpbWF0ZWQ6cyYmZz8oZy1RKS9zOnZvaWQgMCxldmVudDppLGxlbmd0aENvbXB1dGFibGU6ZyE9bnVsbCxbZT8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShhKX0sdCl9LFRlPShBLGUpPT57bGV0IHQ9QSE9bnVsbDtyZXR1cm5bcj0+ZVswXSh7bGVuZ3RoQ29tcHV0YWJsZTp0LHRvdGFsOkEsbG9hZGVkOnJ9KSxlWzFdXX0seGU9QT0+KC4uLmUpPT5uLmFzYXAoKCk9PkEoLi4uZSkpO3ZhciBqdD1SLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsZSk9PnQ9Pih0PW5ldyBVUkwodCxSLm9yaWdpbiksQS5wcm90b2NvbD09PXQucHJvdG9jb2wmJkEuaG9zdD09PXQuaG9zdCYmKGV8fEEucG9ydD09PXQucG9ydCkpKShuZXcgVVJMKFIub3JpZ2luKSxSLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChSLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIHZ0PVIuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLGUsdCxyLG8saSxJKXtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybjtsZXQgZz1bYCR7QX09JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YF07bi5pc051bWJlcih0KSYmZy5wdXNoKGBleHBpcmVzPSR7bmV3IERhdGUodCkudG9VVENTdHJpbmcoKX1gKSxuLmlzU3RyaW5nKHIpJiZnLnB1c2goYHBhdGg9JHtyfWApLG4uaXNTdHJpbmcobykmJmcucHVzaChgZG9tYWluPSR7b31gKSxpPT09ITAmJmcucHVzaCgic2VjdXJlIiksbi5pc1N0cmluZyhJKSYmZy5wdXNoKGBTYW1lU2l0ZT0ke0l9YCksZG9jdW1lbnQuY29va2llPWcuam9pbigiOyAiKX0scmVhZChBKXtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybiBudWxsO2xldCBlPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtsZXQgcj1lW3RdLnJlcGxhY2UoL15ccysvLCIiKSxvPXIuaW5kZXhPZigiPSIpO2lmKG8hPT0tMSYmci5zbGljZSgwLG8pPT09QSl0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyLnNsaWNlKG8rMSkpfWNhdGNoe3JldHVybiByLnNsaWNlKG8rMSl9fXJldHVybiBudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUsIi8iKX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBLZShBKXtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciPyExOi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoQSl9ZnVuY3Rpb24gV2UoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIitlLnJlcGxhY2UoL15cLysvLCIiKTpBfXZhciBDaT0vXmh0dHBzPzooPyFcL1wvKS9pLEJpPS9bXHRcblxyXS9nO2Z1bmN0aW9uIFFpKEEpe2xldCBlPTA7Zm9yKDtlPEEubGVuZ3RoJiZBLmNoYXJDb2RlQXQoZSk8PTMyOyllKys7cmV0dXJuIEEuc2xpY2UoZSl9ZnVuY3Rpb24gRWkoQSl7cmV0dXJuIFFpKEEpLnJlcGxhY2UoQmksIiIpfWZ1bmN0aW9uIFp0KEEsZSl7aWYodHlwZW9mIEE9PSJzdHJpbmciJiZDaS50ZXN0KEVpKEEpKSl0aHJvdyBuZXcgZignSW52YWxpZCBVUkw6IG1pc3NpbmcgIi8vIiBhZnRlciBwcm90b2NvbCcsZi5FUlJfSU5WQUxJRF9VUkwsZSl9ZnVuY3Rpb24gTUEoQSxlLHQscil7WnQoZSxyKTtsZXQgbz0hS2UoZSk7cmV0dXJuIEEmJihvfHx0PT09ITEpPyhadChBLHIpLFdlKEEsZSkpOmV9dmFyIFZ0PUE9PkEgaW5zdGFuY2VvZiBGP3suLi5BfTpBO2Z1bmN0aW9uIFcoQSxlKXtBPUF8fHt9LGU9ZXx8e307bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaGFzT3duUHJvcGVydHkiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7ZnVuY3Rpb24gcihzLGEsbCxDKXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KHMpJiZuLmlzUGxhaW5PYmplY3QoYSk/bi5tZXJnZS5jYWxsKHtjYXNlbGVzczpDfSxzLGEpOm4uaXNQbGFpbk9iamVjdChhKT9uLm1lcmdlKHt9LGEpOm4uaXNBcnJheShhKT9hLnNsaWNlKCk6YX1mdW5jdGlvbiBvKHMsYSxsLEMpe2lmKG4uaXNVbmRlZmluZWQoYSkpe2lmKCFuLmlzVW5kZWZpbmVkKHMpKXJldHVybiByKHZvaWQgMCxzLGwsQyl9ZWxzZSByZXR1cm4gcihzLGEsbCxDKX1mdW5jdGlvbiBpKHMsYSl7aWYoIW4uaXNVbmRlZmluZWQoYSkpcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIEkocyxhKXtpZihuLmlzVW5kZWZpbmVkKGEpKXtpZighbi5pc1VuZGVmaW5lZChzKSlyZXR1cm4gcih2b2lkIDAscyl9ZWxzZSByZXR1cm4gcih2b2lkIDAsYSl9ZnVuY3Rpb24gZyhzKXtsZXQgYT1uLmhhc093blByb3AoZSwidHJhbnNpdGlvbmFsIik/ZS50cmFuc2l0aW9uYWw6dm9pZCAwO2lmKCFuLmlzVW5kZWZpbmVkKGEpKWlmKG4uaXNQbGFpbk9iamVjdChhKSl7aWYobi5oYXNPd25Qcm9wKGEscykpcmV0dXJuIGFbc119ZWxzZSByZXR1cm47bGV0IGw9bi5oYXNPd25Qcm9wKEEsInRyYW5zaXRpb25hbCIpP0EudHJhbnNpdGlvbmFsOnZvaWQgMDtpZihuLmlzUGxhaW5PYmplY3QobCkmJm4uaGFzT3duUHJvcChsLHMpKXJldHVybiBsW3NdfWZ1bmN0aW9uIFEocyxhLGwpe2lmKG4uaGFzT3duUHJvcChlLGwpKXJldHVybiByKHMsYSk7aWYobi5oYXNPd25Qcm9wKEEsbCkpcmV0dXJuIHIodm9pZCAwLHMpfWxldCBCPXt1cmw6aSxtZXRob2Q6aSxkYXRhOmksYmFzZVVSTDpJLHRyYW5zZm9ybVJlcXVlc3Q6SSx0cmFuc2Zvcm1SZXNwb25zZTpJLHBhcmFtc1NlcmlhbGl6ZXI6SSx0aW1lb3V0OkksdGltZW91dE1lc3NhZ2U6SSx3aXRoQ3JlZGVudGlhbHM6SSx3aXRoWFNSRlRva2VuOkksYWRhcHRlcjpJLHJlc3BvbnNlVHlwZTpJLHhzcmZDb29raWVOYW1lOkkseHNyZkhlYWRlck5hbWU6SSxvblVwbG9hZFByb2dyZXNzOkksb25Eb3dubG9hZFByb2dyZXNzOkksZGVjb21wcmVzczpJLG1heENvbnRlbnRMZW5ndGg6SSxtYXhCb2R5TGVuZ3RoOkksYmVmb3JlUmVkaXJlY3Q6SSx0cmFuc3BvcnQ6SSxodHRwQWdlbnQ6SSxodHRwc0FnZW50OkksY2FuY2VsVG9rZW46SSxzb2NrZXRQYXRoOkksYWxsb3dlZFNvY2tldFBhdGhzOkkscmVzcG9uc2VFbmNvZGluZzpJLHZhbGlkYXRlU3RhdHVzOlEsaGVhZGVyczoocyxhLGwpPT5vKFZ0KHMpLFZ0KGEpLGwsITApfTtyZXR1cm4gbi5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLmV9KSxmdW5jdGlvbihhKXtpZihhPT09Il9fcHJvdG9fXyJ8fGE9PT0iY29uc3RydWN0b3IifHxhPT09InByb3RvdHlwZSIpcmV0dXJuO2xldCBsPW4uaGFzT3duUHJvcChCLGEpP0JbYV06byxDPW4uaGFzT3duUHJvcChBLGEpP0FbYV06dm9pZCAwLGM9bi5oYXNPd25Qcm9wKGUsYSk/ZVthXTp2b2lkIDAscD1sKEMsYyxhKTtuLmlzVW5kZWZpbmVkKHApJiZsIT09UXx8KHRbYV09cCl9KSxuLmhhc093blByb3AoZSwidmFsaWRhdGVTdGF0dXMiKSYmbi5pc1VuZGVmaW5lZChlLnZhbGlkYXRlU3RhdHVzKSYmZygidmFsaWRhdGVTdGF0dXNVbmRlZmluZWRSZXNvbHZlcyIpPT09ITEmJihuLmhhc093blByb3AoQSwidmFsaWRhdGVTdGF0dXMiKT90LnZhbGlkYXRlU3RhdHVzPXIodm9pZCAwLEEudmFsaWRhdGVTdGF0dXMpOmRlbGV0ZSB0LnZhbGlkYXRlU3RhdHVzKSx0fXZhciBsaT1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07ZnVuY3Rpb24gY2koQSxlLHQpe2lmKHQhPT0iY29udGVudC1vbmx5Iil7QS5zZXQoZSk7cmV0dXJufU9iamVjdC5lbnRyaWVzKGV8fHt9KS5mb3JFYWNoKChbcixvXSk9PntsaS5pbmNsdWRlcyhyLnRvTG93ZXJDYXNlKCkpJiZBLnNldChyLG8pfSl9dmFyIHVpPUE9PmVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9naSwoZSx0KT0+U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LDE2KSkpO2Z1bmN0aW9uIGZpKEEpe2xldCBlPVcoe30sQSksdD1sPT5uLmhhc093blByb3AoZSxsKT9lW2xdOnZvaWQgMCxyPXQoImRhdGEiKSxvPXQoIndpdGhYU1JGVG9rZW4iKSxpPXQoInhzcmZIZWFkZXJOYW1lIiksST10KCJ4c3JmQ29va2llTmFtZSIpLGc9dCgiaGVhZGVycyIpLFE9dCgiYXV0aCIpLEI9dCgiYmFzZVVSTCIpLHM9dCgiYWxsb3dBYnNvbHV0ZVVybHMiKSxhPXQoInVybCIpO2lmKGUuaGVhZGVycz1nPUYuZnJvbShnKSxlLnVybD1MQShNQShCLGEscyxlKSx0KCJwYXJhbXMiKSx0KCJwYXJhbXNTZXJpYWxpemVyIikpLFEpe2xldCBsPW4uZ2V0U2FmZVByb3AoUSwidXNlcm5hbWUiKXx8IiIsQz1uLmdldFNhZmVQcm9wKFEsInBhc3N3b3JkIil8fCIiO3RyeXtnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYShsKyI6IisoQz91aShDKToiIikpKX1jYXRjaChjKXt0aHJvdyBmLmZyb20oYyxmLkVSUl9CQURfT1BUSU9OX1ZBTFVFLEEpfX1pZihuLmlzRm9ybURhdGEocikmJihSLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8Ui5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnZ8fG4uaXNSZWFjdE5hdGl2ZShyKT9nLnNldENvbnRlbnRUeXBlKHZvaWQgMCk6bi5pc0Z1bmN0aW9uKHIuZ2V0SGVhZGVycykmJmNpKGcsci5nZXRIZWFkZXJzKCksdCgiZm9ybURhdGFIZWFkZXJQb2xpY3kiKSkpLFIuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYobi5pc0Z1bmN0aW9uKG8pJiYobz1vKGUpKSxvPT09ITB8fG89PW51bGwmJmp0KGUudXJsKSkpe2xldCBDPWkmJkkmJnZ0LnJlYWQoSSk7QyYmZy5zZXQoaSxDKX1yZXR1cm4gZX12YXIgSWU9Zmk7dmFyIHBpPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsenQ9cGkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBvPUllKEEpLGk9by5kYXRhLEk9Ri5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6USxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxzLGEsbCxDLGM7ZnVuY3Rpb24gcCgpe0MmJkMoKSxjJiZjKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDt1Lm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksdS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiBFKCl7aWYoIXUpcmV0dXJuO2xldCB5PUYuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHUmJnUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEo9e2RhdGE6IWd8fGc9PT0idGV4dCJ8fGc9PT0ianNvbiI/dS5yZXNwb25zZVRleHQ6dS5yZXNwb25zZSxzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczp5LGNvbmZpZzpBLHJlcXVlc3Q6dX07SEEoZnVuY3Rpb24oWCl7dChYKSxwKCl9LGZ1bmN0aW9uKFgpe3IoWCkscCgpfSxKKSx1PW51bGx9Im9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPUU6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuc3RhcnRzV2l0aCgiZmlsZToiKSl8fHNldFRpbWVvdXQoRSl9LHUub25hYm9ydD1mdW5jdGlvbigpe3UmJihyKG5ldyBmKCJSZXF1ZXN0IGFib3J0ZWQiLGYuRUNPTk5BQk9SVEVELEEsdSkpLHAoKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oRCl7bGV0IEo9RCYmRC5tZXNzYWdlP0QubWVzc2FnZToiTmV0d29yayBFcnJvciIsUz1uZXcgZihKLGYuRVJSX05FVFdPUkssQSx1KTtTLmV2ZW50PUR8fG51bGwscihTKSxwKCksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe2xldCBEPW8udGltZW91dD8idGltZW91dCBvZiAiK28udGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixKPW8udHJhbnNpdGlvbmFsfHxmQTtvLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihEPW8udGltZW91dEVycm9yTWVzc2FnZSkscihuZXcgZihELEouY2xhcmlmeVRpbWVvdXRFcnJvcj9mLkVUSU1FRE9VVDpmLkVDT05OQUJPUlRFRCxBLHUpKSxwKCksdT1udWxsfSxpPT09dm9pZCAwJiZJLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIHUmJm4uZm9yRWFjaChlZShJKSxmdW5jdGlvbihELEope3Uuc2V0UmVxdWVzdEhlYWRlcihKLEQpfSksbi5pc1VuZGVmaW5lZChvLndpdGhDcmVkZW50aWFscyl8fCh1LndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzKSxnJiZnIT09Impzb24iJiYodS5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLEImJihbbCxjXT1oQShCLCEwKSx1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSksUSYmdS51cGxvYWQmJihbYSxDXT1oQShRKSx1LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYSksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChvLmNhbmNlbFRva2VufHxvLnNpZ25hbCkmJihzPXk9Pnt1JiYocigheXx8eS50eXBlP25ldyB2KG51bGwsQSx1KTp5KSx1LmFib3J0KCkscCgpLHU9bnVsbCl9LG8uY2FuY2VsVG9rZW4mJm8uY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLG8uc2lnbmFsJiYoby5zaWduYWwuYWJvcnRlZD9zKCk6by5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IGg9cWUoby51cmwpO2lmKGgmJiFSLnByb3RvY29scy5pbmNsdWRlcyhoKSl7cihuZXcgZigiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitoKyI6IixmLkVSUl9CQURfUkVRVUVTVCxBKSkscCgpO3JldHVybn11LnNlbmQoaXx8bnVsbCl9KX07dmFyIGRpPShBLGUpPT57aWYoQT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdLCFlJiYhQS5sZW5ndGgpcmV0dXJuO2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIscj0hMSxvPWZ1bmN0aW9uKFEpe2lmKCFyKXtyPSEwLEkoKTtsZXQgQj1RIGluc3RhbmNlb2YgRXJyb3I/UTp0aGlzLnJlYXNvbjt0LmFib3J0KEIgaW5zdGFuY2VvZiBmP0I6bmV3IHYoQiBpbnN0YW5jZW9mIEVycm9yP0IubWVzc2FnZTpCKSl9fSxpPWUmJnNldFRpbWVvdXQoKCk9PntpPW51bGwsbyhuZXcgZihgdGltZW91dCBvZiAke2V9bXMgZXhjZWVkZWRgLGYuRVRJTUVET1VUKSl9LGUpLEk9KCk9PntBJiYoaSYmY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCxBLmZvckVhY2goUT0+e1EudW5zdWJzY3JpYmU/US51bnN1YnNjcmliZShvKTpRLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChRPT5RLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvLHtvbmNlOiEwfSkpO2xldHtzaWduYWw6Z309dDtyZXR1cm4gZy51bnN1YnNjcmliZT0oKT0+bi5hc2FwKEkpLGd9LFh0PWRpO3ZhciBoaT1mdW5jdGlvbiooQSxlKXtsZXQgdD1BLmJ5dGVMZW5ndGg7aWYoIWV8fHQ8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHI9MCxvO2Zvcig7cjx0OylvPXIrZSx5aWVsZCBBLnNsaWNlKHIsbykscj1vfSx5aT1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IHQgb2YgbWkoQSkpeWllbGQqaGkodCxlKX0sbWk9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOnQsdmFsdWU6cn09YXdhaXQgZS5yZWFkKCk7aWYodClicmVhazt5aWVsZCByfX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxfZT0oQSxlLHQscik9PntsZXQgbz15aShBLGUpLGk9MCxJLGc9UT0+e0l8fChJPSEwLHImJnIoUSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKFEpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IG8ubmV4dCgpO2lmKEIpe2coKSxRLmNsb3NlKCk7cmV0dXJufWxldCBhPXMuYnl0ZUxlbmd0aDtpZih0KXtsZXQgbD1pKz1hO3QobCl9US5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBnKEIpLEJ9fSxjYW5jZWwoUSl7cmV0dXJuIGcoUSksby5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIG5lPUE9PkE+PTQ4JiZBPD01N3x8QT49NjUmJkE8PTcwfHxBPj05NyYmQTw9MTAyLERpPShBLGUsdCk9PmUrMjx0JiZuZShBLmNoYXJDb2RlQXQoZSsxKSkmJm5lKEEuY2hhckNvZGVBdChlKzIpKTtmdW5jdGlvbiBqZShBKXtpZighQXx8dHlwZW9mIEEhPSJzdHJpbmcifHwhQS5zdGFydHNXaXRoKCJkYXRhOiIpKXJldHVybiAwO2xldCBlPUEuaW5kZXhPZigiLCIpO2lmKGU8MClyZXR1cm4gMDtsZXQgdD1BLnNsaWNlKDUsZSkscj1BLnNsaWNlKGUrMSk7aWYoLztiYXNlNjQvaS50ZXN0KHQpKXtsZXQgST1yLmxlbmd0aCxnPXIubGVuZ3RoO2ZvcihsZXQgQz0wO0M8ZztDKyspaWYoci5jaGFyQ29kZUF0KEMpPT09MzcmJkMrMjxnKXtsZXQgYz1yLmNoYXJDb2RlQXQoQysxKSxwPXIuY2hhckNvZGVBdChDKzIpO25lKGMpJiZuZShwKSYmKEktPTIsQys9Mil9bGV0IFE9MCxCPWctMSxzPUM9PkM+PTImJnIuY2hhckNvZGVBdChDLTIpPT09MzcmJnIuY2hhckNvZGVBdChDLTEpPT09NTEmJihyLmNoYXJDb2RlQXQoQyk9PT02OHx8ci5jaGFyQ29kZUF0KEMpPT09MTAwKTtCPj0wJiYoci5jaGFyQ29kZUF0KEIpPT09NjE/KFErKyxCLS0pOnMoQikmJihRKyssQi09MykpLFE9PT0xJiZCPj0wJiYoci5jaGFyQ29kZUF0KEIpPT09NjF8fHMoQikpJiZRKys7bGV0IGw9TWF0aC5mbG9vcihJLzQpKjMtKFF8fDApO3JldHVybiBsPjA/bDowfWxldCBpPTA7Zm9yKGxldCBJPTAsZz1yLmxlbmd0aDtJPGc7SSsrKXtsZXQgUT1yLmNoYXJDb2RlQXQoSSk7aWYoUT09PTM3JiZEaShyLEksZykpaSs9MSxJKz0yO2Vsc2UgaWYoUTwxMjgpaSs9MTtlbHNlIGlmKFE8MjA0OClpKz0yO2Vsc2UgaWYoUT49NTUyOTYmJlE8PTU2MzE5JiZJKzE8Zyl7bGV0IEI9ci5jaGFyQ29kZUF0KEkrMSk7Qj49NTYzMjAmJkI8PTU3MzQzPyhpKz00LEkrKyk6aSs9M31lbHNlIGkrPTN9cmV0dXJuIGl9dmFyIHlBPSIxLjE4LjEiO3ZhciAkdD02NCoxMDI0LHtpc0Z1bmN0aW9uOmdlfT1uLHdpPUE9PmVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9naSwoZSx0KT0+U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LDE2KSkpLEFyPUE9PntpZighbi5pc1N0cmluZyhBKSlyZXR1cm4gQTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChBKX1jYXRjaHtyZXR1cm4gQX19LGVyPShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFJpPUE9PntsZXQgZT1BLmluZGV4T2YoIjovLyIpLHQ9QTtyZXR1cm4gZSE9PS0xJiYodD10LnNsaWNlKGUrMykpLHQuaW5jbHVkZXMoIkAiKXx8dC5pbmNsdWRlcygiOiIpfSxTaT1BPT57bGV0IGU9bi5nbG9iYWwhPT12b2lkIDAmJm4uZ2xvYmFsIT09bnVsbD9uLmdsb2JhbDpnbG9iYWxUaGlzLHtSZWFkYWJsZVN0cmVhbTp0LFRleHRFbmNvZGVyOnJ9PWU7QT1uLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LHtSZXF1ZXN0OmUuUmVxdWVzdCxSZXNwb25zZTplLlJlc3BvbnNlfSxBKTtsZXR7ZmV0Y2g6byxSZXF1ZXN0OmksUmVzcG9uc2U6SX09QSxnPW8/Z2Uobyk6dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iLFE9Z2UoaSksQj1nZShJKTtpZighZylyZXR1cm4hMTtsZXQgcz1nJiZnZSh0KSxhPWcmJih0eXBlb2Ygcj09ImZ1bmN0aW9uIj8oRT0+aD0+RS5lbmNvZGUoaCkpKG5ldyByKTphc3luYyBFPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgaShFKS5hcnJheUJ1ZmZlcigpKSksbD1RJiZzJiZlcigoKT0+e2xldCBFPSExLGg9bmV3IGkoUi5vcmlnaW4se2JvZHk6bmV3IHQsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEU9ITAsImhhbGYifX0pLHk9aC5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIGguYm9keSE9bnVsbCYmaC5ib2R5LmNhbmNlbCgpLEUmJiF5fSksQz1CJiZzJiZlcigoKT0+bi5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksYz17c3RyZWFtOkMmJihFPT5FLmJvZHkpfTtnJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goRT0+eyFjW0VdJiYoY1tFXT0oaCx5KT0+e2xldCBEPWgmJmhbRV07aWYoRClyZXR1cm4gRC5jYWxsKGgpO3Rocm93IG5ldyBmKGBSZXNwb25zZSB0eXBlICcke0V9JyBpcyBub3Qgc3VwcG9ydGVkYCxmLkVSUl9OT1RfU1VQUE9SVCx5KX0pfSk7bGV0IHA9YXN5bmMgRT0+e2lmKEU9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoRSkpcmV0dXJuIEUuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oRSkpcmV0dXJuKGF3YWl0IG5ldyBpKFIub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6RX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhFKXx8bi5pc0FycmF5QnVmZmVyKEUpKXJldHVybiBFLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhFKSYmKEU9RSsiIiksbi5pc1N0cmluZyhFKSlyZXR1cm4oYXdhaXQgYShFKSkuYnl0ZUxlbmd0aH0sdT1hc3luYyhFLGgpPT57bGV0IHk9bi50b0Zpbml0ZU51bWJlcihFLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIHk/P3AoaCl9O3JldHVybiBhc3luYyBFPT57bGV0e3VybDpoLG1ldGhvZDp5LGRhdGE6RCxzaWduYWw6SixjYW5jZWxUb2tlbjpTLHRpbWVvdXQ6WCxvbkRvd25sb2FkUHJvZ3Jlc3M6Y2Usb25VcGxvYWRQcm9ncmVzczp1ZSxyZXNwb25zZVR5cGU6JCxoZWFkZXJzOkFBLHdpdGhDcmVkZW50aWFsczpLQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpJdCxtYXhDb250ZW50TGVuZ3RoOl8sbWF4Qm9keUxlbmd0aDpXQX09SWUoRSksUkE9bi5pc051bWJlcihfKSYmXz4tMSxmZT1uLmlzTnVtYmVyKFdBKSYmV0E+LTEsVXI9dz0+bi5oYXNPd25Qcm9wKEUsdyk/RVt3XTp2b2lkIDAsbnQ9b3x8ZmV0Y2g7JD0kPygkKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgZUE9WHQoW0osUyYmUy50b0Fib3J0U2lnbmFsKCldLFgpLGI9bnVsbCxpQT1lQSYmZUEudW5zdWJzY3JpYmUmJigoKT0+e2VBLnVuc3Vic2NyaWJlKCl9KSxDQSxTQT1udWxsLGd0PSgpPT5uZXcgZigiUmVxdWVzdCBib2R5IGxhcmdlciB0aGFuIG1heEJvZHlMZW5ndGggbGltaXQiLGYuRVJSX0JBRF9SRVFVRVNULEUsYik7dHJ5e2xldCB3LHg9VXIoImF1dGgiKTtpZih4KXtsZXQgbT1uLmdldFNhZmVQcm9wKHgsInVzZXJuYW1lIil8fCIiLFQ9bi5nZXRTYWZlUHJvcCh4LCJwYXNzd29yZCIpfHwiIjt3PXt1c2VybmFtZTptLHBhc3N3b3JkOlR9fWlmKFJpKGgpKXtsZXQgbT1uZXcgVVJMKGgsUi5vcmlnaW4pO2lmKCF3JiYobS51c2VybmFtZXx8bS5wYXNzd29yZCkpe2xldCBUPUFyKG0udXNlcm5hbWUpLHRBPUFyKG0ucGFzc3dvcmQpO3c9e3VzZXJuYW1lOlQscGFzc3dvcmQ6dEF9fShtLnVzZXJuYW1lfHxtLnBhc3N3b3JkKSYmKG0udXNlcm5hbWU9IiIsbS5wYXNzd29yZD0iIixoPW0uaHJlZil9aWYodyYmKEFBLmRlbGV0ZSgiYXV0aG9yaXphdGlvbiIpLEFBLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSh3aSgody51c2VybmFtZXx8IiIpKyI6Iisody5wYXNzd29yZHx8IiIpKSkpKSxSQSYmdHlwZW9mIGg9PSJzdHJpbmciJiZoLnN0YXJ0c1dpdGgoImRhdGE6IikmJmplKGgpPl8pdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK18rIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsYik7aWYoZmUmJnkhPT0iZ2V0IiYmeSE9PSJoZWFkIil7bGV0IG09YXdhaXQgcChEKTtpZih0eXBlb2YgbT09Im51bWJlciImJmlzRmluaXRlKG0pJiYoQ0E9bSxtPldBKSl0aHJvdyBndCgpfWxldCBfQT1mZSYmKG4uaXNSZWFkYWJsZVN0cmVhbShEKXx8bi5pc1N0cmVhbShEKSksYXQ9KG0sVCx0QSk9Pl9lKG0sJHQsSUE9PntpZihmZSYmSUE+V0EpdGhyb3cgU0E9Z3QoKTtUJiZUKElBKX0sdEEpO2lmKGwmJnkhPT0iZ2V0IiYmeSE9PSJoZWFkIiYmKHVlfHxfQSkpe2lmKENBPUNBPz9hd2FpdCB1KEFBLEQpLENBIT09MHx8X0Epe2xldCBtPW5ldyBpKGgse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxUO2lmKG4uaXNGb3JtRGF0YShEKSYmKFQ9bS5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZBQS5zZXRDb250ZW50VHlwZShUKSxtLmJvZHkpe2xldFt0QSxJQV09dWUmJlRlKENBLGhBKHhlKHVlKSkpfHxbXTtEPWF0KG0uYm9keSx0QSxJQSl9fX1lbHNlIGlmKF9BJiYhUSYmcyYmeSE9PSJnZXQiJiZ5IT09ImhlYWQiKUQ9YXQoRCk7ZWxzZSBpZihfQSYmUSYmIWwmJnkhPT0iZ2V0IiYmeSE9PSJoZWFkIil0aHJvdyBuZXcgZigiU3RyZWFtIHJlcXVlc3QgYm9kaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IGZldGNoIGltcGxlbWVudGF0aW9uIixmLkVSUl9OT1RfU1VQUE9SVCxFLGIpO24uaXNTdHJpbmcoS0EpfHwoS0E9S0E/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IE5yPVEmJiJjcmVkZW50aWFscyJpbiBpLnByb3RvdHlwZTtpZihuLmlzRm9ybURhdGEoRCkpe2xldCBtPUFBLmdldENvbnRlbnRUeXBlKCk7bSYmL15tdWx0aXBhcnRcL2Zvcm0tZGF0YS9pLnRlc3QobSkmJiEvYm91bmRhcnk9L2kudGVzdChtKSYmQUEuZGVsZXRlKCJjb250ZW50LXR5cGUiKX1BQS5zZXQoIlVzZXItQWdlbnQiLCJheGlvcy8iK3lBLCExKTtsZXQgc3Q9ey4uLkl0LHNpZ25hbDplQSxtZXRob2Q6eS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6ZWUoQUEubm9ybWFsaXplKCkpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOk5yP0tBOnZvaWQgMH07Yj1RJiZuZXcgaShoLHN0KTtsZXQgWj1hd2FpdChRP250KGIsSXQpOm50KGgsc3QpKSxDdD1GLmZyb20oWi5oZWFkZXJzKTtpZihSQSl7bGV0IG09bi50b0Zpbml0ZU51bWJlcihDdC5nZXRDb250ZW50TGVuZ3RoKCkpO2lmKG0hPW51bGwmJm0+Xyl0aHJvdyBuZXcgZigibWF4Q29udGVudExlbmd0aCBzaXplIG9mICIrXysiIGV4Y2VlZGVkIixmLkVSUl9CQURfUkVTUE9OU0UsRSxiKX1sZXQgcGU9QyYmKCQ9PT0ic3RyZWFtInx8JD09PSJyZXNwb25zZSIpO2lmKEMmJlouYm9keSYmKGNlfHxSQXx8cGUmJmlBKSl7bGV0IG09e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goRkE9PnttW0ZBXT1aW0ZBXX0pO2xldCBUPW4udG9GaW5pdGVOdW1iZXIoQ3QuZ2V0Q29udGVudExlbmd0aCgpKSxbdEEsSUFdPWNlJiZUZShULGhBKHhlKGNlKSwhMCkpfHxbXSxCdD0wLGtyPUZBPT57aWYoUkEmJihCdD1GQSxCdD5fKSl0aHJvdyBuZXcgZigibWF4Q29udGVudExlbmd0aCBzaXplIG9mICIrXysiIGV4Y2VlZGVkIixmLkVSUl9CQURfUkVTUE9OU0UsRSxiKTt0QSYmdEEoRkEpfTtaPW5ldyBJKF9lKFouYm9keSwkdCxrciwoKT0+e0lBJiZJQSgpLGlBJiZpQSgpfSksbSl9JD0kfHwidGV4dCI7bGV0IFY9YXdhaXQgY1tuLmZpbmRLZXkoYywkKXx8InRleHQiXShaLEUpO2lmKFJBJiYhQyYmIXBlKXtsZXQgbTtpZihWIT1udWxsJiYodHlwZW9mIFYuYnl0ZUxlbmd0aD09Im51bWJlciI/bT1WLmJ5dGVMZW5ndGg6dHlwZW9mIFYuc2l6ZT09Im51bWJlciI/bT1WLnNpemU6dHlwZW9mIFY9PSJzdHJpbmciJiYobT10eXBlb2Ygcj09ImZ1bmN0aW9uIj9uZXcgcigpLmVuY29kZShWKS5ieXRlTGVuZ3RoOlYubGVuZ3RoKSksdHlwZW9mIG09PSJudW1iZXIiJiZtPl8pdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK18rIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsYil9cmV0dXJuIXBlJiZpQSYmaUEoKSxhd2FpdCBuZXcgUHJvbWlzZSgobSxUKT0+e0hBKG0sVCx7ZGF0YTpWLGhlYWRlcnM6Ri5mcm9tKFouaGVhZGVycyksc3RhdHVzOlouc3RhdHVzLHN0YXR1c1RleHQ6Wi5zdGF0dXNUZXh0LGNvbmZpZzpFLHJlcXVlc3Q6Yn0pfSl9Y2F0Y2godyl7aWYoaUEmJmlBKCksZUEmJmVBLmFib3J0ZWQmJmVBLnJlYXNvbiBpbnN0YW5jZW9mIGYpe2xldCB4PWVBLnJlYXNvbjt0aHJvdyB4LmNvbmZpZz1FLGImJih4LnJlcXVlc3Q9YiksdyE9PXgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOncsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx4fWlmKFNBKXRocm93IGImJiFTQS5yZXF1ZXN0JiYoU0EucmVxdWVzdD1iKSxTQTtpZih3IGluc3RhbmNlb2YgZil0aHJvdyBiJiYhdy5yZXF1ZXN0JiYody5yZXF1ZXN0PWIpLHc7aWYodyYmdy5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3Qody5tZXNzYWdlKSl7bGV0IHg9bmV3IGYoIk5ldHdvcmsgRXJyb3IiLGYuRVJSX05FVFdPUkssRSxiLHcmJncucmVzcG9uc2UpO3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOncuY2F1c2V8fHcsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx4fXRocm93IGYuZnJvbSh3LHcmJncuY29kZSxFLGIsdyYmdy5yZXNwb25zZSl9fX0sRmk9bmV3IE1hcCx2ZT1BPT57bGV0IGU9QSYmQS5lbnZ8fHt9LHtmZXRjaDp0LFJlcXVlc3Q6cixSZXNwb25zZTpvfT1lLGk9W3Isbyx0XSxJPWkubGVuZ3RoLGc9SSxRLEIscz1GaTtmb3IoO2ctLTspUT1pW2ddLEI9cy5nZXQoUSksQj09PXZvaWQgMCYmcy5zZXQoUSxCPWc/bmV3IE1hcDpTaShlKSkscz1CO3JldHVybiBCfSxXZz12ZSgpO3ZhciBaZT17aHR0cDpyZSx4aHI6enQsZmV0Y2g6e2dldDp2ZX19O24uZm9yRWFjaChaZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7X19wcm90b19fOm51bGwsdmFsdWU6ZX0pfX0pO3ZhciB0cj1BPT5gLSAke0F9YCxOaT1BPT5uLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITE7ZnVuY3Rpb24ga2koQSxlKXtBPW4uaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEscixvLGk9e307Zm9yKGxldCBJPTA7STx0O0krKyl7cj1BW0ldO2xldCBnO2lmKG89ciwhTmkocikmJihvPVplWyhnPVN0cmluZyhyKSkudG9Mb3dlckNhc2UoKV0sbz09PXZvaWQgMCkpdGhyb3cgbmV3IGYoYFVua25vd24gYWRhcHRlciAnJHtnfSdgKTtpZihvJiYobi5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO2lbZ3x8IiMiK0ldPW99aWYoIW8pe2xldCBJPU9iamVjdC5lbnRyaWVzKGkpLm1hcCgoW1EsQl0pPT5gYWRhcHRlciAke1F9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxnPXQ/SS5sZW5ndGg+MT9gc2luY2UgOgpgK0kubWFwKHRyKS5qb2luKGAKYCk6IiAiK3RyKElbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGYoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitnLGYuRVJSX05PVF9TVVBQT1JUKX1yZXR1cm4gb312YXIgYWU9e2dldEFkYXB0ZXI6a2ksYWRhcHRlcnM6WmV9O2Z1bmN0aW9uIFZlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyB2KG51bGwsQSl9ZnVuY3Rpb24gc2UoQSl7cmV0dXJuIFZlKEEpLEEuaGVhZGVycz1GLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9T0EuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLGFlLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxkQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24ocil7VmUoQSksQS5yZXNwb25zZT1yO3RyeXtyLmRhdGE9T0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2Uscil9ZmluYWxseXtkZWxldGUgQS5yZXNwb25zZX1yZXR1cm4gci5oZWFkZXJzPUYuZnJvbShyLmhlYWRlcnMpLHJ9LGZ1bmN0aW9uKHIpe2lmKCFKQShyKSYmKFZlKEEpLHImJnIucmVzcG9uc2UpKXtBLnJlc3BvbnNlPXIucmVzcG9uc2U7dHJ5e3IucmVzcG9uc2UuZGF0YT1PQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKX1maW5hbGx5e2RlbGV0ZSBBLnJlc3BvbnNlfXIucmVzcG9uc2UuaGVhZGVycz1GLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKX1yZXR1cm4gUHJvbWlzZS5yZWplY3Qocil9KX12YXIgQ2U9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57Q2VbQV09ZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHJyPXt9O0NlLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbyhpLEkpe3JldHVybiJbQXhpb3MgdiIreUErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitpKyInIitJKyhyPyIuICIrcjoiIil9cmV0dXJuKGksSSxnKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgZihvKEksIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGYuRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhcnJbSV0mJihycltJXT0hMCxjb25zb2xlLndhcm4obyhJLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShpLEksZyk6ITB9fTtDZS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxyKT0+KGNvbnNvbGUud2FybihgJHtyfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBiaShBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QifHxBPT09bnVsbCl0aHJvdyBuZXcgZigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsZi5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHI9T2JqZWN0LmtleXMoQSksbz1yLmxlbmd0aDtmb3IoO28tLSA+MDspe2xldCBpPXJbb10sST1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKT9lW2ldOnZvaWQgMDtpZihJKXtsZXQgZz1BW2ldLFE9Zz09PXZvaWQgMHx8SShnLGksQSk7aWYoUSE9PSEwKXRocm93IG5ldyBmKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK1EsZi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBmKCJVbmtub3duIG9wdGlvbiAiK2ksZi5FUlJfQkFEX09QVElPTil9fXZhciBZQT17YXNzZXJ0T3B0aW9uczpiaSx2YWxpZGF0b3JzOkNlfTt2YXIgSD1ZQS52YWxpZGF0b3JzLG1BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IExlLHJlc3BvbnNlOm5ldyBMZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IG89e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uobyk6bz1uZXcgRXJyb3I7bGV0IGk9KCgpPT57aWYoIW8uc3RhY2spcmV0dXJuIiI7bGV0IEk9by5zdGFjay5pbmRleE9mKGAKYCk7cmV0dXJuIEk9PT0tMT8iIjpvLnN0YWNrLnNsaWNlKEkrMSl9KSgpO3RyeXtpZighci5zdGFjaylyLnN0YWNrPWk7ZWxzZSBpZihpKXtsZXQgST1pLmluZGV4T2YoYApgKSxnPUk9PT0tMT8tMTppLmluZGV4T2YoYApgLEkrMSksUT1nPT09LTE/IiI6aS5zbGljZShnKzEpO1N0cmluZyhyLnN0YWNrKS5lbmRzV2l0aChRKXx8KHIuc3RhY2srPWAKYCtpKX19Y2F0Y2h7fX10aHJvdyByfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9Vyh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6cixwYXJhbXNTZXJpYWxpemVyOm8saGVhZGVyczppfT10O3IhPT12b2lkIDAmJllBLmFzc2VydE9wdGlvbnMocix7c2lsZW50SlNPTlBhcnNpbmc6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpILnRyYW5zaXRpb25hbChILmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxsZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksdmFsaWRhdGVTdGF0dXNVbmRlZmluZWRSZXNvbHZlczpILnRyYW5zaXRpb25hbChILmJvb2xlYW4pfSwhMSksbyE9bnVsbCYmKG4uaXNGdW5jdGlvbihvKT90LnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpvfTpZQS5hc3NlcnRPcHRpb25zKG8se2VuY29kZTpILmZ1bmN0aW9uLHNlcmlhbGl6ZTpILmZ1bmN0aW9ufSwhMCkpLHQuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP3QuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczp0LmFsbG93QWJzb2x1dGVVcmxzPSEwKSxZQS5hc3NlcnRPcHRpb25zKHQse2Jhc2VVcmw6SC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46SC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IEk9aSYmbi5tZXJnZShpLmNvbW1vbixpW3QubWV0aG9kXSk7aSYmbi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsInF1ZXJ5IiwiY29tbW9uIl0sYz0+e2RlbGV0ZSBpW2NdfSksdC5oZWFkZXJzPUYuY29uY2F0KEksaSk7bGV0IGc9W10sUT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24ocCl7aWYodHlwZW9mIHAucnVuV2hlbj09ImZ1bmN0aW9uIiYmcC5ydW5XaGVuKHQpPT09ITEpcmV0dXJuO1E9USYmcC5zeW5jaHJvbm91cztsZXQgdT10LnRyYW5zaXRpb25hbHx8ZkE7dSYmdS5sZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nP2cudW5zaGlmdChwLmZ1bGZpbGxlZCxwLnJlamVjdGVkKTpnLnB1c2gocC5mdWxmaWxsZWQscC5yZWplY3RlZCl9KTtsZXQgQj1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKHApe0IucHVzaChwLmZ1bGZpbGxlZCxwLnJlamVjdGVkKX0pO2xldCBzLGE9MCxsO2lmKCFRKXtsZXQgYz1bc2UuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihjLnVuc2hpZnQoLi4uZyksYy5wdXNoKC4uLkIpLGw9Yy5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUodCk7YTxsOylzPXMudGhlbihjW2ErK10sY1thKytdKTtyZXR1cm4gc31sPWcubGVuZ3RoO2xldCBDPXQ7Zm9yKDthPGw7KXtsZXQgYz1nW2ErK10scD1nW2ErK107dHJ5e0M9YyhDKX1jYXRjaCh1KXtwLmNhbGwodGhpcyx1KTticmVha319dHJ5e3M9c2UuY2FsbCh0aGlzLEMpfWNhdGNoKGMpe3JldHVybiBQcm9taXNlLnJlamVjdChjKX1mb3IoYT0wLGw9Qi5sZW5ndGg7YTxsOylzPXMudGhlbihCW2ErK10sQlthKytdKTtyZXR1cm4gc31nZXRVcmkoZSl7ZT1XKHRoaXMuZGVmYXVsdHMsZSk7bGV0IHQ9TUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMsZSk7cmV0dXJuIExBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7bUEucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMucmVxdWVzdChXKHJ8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOnImJm4uaGFzT3duUHJvcChyLCJkYXRhIik/ci5kYXRhOnZvaWQgMH0pKX19KTtuLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giLCJxdWVyeSJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKGksSSxnKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFcoZ3x8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6aSxkYXRhOkl9KSl9fW1BLnByb3RvdHlwZVtlXT10KCksZSE9PSJxdWVyeSImJihtQS5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApKX0pO3ZhciBQQT1tQTt2YXIgemU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Q9aX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4obz0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KXIuX2xpc3RlbmVyc1tpXShvKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPW89PntsZXQgaSxJPW5ldyBQcm9taXNlKGc9PntyLnN1YnNjcmliZShnKSxpPWd9KS50aGVuKG8pO3JldHVybiBJLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoaSl9LEl9LGUoZnVuY3Rpb24oaSxJLGcpe3IucmVhc29ufHwoci5yZWFzb249bmV3IHYoaSxJLGcpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihvKXtlPW99KSxjYW5jZWw6ZX19fSxvcj16ZTtmdW5jdGlvbiBYZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gJGUoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIEF0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExLFdlYlNlcnZlcklzRG93bjo1MjEsQ29ubmVjdGlvblRpbWVkT3V0OjUyMixPcmlnaW5Jc1VucmVhY2hhYmxlOjUyMyxUaW1lb3V0T2NjdXJyZWQ6NTI0LFNzbEhhbmRzaGFrZUZhaWxlZDo1MjUsSW52YWxpZFNzbENlcnRpZmljYXRlOjUyNn07T2JqZWN0LmVudHJpZXMoQXQpLmZvckVhY2goKFtBLGVdKT0+e0F0W2VdPUF9KTt2YXIgaXI9QXQ7ZnVuY3Rpb24gSXIoQSl7bGV0IGU9bmV3IFBBKEEpLHQ9VUEoUEEucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIG4uZXh0ZW5kKHQsUEEucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxuLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKG8pe3JldHVybiBJcihXKEEsbykpfSx0fXZhciBVPUlyKGRBKTtVLkF4aW9zPVBBO1UuQ2FuY2VsZWRFcnJvcj12O1UuQ2FuY2VsVG9rZW49b3I7VS5pc0NhbmNlbD1KQTtVLlZFUlNJT049eUE7VS50b0Zvcm1EYXRhPXJBO1UuQXhpb3NFcnJvcj1mO1UuQ2FuY2VsPVUuQ2FuY2VsZWRFcnJvcjtVLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O1Uuc3ByZWFkPVhlO1UuaXNBeGlvc0Vycm9yPSRlO1UubWVyZ2VDb25maWc9VztVLkF4aW9zSGVhZGVycz1GO1UuZm9ybVRvSlNPTj1BPT5pZShuLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO1UuZ2V0QWRhcHRlcj1hZS5nZXRBZGFwdGVyO1UuSHR0cFN0YXR1c0NvZGU9aXI7VS5kZWZhdWx0PVU7dmFyIERBPVU7dmFye0F4aW9zOlRhLEF4aW9zRXJyb3I6eGEsQ2FuY2VsZWRFcnJvcjpLYSxpc0NhbmNlbDpXYSxDYW5jZWxUb2tlbjpfYSxWRVJTSU9OOmphLGFsbDp2YSxDYW5jZWw6WmEsaXNBeGlvc0Vycm9yOlZhLHNwcmVhZDp6YSx0b0Zvcm1EYXRhOlhhLEF4aW9zSGVhZGVyczokYSxIdHRwU3RhdHVzQ29kZTpBcyxmb3JtVG9KU09OOmVzLGdldEFkYXB0ZXI6dHMsbWVyZ2VDb25maWc6cnMsY3JlYXRlOm9zfT1EQTthc3luYyBmdW5jdGlvbiBHaShBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IG89YXdhaXQgREEuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxpPVVSTC5jcmVhdGVPYmplY3RVUkwoby5kYXRhKTtyPW5ldyBXb3JrZXIoaSx7dHlwZToibW9kdWxlIn0pfWVsc2Ugcj1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gcn12YXIgcUE9R2k7ZnVuY3Rpb24gbnIoQSl7bGV0IGU9RGUoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVttZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBMaShBLGUsdCl7bGV0IHI7aWYoQSE9bnVsbCl7bGV0IGk9QTtyZXR1cm4gaS53b3JrZXJQcm94eSE9PXZvaWQgMD8ocj1pLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpyLHdvcmtlcjppfSk6bnIoQSl9bGV0IG89YXdhaXQgcUEoZSx0KTtyZXR1cm4gbnIobyl9dmFyIGdyPUxpO3ZhciBUQSx6LHR0LGV0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7dHQ9bmV3IFVpbnQ4QXJyYXkoei5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LEJlPWNsYXNze2luaXQoKXtyZXR1cm4gVEF8fCh0eXBlb2YgZmV0Y2g8InUiP1RBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrYXIpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsZXQpKS50aGVuKHRoaXMuX2luaXQpOlRBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKGFyLCJiYXNlNjQiKSxldCkudGhlbih0aGlzLl9pbml0KSxUQSl9X2luaXQoZSl7ej1lLmluc3RhbmNlLGV0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIXopdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHI9ZS5ieXRlTGVuZ3RoLG89ei5leHBvcnRzLm1hbGxvYyhyKTt0dC5zZXQoZSxvKSx0PXR8fE51bWJlcih6LmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShvLHIpKTtsZXQgaT16LmV4cG9ydHMubWFsbG9jKHQpLEk9ei5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhpLHQsbyxyKSxnPXR0LnNsaWNlKGksaStJKTtyZXR1cm4gei5leHBvcnRzLmZyZWUobyksei5leHBvcnRzLmZyZWUoaSksZ319LGFyPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIHNyPW5ldyBCZSxDcj0hMTthc3luYyBmdW5jdGlvbiBPaShBLGUsdCl7bGV0IHI9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9yPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9yPUE6cj10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxyLmVuZHNXaXRoKCIuanMiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0zKSksci5lbmRzV2l0aCgiLndhc20iKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC01KSksci5lbmRzV2l0aCgiLndhc20uenN0IikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtOSkpO2xldCBvPWAke3J9Lndhc21gLGk9YXdhaXQgREEuZ2V0KGAke299LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7Q3J8fChhd2FpdCBzci5pbml0KCksQ3I9ITApO2xldCBnPXNyLmRlY29kZShuZXcgVWludDhBcnJheShpLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Omd9KX12YXIgQnI9T2k7dmFyIFFyPWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBjcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixFcj1uZXcgVGV4dEVuY29kZXIsbHI9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIEppKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxpPUEuZnNfc3RhdChlKS5zaXplLEk9bnVsbDtjcj9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihpKTpJPW5ldyBBcnJheUJ1ZmZlcihpKTtsZXQgZz1uZXcgVWludDhBcnJheShJKTtyZXR1cm4gQS5mc19yZWFkKHIsZywwLGksMCksQS5mc19jbG9zZShyKSxnfWZ1bmN0aW9uIHVyKEEsZSx0KXtsZXQgcj1udWxsO2NyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBvPW5ldyBVaW50OEFycmF5KHIpLGk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIG8uc2V0KGkpLG99ZnVuY3Rpb24gTihBLGUsdCxyKXtsZXQgbz0wO3JldHVybiBlIT09bnVsbCYmKG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKT4+PjAsQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiBvQShBLGUsdCl7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZSksbz1BLmxlbmd0aEJ5dGVzVVRGOChyKSsxLGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LG9dKT4+PjA7QS5zdHJpbmdUb1VURjgocixpLG8pfWZ1bmN0aW9uIEwoQSxlLHQscil7bGV0IG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSk+Pj4wLGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksST11cihBLG8saSk7cmV0dXJuIGoocixJLmJ1ZmZlcil9ZnVuY3Rpb24geEEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKT4+PjAscj1BLlVURjhUb1N0cmluZyh0KTtyZXR1cm4gSlNPTi5wYXJzZShyKX1mdW5jdGlvbiBIaShBLGUsdCxyKXtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IGE9RXIuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPU4oQSxhLHMsMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O29BKEEsQyxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPUVyLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPU4oQSxhLHMsMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O29BKEEsQyxzKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgYT1CLmRhdGEuZGF0YSxsPU4oQSxhLHMsMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O29BKEEsQyxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9Qi5kYXRhLGw9TihBLGEuZGF0YSxzLDApLEM9TihBLGEuZGlyZWN0aW9uLHMsMSksYz10eXBlb2YgYS5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShhLm1ldGFkYXRhLmVudHJpZXMoKSk6W10scD17aW1hZ2VUeXBlOmEuaW1hZ2VUeXBlLG5hbWU6YS5uYW1lLG9yaWdpbjphLm9yaWdpbixzcGFjaW5nOmEuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsc2l6ZTphLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpjfTtvQShBLHAscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPUIuZGF0YSxsPU4oQSxhLnBvaW50cyxzLDApLEM9TihBLGEuY2VsbHMscywxKSxjPU4oQSxhLnBvaW50RGF0YSxzLDIpLHA9TihBLGEuY2VsbERhdGEscywzKSx1PXttZXNoVHlwZTphLm1lc2hUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6YS5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGNlbGxCdWZmZXJTaXplOmEuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mQ2VsbFBpeGVsczphLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3B9YH07b0EoQSx1LHMpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9Qi5kYXRhLGw9TihBLGEucG9pbnRzLHMsMCksQz1OKEEsYS5wb2ludERhdGEscywxKSxjPXtwb2ludFNldFR5cGU6YS5wb2ludFNldFR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gfTtvQShBLGMscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPUIuZGF0YSxsPVtdLEM9MDthLmZvckVhY2goYz0+e2xldCBwPSIiLHU9IiI7Yy50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKHA9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtOKEEsYy5maXhlZFBhcmFtZXRlcnMscyxDKX1gLEMrPTEsdT1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke04oQSxjLnBhcmFtZXRlcnMscyxDKX1gLEMrPTEpO2xldCBFPXt0cmFuc2Zvcm1UeXBlOmMudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpjLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpjLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOmMubmFtZSxpbnB1dFNwYWNlTmFtZTpjLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpjLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOnUsZml4ZWRQYXJhbWV0ZXJzOnB9O2wucHVzaChFKX0pLG9BKEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPUIuZGF0YSxsPU4oQSxhLnBvaW50cyxzLDApLEM9TihBLGEudmVydGljZXMscywxKSxjPU4oQSxhLmxpbmVzLHMsMikscD1OKEEsYS5wb2x5Z29ucyxzLDMpLHU9TihBLGEudHJpYW5nbGVTdHJpcHMscyw0KSxFPU4oQSxhLnBvaW50RGF0YSxzLDUpLGg9TihBLGEucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOmEucG9seURhdGFUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTphLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxsaW5lc0J1ZmZlclNpemU6YS5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAscG9seWdvbnNCdWZmZXJTaXplOmEucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTphLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtFfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7aH1gfTtvQShBLHkscyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxpPTA7dHJ5e2k9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgST1BLmdldE1vZHVsZVN0ZG91dCgpLGc9QS5nZXRNb2R1bGVTdGRlcnIoKSxRPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZpPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7bGV0IGE9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk+Pj4wLGM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSkscD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQyxjKTthPXtkYXRhOmxyLmRlY29kZShwKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKT4+PjAsYz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxwPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLGMpO2E9SlNPTi5wYXJzZShsci5kZWNvZGUocCkpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pPj4+MCxjPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO2E9e2RhdGE6dXIoQSxDLGMpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e2E9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e2E9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpKaShBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQz14QShBLHMpO0MuZGF0YT1MKEEscywwLEMuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEMuZGlyZWN0aW9uPUwoQSxzLDEsbkEuRmxvYXQ2NCksQy5tZXRhZGF0YT1uZXcgTWFwKEMubWV0YWRhdGEpLGE9QzticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9eEEoQSxzKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9TChBLHMsMCxDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qy5wb2ludHM9aihDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxscz4wP0MuY2VsbHM9TChBLHMsMSxDLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpDLmNlbGxzPWooQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUwoQSxzLDIsQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9aihDLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxQaXhlbHM+MD9DLmNlbGxEYXRhPUwoQSxzLDMsQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpDLmNlbGxEYXRhPWooQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IEM9eEEoQSxzKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9TChBLHMsMCxDLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPWooQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TChBLHMsMSxDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9aihDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QzticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IEM9eEEoQSxzKSxjPTA7Qy5mb3JFYWNoKChwLHUpPT57cC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKHAubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKENbdV0uZml4ZWRQYXJhbWV0ZXJzPUwoQSxzLGMsbkEuRmxvYXQ2NCkpLGMrPTEscC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKENbdV0ucGFyYW1ldGVycz1MKEEscyxjLHAudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksYys9MSl9KSxhPUM7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQz14QShBLHMpO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1MKEEscywwLG5BLkZsb2F0MzIpOkMucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQy52ZXJ0aWNlc0J1ZmZlclNpemU+MD9DLnZlcnRpY2VzPUwoQSxzLDEsUC5VSW50MzIpOkMudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEMubGluZXNCdWZmZXJTaXplPjA/Qy5saW5lcz1MKEEscywyLFAuVUludDMyKTpDLmxpbmVzPW5ldyBVaW50MzJBcnJheSxDLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0MucG9seWdvbnM9TChBLHMsMyxQLlVJbnQzMik6Qy5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9DLnRyaWFuZ2xlU3RyaXBzPUwoQSxzLDQsUC5VSW50MzIpOkMudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUwoQSxzLDUsQy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPWooQy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbFBpeGVscz4wP0MuY2VsbERhdGE9TChBLHMsNixDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpDLmNlbGxEYXRhPWooQy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QzticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOmF9O1EucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTppLHN0ZG91dDpJLHN0ZGVycjpnLG91dHB1dHM6UX19dmFyIGZyPUhpO3ZhciBNaT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gWWkoQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8QS5sZW5ndGg7cisrKXtsZXQgbz1QaShBW3JdLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gUGkoQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxNaSYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIHByPVlpO2Z1bmN0aW9uIHFpKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBkcj1xaTtmdW5jdGlvbiBUaShBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgaHI9VGk7ZnVuY3Rpb24geGkoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIHlyPXhpO3ZhciBLaTtmdW5jdGlvbiBRZSgpe3JldHVybiBLaX12YXIgV2k7ZnVuY3Rpb24gbXIoKXtyZXR1cm4gV2l9dmFyIF9pO2Z1bmN0aW9uIEVlKCl7cmV0dXJuIF9pfXZhciBydD1uZXcgTWFwO2Z1bmN0aW9uIGppKCl7bGV0IEE9RWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIERyKCl7bGV0IEE9UWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gbGUoKXtsZXQgQT1tcigpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIHZpKEEsZSx0KXtsZXQgcj1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihyPW5ldyBVUkwoQS5ocmVmKSxvPXIuaHJlZikscnQuaGFzKG8pKXJldHVybiBydC5nZXQobyk7e2xldCBpPWF3YWl0IEJyKEEsZT8udG9TdHJpbmcoKT8/RHIoKSx0Pz9sZSgpKTtyZXR1cm4gcnQuc2V0KG8saSksaX19YXN5bmMgZnVuY3Rpb24gWmkoQSxlLHQscixvKXtpZighYXdhaXQgUXIoKSl7bGV0IHU9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KHUpLG5ldyBFcnJvcih1KX1sZXQgaT1vPy53ZWJXb3JrZXI/P251bGw7aWYoaT09PSExKXtsZXQgdT1hd2FpdCB2aShBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P2xlKCkpO3JldHVybiBmcih1LGUsdCxyKX1sZXQgST1pLGc9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P2ppKCksUT10eXBlb2YgZyE9InN0cmluZyImJnR5cGVvZiBnPy5ocmVmPCJ1Ij9nLmhyZWY6Zyx7d29ya2VyUHJveHk6Qix3b3JrZXI6c309YXdhaXQgZ3IoSSxRLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P2xlKCkpO0k9cztsZXQgYT1bXTtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS50eXBlPT09ZC5CaW5hcnlTdHJlYW0pe2xldCBFPXUuZGF0YS5kYXRhO2EucHVzaChFKX1lbHNlIGlmKHUudHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IEU9dS5kYXRhLmRhdGE7YS5wdXNoKEUpfWVsc2UgaWYodS50eXBlPT09ZC5JbWFnZSl7bGV0IEU9dS5kYXRhO0UuZGF0YSE9PW51bGwmJmEucHVzaCguLi5kcihFKSl9ZWxzZSBpZih1LnR5cGU9PT1kLk1lc2gpe2xldCBFPXUuZGF0YTthLnB1c2goLi4uaHIoRSkpfWVsc2UgaWYodS50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IEU9dS5kYXRhO2EucHVzaCguLi55cihFKSl9fSk7bGV0IGw9bz8ucGlwZWxpbmVCYXNlVXJsPz9EcigpLEM9dHlwZW9mIGwhPSJzdHJpbmciJiZ0eXBlb2YgbD8uaHJlZjwidSI/bC5ocmVmOmwsYz1yIT1udWxsP3dlKHIscHIoYSxvPy5ub0NvcHkpKTpudWxsLHA9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCksQyxlLHQsYyxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9sZSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6cC5yZXR1cm5WYWx1ZSxzdGRvdXQ6cC5zdGRvdXQsc3RkZXJyOnAuc3RkZXJyLG91dHB1dHM6cC5vdXRwdXRzLHdlYldvcmtlcjpJfX12YXIgTz1aaTt2YXIgVmk9bnVsbDtmdW5jdGlvbiB3cigpe3JldHVybiBWaX12YXIgb3Qsemk9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGl0ay13YXNtL2Rvd25zYW1wbGVAJHtkZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIFZzKEEpe290PUF9ZnVuY3Rpb24gTSgpe2lmKHR5cGVvZiBvdDwidSIpcmV0dXJuIG90O2xldCBBPVFlKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOnppfXZhciBpdCxYaT1udWxsO2Z1bmN0aW9uIFJyKEEpe2l0PUF9ZnVuY3Rpb24gaygpe2lmKHR5cGVvZiBpdDwidSIpcmV0dXJuIGl0O2xldCBBPUVlKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlhpfXZhciB3QT1udWxsO2FzeW5jIGZ1bmN0aW9uIFNyKCl7bGV0IEE9aygpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7d0E9YXdhaXQgcUEoZSl9ZnVuY3Rpb24gckMoQSl7d0E9QX1hc3luYyBmdW5jdGlvbiBZKCl7aWYod0EhPT1udWxsKXJldHVybiB3QS50ZXJtaW5hdGVkJiZhd2FpdCBTcigpLHdBO2xldCBBPXdyKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IFNyKCksd0EpfWFzeW5jIGZ1bmN0aW9uICRpKEEsZT17c2hyaW5rRmFjdG9yczpbMiwyXX0pe2xldCB0PVt7dHlwZTpkLkltYWdlfV0scj1be3R5cGU6ZC5JbWFnZSxkYXRhOkF9XSxvPVtdO2lmKG8ucHVzaCgiMCIpLG8ucHVzaCgiMCIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgZS5zaHJpbmtGYWN0b3JzPCJ1Iil7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO28ucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgYz0+e28ucHVzaChjLnRvU3RyaW5nKCkpfSkpfXR5cGVvZiBlLmluZm9ybWF0aW9uT25seTwidSImJmUuaW5mb3JtYXRpb25Pbmx5JiZvLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBnPSJkb3duc2FtcGxlLWJpbi1zaHJpbmsiLFE9ZT8ud2ViV29ya2VyO1E9PT12b2lkIDAmJihRPWF3YWl0IFkoKSk7bGV0e3dlYldvcmtlcjpCLHJldHVyblZhbHVlOnMsc3RkZXJyOmEsb3V0cHV0czpsfT1hd2FpdCBPKGcsbyx0LHIse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6aygpLHdlYldvcmtlcjpRLG5vQ29weTplPy5ub0NvcHl9KTtpZihzIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkIsZG93bnNhbXBsZWQ6bFswXT8uZGF0YX19dmFyIEFJPSRpO2FzeW5jIGZ1bmN0aW9uIGVJKEEsZT17c2hyaW5rRmFjdG9yczpbMiwyXX0pe2xldCB0PVt7dHlwZTpkLkltYWdlfV0scj1be3R5cGU6ZC5JbWFnZSxkYXRhOkF9XSxvPVtdO2lmKG8ucHVzaCgiMCIpLG8ucHVzaCgiMCIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgZS5zaHJpbmtGYWN0b3JzPCJ1Iil7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO28ucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgYz0+e28ucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBlLmNyb3BSYWRpdXM8InUiKXtpZihlLmNyb3BSYWRpdXMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCciY3JvcC1yYWRpdXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7by5wdXNoKCItLWNyb3AtcmFkaXVzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5jcm9wUmFkaXVzLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9bGV0IGc9ImRvd25zYW1wbGUtbGFiZWwtaW1hZ2UiLFE9ZT8ud2ViV29ya2VyO1E9PT12b2lkIDAmJihRPWF3YWl0IFkoKSk7bGV0e3dlYldvcmtlcjpCLHJldHVyblZhbHVlOnMsc3RkZXJyOmEsb3V0cHV0czpsfT1hd2FpdCBPKGcsbyx0LHIse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6aygpLHdlYldvcmtlcjpRLG5vQ29weTplPy5ub0NvcHl9KTtpZihzIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkIsZG93bnNhbXBsZWQ6bFswXT8uZGF0YX19dmFyIHRJPWVJO2FzeW5jIGZ1bmN0aW9uIHJJKEE9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgZT1be3R5cGU6ZC5Kc29uQ29tcGF0aWJsZX1dLHQ9W10scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIEEuc2hyaW5rRmFjdG9yczwidSIpe2lmKEEuc2hyaW5rRmFjdG9ycy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaHJpbmstZmFjdG9ycyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtyLnB1c2goIi0tc2hyaW5rLWZhY3RvcnMiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNocmlua0ZhY3RvcnMubWFwKGFzeW5jIGw9PntyLnB1c2gobC50b1N0cmluZygpKX0pKX1sZXQgaT0iZG93bnNhbXBsZS1zaWdtYSIsST1BPy53ZWJXb3JrZXI7ST09PXZvaWQgMCYmKEk9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6QixvdXRwdXRzOnN9PWF3YWl0IE8oaSxyLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOkksbm9Db3B5OkE/Lm5vQ29weX0pO2lmKFEhPT0wJiZCIT09IiIpdGhyb3cgbmV3IEVycm9yKEIpO3JldHVybnt3ZWJXb3JrZXI6ZyxzaWdtYTpzWzBdPy5kYXRhfX12YXIgb0k9ckk7YXN5bmMgZnVuY3Rpb24gaUkoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxyPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLG89W107aWYoby5wdXNoKCIwIiksby5wdXNoKCIwIiksby5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnNocmlua0ZhY3RvcnM8InUiKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7by5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUuY3JvcFJhZGl1czwidSIpe2lmKGUuY3JvcFJhZGl1cy5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoJyJjcm9wLXJhZGl1cyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDInKTtvLnB1c2goIi0tY3JvcC1yYWRpdXMiKSxhd2FpdCBQcm9taXNlLmFsbChlLmNyb3BSYWRpdXMubWFwKGFzeW5jIGM9PntvLnB1c2goYy50b1N0cmluZygpKX0pKX1sZXQgZz0iZG93bnNhbXBsZSIsUT1lPy53ZWJXb3JrZXI7UT09PXZvaWQgMCYmKFE9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOkIscmV0dXJuVmFsdWU6cyxzdGRlcnI6YSxvdXRwdXRzOmx9PWF3YWl0IE8oZyxvLHQscix7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOlEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHMhPT0wJiZhIT09IiIpdGhyb3cgbmV3IEVycm9yKGEpO3JldHVybnt3ZWJXb3JrZXI6Qixkb3duc2FtcGxlZDpsWzBdPy5kYXRhfX12YXIgSUk9aUk7YXN5bmMgZnVuY3Rpb24gbkkoQT17c2l6ZTpbMSwxXSxzaWdtYTpbMSwxXX0pe2xldCBlPVt7dHlwZTpkLkpzb25Db21wYXRpYmxlfV0sdD1bXSxyPVtdO2lmKHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgQS5zaXplPCJ1Iil7aWYoQS5zaXplLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInNpemUiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLXNpemUiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNpemUubWFwKGFzeW5jIGw9PntyLnB1c2gobC50b1N0cmluZygpKX0pKX1pZih0eXBlb2YgQS5zaWdtYTwidSIpe2lmKEEuc2lnbWEubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2lnbWEiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLXNpZ21hIiksYXdhaXQgUHJvbWlzZS5hbGwoQS5zaWdtYS5tYXAoYXN5bmMgbD0+e3IucHVzaChsLnRvU3RyaW5nKCkpfSkpfXR5cGVvZiBBLm1heEtlcm5lbFdpZHRoPCJ1IiYmci5wdXNoKCItLW1heC1rZXJuZWwtd2lkdGgiLEEubWF4S2VybmVsV2lkdGgudG9TdHJpbmcoKSksdHlwZW9mIEEubWF4S2VybmVsRXJyb3I8InUiJiZyLnB1c2goIi0tbWF4LWtlcm5lbC1lcnJvciIsQS5tYXhLZXJuZWxFcnJvci50b1N0cmluZygpKTtsZXQgaT0iZ2F1c3NpYW4ta2VybmVsLXJhZGl1cyIsST1BPy53ZWJXb3JrZXI7ST09PXZvaWQgMCYmKEk9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6QixvdXRwdXRzOnN9PWF3YWl0IE8oaSxyLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOkksbm9Db3B5OkE/Lm5vQ29weX0pO2lmKFEhPT0wJiZCIT09IiIpdGhyb3cgbmV3IEVycm9yKEIpO3JldHVybnt3ZWJXb3JrZXI6ZyxyYWRpdXM6c1swXT8uZGF0YX19dmFyIGdJPW5JO2FzeW5jIGZ1bmN0aW9uIGFJKEEsZSx0LHI9e30pe2xldCBvPVt7dHlwZTpkLkpzb25Db21wYXRpYmxlfV0saT1be3R5cGU6ZC5UcmFuc2Zvcm1MaXN0LGRhdGE6QX0se3R5cGU6ZC5JbWFnZSxkYXRhOmV9LHt0eXBlOmQuSW1hZ2UsZGF0YTp0fV0sST1bXTtJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIjIiKSxJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIHIucGFkZGluZzwidSImJkkucHVzaCgiLS1wYWRkaW5nIixyLnBhZGRpbmcudG9TdHJpbmcoKSk7bGV0IGE9InJlc2FtcGxlLWJvdW5kaW5nLWJveCIsbD1yPy53ZWJXb3JrZXI7bD09PXZvaWQgMCYmKGw9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOkMscmV0dXJuVmFsdWU6YyxzdGRlcnI6cCxvdXRwdXRzOnV9PWF3YWl0IE8oYSxJLG8saSx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOmwsbm9Db3B5OnI/Lm5vQ29weX0pO2lmKGMhPT0wJiZwIT09IiIpdGhyb3cgbmV3IEVycm9yKHApO3JldHVybnt3ZWJXb3JrZXI6Qyxib3VuZGluZ0JveDp1WzBdPy5kYXRhfX12YXIgc0k9YUk7YXN5bmMgZnVuY3Rpb24gQ0koQSxlLHQ9e30pe2xldCByPVt7dHlwZTpkLkltYWdlfV0sbz1be3R5cGU6ZC5JbWFnZSxkYXRhOkF9LHt0eXBlOmQuSW1hZ2UsZGF0YTplfV0saT1bXTtpZihpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIjAiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIHQudHJhbnNmb3JtPCJ1Iil7bGV0IHU9by5sZW5ndGgudG9TdHJpbmcoKTtvLnB1c2goe3R5cGU6ZC5UcmFuc2Zvcm1MaXN0LGRhdGE6dC50cmFuc2Zvcm19KSxpLnB1c2goIi0tdHJhbnNmb3JtIix1KX1pZih0eXBlb2YgdC5pbnRlcnBvbGF0b3I8InUiKXtpZighWyJsaW5lYXIiLCJuZWFyZXN0X25laWdoYm9yIiwibGFiZWxfaW1hZ2UiLCJiX3NwbGluZSIsIndpbmRvd2VkX3NpbmMiLCJnYXVzc2lhbiJdLmluY2x1ZGVzKHQuaW50ZXJwb2xhdG9yKSl0aHJvdyBuZXcgRXJyb3IoJyJpbnRlcnBvbGF0b3IiIG9wdGlvbiBtdXN0IGJlIG9uZSBvZiBsaW5lYXIsIG5lYXJlc3RfbmVpZ2hib3IsIGxhYmVsX2ltYWdlLCBiX3NwbGluZSwgd2luZG93ZWRfc2luYywgZ2F1c3NpYW4nKTtpLnB1c2goIi0taW50ZXJwb2xhdG9yIix0LmludGVycG9sYXRvci50b1N0cmluZygpKX10eXBlb2YgdC5kZWZhdWx0VmFsdWU8InUiJiZpLnB1c2goIi0tZGVmYXVsdC12YWx1ZSIsdC5kZWZhdWx0VmFsdWUudG9TdHJpbmcoKSk7bGV0IEI9InJlc2FtcGxlLXRvLXJlZmVyZW5jZSIscz10Py53ZWJXb3JrZXI7cz09PXZvaWQgMCYmKHM9YXdhaXQgWSgpKTtsZXR7d2ViV29ya2VyOmEscmV0dXJuVmFsdWU6bCxzdGRlcnI6QyxvdXRwdXRzOmN9PWF3YWl0IE8oQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDprKCksd2ViV29ya2VyOnMsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZDIT09IiIpdGhyb3cgbmV3IEVycm9yKEMpO3JldHVybnt3ZWJXb3JrZXI6YSxvdXRwdXQ6Y1swXT8uZGF0YX19dmFyIEJJPUNJO2FzeW5jIGZ1bmN0aW9uIFFJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxyPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLG89W107aWYoby5wdXNoKCIwIiksby5wdXNoKCIwIiksby5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnNpemU8InUiKXtpZihlLnNpemUubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2l6ZSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tc2l6ZSIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2l6ZS5tYXAoYXN5bmMgYz0+e28ucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBlLm91dHB1dFNwYWNpbmc8InUiKXtpZihlLm91dHB1dFNwYWNpbmcubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcib3V0cHV0LXNwYWNpbmciIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7by5wdXNoKCItLW91dHB1dC1zcGFjaW5nIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5vdXRwdXRTcGFjaW5nLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUub3V0cHV0T3JpZ2luPCJ1Iil7aWYoZS5vdXRwdXRPcmlnaW4ubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcib3V0cHV0LW9yaWdpbiIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tb3V0cHV0LW9yaWdpbiIpLGF3YWl0IFByb21pc2UuYWxsKGUub3V0cHV0T3JpZ2luLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUub3V0cHV0RGlyZWN0aW9uPCJ1Iil7aWYoZS5vdXRwdXREaXJlY3Rpb24ubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcib3V0cHV0LWRpcmVjdGlvbiIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tb3V0cHV0LWRpcmVjdGlvbiIpLGF3YWl0IFByb21pc2UuYWxsKGUub3V0cHV0RGlyZWN0aW9uLm1hcChhc3luYyBjPT57by5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIGUudHJhbnNmb3JtPCJ1Iil7bGV0IGM9ci5sZW5ndGgudG9TdHJpbmcoKTtyLnB1c2goe3R5cGU6ZC5UcmFuc2Zvcm1MaXN0LGRhdGE6ZS50cmFuc2Zvcm19KSxvLnB1c2goIi0tdHJhbnNmb3JtIixjKX1pZih0eXBlb2YgZS5pbnRlcnBvbGF0b3I8InUiKXtpZighWyJsaW5lYXIiLCJuZWFyZXN0X25laWdoYm9yIiwibGFiZWxfaW1hZ2UiLCJiX3NwbGluZSIsIndpbmRvd2VkX3NpbmMiLCJnYXVzc2lhbiJdLmluY2x1ZGVzKGUuaW50ZXJwb2xhdG9yKSl0aHJvdyBuZXcgRXJyb3IoJyJpbnRlcnBvbGF0b3IiIG9wdGlvbiBtdXN0IGJlIG9uZSBvZiBsaW5lYXIsIG5lYXJlc3RfbmVpZ2hib3IsIGxhYmVsX2ltYWdlLCBiX3NwbGluZSwgd2luZG93ZWRfc2luYywgZ2F1c3NpYW4nKTtvLnB1c2goIi0taW50ZXJwb2xhdG9yIixlLmludGVycG9sYXRvci50b1N0cmluZygpKX10eXBlb2YgZS5kZWZhdWx0VmFsdWU8InUiJiZvLnB1c2goIi0tZGVmYXVsdC12YWx1ZSIsZS5kZWZhdWx0VmFsdWUudG9TdHJpbmcoKSk7bGV0IGc9InJlc2FtcGxlIixRPWU/LndlYldvcmtlcjtRPT09dm9pZCAwJiYoUT1hd2FpdCBZKCkpO2xldHt3ZWJXb3JrZXI6QixyZXR1cm5WYWx1ZTpzLHN0ZGVycjphLG91dHB1dHM6bH09YXdhaXQgTyhnLG8sdCxyLHtwaXBlbGluZUJhc2VVcmw6TSgpLHBpcGVsaW5lV29ya2VyVXJsOmsoKSx3ZWJXb3JrZXI6USxub0NvcHk6ZT8ubm9Db3B5fSk7aWYocyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpCLG91dHB1dDpsWzBdPy5kYXRhfX12YXIgRUk9UUk7dmFyIEZyPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBDcj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIEJyPShBLGUpPT57Zm9yKHZhciB0IGluIGUpQ3IoQSx0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBldD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxRcj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxFcj1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksUWU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFRBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSx0dD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixjcj17Y2FuSGFuZGxlOkE9PnR0KEEpJiZBW2V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBfQShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksZHIoQSl9fSxmcj17Y2FuSGFuZGxlOkE9PnR0KEEpJiZUQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0scnQ9bmV3IE1hcChbWyJwcm94eSIsY3JdLFsidGhyb3ciLGZyXV0pO2Z1bmN0aW9uIGxyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBfQShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIobyl7aWYoIW98fCFvLmRhdGEpcmV0dXJuO2lmKCFscih0LG8ub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7by5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOkksdHlwZTppLHBhdGg6c309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxRPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKHJBKSxCO3RyeXtsZXQgZz1zLnNsaWNlKDAsLTEpLnJlZHVjZSgoYyxDKT0+Y1tDXSxBKSxhPXMucmVkdWNlKChjLEMpPT5jW0NdLEEpO3N3aXRjaChpKXtjYXNlIkdFVCI6Qj1hO2JyZWFrO2Nhc2UiU0VUIjpnW3Muc2xpY2UoLTEpWzBdXT1yQShvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1hLmFwcGx5KGcsUSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgYz1uZXcgYSguLi5RKTtCPXlyKGMpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Yyxwb3J0MjpDfT1uZXcgTWVzc2FnZUNoYW5uZWw7X0EoQSxDKSxCPWNlKGMsW2NdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChnKXtCPXt2YWx1ZTpnLFtUQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKGc9Pih7dmFsdWU6ZyxbVEFdOjB9KSkudGhlbihnPT57bGV0W2EsY109S0EoZyk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2lkOkl9KSxjKSxpPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxvdChlKSxRZSBpbiBBJiZ0eXBlb2YgQVtRZV09PSJmdW5jdGlvbiImJkFbUWVdKCkpfSkuY2F0Y2goZz0+e2xldFthLGNdPUtBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbVEFdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6SX0pLGMpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gdXIoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gb3QoQSl7dXIoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBkcihBLGUpe3JldHVybiBFZShBLFtdLGUpfWZ1bmN0aW9uIE1BKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBJdChBKXtyZXR1cm4gc0EoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57b3QoQSl9KX12YXIgUEE9bmV3IFdlYWtNYXAseEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KFBBLmdldChBKXx8MCktMTtQQS5zZXQoQSxlKSxlPT09MCYmSXQoQSl9KTtmdW5jdGlvbiBocihBLGUpe2xldCB0PShQQS5nZXQoZSl8fDApKzE7UEEuc2V0KGUsdCkseEEmJnhBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBEcihBKXt4QSYmeEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBFZShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCByPSExLG89bmV3IFByb3h5KHQse2dldChJLGkpe2lmKE1BKHIpLGk9PT1FcilyZXR1cm4oKT0+e0RyKG8pLEl0KEEpLHI9ITB9O2lmKGk9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IHM9c0EoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKFE9PlEudG9TdHJpbmcoKSl9KS50aGVuKHJBKTtyZXR1cm4gcy50aGVuLmJpbmQocyl9cmV0dXJuIEVlKEEsWy4uLmUsaV0pfSxzZXQoSSxpLHMpe01BKHIpO2xldFtRLEJdPUtBKHMpO3JldHVybiBzQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsaV0ubWFwKGc9PmcudG9TdHJpbmcoKSksdmFsdWU6UX0sQikudGhlbihyQSl9LGFwcGx5KEksaSxzKXtNQShyKTtsZXQgUT1lW2UubGVuZ3RoLTFdO2lmKFE9PT1RcilyZXR1cm4gc0EoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihyQSk7aWYoUT09PSJiaW5kIilyZXR1cm4gRWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixnXT1BdChzKTtyZXR1cm4gc0EoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoYT0+YS50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sZykudGhlbihyQSl9LGNvbnN0cnVjdChJLGkpe01BKHIpO2xldFtzLFFdPUF0KGkpO3JldHVybiBzQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sUSkudGhlbihyQSl9fSk7cmV0dXJuIGhyKG8sQSksb31mdW5jdGlvbiBwcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBBdChBKXtsZXQgZT1BLm1hcChLQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLHByKGUubWFwKHQ9PnRbMV0pKV19dmFyIGl0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGNlKEEsZSl7cmV0dXJuIGl0LnNldChBLGUpLEF9ZnVuY3Rpb24geXIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W2V0XTohMH0pfWZ1bmN0aW9uIEtBKEEpe2ZvcihsZXRbZSx0XW9mIHJ0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixvXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxvXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0saXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gckEoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gcnQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBzQShBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKHI9PntsZXQgbz1tcigpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShpKXshaS5kYXRhfHwhaS5kYXRhLmlkfHxpLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxyKGkuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBtcigpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24geUEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp3cn09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6Z0F9PU9iamVjdCx7aXRlcmF0b3I6d0EsdG9TdHJpbmdUYWc6YXR9PVN5bWJvbCxXQT0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLHQpPT5BLmNhbGwoZSx0KSkoT2JqZWN0LnByb3RvdHlwZSksbUE9KEEsZSk9PntsZXQgdD1BLHI9W107Zm9yKDt0IT1udWxsJiZ0IT09T2JqZWN0LnByb3RvdHlwZTspe2lmKHIuaW5kZXhPZih0KSE9PS0xKXJldHVybiExO2lmKHIucHVzaCh0KSxXQSh0LGUpKXJldHVybiEwO3Q9Z0EodCl9cmV0dXJuITF9LFNyPShBLGUpPT5BIT1udWxsJiZtQShBLGUpP0FbZV06dm9pZCAwLGxlPShBPT5lPT57bGV0IHQ9d3IuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLE09QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PmxlKGUpPT09QSksWkE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OklBfT1BcnJheSxhQT1aQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYhYUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhYUEoQS5jb25zdHJ1Y3RvcikmJkgoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIEN0PU0oIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gUnIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZDdChBLmJ1ZmZlciksZX12YXIgRnI9WkEoInN0cmluZyIpLEg9WkEoImZ1bmN0aW9uIiksQnQ9WkEoIm51bWJlciIpLEJBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsTnI9QT0+QT09PSEwfHxBPT09ITEsakE9QT0+e2lmKCFCQShBKSlyZXR1cm4hMTtsZXQgZT1nQShBKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxnQShlKT09PW51bGwpJiYhbUEoQSxhdCkmJiFtQShBLHdBKX0sVXI9QT0+e2lmKCFCQShBKXx8Q0EoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sR3I9TSgiRGF0ZSIpLGtyPU0oIkZpbGUiKSxMcj1BPT4hIShBJiZ0eXBlb2YgQS51cmk8InUiKSxicj1BPT5BJiZ0eXBlb2YgQS5nZXRQYXJ0czwidSIsSnI9TSgiQmxvYiIpLEhyPU0oIkZpbGVMaXN0IiksT3I9QT0+QkEoQSkmJkgoQS5waXBlKTtmdW5jdGlvbiBZcigpe3JldHVybiB0eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnt9fXZhciBzdD1ZcigpLGd0PXR5cGVvZiBzdC5Gb3JtRGF0YTwidSI/c3QuRm9ybURhdGE6dm9pZCAwLHFyPUE9PntpZighQSlyZXR1cm4hMTtpZihndCYmQSBpbnN0YW5jZW9mIGd0KXJldHVybiEwO2xldCBlPWdBKEEpO2lmKCFlfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8IUgoQS5hcHBlbmQpKXJldHVybiExO2xldCB0PWxlKEEpO3JldHVybiB0PT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZIKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0ifSxNcj1NKCJVUkxTZWFyY2hQYXJhbXMiKSxbVHIsUHIseHIsS3JdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKE0pLF9yPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBTQShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCByLG87aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLElBKEEpKWZvcihyPTAsbz1BLmxlbmd0aDtyPG87cisrKWUuY2FsbChudWxsLEFbcl0scixBKTtlbHNle2lmKENBKEEpKXJldHVybjtsZXQgST10P09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGk9SS5sZW5ndGgscztmb3Iocj0wO3I8aTtyKyspcz1JW3JdLGUuY2FsbChudWxsLEFbc10scyxBKX19ZnVuY3Rpb24gUXQoQSxlKXtpZihDQShBKSlyZXR1cm4gbnVsbDtlPWUudG9Mb3dlckNhc2UoKTtsZXQgdD1PYmplY3Qua2V5cyhBKSxyPXQubGVuZ3RoLG87Zm9yKDtyLS0gPjA7KWlmKG89dFtyXSxlPT09by50b0xvd2VyQ2FzZSgpKXJldHVybiBvO3JldHVybiBudWxsfXZhciBvQT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLEV0PUE9PiFhQShBKSYmQSE9PW9BO2Z1bmN0aW9uIGZlKC4uLkEpe2xldHtjYXNlbGVzczplLHNraXBVbmRlZmluZWQ6dH09RXQodGhpcykmJnRoaXN8fHt9LHI9e30sbz0oSSxpKT0+e2lmKGk9PT0iX19wcm90b19fInx8aT09PSJjb25zdHJ1Y3RvciJ8fGk9PT0icHJvdG90eXBlIilyZXR1cm47bGV0IHM9ZSYmdHlwZW9mIGk9PSJzdHJpbmciJiZRdChyLGkpfHxpLFE9V0EocixzKT9yW3NdOnZvaWQgMDtqQShRKSYmakEoSSk/cltzXT1mZShRLEkpOmpBKEkpP3Jbc109ZmUoe30sSSk6SUEoSSk/cltzXT1JLnNsaWNlKCk6KCF0fHwhYUEoSSkpJiYocltzXT1JKX07Zm9yKGxldCBJPTAsaT1BLmxlbmd0aDtJPGk7SSsrKXtsZXQgcz1BW0ldO2lmKCFzfHxDQShzKXx8KFNBKHMsbyksdHlwZW9mIHMhPSJvYmplY3QifHxJQShzKSkpY29udGludWU7bGV0IFE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtmb3IobGV0IEI9MDtCPFEubGVuZ3RoO0IrKyl7bGV0IGc9UVtCXTtyby5jYWxsKHMsZykmJm8oc1tnXSxnKX19cmV0dXJuIHJ9dmFyIGpyPShBLGUsdCx7YWxsT3duS2V5czpyfT17fSk9PihTQShlLChvLEkpPT57dCYmSChvKT9PYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJLHtfX3Byb3RvX186bnVsbCx2YWx1ZTp5QShvLHQpLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSSx7X19wcm90b19fOm51bGwsdmFsdWU6byx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfSx7YWxsT3duS2V5czpyfSksQSksV3I9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxacj0oQSxlLHQscik9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwiY29uc3RydWN0b3IiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTpBLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7X19wcm90b19fOm51bGwsdmFsdWU6ZS5wcm90b3R5cGV9KSx0JiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLHQpfSxWcj0oQSxlLHQscik9PntsZXQgbyxJLGkscz17fTtpZihlPWV8fHt9LEE9PW51bGwpcmV0dXJuIGU7ZG97Zm9yKG89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksST1vLmxlbmd0aDtJLS0gPjA7KWk9b1tJXSwoIXJ8fHIoaSxBLGUpKSYmIXNbaV0mJihlW2ldPUFbaV0sc1tpXT0hMCk7QT10IT09ITEmJmdBKEEpfXdoaWxlKEEmJighdHx8dChBLGUpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBlfSx6cj0oQSxlLHQpPT57QT1TdHJpbmcoQSksKHQ9PT12b2lkIDB8fHQ+QS5sZW5ndGgpJiYodD1BLmxlbmd0aCksdC09ZS5sZW5ndGg7bGV0IHI9QS5pbmRleE9mKGUsdCk7cmV0dXJuIHIhPT0tMSYmcj09PXR9LFhyPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZihJQShBKSlyZXR1cm4gQTtsZXQgZT1BLmxlbmd0aDtpZighQnQoZSkpcmV0dXJuIG51bGw7bGV0IHQ9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOyl0W2VdPUFbZV07cmV0dXJuIHR9LHZyPShBPT5lPT5BJiZlIGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZnQShVaW50OEFycmF5KSksJHI9KEEsZSk9PntsZXQgcj0oQSYmQVt3QV0pLmNhbGwoQSksbztmb3IoOyhvPXIubmV4dCgpKSYmIW8uZG9uZTspe2xldCBJPW8udmFsdWU7ZS5jYWxsKEEsSVswXSxJWzFdKX19LEFvPShBLGUpPT57bGV0IHQscj1bXTtmb3IoOyh0PUEuZXhlYyhlKSkhPT1udWxsOylyLnB1c2godCk7cmV0dXJuIHJ9LGVvPU0oIkhUTUxGb3JtRWxlbWVudCIpLHRvPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKHQscixvKXtyZXR1cm4gci50b1VwcGVyQ2FzZSgpK299KSx7cHJvcGVydHlJc0VudW1lcmFibGU6cm99PU9iamVjdC5wcm90b3R5cGUsb289TSgiUmVnRXhwIiksY3Q9KEEsZSk9PntsZXQgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxyPXt9O1NBKHQsKG8sSSk9PntsZXQgaTsoaT1lKG8sSSxBKSkhPT0hMSYmKHJbSV09aXx8byl9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLHIpfSxJbz1BPT57Y3QoQSwoZSx0KT0+e2lmKEgoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5jbHVkZXModCkpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihIKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK3QrIlwnIil9KX19KX0saW89KEEsZSk9PntsZXQgdD17fSxyPW89PntvLmZvckVhY2goST0+e3RbSV09ITB9KX07cmV0dXJuIElBKEEpP3IoQSk6cihTdHJpbmcoQSkuc3BsaXQoZSkpLHR9LG5vPSgpPT57fSxzbz0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiBnbyhBKXtyZXR1cm4hIShBJiZIKEEuYXBwZW5kKSYmQVthdF09PT0iRm9ybURhdGEiJiZBW3dBXSl9dmFyIGFvPUE9PntsZXQgZT1uZXcgV2Vha1NldCx0PXI9PntpZihCQShyKSl7aWYoZS5oYXMocikpcmV0dXJuO2lmKENBKHIpKXJldHVybiByO2lmKCEoInRvSlNPTiJpbiByKSl7ZS5hZGQocik7bGV0IG89SUEocik/W106e307cmV0dXJuIFNBKHIsKEksaSk9PntsZXQgcz10KEkpOyFhQShzKSYmKG9baV09cyl9KSxlLmRlbGV0ZShyKSxvfX1yZXR1cm4gcn07cmV0dXJuIHQoQSl9LENvPU0oIkFzeW5jRnVuY3Rpb24iKSxCbz1BPT5BJiYoQkEoQSl8fEgoQSkpJiZIKEEudGhlbikmJkgoQS5jYXRjaCksZnQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KG9BLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOm8sZGF0YTpJfSk9PntvPT09b0EmJkk9PT10JiZyLmxlbmd0aCYmci5zaGlmdCgpKCl9LCExKSxvPT57ci5wdXNoKG8pLG9BLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsSChvQS5wb3N0TWVzc2FnZSkpLFFvPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChvQSk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxmdCxsdD1BPT5BIT1udWxsJiZIKEFbd0FdKSxFbz1BPT5BIT1udWxsJiZtQShBLHdBKSYmbHQoQSksbj17aXNBcnJheTpJQSxpc0FycmF5QnVmZmVyOkN0LGlzQnVmZmVyOkNBLGlzRm9ybURhdGE6cXIsaXNBcnJheUJ1ZmZlclZpZXc6UnIsaXNTdHJpbmc6RnIsaXNOdW1iZXI6QnQsaXNCb29sZWFuOk5yLGlzT2JqZWN0OkJBLGlzUGxhaW5PYmplY3Q6akEsaXNFbXB0eU9iamVjdDpVcixpc1JlYWRhYmxlU3RyZWFtOlRyLGlzUmVxdWVzdDpQcixpc1Jlc3BvbnNlOnhyLGlzSGVhZGVyczpLcixpc1VuZGVmaW5lZDphQSxpc0RhdGU6R3IsaXNGaWxlOmtyLGlzUmVhY3ROYXRpdmVCbG9iOkxyLGlzUmVhY3ROYXRpdmU6YnIsaXNCbG9iOkpyLGlzUmVnRXhwOm9vLGlzRnVuY3Rpb246SCxpc1N0cmVhbTpPcixpc1VSTFNlYXJjaFBhcmFtczpNcixpc1R5cGVkQXJyYXk6dnIsaXNGaWxlTGlzdDpIcixmb3JFYWNoOlNBLG1lcmdlOmZlLGV4dGVuZDpqcix0cmltOl9yLHN0cmlwQk9NOldyLGluaGVyaXRzOlpyLHRvRmxhdE9iamVjdDpWcixraW5kT2Y6bGUsa2luZE9mVGVzdDpNLGVuZHNXaXRoOnpyLHRvQXJyYXk6WHIsZm9yRWFjaEVudHJ5OiRyLG1hdGNoQWxsOkFvLGlzSFRNTEZvcm06ZW8saGFzT3duUHJvcGVydHk6V0EsaGFzT3duUHJvcDpXQSxoYXNPd25JblByb3RvdHlwZUNoYWluOm1BLGdldFNhZmVQcm9wOlNyLHJlZHVjZURlc2NyaXB0b3JzOmN0LGZyZWV6ZU1ldGhvZHM6SW8sdG9PYmplY3RTZXQ6aW8sdG9DYW1lbENhc2U6dG8sbm9vcDpubyx0b0Zpbml0ZU51bWJlcjpzbyxmaW5kS2V5OlF0LGdsb2JhbDpvQSxpc0NvbnRleHREZWZpbmVkOkV0LGlzU3BlY0NvbXBsaWFudEZvcm06Z28sdG9KU09OT2JqZWN0OmFvLGlzQXN5bmNGbjpDbyxpc1RoZW5hYmxlOkJvLHNldEltbWVkaWF0ZTpmdCxhc2FwOlFvLGlzSXRlcmFibGU6bHQsaXNTYWZlSXRlcmFibGU6RW99O3ZhciBjbz1uLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHV0PUE9PntsZXQgZT17fSx0LHIsbztyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihpKXtvPWkuaW5kZXhPZigiOiIpLHQ9aS5zdWJzdHJpbmcoMCxvKS50cmltKCkudG9Mb3dlckNhc2UoKSxyPWkuc3Vic3RyaW5nKG8rMSkudHJpbSgpLCEoIXR8fGVbdF0mJmNvW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2gocik6ZVt0XT1bcl06ZVt0XT1lW3RdP2VbdF0rIiwgIityOnIpfSksZX07ZnVuY3Rpb24gZm8oQSl7bGV0IGU9MCx0PUEubGVuZ3RoO2Zvcig7ZTx0Oyl7bGV0IHI9QS5jaGFyQ29kZUF0KGUpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7ZSs9MX1mb3IoO3Q+ZTspe2xldCByPUEuY2hhckNvZGVBdCh0LTEpO2lmKHIhPT05JiZyIT09MzIpYnJlYWs7dC09MX1yZXR1cm4gZT09PTAmJnQ9PT1BLmxlbmd0aD9BOkEuc2xpY2UoZSx0KX12YXIgbG89bmV3IFJlZ0V4cCgiW1xcXFx1MDAwMC1cXFxcdTAwMDhcXFxcdTAwMGEtXFxcXHUwMDFmXFxcXHUwMDdmXSsiLCJnIiksdW89bmV3IFJlZ0V4cCgiW15cXFxcdTAwMDlcXFxcdTAwMjAtXFxcXHUwMDdlXFxcXHUwMDgwLVxcXFx1MDBmZl0rIiwiZyIpO2Z1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIG4uaXNBcnJheShBKT9BLm1hcCh0PT51ZSh0LGUpKTpmbyhTdHJpbmcoQSkucmVwbGFjZShlLCIiKSl9dmFyIGR0PUE9PnVlKEEsbG8pLGhvPUE9PnVlKEEsdW8pO2Z1bmN0aW9uIFZBKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaChBLnRvSlNPTigpLCh0LHIpPT57ZVtyXT1obyh0KX0pLGV9dmFyIGh0PVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gUkEoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB6QShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6bi5pc0FycmF5KEEpP0EubWFwKHpBKTpkdChTdHJpbmcoQSkpfWZ1bmN0aW9uIERvKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksdD0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLHI7Zm9yKDtyPXQuZXhlYyhBKTspZVtyWzFdXT1yWzJdO3JldHVybiBlfXZhciBwbz1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBkZShBLGUsdCxyLG8pe2lmKG4uaXNGdW5jdGlvbihyKSlyZXR1cm4gci5jYWxsKHRoaXMsZSx0KTtpZihvJiYoZT10KSwhIW4uaXNTdHJpbmcoZSkpe2lmKG4uaXNTdHJpbmcocikpcmV0dXJuIGUuaW5kZXhPZihyKSE9PS0xO2lmKG4uaXNSZWdFeHAocikpcmV0dXJuIHIudGVzdChlKX19ZnVuY3Rpb24geW8oQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLChlLHQscik9PnQudG9VcHBlckNhc2UoKStyKX1mdW5jdGlvbiBtbyhBLGUpe2xldCB0PW4udG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChyPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEscit0LHtfX3Byb3RvX186bnVsbCx2YWx1ZTpmdW5jdGlvbihvLEksaSl7cmV0dXJuIHRoaXNbcl0uY2FsbCh0aGlzLGUsbyxJLGkpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciBRQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LHIpe2xldCBvPXRoaXM7ZnVuY3Rpb24gSShzLFEsQil7bGV0IGc9UkEoUSk7aWYoIWcpcmV0dXJuO2xldCBhPW4uZmluZEtleShvLGcpOyghYXx8b1thXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZvW2FdIT09ITEpJiYob1thfHxRXT16QShzKSl9bGV0IGk9KHMsUSk9Pm4uZm9yRWFjaChzLChCLGcpPT5JKEIsZyxRKSk7aWYobi5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilpKGUsdCk7ZWxzZSBpZihuLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFwbyhlKSlpKHV0KGUpLHQpO2Vsc2UgaWYobi5pc09iamVjdChlKSYmbi5pc1NhZmVJdGVyYWJsZShlKSl7bGV0IHM9T2JqZWN0LmNyZWF0ZShudWxsKSxRLEI7Zm9yKGxldCBnIG9mIGUpe2lmKCFuLmlzQXJyYXkoZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtCPWdbMF0sbi5oYXNPd25Qcm9wKHMsQik/KFE9c1tCXSxzW0JdPW4uaXNBcnJheShRKT9bLi4uUSxnWzFdXTpbUSxnWzFdXSk6c1tCXT1nWzFdfWkocyx0KX1lbHNlIGUhPW51bGwmJkkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9UkEoZSksZSl7bGV0IHI9bi5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IG89dGhpc1tyXTtpZighdClyZXR1cm4gbztpZih0PT09ITApcmV0dXJuIERvKG8pO2lmKG4uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsbyxyKTtpZihuLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMobyk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9UkEoZSksZSl7bGV0IHI9bi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxkZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsbz0hMTtmdW5jdGlvbiBJKGkpe2lmKGk9UkEoaSksaSl7bGV0IHM9bi5maW5kS2V5KHIsaSk7cyYmKCF0fHxkZShyLHJbc10scyx0KSkmJihkZWxldGUgcltzXSxvPSEwKX19cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goSSk6SShlKSxvfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsbz0hMTtmb3IoO3ItLTspe2xldCBJPXRbcl07KCFlfHxkZSh0aGlzLHRoaXNbSV0sSSxlLCEwKSkmJihkZWxldGUgdGhpc1tJXSxvPSEwKX1yZXR1cm4gb31ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBuLmZvckVhY2godGhpcywobyxJKT0+e2xldCBpPW4uZmluZEtleShyLEkpO2lmKGkpe3RbaV09ekEobyksZGVsZXRlIHRbSV07cmV0dXJufWxldCBzPWU/eW8oSSk6U3RyaW5nKEkpLnRyaW0oKTtzIT09SSYmZGVsZXRlIHRbSV0sdFtzXT16QShvKSxyW3NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChyLG8pPT57ciE9bnVsbCYmciE9PSExJiYodFtvXT1lJiZuLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4udCl7bGV0IHI9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaChvPT5yLnNldChvKSkscn1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHI9KHRoaXNbaHRdPXRoaXNbaHRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMsbz10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBJKGkpe2xldCBzPVJBKGkpO3Jbc118fChtbyhvLGkpLHJbc109ITApfXJldHVybiBuLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKEkpOkkoZSksdGhpc319O1FBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtuLnJlZHVjZURlc2NyaXB0b3JzKFFBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQocil7dGhpc1t0XT1yfX19KTtuLmZyZWV6ZU1ldGhvZHMoUUEpO3ZhciBGPVFBO3ZhciB3bz0iW1JFREFDVEVEICoqKipdIjtmdW5jdGlvbiBTbyhBKXtpZihuLmhhc093blByb3AoQSwidG9KU09OIikpcmV0dXJuITA7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKEEpO2Zvcig7ZSYmZSE9PU9iamVjdC5wcm90b3R5cGU7KXtpZihuLmhhc093blByb3AoZSwidG9KU09OIikpcmV0dXJuITA7ZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9cmV0dXJuITF9ZnVuY3Rpb24gUm8oQSxlKXtsZXQgdD1uZXcgU2V0KGUubWFwKEk9PlN0cmluZyhJKS50b0xvd2VyQ2FzZSgpKSkscj1bXSxvPUk9PntpZihJPT09bnVsbHx8dHlwZW9mIEkhPSJvYmplY3QifHxuLmlzQnVmZmVyKEkpKXJldHVybiBJO2lmKHIuaW5kZXhPZihJKSE9PS0xKXJldHVybjtJIGluc3RhbmNlb2YgRiYmKEk9SS50b0pTT04oKSksci5wdXNoKEkpO2xldCBpO2lmKG4uaXNBcnJheShJKSlpPVtdLEkuZm9yRWFjaCgocyxRKT0+e2xldCBCPW8ocyk7bi5pc1VuZGVmaW5lZChCKXx8KGlbUV09Qil9KTtlbHNle2lmKCFuLmlzUGxhaW5PYmplY3QoSSkmJlNvKEkpKXJldHVybiByLnBvcCgpLEk7aT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXRbcyxRXW9mIE9iamVjdC5lbnRyaWVzKEkpKXtsZXQgQj10LmhhcyhzLnRvTG93ZXJDYXNlKCkpP3dvOm8oUSk7bi5pc1VuZGVmaW5lZChCKXx8KGlbc109Qil9fXJldHVybiByLnBvcCgpLGl9O3JldHVybiBvKEEpfXZhciBrPWNsYXNzIEEgZXh0ZW5kcyBFcnJvcntzdGF0aWMgZnJvbShlLHQscixvLEksaSl7bGV0IHM9bmV3IEEoZS5tZXNzYWdlLHR8fGUuY29kZSxyLG8sSSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJjYXVzZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmUsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxzLm5hbWU9ZS5uYW1lLGUuc3RhdHVzIT1udWxsJiZzLnN0YXR1cz09bnVsbCYmKHMuc3RhdHVzPWUuc3RhdHVzKSxpJiZPYmplY3QuYXNzaWduKHMsaSksc31jb25zdHJ1Y3RvcihlLHQscixvLEkpe3N1cGVyKGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7X19wcm90b19fOm51bGwsdmFsdWU6ZSxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdGhpcy5pc0F4aW9zRXJyb3I9ITAsdCYmKHRoaXMuY29kZT10KSxyJiYodGhpcy5jb25maWc9ciksbyYmKHRoaXMucmVxdWVzdD1vKSxJJiYodGhpcy5yZXNwb25zZT1JLHRoaXMuc3RhdHVzPUkuc3RhdHVzKX10b0pTT04oKXtsZXQgZT10aGlzLmNvbmZpZyx0PWUmJm4uaGFzT3duUHJvcChlLCJyZWRhY3QiKT9lLnJlZGFjdDp2b2lkIDAscj1uLmlzQXJyYXkodCkmJnQubGVuZ3RoPjA/Um8oZSx0KTpuLnRvSlNPTk9iamVjdChlKTtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6cixjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX07ay5FUlJfQkFEX09QVElPTl9WQUxVRT0iRVJSX0JBRF9PUFRJT05fVkFMVUUiO2suRVJSX0JBRF9PUFRJT049IkVSUl9CQURfT1BUSU9OIjtrLkVDT05OQUJPUlRFRD0iRUNPTk5BQk9SVEVEIjtrLkVUSU1FRE9VVD0iRVRJTUVET1VUIjtrLkVDT05OUkVGVVNFRD0iRUNPTk5SRUZVU0VEIjtrLkVSUl9ORVRXT1JLPSJFUlJfTkVUV09SSyI7ay5FUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTPSJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIjtrLkVSUl9ERVBSRUNBVEVEPSJFUlJfREVQUkVDQVRFRCI7ay5FUlJfQkFEX1JFU1BPTlNFPSJFUlJfQkFEX1JFU1BPTlNFIjtrLkVSUl9CQURfUkVRVUVTVD0iRVJSX0JBRF9SRVFVRVNUIjtrLkVSUl9DQU5DRUxFRD0iRVJSX0NBTkNFTEVEIjtrLkVSUl9OT1RfU1VQUE9SVD0iRVJSX05PVF9TVVBQT1JUIjtrLkVSUl9JTlZBTElEX1VSTD0iRVJSX0lOVkFMSURfVVJMIjtrLkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQ9IkVSUl9GT1JNX0RBVEFfREVQVEhfRVhDRUVERUQiO3ZhciBmPWs7dmFyIFhBPW51bGw7dmFyIHBlPTEwMDtmdW5jdGlvbiBEZShBKXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KEEpfHxuLmlzQXJyYXkoQSl9ZnVuY3Rpb24gRHQoQSl7cmV0dXJuIG4uZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gaGUoQSxlLHQpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihvLEkpe3JldHVybiBvPUR0KG8pLCF0JiZJPyJbIitvKyJdIjpvfSkuam9pbih0PyIuIjoiIik6ZX1mdW5jdGlvbiBGbyhBKXtyZXR1cm4gbi5pc0FycmF5KEEpJiYhQS5zb21lKERlKX12YXIgTm89bi50b0ZsYXRPYmplY3Qobix7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIFVvKEEsZSx0KXtpZighbi5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhYQXx8Rm9ybURhdGEpLHQ9bi50b0ZsYXRPYmplY3QodCx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGQsRCl7cmV0dXJuIW4uaXNVbmRlZmluZWQoRFtkXSl9KTtsZXQgcj10Lm1ldGFUb2tlbnMsbz10LnZpc2l0b3J8fHUsST10LmRvdHMsaT10LmluZGV4ZXMscz10LkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYixRPXQubWF4RGVwdGg9PT12b2lkIDA/cGU6dC5tYXhEZXB0aCxCPXMmJm4uaXNTcGVjQ29tcGxpYW50Rm9ybShlKSxnPVtdO2lmKCFuLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBhKEUpe2lmKEU9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKEUpKXJldHVybiBFLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oRSkpcmV0dXJuIEUudG9TdHJpbmcoKTtpZighQiYmbi5pc0Jsb2IoRSkpdGhyb3cgbmV3IGYoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7aWYobi5pc0FycmF5QnVmZmVyKEUpfHxuLmlzVHlwZWRBcnJheShFKSl7aWYoQiYmdHlwZW9mIHM9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBzKFtFXSk7aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKEUpO3Rocm93IG5ldyBmKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIsZi5FUlJfTk9UX1NVUFBPUlQpfXJldHVybiBFfWZ1bmN0aW9uIGMoRSl7aWYoRT5RKXRocm93IG5ldyBmKCJPYmplY3QgaXMgdG9vIGRlZXBseSBuZXN0ZWQgKCIrRSsiIGxldmVscykuIE1heCBkZXB0aDogIitRLGYuRVJSX0ZPUk1fREFUQV9ERVBUSF9FWENFRURFRCl9ZnVuY3Rpb24gQyhFLGQpe2lmKFE9PT0xLzApcmV0dXJuIEpTT04uc3RyaW5naWZ5KEUpO2xldCBEPVtdO3JldHVybiBKU09OLnN0cmluZ2lmeShFLGZ1bmN0aW9uKGIsUil7aWYoIW4uaXNPYmplY3QoUikpcmV0dXJuIFI7Zm9yKDtELmxlbmd0aCYmRFtELmxlbmd0aC0xXSE9PXRoaXM7KUQucG9wKCk7cmV0dXJuIEQucHVzaChSKSxjKGQrRC5sZW5ndGgtMSksUn0pfWZ1bmN0aW9uIHUoRSxkLEQpe2xldCB5PUU7aWYobi5pc1JlYWN0TmF0aXZlKGUpJiZuLmlzUmVhY3ROYXRpdmVCbG9iKEUpKXJldHVybiBlLmFwcGVuZChoZShELGQsSSksYShFKSksITE7aWYoRSYmIUQmJnR5cGVvZiBFPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChkLCJ7fSIpKWQ9cj9kOmQuc2xpY2UoMCwtMiksRT1DKEUsMSk7ZWxzZSBpZihuLmlzQXJyYXkoRSkmJkZvKEUpfHwobi5pc0ZpbGVMaXN0KEUpfHxuLmVuZHNXaXRoKGQsIltdIikpJiYoeT1uLnRvQXJyYXkoRSkpKXJldHVybiBkPUR0KGQpLHkuZm9yRWFjaChmdW5jdGlvbihSLFopeyEobi5pc1VuZGVmaW5lZChSKXx8Uj09PW51bGwpJiZlLmFwcGVuZChpPT09ITA/aGUoW2RdLFosSSk6aT09PW51bGw/ZDpkKyJbXSIsYShSKSl9KSwhMX1yZXR1cm4gRGUoRSk/ITA6KGUuYXBwZW5kKGhlKEQsZCxJKSxhKEUpKSwhMSl9bGV0IGg9T2JqZWN0LmFzc2lnbihObyx7ZGVmYXVsdFZpc2l0b3I6dSxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTpEZX0pO2Z1bmN0aW9uIGwoRSxkLEQ9MCl7aWYoIW4uaXNVbmRlZmluZWQoRSkpe2lmKGMoRCksZy5pbmRleE9mKEUpIT09LTEpdGhyb3cgbmV3IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitkLmpvaW4oIi4iKSk7Zy5wdXNoKEUpLG4uZm9yRWFjaChFLGZ1bmN0aW9uKGIsUil7KCEobi5pc1VuZGVmaW5lZChiKXx8Yj09PW51bGwpJiZvLmNhbGwoZSxiLG4uaXNTdHJpbmcoUik/Ui50cmltKCk6UixkLGgpKT09PSEwJiZsKGIsZD9kLmNvbmNhdChSKTpbUl0sRCsxKX0pLGcucG9wKCl9fWlmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gbChBKSxlfXZhciAkPVVvO2Z1bmN0aW9uIHB0KEEpe2xldCBlPXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjAvZyxmdW5jdGlvbihyKXtyZXR1cm4gZVtyXX0pfWZ1bmN0aW9uIHl0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmJChBLHRoaXMsZSl9dmFyIG10PXl0LnByb3RvdHlwZTttdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX07bXQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IHQ9ZT9yPT5lLmNhbGwodGhpcyxyLHB0KTpwdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgdkE9eXQ7ZnVuY3Rpb24gR28oQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBGQShBLGUsdCl7aWYoIWUpcmV0dXJuIEE7QT1BfHwiIjtsZXQgcj1uLmlzRnVuY3Rpb24odCk/e3NlcmlhbGl6ZTp0fTp0LG89bi5nZXRTYWZlUHJvcChyLCJlbmNvZGUiKXx8R28sST1uLmdldFNhZmVQcm9wKHIsInNlcmlhbGl6ZSIpLGk7aWYoST9pPUkoZSxyKTppPW4uaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyB2QShlLHIpLnRvU3RyaW5nKG8pLGkpe2xldCBzPUEuaW5kZXhPZigiJTIzIik7cyE9PS0xJiYoQT1BLnNsaWNlKDAscykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2l9cmV0dXJuIEF9dmFyIHllPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSx0LHIpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6cj9yLnN5bmNocm9ub3VzOiExLHJ1bldoZW46cj9yLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXtuLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihyKXtyIT09bnVsbCYmZShyKX0pfX0sbWU9eWU7dmFyIEVBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExLGxlZ2FjeUludGVyY2VwdG9yUmVxUmVzT3JkZXJpbmc6ITAsYWR2ZXJ0aXNlWnN0ZEFjY2VwdEVuY29kaW5nOiExLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6ITB9O3ZhciB3dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6dkE7dmFyIFN0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgUnQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgRnQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6d3QsRm9ybURhdGE6U3QsQmxvYjpSdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBSZT17fTtCcihSZSx7aGFzQnJvd3NlckVudjooKT0+U2UsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5rbyxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PkxvLG5hdmlnYXRvcjooKT0+d2Usb3JpZ2luOigpPT5ib30pO3ZhciBTZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1Iix3ZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsa289U2UmJighd2V8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2Yod2UucHJvZHVjdCk8MCksTG89dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLGJvPVNlJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBTPXsuLi5SZSwuLi5GdH07ZnVuY3Rpb24gRmUoQSxlKXtyZXR1cm4gJChBLG5ldyBTLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKHQscixvLEkpe3JldHVybiBTLmlzTm9kZSYmbi5pc0J1ZmZlcih0KT8odGhpcy5hcHBlbmQocix0LnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOkkuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi5lfSl9dmFyIE50PXBlO2Z1bmN0aW9uIFV0KEEpe2lmKEE+TnQpdGhyb3cgbmV3IGYoIkZvcm1EYXRhIGZpZWxkIGlzIHRvbyBkZWVwbHkgbmVzdGVkICgiK0ErIiBsZXZlbHMpLiBNYXggZGVwdGg6ICIrTnQsZi5FUlJfRk9STV9EQVRBX0RFUFRIX0VYQ0VFREVEKX1mdW5jdGlvbiBKbyhBKXtsZXQgZT1bXSx0PS9cXHcrfFxcWyhcXHcqKV0vZyxyO2Zvcig7KHI9dC5leGVjKEEpKSE9PW51bGw7KVV0KGUubGVuZ3RoKSxlLnB1c2goclswXT09PSJbXSI/IiI6clsxXXx8clswXSk7cmV0dXJuIGV9ZnVuY3Rpb24gSG8oQSl7bGV0IGU9e30sdD1PYmplY3Qua2V5cyhBKSxyLG89dC5sZW5ndGgsSTtmb3Iocj0wO3I8bztyKyspST10W3JdLGVbSV09QVtJXTtyZXR1cm4gZX1mdW5jdGlvbiBPbyhBKXtmdW5jdGlvbiBlKHQscixvLEkpe1V0KEkpO2xldCBpPXRbSSsrXTtpZihpPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IHM9TnVtYmVyLmlzRmluaXRlKCtpKSxRPUk+PXQubGVuZ3RoO3JldHVybiBpPSFpJiZuLmlzQXJyYXkobyk/by5sZW5ndGg6aSxRPyhuLmhhc093blByb3AobyxpKT9vW2ldPW4uaXNBcnJheShvW2ldKT9vW2ldLmNvbmNhdChyKTpbb1tpXSxyXTpvW2ldPXIsIXMpOigoIW4uaGFzT3duUHJvcChvLGkpfHwhbi5pc09iamVjdChvW2ldKSkmJihvW2ldPVtdKSxlKHQscixvW2ldLEkpJiZuLmlzQXJyYXkob1tpXSkmJihvW2ldPUhvKG9baV0pKSwhcyl9aWYobi5pc0Zvcm1EYXRhKEEpJiZuLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIG4uZm9yRWFjaEVudHJ5KEEsKHIsbyk9PntlKEpvKHIpLG8sdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyICRBPU9vO3ZhciBjQT0oQSxlKT0+QSE9bnVsbCYmbi5oYXNPd25Qcm9wKEEsZSk/QVtlXTp2b2lkIDA7ZnVuY3Rpb24gWW8oQSxlLHQpe2lmKG4uaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxuLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIE5lPXt0cmFuc2l0aW9uYWw6RUEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9bi5pc09iamVjdChlKTtpZihJJiZuLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksbi5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KCRBKGUpKTplO2lmKG4uaXNBcnJheUJ1ZmZlcihlKXx8bi5pc0J1ZmZlcihlKXx8bi5pc1N0cmVhbShlKXx8bi5pc0ZpbGUoZSl8fG4uaXNCbG9iKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYobi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IHM7aWYoSSl7bGV0IFE9Y0EodGhpcywiZm9ybVNlcmlhbGl6ZXIiKTtpZihyLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBGZShlLFEpLnRvU3RyaW5nKCk7aWYoKHM9bi5pc0ZpbGVMaXN0KGUpKXx8ci5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBCPWNBKHRoaXMsImVudiIpLGc9QiYmQi5Gb3JtRGF0YTtyZXR1cm4gJChzP3siZmlsZXNbXSI6ZX06ZSxnJiZuZXcgZyxRKX19cmV0dXJuIEl8fG8/KHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxZbyhlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgdD1jQSh0aGlzLCJ0cmFuc2l0aW9uYWwiKXx8TmUudHJhbnNpdGlvbmFsLHI9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxvPWNBKHRoaXMsInJlc3BvbnNlVHlwZSIpLEk9bz09PSJqc29uIjtpZihuLmlzUmVzcG9uc2UoZSl8fG4uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZuLmlzU3RyaW5nKGUpJiYociYmIW98fEkpKXtsZXQgcz0hKHQmJnQuc2lsZW50SlNPTlBhcnNpbmcpJiZJO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLGNBKHRoaXMsInBhcnNlUmV2aXZlciIpKX1jYXRjaChRKXtpZihzKXRocm93IFEubmFtZT09PSJTeW50YXhFcnJvciI/Zi5mcm9tKFEsZi5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCxjQSh0aGlzLCJyZXNwb25zZSIpKTpRfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6Uy5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6Uy5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsInF1ZXJ5Il0sQT0+e05lLmhlYWRlcnNbQV09e319KTt2YXIgZkE9TmU7ZnVuY3Rpb24gTkEoQSxlKXtsZXQgdD10aGlzfHxmQSxyPWV8fHQsbz1GLmZyb20oci5oZWFkZXJzKSxJPXIuZGF0YTtyZXR1cm4gbi5mb3JFYWNoKEEsZnVuY3Rpb24ocyl7ST1zLmNhbGwodCxJLG8ubm9ybWFsaXplKCksZT9lLnN0YXR1czp2b2lkIDApfSksby5ub3JtYWxpemUoKSxJfWZ1bmN0aW9uIFVBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9dmFyIFVlPWNsYXNzIGV4dGVuZHMgZntjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZT8/ImNhbmNlbGVkIixmLkVSUl9DQU5DRUxFRCx0LHIpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciIsdGhpcy5fX0NBTkNFTF9fPSEwfX0seD1VZTtmdW5jdGlvbiBHQShBLGUsdCl7bGV0IHI9dC5jb25maWcudmFsaWRhdGVTdGF0dXM7IXQuc3RhdHVzfHwhcnx8cih0LnN0YXR1cyk/QSh0KTplKG5ldyBmKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrdC5zdGF0dXMsdC5zdGF0dXM+PTQwMCYmdC5zdGF0dXM8NTAwP2YuRVJSX0JBRF9SRVFVRVNUOmYuRVJSX0JBRF9SRVNQT05TRSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIEdlKEEpe2xldCBlPS9eKFstK1xcd117MSwyNX0pOig/OlxcL1xcLyk/Ly5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBxbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLG89MCxJPTAsaTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKFEpe2xldCBCPURhdGUubm93KCksZz1yW0ldO2l8fChpPUIpLHRbb109USxyW29dPUI7bGV0IGE9SSxjPTA7Zm9yKDthIT09bzspYys9dFthKytdLGE9YSVBO2lmKG89KG8rMSklQSxvPT09SSYmKEk9KEkrMSklQSksQi1pPGUpcmV0dXJuO2xldCBDPWcmJkItZztyZXR1cm4gQz9NYXRoLnJvdW5kKGMqMWUzL0MpOnZvaWQgMH19dmFyIEd0PXFvO2Z1bmN0aW9uIE1vKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLG8sSSxpPShCLGc9RGF0ZS5ub3coKSk9Pnt0PWcsbz1udWxsLEkmJihjbGVhclRpbWVvdXQoSSksST1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IGc9RGF0ZS5ub3coKSxhPWctdDthPj1yP2koQixnKToobz1CLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsaShvKX0sci1hKSkpfSwoKT0+byYmaShvKV19dmFyIGt0PU1vO3ZhciBsQT0oQSxlLHQ9Myk9PntsZXQgcj0wLG89R3QoNTAsMjUwKTtyZXR1cm4ga3QoST0+e2lmKCFJfHx0eXBlb2YgSS5sb2FkZWQhPSJudW1iZXIiKXJldHVybjtsZXQgaT1JLmxvYWRlZCxzPUkubGVuZ3RoQ29tcHV0YWJsZT9JLnRvdGFsOnZvaWQgMCxRPXMhPW51bGw/TWF0aC5taW4oaSxzKTppLEI9TWF0aC5tYXgoMCxRLXIpLGc9byhCKTtyPU1hdGgubWF4KHIsUSk7bGV0IGE9e2xvYWRlZDpRLHRvdGFsOnMscHJvZ3Jlc3M6cz9RL3M6dm9pZCAwLGJ5dGVzOkIscmF0ZTpnfHx2b2lkIDAsZXN0aW1hdGVkOmcmJnM/KHMtUSkvZzp2b2lkIDAsZXZlbnQ6SSxsZW5ndGhDb21wdXRhYmxlOnMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoYSl9LHQpfSxrZT0oQSxlKT0+e2xldCB0PUEhPW51bGw7cmV0dXJuW3I9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6dCx0b3RhbDpBLGxvYWRlZDpyfSksZVsxXV19LExlPUE9PiguLi5lKT0+bi5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgTHQ9Uy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT50PT4odD1uZXcgVVJMKHQsUy5vcmlnaW4pLEEucHJvdG9jb2w9PT10LnByb3RvY29sJiZBLmhvc3Q9PT10Lmhvc3QmJihlfHxBLnBvcnQ9PT10LnBvcnQpKSkobmV3IFVSTChTLm9yaWdpbiksUy5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoUy5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBidD1TLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLHQscixvLEksaSl7aWYodHlwZW9mIGRvY3VtZW50PiJ1IilyZXR1cm47bGV0IHM9W2Ake0F9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfWBdO24uaXNOdW1iZXIodCkmJnMucHVzaChgZXhwaXJlcz0ke25ldyBEYXRlKHQpLnRvVVRDU3RyaW5nKCl9YCksbi5pc1N0cmluZyhyKSYmcy5wdXNoKGBwYXRoPSR7cn1gKSxuLmlzU3RyaW5nKG8pJiZzLnB1c2goYGRvbWFpbj0ke299YCksST09PSEwJiZzLnB1c2goInNlY3VyZSIpLG4uaXNTdHJpbmcoaSkmJnMucHVzaChgU2FtZVNpdGU9JHtpfWApLGRvY3VtZW50LmNvb2tpZT1zLmpvaW4oIjsgIil9LHJlYWQoQSl7aWYodHlwZW9mIGRvY3VtZW50PiJ1IilyZXR1cm4gbnVsbDtsZXQgZT1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IHI9ZVt0XS5yZXBsYWNlKC9eXFxzKy8sIiIpLG89ci5pbmRleE9mKCI9Iik7aWYobyE9PS0xJiZyLnNsaWNlKDAsbyk9PT1BKXRyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHIuc2xpY2UobysxKSl9Y2F0Y2h7cmV0dXJuIHIuc2xpY2UobysxKX19cmV0dXJuIG51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSwiLyIpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIGJlKEEpe3JldHVybiB0eXBlb2YgQSE9InN0cmluZyI/ITE6L14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gSmUoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlxcLysvLCIiKTpBfXZhciBUbz0vXmh0dHBzPzooPyFcXC9cXC8pL2ksUG89L1tcXHRcXG5cXHJdL2c7ZnVuY3Rpb24geG8oQSl7bGV0IGU9MDtmb3IoO2U8QS5sZW5ndGgmJkEuY2hhckNvZGVBdChlKTw9MzI7KWUrKztyZXR1cm4gQS5zbGljZShlKX1mdW5jdGlvbiBLbyhBKXtyZXR1cm4geG8oQSkucmVwbGFjZShQbywiIil9ZnVuY3Rpb24gSnQoQSxlKXtpZih0eXBlb2YgQT09InN0cmluZyImJlRvLnRlc3QoS28oQSkpKXRocm93IG5ldyBmKFwnSW52YWxpZCBVUkw6IG1pc3NpbmcgIi8vIiBhZnRlciBwcm90b2NvbFwnLGYuRVJSX0lOVkFMSURfVVJMLGUpfWZ1bmN0aW9uIGtBKEEsZSx0LHIpe0p0KGUscik7bGV0IG89IWJlKGUpO3JldHVybiBBJiYob3x8dD09PSExKT8oSnQoQSxyKSxKZShBLGUpKTplfXZhciBIdD1BPT5BIGluc3RhbmNlb2YgRj97Li4uQX06QTtmdW5jdGlvbiBUKEEsZSl7QT1BfHx7fSxlPWV8fHt9O2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImhhc093blByb3BlcnR5Iix7X19wcm90b19fOm51bGwsdmFsdWU6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO2Z1bmN0aW9uIHIoZyxhLGMsQyl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChnKSYmbi5pc1BsYWluT2JqZWN0KGEpP24ubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Q30sZyxhKTpuLmlzUGxhaW5PYmplY3QoYSk/bi5tZXJnZSh7fSxhKTpuLmlzQXJyYXkoYSk/YS5zbGljZSgpOmF9ZnVuY3Rpb24gbyhnLGEsYyxDKXtpZihuLmlzVW5kZWZpbmVkKGEpKXtpZighbi5pc1VuZGVmaW5lZChnKSlyZXR1cm4gcih2b2lkIDAsZyxjLEMpfWVsc2UgcmV0dXJuIHIoZyxhLGMsQyl9ZnVuY3Rpb24gSShnLGEpe2lmKCFuLmlzVW5kZWZpbmVkKGEpKXJldHVybiByKHZvaWQgMCxhKX1mdW5jdGlvbiBpKGcsYSl7aWYobi5pc1VuZGVmaW5lZChhKSl7aWYoIW4uaXNVbmRlZmluZWQoZykpcmV0dXJuIHIodm9pZCAwLGcpfWVsc2UgcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIHMoZyl7bGV0IGE9bi5oYXNPd25Qcm9wKGUsInRyYW5zaXRpb25hbCIpP2UudHJhbnNpdGlvbmFsOnZvaWQgMDtpZighbi5pc1VuZGVmaW5lZChhKSlpZihuLmlzUGxhaW5PYmplY3QoYSkpe2lmKG4uaGFzT3duUHJvcChhLGcpKXJldHVybiBhW2ddfWVsc2UgcmV0dXJuO2xldCBjPW4uaGFzT3duUHJvcChBLCJ0cmFuc2l0aW9uYWwiKT9BLnRyYW5zaXRpb25hbDp2b2lkIDA7aWYobi5pc1BsYWluT2JqZWN0KGMpJiZuLmhhc093blByb3AoYyxnKSlyZXR1cm4gY1tnXX1mdW5jdGlvbiBRKGcsYSxjKXtpZihuLmhhc093blByb3AoZSxjKSlyZXR1cm4gcihnLGEpO2lmKG4uaGFzT3duUHJvcChBLGMpKXJldHVybiByKHZvaWQgMCxnKX1sZXQgQj17dXJsOkksbWV0aG9kOkksZGF0YTpJLGJhc2VVUkw6aSx0cmFuc2Zvcm1SZXF1ZXN0OmksdHJhbnNmb3JtUmVzcG9uc2U6aSxwYXJhbXNTZXJpYWxpemVyOmksdGltZW91dDppLHRpbWVvdXRNZXNzYWdlOmksd2l0aENyZWRlbnRpYWxzOmksd2l0aFhTUkZUb2tlbjppLGFkYXB0ZXI6aSxyZXNwb25zZVR5cGU6aSx4c3JmQ29va2llTmFtZTppLHhzcmZIZWFkZXJOYW1lOmksb25VcGxvYWRQcm9ncmVzczppLG9uRG93bmxvYWRQcm9ncmVzczppLGRlY29tcHJlc3M6aSxtYXhDb250ZW50TGVuZ3RoOmksbWF4Qm9keUxlbmd0aDppLGJlZm9yZVJlZGlyZWN0OmksdHJhbnNwb3J0OmksaHR0cEFnZW50OmksaHR0cHNBZ2VudDppLGNhbmNlbFRva2VuOmksc29ja2V0UGF0aDppLGFsbG93ZWRTb2NrZXRQYXRoczppLHJlc3BvbnNlRW5jb2Rpbmc6aSx2YWxpZGF0ZVN0YXR1czpRLGhlYWRlcnM6KGcsYSxjKT0+byhIdChnKSxIdChhKSxjLCEwKX07cmV0dXJuIG4uZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi5lfSksZnVuY3Rpb24oYSl7aWYoYT09PSJfX3Byb3RvX18ifHxhPT09ImNvbnN0cnVjdG9yInx8YT09PSJwcm90b3R5cGUiKXJldHVybjtsZXQgYz1uLmhhc093blByb3AoQixhKT9CW2FdOm8sQz1uLmhhc093blByb3AoQSxhKT9BW2FdOnZvaWQgMCx1PW4uaGFzT3duUHJvcChlLGEpP2VbYV06dm9pZCAwLGg9YyhDLHUsYSk7bi5pc1VuZGVmaW5lZChoKSYmYyE9PVF8fCh0W2FdPWgpfSksbi5oYXNPd25Qcm9wKGUsInZhbGlkYXRlU3RhdHVzIikmJm4uaXNVbmRlZmluZWQoZS52YWxpZGF0ZVN0YXR1cykmJnMoInZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXMiKT09PSExJiYobi5oYXNPd25Qcm9wKEEsInZhbGlkYXRlU3RhdHVzIik/dC52YWxpZGF0ZVN0YXR1cz1yKHZvaWQgMCxBLnZhbGlkYXRlU3RhdHVzKTpkZWxldGUgdC52YWxpZGF0ZVN0YXR1cyksdH12YXIgX289WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO2Z1bmN0aW9uIGpvKEEsZSx0KXtpZih0IT09ImNvbnRlbnQtb25seSIpe0Euc2V0KGUpO3JldHVybn1PYmplY3QuZW50cmllcyhlfHx7fSkuZm9yRWFjaCgoW3Isb10pPT57X28uaW5jbHVkZXMoci50b0xvd2VyQ2FzZSgpKSYmQS5zZXQocixvKX0pfXZhciBXbz1BPT5lbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZ2ksKGUsdCk9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxNikpKTtmdW5jdGlvbiBabyhBKXtsZXQgZT1UKHt9LEEpLHQ9Yz0+bi5oYXNPd25Qcm9wKGUsYyk/ZVtjXTp2b2lkIDAscj10KCJkYXRhIiksbz10KCJ3aXRoWFNSRlRva2VuIiksST10KCJ4c3JmSGVhZGVyTmFtZSIpLGk9dCgieHNyZkNvb2tpZU5hbWUiKSxzPXQoImhlYWRlcnMiKSxRPXQoImF1dGgiKSxCPXQoImJhc2VVUkwiKSxnPXQoImFsbG93QWJzb2x1dGVVcmxzIiksYT10KCJ1cmwiKTtpZihlLmhlYWRlcnM9cz1GLmZyb20ocyksZS51cmw9RkEoa0EoQixhLGcsZSksdCgicGFyYW1zIiksdCgicGFyYW1zU2VyaWFsaXplciIpKSxRKXtsZXQgYz1uLmdldFNhZmVQcm9wKFEsInVzZXJuYW1lIil8fCIiLEM9bi5nZXRTYWZlUHJvcChRLCJwYXNzd29yZCIpfHwiIjt0cnl7cy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoYysiOiIrKEM/V28oQyk6IiIpKSl9Y2F0Y2godSl7dGhyb3cgZi5mcm9tKHUsZi5FUlJfQkFEX09QVElPTl9WQUxVRSxBKX19aWYobi5pc0Zvcm1EYXRhKHIpJiYoUy5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fFMuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52fHxuLmlzUmVhY3ROYXRpdmUocik/cy5zZXRDb250ZW50VHlwZSh2b2lkIDApOm4uaXNGdW5jdGlvbihyLmdldEhlYWRlcnMpJiZqbyhzLHIuZ2V0SGVhZGVycygpLHQoImZvcm1EYXRhSGVhZGVyUG9saWN5IikpKSxTLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKG4uaXNGdW5jdGlvbihvKSYmKG89byhlKSksbz09PSEwfHxvPT1udWxsJiZMdChlLnVybCkpKXtsZXQgQz1JJiZpJiZidC5yZWFkKGkpO0MmJnMuc2V0KEksQyl9cmV0dXJuIGV9dmFyIEFlPVpvO3ZhciBWbz10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLE90PVZvJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxyKXtsZXQgbz1BZShBKSxJPW8uZGF0YSxpPUYuZnJvbShvLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6cyxvblVwbG9hZFByb2dyZXNzOlEsb25Eb3dubG9hZFByb2dyZXNzOkJ9PW8sZyxhLGMsQyx1O2Z1bmN0aW9uIGgoKXtDJiZDKCksdSYmdSgpLG8uY2FuY2VsVG9rZW4mJm8uY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZyksby5zaWduYWwmJm8uc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7bC5vcGVuKG8ubWV0aG9kLnRvVXBwZXJDYXNlKCksby51cmwsITApLGwudGltZW91dD1vLnRpbWVvdXQ7ZnVuY3Rpb24gRSgpe2lmKCFsKXJldHVybjtsZXQgRD1GLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxiPXtkYXRhOiFzfHxzPT09InRleHQifHxzPT09Impzb24iP2wucmVzcG9uc2VUZXh0OmwucmVzcG9uc2Usc3RhdHVzOmwuc3RhdHVzLHN0YXR1c1RleHQ6bC5zdGF0dXNUZXh0LGhlYWRlcnM6RCxjb25maWc6QSxyZXF1ZXN0Omx9O0dBKGZ1bmN0aW9uKFope3QoWiksaCgpfSxmdW5jdGlvbihaKXtyKFopLGgoKX0sYiksbD1udWxsfSJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1FOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWx8fGwucmVhZHlTdGF0ZSE9PTR8fGwuc3RhdHVzPT09MCYmIShsLnJlc3BvbnNlVVJMJiZsLnJlc3BvbnNlVVJMLnN0YXJ0c1dpdGgoImZpbGU6IikpfHxzZXRUaW1lb3V0KEUpfSxsLm9uYWJvcnQ9ZnVuY3Rpb24oKXtsJiYocihuZXcgZigiUmVxdWVzdCBhYm9ydGVkIixmLkVDT05OQUJPUlRFRCxBLGwpKSxoKCksbD1udWxsKX0sbC5vbmVycm9yPWZ1bmN0aW9uKHkpe2xldCBiPXkmJnkubWVzc2FnZT95Lm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFI9bmV3IGYoYixmLkVSUl9ORVRXT1JLLEEsbCk7Ui5ldmVudD15fHxudWxsLHIoUiksaCgpLGw9bnVsbH0sbC5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgeT1vLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitvLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsYj1vLnRyYW5zaXRpb25hbHx8RUE7by50aW1lb3V0RXJyb3JNZXNzYWdlJiYoeT1vLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHIobmV3IGYoeSxiLmNsYXJpZnlUaW1lb3V0RXJyb3I/Zi5FVElNRURPVVQ6Zi5FQ09OTkFCT1JURUQsQSxsKSksaCgpLGw9bnVsbH0sST09PXZvaWQgMCYmaS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goVkEoaSksZnVuY3Rpb24oeSxiKXtsLnNldFJlcXVlc3RIZWFkZXIoYix5KX0pLG4uaXNVbmRlZmluZWQoby53aXRoQ3JlZGVudGlhbHMpfHwobC53aXRoQ3JlZGVudGlhbHM9ISFvLndpdGhDcmVkZW50aWFscykscyYmcyE9PSJqc29uIiYmKGwucmVzcG9uc2VUeXBlPW8ucmVzcG9uc2VUeXBlKSxCJiYoW2MsdV09bEEoQiwhMCksbC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYykpLFEmJmwudXBsb2FkJiYoW2EsQ109bEEoUSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGEpLGwudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEMpKSwoby5jYW5jZWxUb2tlbnx8by5zaWduYWwpJiYoZz1EPT57bCYmKHIoIUR8fEQudHlwZT9uZXcgeChudWxsLEEsbCk6RCksbC5hYm9ydCgpLGgoKSxsPW51bGwpfSxvLmNhbmNlbFRva2VuJiZvLmNhbmNlbFRva2VuLnN1YnNjcmliZShnKSxvLnNpZ25hbCYmKG8uc2lnbmFsLmFib3J0ZWQ/ZygpOm8uc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSkpO2xldCBkPUdlKG8udXJsKTtpZihkJiYhUy5wcm90b2NvbHMuaW5jbHVkZXMoZCkpe3IobmV3IGYoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrZCsiOiIsZi5FUlJfQkFEX1JFUVVFU1QsQSkpLGgoKTtyZXR1cm59bC5zZW5kKEl8fG51bGwpfSl9O3ZhciB6bz0oQSxlKT0+e2lmKEE9QT9BLmZpbHRlcihCb29sZWFuKTpbXSwhZSYmIUEubGVuZ3RoKXJldHVybjtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9ITEsbz1mdW5jdGlvbihRKXtpZighcil7cj0hMCxpKCk7bGV0IEI9USBpbnN0YW5jZW9mIEVycm9yP1E6dGhpcy5yZWFzb247dC5hYm9ydChCIGluc3RhbmNlb2YgZj9COm5ldyB4KEIgaW5zdGFuY2VvZiBFcnJvcj9CLm1lc3NhZ2U6QikpfX0sST1lJiZzZXRUaW1lb3V0KCgpPT57ST1udWxsLG8obmV3IGYoYHRpbWVvdXQgb2YgJHtlfW1zIGV4Y2VlZGVkYCxmLkVUSU1FRE9VVCkpfSxlKSxpPSgpPT57QSYmKEkmJmNsZWFyVGltZW91dChJKSxJPW51bGwsQS5mb3JFYWNoKFE9PntRLnVuc3Vic2NyaWJlP1EudW5zdWJzY3JpYmUobyk6US5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KSxBPW51bGwpfTtBLmZvckVhY2goUT0+US5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbyx7b25jZTohMH0pKTtsZXR7c2lnbmFsOnN9PXQ7cmV0dXJuIHMudW5zdWJzY3JpYmU9KCk9Pm4uYXNhcChpKSxzfSxZdD16bzt2YXIgWG89ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsbztmb3IoO3I8dDspbz1yK2UseWllbGQgQS5zbGljZShyLG8pLHI9b30sdm89YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mICRvKEEpKXlpZWxkKlhvKHQsZSl9LCRvPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sSGU9KEEsZSx0LHIpPT57bGV0IG89dm8oQSxlKSxJPTAsaSxzPVE9PntpfHwoaT0hMCxyJiZyKFEpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChRKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpnfT1hd2FpdCBvLm5leHQoKTtpZihCKXtzKCksUS5jbG9zZSgpO3JldHVybn1sZXQgYT1nLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGM9SSs9YTt0KGMpfVEuZW5xdWV1ZShuZXcgVWludDhBcnJheShnKSl9Y2F0Y2goQil7dGhyb3cgcyhCKSxCfX0sY2FuY2VsKFEpe3JldHVybiBzKFEpLG8ucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBlZT1BPT5BPj00OCYmQTw9NTd8fEE+PTY1JiZBPD03MHx8QT49OTcmJkE8PTEwMixBST0oQSxlLHQpPT5lKzI8dCYmZWUoQS5jaGFyQ29kZUF0KGUrMSkpJiZlZShBLmNoYXJDb2RlQXQoZSsyKSk7ZnVuY3Rpb24gT2UoQSl7aWYoIUF8fHR5cGVvZiBBIT0ic3RyaW5nInx8IUEuc3RhcnRzV2l0aCgiZGF0YToiKSlyZXR1cm4gMDtsZXQgZT1BLmluZGV4T2YoIiwiKTtpZihlPDApcmV0dXJuIDA7bGV0IHQ9QS5zbGljZSg1LGUpLHI9QS5zbGljZShlKzEpO2lmKC87YmFzZTY0L2kudGVzdCh0KSl7bGV0IGk9ci5sZW5ndGgscz1yLmxlbmd0aDtmb3IobGV0IEM9MDtDPHM7QysrKWlmKHIuY2hhckNvZGVBdChDKT09PTM3JiZDKzI8cyl7bGV0IHU9ci5jaGFyQ29kZUF0KEMrMSksaD1yLmNoYXJDb2RlQXQoQysyKTtlZSh1KSYmZWUoaCkmJihpLT0yLEMrPTIpfWxldCBRPTAsQj1zLTEsZz1DPT5DPj0yJiZyLmNoYXJDb2RlQXQoQy0yKT09PTM3JiZyLmNoYXJDb2RlQXQoQy0xKT09PTUxJiYoci5jaGFyQ29kZUF0KEMpPT09Njh8fHIuY2hhckNvZGVBdChDKT09PTEwMCk7Qj49MCYmKHIuY2hhckNvZGVBdChCKT09PTYxPyhRKyssQi0tKTpnKEIpJiYoUSsrLEItPTMpKSxRPT09MSYmQj49MCYmKHIuY2hhckNvZGVBdChCKT09PTYxfHxnKEIpKSYmUSsrO2xldCBjPU1hdGguZmxvb3IoaS80KSozLShRfHwwKTtyZXR1cm4gYz4wP2M6MH1sZXQgST0wO2ZvcihsZXQgaT0wLHM9ci5sZW5ndGg7aTxzO2krKyl7bGV0IFE9ci5jaGFyQ29kZUF0KGkpO2lmKFE9PT0zNyYmQUkocixpLHMpKUkrPTEsaSs9MjtlbHNlIGlmKFE8MTI4KUkrPTE7ZWxzZSBpZihRPDIwNDgpSSs9MjtlbHNlIGlmKFE+PTU1Mjk2JiZRPD01NjMxOSYmaSsxPHMpe2xldCBCPXIuY2hhckNvZGVBdChpKzEpO0I+PTU2MzIwJiZCPD01NzM0Mz8oSSs9NCxpKyspOkkrPTN9ZWxzZSBJKz0zfXJldHVybiBJfXZhciB1QT0iMS4xOC4xIjt2YXIgcXQ9NjQqMTAyNCx7aXNGdW5jdGlvbjp0ZX09bixlST1BPT5lbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZ2ksKGUsdCk9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodCwxNikpKSxNdD1BPT57aWYoIW4uaXNTdHJpbmcoQSkpcmV0dXJuIEE7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoQSl9Y2F0Y2h7cmV0dXJuIEF9fSxUdD0oQSwuLi5lKT0+e3RyeXtyZXR1cm4hIUEoLi4uZSl9Y2F0Y2h7cmV0dXJuITF9fSx0ST1BPT57bGV0IGU9QS5pbmRleE9mKCI6Ly8iKSx0PUE7cmV0dXJuIGUhPT0tMSYmKHQ9dC5zbGljZShlKzMpKSx0LmluY2x1ZGVzKCJAIil8fHQuaW5jbHVkZXMoIjoiKX0sckk9QT0+e2xldCBlPW4uZ2xvYmFsIT09dm9pZCAwJiZuLmdsb2JhbCE9PW51bGw/bi5nbG9iYWw6Z2xvYmFsVGhpcyx7UmVhZGFibGVTdHJlYW06dCxUZXh0RW5jb2RlcjpyfT1lO0E9bi5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSx7UmVxdWVzdDplLlJlcXVlc3QsUmVzcG9uc2U6ZS5SZXNwb25zZX0sQSk7bGV0e2ZldGNoOm8sUmVxdWVzdDpJLFJlc3BvbnNlOml9PUEscz1vP3RlKG8pOnR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIixRPXRlKEkpLEI9dGUoaSk7aWYoIXMpcmV0dXJuITE7bGV0IGc9cyYmdGUodCksYT1zJiYodHlwZW9mIHI9PSJmdW5jdGlvbiI/KEU9PmQ9PkUuZW5jb2RlKGQpKShuZXcgcik6YXN5bmMgRT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IEkoRSkuYXJyYXlCdWZmZXIoKSkpLGM9USYmZyYmVHQoKCk9PntsZXQgRT0hMSxkPW5ldyBJKFMub3JpZ2luLHtib2R5Om5ldyB0LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBFPSEwLCJoYWxmIn19KSxEPWQuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBkLmJvZHkhPW51bGwmJmQuYm9keS5jYW5jZWwoKSxFJiYhRH0pLEM9QiYmZyYmVHQoKCk9Pm4uaXNSZWFkYWJsZVN0cmVhbShuZXcgaSgiIikuYm9keSkpLHU9e3N0cmVhbTpDJiYoRT0+RS5ib2R5KX07cyYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKEU9PnshdVtFXSYmKHVbRV09KGQsRCk9PntsZXQgeT1kJiZkW0VdO2lmKHkpcmV0dXJuIHkuY2FsbChkKTt0aHJvdyBuZXcgZihgUmVzcG9uc2UgdHlwZSBcJyR7RX1cJyBpcyBub3Qgc3VwcG9ydGVkYCxmLkVSUl9OT1RfU1VQUE9SVCxEKX0pfSk7bGV0IGg9YXN5bmMgRT0+e2lmKEU9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoRSkpcmV0dXJuIEUuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oRSkpcmV0dXJuKGF3YWl0IG5ldyBJKFMub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6RX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhFKXx8bi5pc0FycmF5QnVmZmVyKEUpKXJldHVybiBFLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhFKSYmKEU9RSsiIiksbi5pc1N0cmluZyhFKSlyZXR1cm4oYXdhaXQgYShFKSkuYnl0ZUxlbmd0aH0sbD1hc3luYyhFLGQpPT57bGV0IEQ9bi50b0Zpbml0ZU51bWJlcihFLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIEQ/P2goZCl9O3JldHVybiBhc3luYyBFPT57bGV0e3VybDpkLG1ldGhvZDpELGRhdGE6eSxzaWduYWw6YixjYW5jZWxUb2tlbjpSLHRpbWVvdXQ6WixvbkRvd25sb2FkUHJvZ3Jlc3M6Z2Usb25VcGxvYWRQcm9ncmVzczphZSxyZXNwb25zZVR5cGU6VixoZWFkZXJzOnosd2l0aENyZWRlbnRpYWxzOk9BPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOldlLG1heENvbnRlbnRMZW5ndGg6UCxtYXhCb2R5TGVuZ3RoOllBfT1BZShFKSxoQT1uLmlzTnVtYmVyKFApJiZQPi0xLENlPW4uaXNOdW1iZXIoWUEpJiZZQT4tMSxzcj1tPT5uLmhhc093blByb3AoRSxtKT9FW21dOnZvaWQgMCxaZT1vfHxmZXRjaDtWPVY/KFYrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBYPVl0KFtiLFImJlIudG9BYm9ydFNpZ25hbCgpXSxaKSxHPW51bGwsZUE9WCYmWC51bnN1YnNjcmliZSYmKCgpPT57WC51bnN1YnNjcmliZSgpfSksbkEsREE9bnVsbCxWZT0oKT0+bmV3IGYoIlJlcXVlc3QgYm9keSBsYXJnZXIgdGhhbiBtYXhCb2R5TGVuZ3RoIGxpbWl0IixmLkVSUl9CQURfUkVRVUVTVCxFLEcpO3RyeXtsZXQgbSxxPXNyKCJhdXRoIik7aWYocSl7bGV0IHA9bi5nZXRTYWZlUHJvcChxLCJ1c2VybmFtZSIpfHwiIixZPW4uZ2V0U2FmZVByb3AocSwicGFzc3dvcmQiKXx8IiI7bT17dXNlcm5hbWU6cCxwYXNzd29yZDpZfX1pZih0SShkKSl7bGV0IHA9bmV3IFVSTChkLFMub3JpZ2luKTtpZighbSYmKHAudXNlcm5hbWV8fHAucGFzc3dvcmQpKXtsZXQgWT1NdChwLnVzZXJuYW1lKSx2PU10KHAucGFzc3dvcmQpO209e3VzZXJuYW1lOlkscGFzc3dvcmQ6dn19KHAudXNlcm5hbWV8fHAucGFzc3dvcmQpJiYocC51c2VybmFtZT0iIixwLnBhc3N3b3JkPSIiLGQ9cC5ocmVmKX1pZihtJiYoei5kZWxldGUoImF1dGhvcml6YXRpb24iKSx6LnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYShlSSgobS51c2VybmFtZXx8IiIpKyI6IisobS5wYXNzd29yZHx8IiIpKSkpKSxoQSYmdHlwZW9mIGQ9PSJzdHJpbmciJiZkLnN0YXJ0c1dpdGgoImRhdGE6IikmJk9lKGQpPlApdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK1ArIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsRyk7aWYoQ2UmJkQhPT0iZ2V0IiYmRCE9PSJoZWFkIil7bGV0IHA9YXdhaXQgaCh5KTtpZih0eXBlb2YgcD09Im51bWJlciImJmlzRmluaXRlKHApJiYobkE9cCxwPllBKSl0aHJvdyBWZSgpfWxldCBxQT1DZSYmKG4uaXNSZWFkYWJsZVN0cmVhbSh5KXx8bi5pc1N0cmVhbSh5KSksemU9KHAsWSx2KT0+SGUocCxxdCx0QT0+e2lmKENlJiZ0QT5ZQSl0aHJvdyBEQT1WZSgpO1kmJlkodEEpfSx2KTtpZihjJiZEIT09ImdldCImJkQhPT0iaGVhZCImJihhZXx8cUEpKXtpZihuQT1uQT8/YXdhaXQgbCh6LHkpLG5BIT09MHx8cUEpe2xldCBwPW5ldyBJKGQse21ldGhvZDoiUE9TVCIsYm9keTp5LGR1cGxleDoiaGFsZiJ9KSxZO2lmKG4uaXNGb3JtRGF0YSh5KSYmKFk9cC5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZ6LnNldENvbnRlbnRUeXBlKFkpLHAuYm9keSl7bGV0W3YsdEFdPWFlJiZrZShuQSxsQShMZShhZSkpKXx8W107eT16ZShwLmJvZHksdix0QSl9fX1lbHNlIGlmKHFBJiYhUSYmZyYmRCE9PSJnZXQiJiZEIT09ImhlYWQiKXk9emUoeSk7ZWxzZSBpZihxQSYmUSYmIWMmJkQhPT0iZ2V0IiYmRCE9PSJoZWFkIil0aHJvdyBuZXcgZigiU3RyZWFtIHJlcXVlc3QgYm9kaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IGZldGNoIGltcGxlbWVudGF0aW9uIixmLkVSUl9OT1RfU1VQUE9SVCxFLEcpO24uaXNTdHJpbmcoT0EpfHwoT0E9T0E/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IGdyPVEmJiJjcmVkZW50aWFscyJpbiBJLnByb3RvdHlwZTtpZihuLmlzRm9ybURhdGEoeSkpe2xldCBwPXouZ2V0Q29udGVudFR5cGUoKTtwJiYvXm11bHRpcGFydFxcL2Zvcm0tZGF0YS9pLnRlc3QocCkmJiEvYm91bmRhcnk9L2kudGVzdChwKSYmei5kZWxldGUoImNvbnRlbnQtdHlwZSIpfXouc2V0KCJVc2VyLUFnZW50IiwiYXhpb3MvIit1QSwhMSk7bGV0IFhlPXsuLi5XZSxzaWduYWw6WCxtZXRob2Q6RC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6VkEoei5ub3JtYWxpemUoKSksYm9keTp5LGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Z3I/T0E6dm9pZCAwfTtHPVEmJm5ldyBJKGQsWGUpO2xldCBfPWF3YWl0KFE/WmUoRyxXZSk6WmUoZCxYZSkpLHZlPUYuZnJvbShfLmhlYWRlcnMpO2lmKGhBKXtsZXQgcD1uLnRvRmluaXRlTnVtYmVyKHZlLmdldENvbnRlbnRMZW5ndGgoKSk7aWYocCE9bnVsbCYmcD5QKXRocm93IG5ldyBmKCJtYXhDb250ZW50TGVuZ3RoIHNpemUgb2YgIitQKyIgZXhjZWVkZWQiLGYuRVJSX0JBRF9SRVNQT05TRSxFLEcpfWxldCBCZT1DJiYoVj09PSJzdHJlYW0ifHxWPT09InJlc3BvbnNlIik7aWYoQyYmXy5ib2R5JiYoZ2V8fGhBfHxCZSYmZUEpKXtsZXQgcD17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChwQT0+e3BbcEFdPV9bcEFdfSk7bGV0IFk9bi50b0Zpbml0ZU51bWJlcih2ZS5nZXRDb250ZW50TGVuZ3RoKCkpLFt2LHRBXT1nZSYma2UoWSxsQShMZShnZSksITApKXx8W10sJGU9MCxhcj1wQT0+e2lmKGhBJiYoJGU9cEEsJGU+UCkpdGhyb3cgbmV3IGYoIm1heENvbnRlbnRMZW5ndGggc2l6ZSBvZiAiK1ArIiBleGNlZWRlZCIsZi5FUlJfQkFEX1JFU1BPTlNFLEUsRyk7diYmdihwQSl9O189bmV3IGkoSGUoXy5ib2R5LHF0LGFyLCgpPT57dEEmJnRBKCksZUEmJmVBKCl9KSxwKX1WPVZ8fCJ0ZXh0IjtsZXQgaj1hd2FpdCB1W24uZmluZEtleSh1LFYpfHwidGV4dCJdKF8sRSk7aWYoaEEmJiFDJiYhQmUpe2xldCBwO2lmKGohPW51bGwmJih0eXBlb2Ygai5ieXRlTGVuZ3RoPT0ibnVtYmVyIj9wPWouYnl0ZUxlbmd0aDp0eXBlb2Ygai5zaXplPT0ibnVtYmVyIj9wPWouc2l6ZTp0eXBlb2Ygaj09InN0cmluZyImJihwPXR5cGVvZiByPT0iZnVuY3Rpb24iP25ldyByKCkuZW5jb2RlKGopLmJ5dGVMZW5ndGg6ai5sZW5ndGgpKSx0eXBlb2YgcD09Im51bWJlciImJnA+UCl0aHJvdyBuZXcgZigibWF4Q29udGVudExlbmd0aCBzaXplIG9mICIrUCsiIGV4Y2VlZGVkIixmLkVSUl9CQURfUkVTUE9OU0UsRSxHKX1yZXR1cm4hQmUmJmVBJiZlQSgpLGF3YWl0IG5ldyBQcm9taXNlKChwLFkpPT57R0EocCxZLHtkYXRhOmosaGVhZGVyczpGLmZyb20oXy5oZWFkZXJzKSxzdGF0dXM6Xy5zdGF0dXMsc3RhdHVzVGV4dDpfLnN0YXR1c1RleHQsY29uZmlnOkUscmVxdWVzdDpHfSl9KX1jYXRjaChtKXtpZihlQSYmZUEoKSxYJiZYLmFib3J0ZWQmJlgucmVhc29uIGluc3RhbmNlb2YgZil7bGV0IHE9WC5yZWFzb247dGhyb3cgcS5jb25maWc9RSxHJiYocS5yZXF1ZXN0PUcpLG0hPT1xJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocSwiY2F1c2UiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTptLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkscX1pZihEQSl0aHJvdyBHJiYhREEucmVxdWVzdCYmKERBLnJlcXVlc3Q9RyksREE7aWYobSBpbnN0YW5jZW9mIGYpdGhyb3cgRyYmIW0ucmVxdWVzdCYmKG0ucmVxdWVzdD1HKSxtO2lmKG0mJm0ubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KG0ubWVzc2FnZSkpe2xldCBxPW5ldyBmKCJOZXR3b3JrIEVycm9yIixmLkVSUl9ORVRXT1JLLEUsRyxtJiZtLnJlc3BvbnNlKTt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkocSwiY2F1c2UiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTptLmNhdXNlfHxtLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkscX10aHJvdyBmLmZyb20obSxtJiZtLmNvZGUsRSxHLG0mJm0ucmVzcG9uc2UpfX19LG9JPW5ldyBNYXAsWWU9QT0+e2xldCBlPUEmJkEuZW52fHx7fSx7ZmV0Y2g6dCxSZXF1ZXN0OnIsUmVzcG9uc2U6b309ZSxJPVtyLG8sdF0saT1JLmxlbmd0aCxzPWksUSxCLGc9b0k7Zm9yKDtzLS07KVE9SVtzXSxCPWcuZ2V0KFEpLEI9PT12b2lkIDAmJmcuc2V0KFEsQj1zP25ldyBNYXA6ckkoZSkpLGc9QjtyZXR1cm4gQn0seG49WWUoKTt2YXIgcWU9e2h0dHA6WEEseGhyOk90LGZldGNoOntnZXQ6WWV9fTtuLmZvckVhY2gocWUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHtfX3Byb3RvX186bnVsbCx2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse19fcHJvdG9fXzpudWxsLHZhbHVlOmV9KX19KTt2YXIgUHQ9QT0+YC0gJHtBfWAsaUk9QT0+bi5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExO2Z1bmN0aW9uIG5JKEEsZSl7QT1uLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDp0fT1BLHIsbyxJPXt9O2ZvcihsZXQgaT0wO2k8dDtpKyspe3I9QVtpXTtsZXQgcztpZihvPXIsIWlJKHIpJiYobz1xZVsocz1TdHJpbmcocikpLnRvTG93ZXJDYXNlKCldLG89PT12b2lkIDApKXRocm93IG5ldyBmKGBVbmtub3duIGFkYXB0ZXIgXCcke3N9XCdgKTtpZihvJiYobi5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO0lbc3x8IiUyMyIraV09b31pZighbyl7bGV0IGk9T2JqZWN0LmVudHJpZXMoSSkubWFwKChbUSxCXSk9PmBhZGFwdGVyICR7UX0gYCsoQj09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLHM9dD9pLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtpLm1hcChQdCkuam9pbihgJTBBYCk6IiAiK1B0KGlbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGYoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitzLGYuRVJSX05PVF9TVVBQT1JUKX1yZXR1cm4gb312YXIgcmU9e2dldEFkYXB0ZXI6bkksYWRhcHRlcnM6cWV9O2Z1bmN0aW9uIE1lKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyB4KG51bGwsQSl9ZnVuY3Rpb24gb2UoQSl7cmV0dXJuIE1lKEEpLEEuaGVhZGVycz1GLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9TkEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLHJlLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxmQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24ocil7TWUoQSksQS5yZXNwb25zZT1yO3RyeXtyLmRhdGE9TkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2Uscil9ZmluYWxseXtkZWxldGUgQS5yZXNwb25zZX1yZXR1cm4gci5oZWFkZXJzPUYuZnJvbShyLmhlYWRlcnMpLHJ9LGZ1bmN0aW9uKHIpe2lmKCFVQShyKSYmKE1lKEEpLHImJnIucmVzcG9uc2UpKXtBLnJlc3BvbnNlPXIucmVzcG9uc2U7dHJ5e3IucmVzcG9uc2UuZGF0YT1OQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKX1maW5hbGx5e2RlbGV0ZSBBLnJlc3BvbnNlfXIucmVzcG9uc2UuaGVhZGVycz1GLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKX1yZXR1cm4gUHJvbWlzZS5yZWplY3Qocil9KX12YXIgSWU9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57SWVbQV09ZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHh0PXt9O0llLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbyhJLGkpe3JldHVybiJbQXhpb3MgdiIrdUErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiBcJyIrSSsiXCciK2krKHI/Ii4gIityOiIiKX1yZXR1cm4oSSxpLHMpPT57aWYoZT09PSExKXRocm93IG5ldyBmKG8oaSwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZi5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiF4dFtpXSYmKHh0W2ldPSEwLGNvbnNvbGUud2FybihvKGksIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKEksaSxzKTohMH19O0llLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIHNJKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCJ8fEE9PT1udWxsKXRocm93IG5ldyBmKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixmLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgcj1PYmplY3Qua2V5cyhBKSxvPXIubGVuZ3RoO2Zvcig7by0tID4wOyl7bGV0IEk9cltvXSxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLEkpP2VbSV06dm9pZCAwO2lmKGkpe2xldCBzPUFbSV0sUT1zPT09dm9pZCAwfHxpKHMsSSxBKTtpZihRIT09ITApdGhyb3cgbmV3IGYoIm9wdGlvbiAiK0krIiBtdXN0IGJlICIrUSxmLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IGYoIlVua25vd24gb3B0aW9uICIrSSxmLkVSUl9CQURfT1BUSU9OKX19dmFyIExBPXthc3NlcnRPcHRpb25zOnNJLHZhbGlkYXRvcnM6SWV9O3ZhciBKPUxBLnZhbGlkYXRvcnMsZEE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgbWUscmVzcG9uc2U6bmV3IG1lfX1hc3luYyByZXF1ZXN0KGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsdCl9Y2F0Y2gocil7aWYociBpbnN0YW5jZW9mIEVycm9yKXtsZXQgbz17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShvKTpvPW5ldyBFcnJvcjtsZXQgST0oKCk9PntpZighby5zdGFjaylyZXR1cm4iIjtsZXQgaT1vLnN0YWNrLmluZGV4T2YoYCUwQWApO3JldHVybiBpPT09LTE/IiI6by5zdGFjay5zbGljZShpKzEpfSkoKTt0cnl7aWYoIXIuc3RhY2spci5zdGFjaz1JO2Vsc2UgaWYoSSl7bGV0IGk9SS5pbmRleE9mKGAlMEFgKSxzPWk9PT0tMT8tMTpJLmluZGV4T2YoYCUwQWAsaSsxKSxRPXM9PT0tMT8iIjpJLnNsaWNlKHMrMSk7U3RyaW5nKHIuc3RhY2spLmVuZHNXaXRoKFEpfHwoci5zdGFjays9YCUwQWArSSl9fWNhdGNoe319dGhyb3cgcn19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PVQodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOnIscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6SX09dDtyIT09dm9pZCAwJiZMQS5hc3NlcnRPcHRpb25zKHIse3NpbGVudEpTT05QYXJzaW5nOkoudHJhbnNpdGlvbmFsKEouYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Si50cmFuc2l0aW9uYWwoSi5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOkoudHJhbnNpdGlvbmFsKEouYm9vbGVhbiksbGVnYWN5SW50ZXJjZXB0b3JSZXFSZXNPcmRlcmluZzpKLnRyYW5zaXRpb25hbChKLmJvb2xlYW4pLGFkdmVydGlzZVpzdGRBY2NlcHRFbmNvZGluZzpKLnRyYW5zaXRpb25hbChKLmJvb2xlYW4pLHZhbGlkYXRlU3RhdHVzVW5kZWZpbmVkUmVzb2x2ZXM6Si50cmFuc2l0aW9uYWwoSi5ib29sZWFuKX0sITEpLG8hPW51bGwmJihuLmlzRnVuY3Rpb24obyk/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6b306TEEuYXNzZXJ0T3B0aW9ucyhvLHtlbmNvZGU6Si5mdW5jdGlvbixzZXJpYWxpemU6Si5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksTEEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOkouc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOkouc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBpPUkmJm4ubWVyZ2UoSS5jb21tb24sSVt0Lm1ldGhvZF0pO0kmJm4uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJxdWVyeSIsImNvbW1vbiJdLHU9PntkZWxldGUgSVt1XX0pLHQuaGVhZGVycz1GLmNvbmNhdChpLEkpO2xldCBzPVtdLFE9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lmKHR5cGVvZiBoLnJ1bldoZW49PSJmdW5jdGlvbiImJmgucnVuV2hlbih0KT09PSExKXJldHVybjtRPVEmJmguc3luY2hyb25vdXM7bGV0IGw9dC50cmFuc2l0aW9uYWx8fEVBO2wmJmwubGVnYWN5SW50ZXJjZXB0b3JSZXFSZXNPcmRlcmluZz9zLnVuc2hpZnQoaC5mdWxmaWxsZWQsaC5yZWplY3RlZCk6cy5wdXNoKGguZnVsZmlsbGVkLGgucmVqZWN0ZWQpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihoKXtCLnB1c2goaC5mdWxmaWxsZWQsaC5yZWplY3RlZCl9KTtsZXQgZyxhPTAsYztpZighUSl7bGV0IHU9W29lLmJpbmQodGhpcyksdm9pZCAwXTtmb3IodS51bnNoaWZ0KC4uLnMpLHUucHVzaCguLi5CKSxjPXUubGVuZ3RoLGc9UHJvbWlzZS5yZXNvbHZlKHQpO2E8YzspZz1nLnRoZW4odVthKytdLHVbYSsrXSk7cmV0dXJuIGd9Yz1zLmxlbmd0aDtsZXQgQz10O2Zvcig7YTxjOyl7bGV0IHU9c1thKytdLGg9c1thKytdO3RyeXtDPXUoQyl9Y2F0Y2gobCl7aC5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtnPW9lLmNhbGwodGhpcyxDKX1jYXRjaCh1KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QodSl9Zm9yKGE9MCxjPUIubGVuZ3RoO2E8YzspZz1nLnRoZW4oQlthKytdLEJbYSsrXSk7cmV0dXJuIGd9Z2V0VXJpKGUpe2U9VCh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PWtBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzLGUpO3JldHVybiBGQSh0LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe2RBLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLnJlcXVlc3QoVChyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpyJiZuLmhhc093blByb3AociwiZGF0YSIpP3IuZGF0YTp2b2lkIDB9KSl9fSk7bi5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIiwicXVlcnkiXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIpe3JldHVybiBmdW5jdGlvbihJLGkscyl7cmV0dXJuIHRoaXMucmVxdWVzdChUKHN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOnI/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOkksZGF0YTppfSkpfX1kQS5wcm90b3R5cGVbZV09dCgpLGUhPT0icXVlcnkiJiYoZEEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKSl9KTt2YXIgYkE9ZEE7dmFyIFRlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihJKXt0PUl9KTtsZXQgcj10aGlzO3RoaXMucHJvbWlzZS50aGVuKG89PntpZighci5fbGlzdGVuZXJzKXJldHVybjtsZXQgST1yLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7SS0tID4wOylyLl9saXN0ZW5lcnNbSV0obyk7ci5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1vPT57bGV0IEksaT1uZXcgUHJvbWlzZShzPT57ci5zdWJzY3JpYmUocyksST1zfSkudGhlbihvKTtyZXR1cm4gaS5jYW5jZWw9ZnVuY3Rpb24oKXtyLnVuc3Vic2NyaWJlKEkpfSxpfSxlKGZ1bmN0aW9uKEksaSxzKXtyLnJlYXNvbnx8KHIucmVhc29uPW5ldyB4KEksaSxzKSx0KHIucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1yPT57ZS5hYm9ydChyKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24obyl7ZT1vfSksY2FuY2VsOmV9fX0sS3Q9VGU7ZnVuY3Rpb24gUGUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIHhlKEEpe3JldHVybiBuLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBLZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMSxXZWJTZXJ2ZXJJc0Rvd246NTIxLENvbm5lY3Rpb25UaW1lZE91dDo1MjIsT3JpZ2luSXNVbnJlYWNoYWJsZTo1MjMsVGltZW91dE9jY3VycmVkOjUyNCxTc2xIYW5kc2hha2VGYWlsZWQ6NTI1LEludmFsaWRTc2xDZXJ0aWZpY2F0ZTo1MjZ9O09iamVjdC5lbnRyaWVzKEtlKS5mb3JFYWNoKChbQSxlXSk9PntLZVtlXT1BfSk7dmFyIF90PUtlO2Z1bmN0aW9uIGp0KEEpe2xldCBlPW5ldyBiQShBKSx0PXlBKGJBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBuLmV4dGVuZCh0LGJBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksbi5leHRlbmQodCxlLG51bGwse2FsbE93bktleXM6ITB9KSx0LmNyZWF0ZT1mdW5jdGlvbihvKXtyZXR1cm4ganQoVChBLG8pKX0sdH12YXIgTj1qdChmQSk7Ti5BeGlvcz1iQTtOLkNhbmNlbGVkRXJyb3I9eDtOLkNhbmNlbFRva2VuPUt0O04uaXNDYW5jZWw9VUE7Ti5WRVJTSU9OPXVBO04udG9Gb3JtRGF0YT0kO04uQXhpb3NFcnJvcj1mO04uQ2FuY2VsPU4uQ2FuY2VsZWRFcnJvcjtOLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O04uc3ByZWFkPVBlO04uaXNBeGlvc0Vycm9yPXhlO04ubWVyZ2VDb25maWc9VDtOLkF4aW9zSGVhZGVycz1GO04uZm9ybVRvSlNPTj1BPT4kQShuLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO04uZ2V0QWRhcHRlcj1yZS5nZXRBZGFwdGVyO04uSHR0cFN0YXR1c0NvZGU9X3Q7Ti5kZWZhdWx0PU47dmFyIGllPU47dmFye0F4aW9zOk1zLEF4aW9zRXJyb3I6VHMsQ2FuY2VsZWRFcnJvcjpQcyxpc0NhbmNlbDp4cyxDYW5jZWxUb2tlbjpLcyxWRVJTSU9OOl9zLGFsbDpqcyxDYW5jZWw6V3MsaXNBeGlvc0Vycm9yOlpzLHNwcmVhZDpWcyx0b0Zvcm1EYXRhOnpzLEF4aW9zSGVhZGVyczpYcyxIdHRwU3RhdHVzQ29kZTp2cyxmb3JtVG9KU09OOiRzLGdldEFkYXB0ZXI6QWcsbWVyZ2VDb25maWc6ZWcsY3JlYXRlOnRnfT1pZTt2YXIgSkEsVyxqZSxfZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe2plPW5ldyBVaW50OEFycmF5KFcuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxuZT1jbGFzc3tpbml0KCl7cmV0dXJuIEpBfHwodHlwZW9mIGZldGNoPCJ1Ij9KQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK1d0KS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLF9lKSkudGhlbih0aGlzLl9pbml0KTpKQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShXdCwiYmFzZTY0IiksX2UpLnRoZW4odGhpcy5faW5pdCksSkEpfV9pbml0KGUpe1c9ZS5pbnN0YW5jZSxfZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFXKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCByPWUuYnl0ZUxlbmd0aCxvPVcuZXhwb3J0cy5tYWxsb2Mocik7amUuc2V0KGUsbyksdD10fHxOdW1iZXIoVy5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxyKSk7bGV0IEk9Vy5leHBvcnRzLm1hbGxvYyh0KSxpPVcuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoSSx0LG8scikscz1qZS5zbGljZShJLEkraSk7cmV0dXJuIFcuZXhwb3J0cy5mcmVlKG8pLFcuZXhwb3J0cy5mcmVlKEkpLHN9fSxXdD0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBadD1uZXcgbmUsVnQ9ITE7YXN5bmMgZnVuY3Rpb24gZ0koQSxlLHQpe2xldCByPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP3I9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3I9QTpyPWAke2V9LyR7QX1gLHIuZW5kc1dpdGgoIi5qcyIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTMpKSxyLmVuZHNXaXRoKCIud2FzbSIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTUpKSxyLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC05KSk7bGV0IG89YCR7cn0ud2FzbWAsST1hd2FpdCBpZS5nZXQoYCR7b30uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOnR9KTtWdHx8KGF3YWl0IFp0LmluaXQoKSxWdD0hMCk7bGV0IHM9WnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KEkuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3J9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciB6dD1nSTt2YXIgc2U9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBhSShBLGUsdCl7bGV0IHI9QSxvPUEsST1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihyPW5ldyBVUkwoQS5ocmVmKSxvPXIuaHJlZiksc2UuaGFzKG8pP0k9YXdhaXQgc2UuZ2V0KG8pOihzZS5zZXQobyx6dChyLGUsdCkpLEk9YXdhaXQgc2UuZ2V0KG8pKSxJfXZhciBYdD1hSTt2YXIgQ0k9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LHc9Q0k7dmFyIEJJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sTz1CSTt2YXIgUUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LGlBPVFJO2Z1bmN0aW9uIEVJKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBPLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgTy5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBPLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBPLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgTy5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgTy5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIE8uVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgTy5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBpQS5GbG9hdDMyOnt0PW5ldyBGbG9hdDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBpQS5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIEs9RUk7dmFyIEFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLHZ0PW5ldyBUZXh0RW5jb2RlciwkdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gY0koQSxlKXtsZXQgdD17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxyPUEuZnNfb3BlbihlLHQuZmxhZ3MpLEk9QS5mc19zdGF0KGUpLnNpemUsaT1udWxsO0FyP2k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKEkpOmk9bmV3IEFycmF5QnVmZmVyKEkpO2xldCBzPW5ldyBVaW50OEFycmF5KGkpO3JldHVybiBBLmZzX3JlYWQocixzLDAsSSwwKSxBLmZzX2Nsb3NlKHIpLHN9ZnVuY3Rpb24gZXIoQSxlLHQpe2xldCByPW51bGw7QXI/cj1uZXcgU2hhcmVkQXJyYXlCdWZmZXIodCk6cj1uZXcgQXJyYXlCdWZmZXIodCk7bGV0IG89bmV3IFVpbnQ4QXJyYXkociksST1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSx0KTtyZXR1cm4gby5zZXQoSSksb31mdW5jdGlvbiBVKEEsZSx0LHIpe2xldCBvPTA7cmV0dXJuIGUhPT1udWxsJiYobz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LHIsZS5idWZmZXIuYnl0ZUxlbmd0aF0pPj4+MCxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLG8pKSxvfWZ1bmN0aW9uIEFBKEEsZSx0KXtsZXQgcj1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KHIpKzEsST1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pPj4+MDtBLnN0cmluZ1RvVVRGOChyLEksbyl9ZnVuY3Rpb24gTChBLGUsdCxyKXtsZXQgbz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKT4+PjAsST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxpPWVyKEEsbyxJKTtyZXR1cm4gSyhyLGkuYnVmZmVyKX1mdW5jdGlvbiBIQShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pPj4+MCxyPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKHIpfWZ1bmN0aW9uIGZJKEEsZSx0LHIpe3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihCLGcpe3N3aXRjaChCLnR5cGUpe2Nhc2Ugdy5UZXh0U3RyZWFtOntsZXQgYT12dC5lbmNvZGUoQi5kYXRhLmRhdGEpLGM9VShBLGEsZywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07QUEoQSxDLGcpO2JyZWFrfWNhc2Ugdy5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9dnQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGM9VShBLGEsZywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07QUEoQSxDLGcpO2JyZWFrfWNhc2Ugdy5CaW5hcnlTdHJlYW06e2xldCBhPUIuZGF0YS5kYXRhLGM9VShBLGEsZywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07QUEoQSxDLGcpO2JyZWFrfWNhc2Ugdy5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2Ugdy5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSB3LkltYWdlOntsZXQgYT1CLmRhdGEsYz1VKEEsYS5kYXRhLGcsMCksQz1VKEEsYS5kaXJlY3Rpb24sZywxKSx1PXR5cGVvZiBhLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGEubWV0YWRhdGEuZW50cmllcygpKTpbXSxoPXtpbWFnZVR5cGU6YS5pbWFnZVR5cGUsbmFtZTphLm5hbWUsb3JpZ2luOmEub3JpZ2luLHNwYWNpbmc6YS5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxzaXplOmEuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG1ldGFkYXRhOnV9O0FBKEEsaCxnKTticmVha31jYXNlIHcuTWVzaDp7bGV0IGE9Qi5kYXRhLGM9VShBLGEucG9pbnRzLGcsMCksQz1VKEEsYS5jZWxscyxnLDEpLHU9VShBLGEucG9pbnREYXRhLGcsMiksaD1VKEEsYS5jZWxsRGF0YSxnLDMpLGw9e21lc2hUeXBlOmEubWVzaFR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZDZWxsczphLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsY2VsbEJ1ZmZlclNpemU6YS5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7aH1gfTtBQShBLGwsZyk7YnJlYWt9Y2FzZSB3LlBvaW50U2V0OntsZXQgYT1CLmRhdGEsYz1VKEEsYS5wb2ludHMsZywwKSxDPVUoQSxhLnBvaW50RGF0YSxnLDEpLHU9e3BvaW50U2V0VHlwZTphLnBvaW50U2V0VHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWB9O0FBKEEsdSxnKTticmVha31jYXNlIHcuVHJhbnNmb3JtTGlzdDp7bGV0IGE9Qi5kYXRhLGM9W10sQz0wO2EuZm9yRWFjaCh1PT57bGV0IGg9IiIsbD0iIjt1LnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoaD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1UoQSx1LmZpeGVkUGFyYW1ldGVycyxnLEMpfWAsQys9MSxsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7VShBLHUucGFyYW1ldGVycyxnLEMpfWAsQys9MSk7bGV0IEU9e3RyYW5zZm9ybVR5cGU6dS50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOnUubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOnUubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6dS5uYW1lLGlucHV0U3BhY2VOYW1lOnUuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOnUub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6bCxmaXhlZFBhcmFtZXRlcnM6aH07Yy5wdXNoKEUpfSksQUEoQSxjLGcpO2JyZWFrfWNhc2Ugdy5Qb2x5RGF0YTp7bGV0IGE9Qi5kYXRhLGM9VShBLGEucG9pbnRzLGcsMCksQz1VKEEsYS52ZXJ0aWNlcyxnLDEpLHU9VShBLGEubGluZXMsZywyKSxoPVUoQSxhLnBvbHlnb25zLGcsMyksbD1VKEEsYS50cmlhbmdsZVN0cmlwcyxnLDQpLEU9VShBLGEucG9pbnREYXRhLGcsNSksZD1VKEEsYS5wb2ludERhdGEsZyw2KSxEPXtwb2x5RGF0YVR5cGU6YS5wb2x5RGF0YVR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsdmVydGljZXNCdWZmZXJTaXplOmEudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGxpbmVzQnVmZmVyU2l6ZTphLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxwb2x5Z29uc0J1ZmZlclNpemU6YS5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtofWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOmEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6YS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0V9YCxudW1iZXJPZkNlbGxQaXhlbHM6YS5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtkfWB9O0FBKEEsRCxnKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgbz1BLnN0YWNrU2F2ZSgpLEk9MDt0cnl7ST1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKG8pfWxldCBpPUEuZ2V0TW9kdWxlU3Rkb3V0KCkscz1BLmdldE1vZHVsZVN0ZGVycigpLFE9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJkk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24oQixnKXtsZXQgYT1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2Ugdy5UZXh0U3RyZWFtOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKT4+PjAsdT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKSxoPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLHUpO2E9e2RhdGE6JHQuZGVjb2RlKGgpfTticmVha31jYXNlIHcuSnNvbkNvbXBhdGlibGU6e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pPj4+MCx1PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pLGg9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsdSk7YT1KU09OLnBhcnNlKCR0LmRlY29kZShoKSk7YnJlYWt9Y2FzZSB3LkJpbmFyeVN0cmVhbTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSk+Pj4wLHU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSk7YT17ZGF0YTplcihBLEMsdSl9O2JyZWFrfWNhc2Ugdy5UZXh0RmlsZTp7YT17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIHcuQmluYXJ5RmlsZTp7YT17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmNJKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIHcuSW1hZ2U6e2xldCBDPUhBKEEsZyk7Qy5kYXRhPUwoQSxnLDAsQy5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQy5kaXJlY3Rpb249TChBLGcsMSxpQS5GbG9hdDY0KSxDLm1ldGFkYXRhPW5ldyBNYXAoQy5tZXRhZGF0YSksYT1DO2JyZWFrfWNhc2Ugdy5NZXNoOntsZXQgQz1IQShBLGcpO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1MKEEsZywwLEMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpDLnBvaW50cz1LKEMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxzPjA/Qy5jZWxscz1MKEEsZywxLEMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkMuY2VsbHM9SyhDLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TChBLGcsMixDLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpDLnBvaW50RGF0YT1LKEMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbFBpeGVscz4wP0MuY2VsbERhdGE9TChBLGcsMyxDLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9SyhDLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUM7YnJlYWt9Y2FzZSB3LlBvaW50U2V0OntsZXQgQz1IQShBLGcpO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1MKEEsZywwLEMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qy5wb2ludHM9SyhDLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1MKEEsZywxLEMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpDLnBvaW50RGF0YT1LKEMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWNhc2Ugdy5UcmFuc2Zvcm1MaXN0OntsZXQgQz1IQShBLGcpLHU9MDtDLmZvckVhY2goKGgsbCk9PntoLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoaC5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQ1tsXS5maXhlZFBhcmFtZXRlcnM9TChBLGcsdSxpQS5GbG9hdDY0KSksdSs9MSxoLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQ1tsXS5wYXJhbWV0ZXJzPUwoQSxnLHUsaC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSx1Kz0xKX0pLGE9QzticmVha31jYXNlIHcuUG9seURhdGE6e2xldCBDPUhBKEEsZyk7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUwoQSxnLDAsaUEuRmxvYXQzMik6Qy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxDLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0MudmVydGljZXM9TChBLGcsMSxPLlVJbnQzMik6Qy52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQy5saW5lc0J1ZmZlclNpemU+MD9DLmxpbmVzPUwoQSxnLDIsTy5VSW50MzIpOkMubGluZXM9bmV3IFVpbnQzMkFycmF5LEMucG9seWdvbnNCdWZmZXJTaXplPjA/Qy5wb2x5Z29ucz1MKEEsZywzLE8uVUludDMyKTpDLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0MudHJpYW5nbGVTdHJpcHM9TChBLGcsNCxPLlVJbnQzMik6Qy50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TChBLGcsNSxDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9SyhDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1MKEEsZyw2LEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9SyhDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGM9e3R5cGU6Qi50eXBlLGRhdGE6YX07US5wdXNoKGMpfSkse3JldHVyblZhbHVlOkksc3Rkb3V0Omksc3RkZXJyOnMsb3V0cHV0czpRfX12YXIgdHI9Zkk7dmFyIGxJPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiB1SShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBvPWRJKEFbcl0sZSk7byE9PW51bGwmJnQucHVzaChvKX1yZXR1cm4gdH1mdW5jdGlvbiBkSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLGxJJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgcnI9dUk7ZnVuY3Rpb24gaEkoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIG9yPWhJO2Z1bmN0aW9uIERJKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBJcj1ESTtmdW5jdGlvbiBwSShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgaXI9cEk7YXN5bmMgZnVuY3Rpb24geUkoQSxlLHQscil7bGV0IG89dHIoQSxlLHQsciksST1bXTtyZXR1cm4gby5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24oaSl7aWYoaS50eXBlPT09dy5CaW5hcnlTdHJlYW18fGkudHlwZT09PXcuQmluYXJ5RmlsZSl7bGV0IHM9aS5kYXRhO0kucHVzaChzKX1lbHNlIGlmKGkudHlwZT09PXcuSW1hZ2Upe2xldCBzPWkuZGF0YTtJLnB1c2goLi4ub3IocykpfWVsc2UgaWYoaS50eXBlPT09dy5NZXNoKXtsZXQgcz1pLmRhdGE7SS5wdXNoKC4uLklyKHMpKX1lbHNlIGlmKGkudHlwZT09PXcuUG9seURhdGEpe2xldCBzPWkuZGF0YTtJLnB1c2goLi4uaXIocykpfX0pLGNlKG8scnIoSSwhMCkpfXZhciBucj15STt2YXIgbUk9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsZSx0LHIsbyxJKXtsZXQgaT1hd2FpdCBYdChBLGUsSSk7cmV0dXJuIGF3YWl0IG5yKGksdCxyLG8pfX07X0EobUkpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7UnIoRnIpO2V4cG9ydHtJSSBhcyBkb3duc2FtcGxlLEFJIGFzIGRvd25zYW1wbGVCaW5TaHJpbmssdEkgYXMgZG93bnNhbXBsZUxhYmVsSW1hZ2Usb0kgYXMgZG93bnNhbXBsZVNpZ21hLGdJIGFzIGdhdXNzaWFuS2VybmVsUmFkaXVzLFkgYXMgZ2V0RGVmYXVsdFdlYldvcmtlcixrIGFzIGdldFBpcGVsaW5lV29ya2VyVXJsLE0gYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxFSSBhcyByZXNhbXBsZSxzSSBhcyByZXNhbXBsZUJvdW5kaW5nQm94LEJJIGFzIHJlc2FtcGxlVG9SZWZlcmVuY2UsckMgYXMgc2V0RGVmYXVsdFdlYldvcmtlcixSciBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxWcyBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLGRlIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py b/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py index 8c0d5d5bb..159d48b87 100644 --- a/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py +++ b/packages/downsample/python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/_version.py @@ -1 +1 @@ -__version__ = "2.0.0" +__version__ = "2.0.1" diff --git a/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py b/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py index 8c0d5d5bb..159d48b87 100644 --- a/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py +++ b/packages/downsample/python/itkwasm-downsample/itkwasm_downsample/_version.py @@ -1 +1 @@ -__version__ = "2.0.0" +__version__ = "2.0.1" diff --git a/packages/downsample/typescript/package.json b/packages/downsample/typescript/package.json index 17410d6b2..e72ea630f 100644 --- a/packages/downsample/typescript/package.json +++ b/packages/downsample/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/downsample", - "version": "2.0.0", + "version": "2.0.1", "description": "Pipelines for downsampling images.", "type": "module", "module": "./dist/index.js",