Skip to content

Instantly share code, notes, and snippets.

@terasakisatoshi
Last active January 31, 2024 01:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save terasakisatoshi/a14b2847cfb7ec9a8420751db482ad71 to your computer and use it in GitHub Desktop.
Save terasakisatoshi/a14b2847cfb7ec9a8420751db482ad71 to your computer and use it in GitHub Desktop.
変分モンテカルロ法で遊ぶ(色々直した版)
[package]
name = "vmc"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rand = "0.8"
rand_distr = "0.4.3"
<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width"><meta charset="utf-8">
<meta name="pluto-insertion-spot-meta">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#2a2928"><meta name="color-scheme" content="light dark"><link rel="icon" type="image/png" sizes="16x16" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-16x16.347d2855.png" integrity="sha384-3qsGeVLdddzV9oIkj3PhXXQX2CZCjOD/CiyrPQOX6InOWw3HAHClrsQhPfX9uRAj" crossorigin="anonymous"><link rel="icon" type="image/png" sizes="32x32" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-32x32.8789add4.png" integrity="sha384-cOe5vSoBIgKNgkUL27p9RpsGVY0uBg9PejLccDy+fR8ZD1Iv5dF1MGHjIZAIZwm6" crossorigin="anonymous"><link rel="icon" type="image/png" sizes="96x96" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-96x96.48689391.png" integrity="sha384-TN49cYb8GyNmrZT14bsYXXo4l1x1NJeJ/EHuVAauAKsNPopPHLojijs9jFT4Vs8c" crossorigin="anonymous"><link rel="pluto-logo-big" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/logo.004c1d7c.svg" integrity="sha384-GkQkODcGxsrSRJCkeakBXihum0GUM44cwBgKyutDimectXCbCgj6Vu3jlrueqEcN" crossorigin="anonymous"><link rel="pluto-logo-small" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon_unsaturated.d1387b25.svg" integrity="sha384-omwjH+Qy3hpAVf5FYd/pkaDBuVAfsEDRN7eBxEA8Ek00OAWP+aiV+GpEYk3I7lyo" crossorigin="anonymous"><script type="module" src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.23f324ce.js" integrity="sha384-4l9NNFe3thsPdrGcAdnBEfNmojvUidAN6OBuPDii3JDkVIF5TMXkICWqHEsh8sXq" crossorigin="anonymous"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/juliamono.c6034ab4.css" integrity="sha384-n0za6lUXlyf4XC+nGkZWj3TLDnRbNpAcoi4PZGSlQMPoyqGa9kGY+ZXkUgZGIhQt" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.c98fb036.css" integrity="sha384-hq2r9iSY9J+3FSHCB6PZ5jTCnnhSL7DhUmwTXDjMmklxEsQ+2YHWCS7Cm0i5Y/rT" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/vollkorn.089565a8.css" integrity="sha384-jnV/84VtSgBLF70H+s2rxJcOUZIMDR+X/ElFZA83i9ZtZSWiIMFAgPyrWkOJV08q" crossorigin="anonymous"><script defer="">console.log("Pluto.jl, by Fons van der Plas (https://github.com/fonsp), Mikołaj Bochenski (https://github.com/malyvsen), Michiel Dral (https://github.com/dralletje) and friends 🌈");</script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.b8733d72.js" defer="" integrity="sha384-84yPd6AGZ/1IUiaBlssipmMKMFz9WGFQ+u8vYZ9cWicH6bZm7ZOej+kLDXnIIAQJ" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.9f9dc874.js" defer="" integrity="sha384-tkFo1EK72I9JvoTmHFa199dfRzW8mkXPUkHb/N7UhYI+bxKzX3Kh8LNCZz1ltsFF" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.90ede145.js" defer="" integrity="sha384-CuNU9gQg6fa/yynNqNWjHWzPm4nj+d7O6+HXsNGSqClhs/bYQIbBC3Lw/kh8Ukui" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.dbeed08a.js" defer="" integrity="sha384-1BEdQwXfZi4ZpsNV8w1X8pQcVK1/DS/+/M8OTo3gol7mdEspSN7nT6llX57NQCSt" crossorigin="anonymous"></script><script id="iframe-resizer-content-window-script" src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.6386bd9d.js" crossorigin="anonymous" defer="" integrity="sha384-tgN2a0VDi/lCYwZuDqT7L+A/Y/9kpxf3HV7zv2BJ5Fu7zW0EClq0nM4crfK3TRPs"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.2dae1b31.css" type="text/css" integrity="sha384-Tcw0GaMme/KbluiF6zJjOMqdXU+GeDMSRoX0MhIH0cfyRAO7XQQWWwfsJY7Wx2yK" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.82b535be.css" type="text/css" media="all" data-pluto-file="hide-ui" integrity="sha384-oYS1v2EOz2AtXoLXUVgvn3mEtQdJg1mfwZwLfJi++UQyF/qo43KuvjZ603iShU3X" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.ec3a6a5b.css" type="text/css" integrity="sha384-SuGFZkuBuG+lmfz6RbnvjtcyIh8W1xDYi1sebwn7bl9VMQnhmr6EniSmIdcHJ55l" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.1f4cf2ca.css" type="text/css" integrity="sha384-lBSBsn8FT1UzGOsNVudfV8RSHQEuNWqrCb6xQnF10uvF9AiCzYsCRXvKlhtQvV3c" crossorigin="anonymous"><link rel="preload" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/juliamono.c6034ab4.css" as="style" integrity="sha384-n0za6lUXlyf4XC+nGkZWj3TLDnRbNpAcoi4PZGSlQMPoyqGa9kGY+ZXkUgZGIhQt" crossorigin="anonymous"><link rel="preload" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/vollkorn.089565a8.css" as="style" integrity="sha384-jnV/84VtSgBLF70H+s2rxJcOUZIMDR+X/ElFZA83i9ZtZSWiIMFAgPyrWkOJV08q" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.e82e08bd.css" type="text/css" integrity="sha384-7YN+h8b6N4N65qk8TG/J2KPF95D8z3sGNd06rokz4CX9oWu0KnRAF5cVWu3BkkaN" crossorigin="anonymous"><script data-pluto-file="launch-parameters">
window.pluto_notebook_id = undefined;
window.pluto_isolated_cell_ids = undefined;
window.pluto_notebookfile = "data:text/julia;charset=utf-8;base64,IyMjIEEgUGx1dG8uamwgbm90ZWJvb2sgIyMjCiMgdjAuMTkuMzYKCnVzaW5nIE1hcmtkb3duCnVzaW5nIEludGVyYWN0aXZlVXRpbHMKCiMg4pWU4pWQ4pWhIDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MgpiZWdpbgoJdXNpbmcgU3RhdGlzdGljcwoJdXNpbmcgUHJpbnRmCmVuZAoKIyDilZTilZDilaEgOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlhCnVzaW5nIFRlc3QKCiMg4pWU4pWQ4pWhIDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyOAptZCIiIgoKW+WkieWIhuODouODs+ODhuOCq+ODq+ODrShWTUMp44KS44KE44Gj44Gm44G/44KLfuawtOe0oOWOn+WtkH5dKGh0dHBzOi8vbWl5YW50YXJ1bWkuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAyMi8wNC8wOC8wODAwMDApIOOBriBKdWxpYSDnp7vmpI3jgpLooYzjgaPjgZ8uIOODoeODiOODreODneODquOCueODhuOCueODiOOBrumDqOWIhuOCkumWouaVsOWMluOBl+abuOOBj+OBueOBjeOCs+ODvOODieOBrumHj+OCkuWkp+W5heOBq+a4m+OCieOBmeOBk+OBqOOBjOOBp+OBjeOBn++8jiBKdWxpYeOBr1VuaWNvZGXmloflrZfjgYzkvb/jgYjjgovjga7jgafjgqrjg6rjgrjjg4rjg6vjga7lrp/oo4XjgpLjgoLjgajjgavlpInmlbDlkI3jgpLpganlrpzlpInmm7TjgZfjgabjgYTjgovvvI4KCm1ldHJvcG9saXNfdGVzdCEg44Gu5byV5pWw44Gv44GE44Gj44Gx44GE44GC44KL44GM77yM44KC44Gj44GoSnVsaWHjgonjgZfjgY/mm7jjgY/jga7jgafjgYLjgozjgarjgrPjg6zjgonjgpLjgb7jgajjgoHjgovmp4vpgKDkvZPjgpLlrprnvqnjgZnjgovjgbnjgY3jgafjgYLjgovvvI4KIiIiCgojIOKVlOKVkOKVoSA2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2IKIiIiCglDIHBvcnQgdG8gSnVsaWEgZm9yIGBzaG9raWthYAoiIiIKZnVuY3Rpb24gc2V0Mnplcm8hKGRhdGExOjpULCBkYXRhMjo6VCwgZGF0YTM6OlQpIHdoZXJlIHtUPDpBYnN0cmFjdFZlY3Rvcn0KICAgIGZvciBkIGluIChkYXRhMSwgZGF0YTIsIGRhdGEzKQogICAgICAgIGZpbGwhKGQsIHplcm8oZWx0eXBlKGQpKSkKICAgIGVuZAplbmQKCiMg4pWU4pWQ4pWhIDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlOApAdGVzdHNldCAic2V0Mnplcm8hIiBiZWdpbgoJZGF0YTEgPSByYW5kKDEwKQogICAgZGF0YTIgPSByYW5kKDEwKQogICAgZGF0YTMgPSByYW5kKDEwKQogICAgc2V0Mnplcm8hKGRhdGExLCBkYXRhMiwgZGF0YTMpCiAgICBAdGVzdCBkYXRhMSA9PSBkYXRhMiA9PSBkYXRhMyA9PSB6ZXJvcygxMCkKZW5kCgojIOKVlOKVkOKVoSA1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTYKZnVuY3Rpb24gaW5pdGNmZyEoZGF0YTE6OlQsIGRhdGEyOjpULCBkYXRhMzo6VCkgd2hlcmUge1Q8OkFic3RyYWN0VmVjdG9yfQogICAgZm9yIGQgaW4gKGRhdGExLCBkYXRhMiwgZGF0YTMpCiAgICAgICAgZCAuPSAocmFuZChsZW5ndGgoZCkpIC4tIDAuNSkgLiogMiAuKiAyCiAgICBlbmQKZW5kCgojIOKVlOKVkOKVoSBiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzcKQHRlc3RzZXQgImluaXRjZmchIiBiZWdpbgogICAgZGF0YTEgPSByYW5kKDEwKQogICAgZGF0YTIgPSByYW5kKDEwKQogICAgZGF0YTMgPSByYW5kKDEwKQogICAgaW5pdGNmZyEoZGF0YTEsIGRhdGEyLCBkYXRhMykKCUBzaG93IGRhdGExCiAgICBAdGVzdCBhbGwoLTIgLjw9IGRhdGExIC48IDIpCiAgICBAdGVzdCBhbGwoLTIgLjw9IGRhdGEyIC48IDIpCiAgICBAdGVzdCBhbGwoLTIgLjw9IGRhdGEzIC48IDIpCmVuZAoKIyDilZTilZDilaEgMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZiCnJhZGl1cyh4LHkseikgPSDiiJooeF4yICsgeV4yICsgel4yKQoKIyDilZTilZDilaEgNjQyOTExYzYtNjk4Yy00MGJiLWJlYzYtYzg4ODMzYzZjYWE1CmZ1bmN0aW9uIG1ldHJvcG9saXNfdGVzdCEoCgnOsTo6RmxvYXQ2NCwgCgnOo0VfbG9jOjpULCDOo+KIgmxvZ8+IX+KIgs6xOjpULM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrE6OlQsCgl44oOXOjpULCB54oOXOjpULCB64oOXOjpULCBy4oOXOjpUCikgd2hlcmUgVCA8OiBBYnN0cmFjdFZlY3RvcgoJbnNhbXBsZXMgPSAzMDAwMAoJc2lnbWEgPSAwLjQKCW5zYW1wbGVzX2J1cm5faW4gPSA0MDAwCgkKCWZvciBpIGluIDE6bnNhbXBsZXMJCgkJZm9yIGogaW4gZWFjaGluZGV4KHjig5cseeKDlyx64oOXLHLig5cpCgkJCXggPSB44oOXW2pdCgkJCXkgPSB54oOXW2pdCgkJCXogPSB64oOXW2pdCgkJCXIgPSByYWRpdXMoeCx5LHopCgkJCSPPiMKyID0gZXhwKC0yzrEqcikKCQkJIyBwcm9wb3NhbCBzdGVwCgkJCXjigLIgPSBzaWdtYSAqIHJhbmRuKCkgKyAgeAoJCQl54oCyID0gc2lnbWEgKiByYW5kbigpICsgIHkKCQkJeuKAsiA9IHNpZ21hICogcmFuZG4oKSArICB6CgkJCXLigLIgPSByYWRpdXMoeOKAsix54oCyLHrigLIpCgkJCSPPlcKyID0gZXhwKC0yzrEqcuKAsikKCQkJI2IgPSByYW5kKCkgPCDPlcKyL8+IwrIgCgkJCWIgPSByYW5kKCkgPCBleHAoLTLOsSAqIHLigLIgKyAyzrEgKiByKSAKCQkJeOKDl1tqXSA9IGlmZWxzZShiLCB44oCyLCB4KQoJCQl54oOXW2pdID0gaWZlbHNlKGIsIHnigLIsIHkpCgkJCXrig5dbal0gPSBpZmVsc2UoYiwgeuKAsiwgeikKCQkJcuKDl1tqXSA9IGlmZWxzZShiLCBy4oCyLCByKQoJCWVuZAoJCWlmIGkg4omlIG5zYW1wbGVzX2J1cm5faW4KCQkJZm9yIGogaW4gZWFjaGluZGV4KHjig5cseeKDlyx64oOXLHLig5cpCgkJCQl4ID0geOKDl1tqXQoJCQkJeSA9IHnig5dbal0KCQkJCXogPSB64oOXW2pdCgkJCQlyID0gcuKDl1tqXQoJCQkJcuKBu8K5ID0gaW52KHIpCgkJCQlFX2xvYyA9IC1y4oG7wrkgLTAuNc6xICogKM6xIC0gMiAqIHLigbvCuSkKCQkJCeKIgmxvZ8+IX+KIgs6xID0gLXIKCQkJCUVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xID0gRV9sb2MgKiDiiIJsb2fPiF/iiILOsQoJCQkJzqNFX2xvY1tqXSArPSBFX2xvYwoJCQkJzqPiiIJsb2fPiF/iiILOsVtqXSArPSDiiIJsb2fPiF/iiILOsQoJCQkJzqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsVtqXSArPSBFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsQoJCQllbmQKCQllbmQKCWVuZAoJIyDlkIQgaiDjgavlr77jgZfjgabjga7lubPlnYfph4/jgpLoqIjnrpfjgZnjgosuIOODoeODouODquOCkuS9v+OBhOWbnuOBmeOBn+OCgeOBqyBpbi1wbGFjZSDoqIjnrpfjgpLjgZfjgabjgYTjgovvvI4KCc6jRV9sb2MgLi89IChuc2FtcGxlcyAtIG5zYW1wbGVzX2J1cm5faW4gKyAxKQoJzqPiiIJsb2fPiF/iiILOsSAuLz0gKG5zYW1wbGVzIC0gbnNhbXBsZXNfYnVybl9pbiArIDEpCgnOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xIC4vPSAobnNhbXBsZXMgLSBuc2FtcGxlc19idXJuX2luICsgMSkKCSMgaiDjga7ou7jjgavlr77jgZfjgablubPlnYflgKTjgpLoqIjnrpfjgZnjgosKCUVfbG9jID0gbWVhbijOo0VfbG9jKQoJ4oiCbG9nz4hf4oiCzrEgPSBtZWFuKM6j4oiCbG9nz4hf4oiCzrEpCglFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSA9IG1lYW4ozqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSkKCglkRSA9IDIoRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgLSBFX2xvYyAqIOKIgmxvZ8+IX+KIgs6xKQoJcmV0dXJuIGRFLCBFX2xvYwplbmQKCiMg4pWU4pWQ4pWhIGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NgpmdW5jdGlvbiBtYWluKCkKICAgIG53YWxrZXJzID0gNDAwCiAgICBzYW1wbGUgPSAzMDAwMAoKICAgIM6xX2luaXQgPSAwLjgKICAgIHggPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQogICAgeSA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCiAgICB6ID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKCXIgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQoJzqNFX2xvYyA9IHplcm9zKG53YWxrZXJzKQoJzqPiiIJsb2fPiF/iiILOsSA9IHplcm9zKG53YWxrZXJzKQoJzqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSA9IHplcm9zKG53YWxrZXJzKQogICAgaCA9IDFlLTMKCgnOsSA9IM6xX2luaXQKCXdoaWxlIHRydWUKCQlpbml0Y2ZnISh4LHkseikKCQlzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCgkJZEUsIF8gPSBtZXRyb3BvbGlzX3Rlc3QhKAoJCQnOsSwKCQkJzqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJCXgseSx6LHIKCQkpCgoJCc6x4oKKID0gzrEgKyBoCgkJaW5pdGNmZyEoeCx5LHopCgkJc2V0Mnplcm8hKM6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoJCWRF4oKKLCBfID0gbWV0cm9wb2xpc190ZXN0ISgKCQkJzrHigoosCgkJCc6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJCQl4LHkseixyCgkJKQoKCQnOseKCiyA9IM6xIC0gaAoJCWluaXRjZmchKHgseSx6KQoJCXNldDJ6ZXJvISjOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSkKCQlkReKCiywgXyA9IG1ldHJvcG9saXNfdGVzdCEoCgkJCc6x4oKLLAoJCQnOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwKCQkJeCx5LHoscgoJCSkKCiAgICAgICAgZGRFID0gKGRF4oKKIC0gZEXigospIC8gKDJoKQoJCSMgbmV3dG9uIOazleOBpyDOsSDjgpLmm7TmlrDjgZnjgosKICAgICAgICDOsV9uZXh0ID0gzrEgLSBkRSAvIGRkRQogICAgICAgIEBpbmZvICLOsSIgzrFfbmV4dCwgzrEKICAgICAgICBpZiBhYnMozrFfbmV4dCAtIM6xKSA8IDFlLTYKCQkJzrEgPSDOsV9uZXh0CiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgZW5kCgkJzrEgPSDOsV9uZXh0CiAgICBlbmQKCiAgICBhbHBoYV92YSA9IM6xCgkjIOeQhuaDs+OBryAxLjAKICAgIEBwcmludGYoIuOCqOODjeODq+OCruODvOOBjOacgOWwj+OBq+OBquOCi+WkieWIhuODkeODqeODoeODvOOCv+OBryUuMTBmXG4iLCBhbHBoYV92YSkgCglpbml0Y2ZnISh4LHkseikKCXNldDJ6ZXJvISjOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSkKCV8sIEUgPSBtZXRyb3BvbGlzX3Rlc3QhKAoJCWFscGhhX3ZhLAoJCc6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJCXgseSx6LHIKCSkKCSMg55CG5oOz44GvIC0wLjUKCUBwcmludGYoIuWfuuW6leeKtuaFi+OBruOCqOODjeODq+OCruODvOOBryUuMTBmXG4iLCBFKQplbmQKCiMg4pWU4pWQ4pWhIDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NgpAdGltZSBtYWluKCkKCiMg4pWU4pWQ4pWhIGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YgpAdGltZSBtYWluKCkKCiMg4pWU4pWQ4pWhIGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YQpAdGltZSBtYWluKCkKCiMg4pWU4pWQ4pWhIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMQpQTFVUT19QUk9KRUNUX1RPTUxfQ09OVEVOVFMgPSAiIiIKW2RlcHNdClByaW50ZiA9ICJkZTA4NThkYS02MzAzLTVlNjctODc0NC01MWVkZGVlZWI4ZDciClN0YXRpc3RpY3MgPSAiMTA3NDViMTYtNzljZS0xMWU4LTExZjktN2QxM2FkMzJhM2IyIgpUZXN0ID0gIjhkZmVkNjE0LWUyMmMtNWUwOC04NWUxLTY1YzUyMzRmMGI0MCIKIiIiCgojIOKVlOKVkOKVoSAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDIKUExVVE9fTUFOSUZFU1RfVE9NTF9DT05URU5UUyA9ICIiIgojIFRoaXMgZmlsZSBpcyBtYWNoaW5lLWdlbmVyYXRlZCAtIGVkaXRpbmcgaXQgZGlyZWN0bHkgaXMgbm90IGFkdmlzZWQKCmp1bGlhX3ZlcnNpb24gPSAiMS4xMC4wIgptYW5pZmVzdF9mb3JtYXQgPSAiMi4wIgpwcm9qZWN0X2hhc2ggPSAiMzVmYmFkZWE2NmM0OTdiODNjYmNkZGVjOTY1YzZlMTg3OTdhMDQ0YiIKCltbZGVwcy5BcnRpZmFjdHNdXQp1dWlkID0gIjU2ZjIyZDcyLWZkNmQtOThmMS0wMmYwLTA4ZGRjMDkwN2MzMyIKCltbZGVwcy5CYXNlNjRdXQp1dWlkID0gIjJhMGY0NGUzLTZjODMtNTViZC04N2U0LWIxOTc4ZDk4YmQ1ZiIKCltbZGVwcy5Db21waWxlclN1cHBvcnRMaWJyYXJpZXNfamxsXV0KZGVwcyA9IFsiQXJ0aWZhY3RzIiwgIkxpYmRsIl0KdXVpZCA9ICJlNjZlMDA3OC03MDE1LTU0NTAtOTJmNy0xNWZiZDk1N2YyYWUiCnZlcnNpb24gPSAiMS4wLjUrMSIKCltbZGVwcy5JbnRlcmFjdGl2ZVV0aWxzXV0KZGVwcyA9IFsiTWFya2Rvd24iXQp1dWlkID0gImI3N2UwYTRjLWQyOTEtNTdhMC05MGU4LThkYjI1YTI3YTI0MCIKCltbZGVwcy5MaWJkbF1dCnV1aWQgPSAiOGYzOTlkYTMtMzU1Ny01Njc1LWI1ZmYtZmI4MzJjOTdjYmRiIgoKW1tkZXBzLkxpbmVhckFsZ2VicmFdXQpkZXBzID0gWyJMaWJkbCIsICJPcGVuQkxBU19qbGwiLCAibGliYmxhc3RyYW1wb2xpbmVfamxsIl0KdXVpZCA9ICIzN2UyZTQ2ZC1mODlkLTUzOWQtYjRlZS04MzhmY2NjYzljOGUiCgpbW2RlcHMuTG9nZ2luZ11dCnV1aWQgPSAiNTZkZGIwMTYtODU3Yi01NGUxLWI4M2QtZGI0ZDU4ZGI1NTY4IgoKW1tkZXBzLk1hcmtkb3duXV0KZGVwcyA9IFsiQmFzZTY0Il0KdXVpZCA9ICJkNmY0Mzc2ZS1hZWY1LTUwNWEtOTZjMS05YzAyNzM5NDYwN2EiCgpbW2RlcHMuT3BlbkJMQVNfamxsXV0KZGVwcyA9IFsiQXJ0aWZhY3RzIiwgIkNvbXBpbGVyU3VwcG9ydExpYnJhcmllc19qbGwiLCAiTGliZGwiXQp1dWlkID0gIjQ1MzY2MjlhLWM1MjgtNWI4MC1iZDQ2LWY4MGQ1MWM1YjM2MyIKdmVyc2lvbiA9ICIwLjMuMjMrMiIKCltbZGVwcy5QcmludGZdXQpkZXBzID0gWyJVbmljb2RlIl0KdXVpZCA9ICJkZTA4NThkYS02MzAzLTVlNjctODc0NC01MWVkZGVlZWI4ZDciCgpbW2RlcHMuUmFuZG9tXV0KZGVwcyA9IFsiU0hBIl0KdXVpZCA9ICI5YTNmODI4NC1hMmM5LTVmMDItOWExMS04NDU5ODBhMWZkNWMiCgpbW2RlcHMuU0hBXV0KdXVpZCA9ICJlYThlOTE5Yy0yNDNjLTUxYWYtODgyNS1hYWE2M2NkNzIxY2UiCnZlcnNpb24gPSAiMC43LjAiCgpbW2RlcHMuU2VyaWFsaXphdGlvbl1dCnV1aWQgPSAiOWU4OGI0MmEtZjgyOS01YjBjLWJiZTktOWU5MjMxOTgxNjZiIgoKW1tkZXBzLlNwYXJzZUFycmF5c11dCmRlcHMgPSBbIkxpYmRsIiwgIkxpbmVhckFsZ2VicmEiLCAiUmFuZG9tIiwgIlNlcmlhbGl6YXRpb24iLCAiU3VpdGVTcGFyc2VfamxsIl0KdXVpZCA9ICIyZjAxMTg0ZS1lMjJiLTVkZjUtYWU2My1kOTNlYmFiNjllYWYiCnZlcnNpb24gPSAiMS4xMC4wIgoKW1tkZXBzLlN0YXRpc3RpY3NdXQpkZXBzID0gWyJMaW5lYXJBbGdlYnJhIiwgIlNwYXJzZUFycmF5cyJdCnV1aWQgPSAiMTA3NDViMTYtNzljZS0xMWU4LTExZjktN2QxM2FkMzJhM2IyIgp2ZXJzaW9uID0gIjEuMTAuMCIKCltbZGVwcy5TdWl0ZVNwYXJzZV9qbGxdXQpkZXBzID0gWyJBcnRpZmFjdHMiLCAiTGliZGwiLCAibGliYmxhc3RyYW1wb2xpbmVfamxsIl0KdXVpZCA9ICJiZWE4N2Q0YS03ZjViLTU3NzgtOWFmZS04Y2M0NTE4NDg0NmMiCnZlcnNpb24gPSAiNy4yLjErMSIKCltbZGVwcy5UZXN0XV0KZGVwcyA9IFsiSW50ZXJhY3RpdmVVdGlscyIsICJMb2dnaW5nIiwgIlJhbmRvbSIsICJTZXJpYWxpemF0aW9uIl0KdXVpZCA9ICI4ZGZlZDYxNC1lMjJjLTVlMDgtODVlMS02NWM1MjM0ZjBiNDAiCgpbW2RlcHMuVW5pY29kZV1dCnV1aWQgPSAiNGVjMGE4M2UtNDkzZS01MGUyLWI5YWMtOGY3MmFjZjVhOGY1IgoKW1tkZXBzLmxpYmJsYXN0cmFtcG9saW5lX2psbF1dCmRlcHMgPSBbIkFydGlmYWN0cyIsICJMaWJkbCJdCnV1aWQgPSAiOGU4NTBiOTAtODZkYi01MzRjLWEwZDMtMTQ3ODE3NmM3ZDkzIgp2ZXJzaW9uID0gIjUuOC4wKzEiCiIiIgoKIyDilZTilZDilaEgQ2VsbCBvcmRlcjoKIyDilZ/ilIA3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjgKIyDilaDilZA0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTIKIyDilaDilZA5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWEKIyDilaDilZA2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2IKIyDilaDilZA0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTgKIyDilaDilZA1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTYKIyDilaDilZBiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzcKIyDilaDilZAwNjhjYjk3ZS04NzA0LTQ1OGUtOGZlZi0yOGFmNmVmYTU5NmIKIyDilaDilZA2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTUKIyDilaDilZBhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODYKIyDilaDilZAwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTYKIyDilaDilZBkZGJiZWVkOC0yM2VjLTQyODItYjVkMS1jOWE2ZmU4ZDhhOGIKIyDilaDilZBmOTMzZTFkYi1iNjMxLTQ5M2UtOTQ3NC1lMGE0NmRmMzBlOGEKIyDilZ/ilIAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDEKIyDilZ/ilIAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDIK";
window.pluto_disable_ui = true;
window.pluto_slider_server_url = undefined;
window.pluto_binder_url = "https://mybinder.org/v2/gh/fonsp/pluto-on-binder/v0.19.36";
window.pluto_statefile = "data:;base64,3gARpWJvbmRzgKxjZWxsX3Jlc3VsdHON2SRmOTMzZTFkYi1iNjMxLTQ5M2UtOTQ3NC1lMGE0NmRmMzBlOGGKpnF1ZXVlZMKkbG9nc5WIpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SRmOTMzZTFkYi1iNjMxLTQ5M2UtOTQ3NC1lMGE0NmRmMzBlOGGma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqgwLjk4MTQxOap0ZXh0L3BsYWlukgKSozAuOKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwZGM0YzdlMTk3ZGExNjg1ZdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkZjkzM2UxZGItYjYzMS00OTNlLTk0NzQtZTBhNDZkZjMwZThhpmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKoMC45ODE0MTmqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksGMwZThlNzM3MjI1ZTdhMTfZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLlNYWluX3dvcmtzcGFjZSMyXzEzYWI4NDJkpGZpbGXZaC9Vc2Vycy90ZXJhc2FraXNhdG9zaGkvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL212Y19uZXcuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3Vwp212Y19uZXelbGV2ZWykSW5mb4ikbGluZf+jbXNnkqLOsap0ZXh0L3BsYWlup2NlbGxfaWTZJGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YaZrd2FyZ3ORkq0ozrFfbmV4dCwgzrEpkoOoZWxlbWVudHOSkgGSozEuMKp0ZXh0L3BsYWlukgKSozEuMKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwZDFlNGNhYjRlMjA0MTE5YdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkZjkzM2UxZGItYjYzMS00OTNlLTk0NzQtZTBhNDZkZjMwZThhpmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKjMS4wqnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLA5NWE5ZjkwNmY0ZGQxNTQ22SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS5TWFpbl93b3Jrc3BhY2UjMl8xM2FiODQyZKRmaWxl2WgvVXNlcnMvdGVyYXNha2lzYXRvc2hpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by9tdmNfbmV3LmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cKdtdmNfbmV3pWxldmVspEluZm+IpGxpbmX/o21zZ5LZquOCqOODjeODq+OCruODvOOBjOacgOWwj+OBq+OBquOCi+WkieWIhuODkeODqeODoeODvOOCv+OBrzEuMDAwMDAwMDAwMArln7rlupXnirbmhYvjga7jgqjjg43jg6vjgq7jg7zjga8tMC41MDAwMDAwMDAwCiAgNS4xMTgxNDYgc2Vjb25kcyAoMi4xNCBrIGFsbG9jYXRpb25zOiA0NzAuNTc4IEtpQikKqnRleHQvcGxhaW6nY2VsbF9pZNkkZjkzM2UxZGItYjYzMS00OTNlLTk0NzQtZTBhNDZkZjMwZThhpmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlcL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdll5a58sl+wcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YblkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzwAAAAExErH3tXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U2iqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedkpaW5pdGNmZyEgKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAxIG1ldGhvZCmkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZeWaIx6GsHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTa5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4ADhPFtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkN2JiZjUwMjUtMDM0Ni00MTA0LWE0N2EtNjNmNDkyZmM0MDI4iqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedoCazxkaXYgY2xhc3M9Im1hcmtkb3duIj48cD48YSBocmVmPSJodHRwczovL21peWFudGFydW1pLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMjIvMDQvMDgvMDgwMDAwIj7lpInliIbjg6Ljg7Pjg4bjgqvjg6vjg60mIzQwO1ZNQyYjNDE744KS44KE44Gj44Gm44G/44KLfuawtOe0oOWOn+WtkH48L2E+IOOBriBKdWxpYSDnp7vmpI3jgpLooYzjgaPjgZ8uIOODoeODiOODreODneODquOCueODhuOCueODiOOBrumDqOWIhuOCkumWouaVsOWMluOBl+abuOOBj+OBueOBjeOCs+ODvOODieOBrumHj+OCkuWkp+W5heOBq+a4m+OCieOBmeOBk+OBqOOBjOOBp+OBjeOBn++8jiBKdWxpYeOBr1VuaWNvZGXmloflrZfjgYzkvb/jgYjjgovjga7jgafjgqrjg6rjgrjjg4rjg6vjga7lrp/oo4XjgpLjgoLjgajjgavlpInmlbDlkI3jgpLpganlrpzlpInmm7TjgZfjgabjgYTjgovvvI48L3A+CjxwPm1ldHJvcG9saXNfdGVzdCYjMzM7IOOBruW8leaVsOOBr+OBhOOBo+OBseOBhOOBguOCi+OBjO+8jOOCguOBo+OBqEp1bGlh44KJ44GX44GP5pu444GP44Gu44Gn44GC44KM44Gq44Kz44Os44KJ44KS44G+44Go44KB44KL5qeL6YCg5L2T44KS5a6a576p44GZ44KL44G544GN44Gn44GC44KL77yOPC9wPgo8L2Rpdj6kbWltZal0ZXh0L2h0bWyscm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdll5ZmTkMGwcGVyc2lzdF9qc19zdGF0ZcK3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyOLlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzgKQaIC1cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTC2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTaKpnF1ZXVlZMKkbG9nc5WIpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTama3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqcxLjAwNzk1qnRleHQvcGxhaW6SApKjMC44qnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLA0MDRlMmRiZmJhNzA2NzRh2SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS5TWFpbl93b3Jrc3BhY2UjMl8xM2FiODQyZKRmaWxl2WgvVXNlcnMvdGVyYXNha2lzYXRvc2hpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by9tdmNfbmV3LmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cKdtdmNfbmV3pWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTama3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqcxLjAwMDE0qnRleHQvcGxhaW6SApKnMS4wMDc5Nap0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwMTcyNDk1ZDI1Mzg0OWM5NNkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkMGM3YTAxNzUtOGViZC00ZTg5LTliYTAtOTc5N2FhOGU0NTU2pmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKoMC45OTk5OTmqdGV4dC9wbGFpbpICkqcxLjAwMDE0qnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLBlZmI2ODA0MjFlOTBlYTM42SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS5TWFpbl93b3Jrc3BhY2UjMl8xM2FiODQyZKRmaWxl2WgvVXNlcnMvdGVyYXNha2lzYXRvc2hpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by9tdmNfbmV3LmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cKdtdmNfbmV3pWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTama3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqMxLjCqdGV4dC9wbGFpbpICkqgwLjk5OTk5Oap0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwYzgyMzhiMjczYWI5MGVjYdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eS2arjgqjjg43jg6vjgq7jg7zjgYzmnIDlsI/jgavjgarjgovlpInliIbjg5Hjg6njg6Hjg7zjgr/jga8wLjk5OTk5OTk5ODEK5Z+65bqV54q25oWL44Gu44Ko44ON44Or44Ku44O844GvLTAuNTAwMDAwMDAwMAogIDQuODE4NzM4IHNlY29uZHMgKDIuMTQgayBhbGxvY2F0aW9uczogNDcwLjU3OCBLaUIpCqp0ZXh0L3BsYWlup2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NqZrd2FyZ3OQomlktFBsdXRvUnVubmVyX2QxYWNiODFlpGZpbGXZXC9Vc2Vycy90ZXJhc2FraXNhdG9zaGkvLmp1bGlhL3BhY2thZ2VzL1BsdXRvL0trVkxJL3NyYy9ydW5uZXIvUGx1dG9SdW5uZXIvc3JjL1BsdXRvUnVubmVyLmpspWdyb3Vwq1BsdXRvUnVubmVypWxldmVsrkxvZ0xldmVsKC01NTUpp3J1bm5pbmfCpm91dHB1dIakYm9keaCkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZeWrJEs4sHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTa5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc8AAAABHzmhkrVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlOIqmcXVldWVkwqRsb2dzkYikbGluZf+jbXNnktlEVGVzdCBTdW1tYXJ5OiB8IFBhc3MgIFRvdGFsICBUaW1lCnNldDJ6ZXJvISAgICAgfCAgICAxICAgICAgMSAgMC4wcwqqdGV4dC9wbGFpbqdjZWxsX2lk2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTima3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VwvVXNlcnMvdGVyYXNha2lzYXRvc2hpLy5qdWxpYS9wYWNrYWdlcy9QbHV0by9La1ZMSS9zcmMvcnVubmVyL1BsdXRvUnVubmVyL3NyYy9QbHV0b1J1bm5lci5qbKVncm91cKtQbHV0b1J1bm5lcqVsZXZlbK5Mb2dMZXZlbCgtNTU1KadydW5uaW5nwqZvdXRwdXSGpGJvZHmFpnByZWZpeLNUZXN0LkRlZmF1bHRUZXN0U2V0qGVsZW1lbnRzmpKrZGVzY3JpcHRpb26SqyJzZXQyemVybyEiqnRleHQvcGxhaW6Sp3Jlc3VsdHOShaZwcmVmaXijQW55qGVsZW1lbnRzkKR0eXBlpUFycmF5rHByZWZpeF9zaG9ydKCob2JqZWN0aWSwZTE5MzZkM2FjMWI1Yjk3YdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0kqhuX3Bhc3NlZJKhMap0ZXh0L3BsYWlukqphbnlub25wYXNzkqVmYWxzZap0ZXh0L3BsYWlukqd2ZXJib3NlkqVmYWxzZap0ZXh0L3BsYWlukqpzaG93dGltaW5nkqR0cnVlqnRleHQvcGxhaW6SqnRpbWVfc3RhcnSSszEuNzA0NDMzMjU1MTgzMDk0ZTmqdGV4dC9wbGFpbpKodGltZV9lbmSSszEuNzA0NDMzMjU1MjAxMjAxZTmqdGV4dC9wbGFpbpKoZmFpbGZhc3SSpWZhbHNlqnRleHQvcGxhaW6SpGZpbGWS2VwiL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmoiIOKLryAzNCBieXRlcyDii68gIjA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4Iqp0ZXh0L3BsYWlupHR5cGWmc3RydWN0rHByZWZpeF9zaG9ydK5EZWZhdWx0VGVzdFNldKhvYmplY3RpZLA1ZDUxOTIxYTI1NjhmMWI4pG1pbWXZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WXlmgRDLbBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkNDA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4uWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOA1Y9/LVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDZmMzQ5OTA1LTU2ZDAtNDBmYS1iMjkwLTAzNmMyNThjYWRjYoqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZnDxkaXYgY2xhc3M9InBsdXRvLWRvY3MtYmluZGluZyI+CjxzcGFuPnNldDJ6ZXJvITwvc3Bhbj4KPGRpdiBjbGFzcz0ibWFya2Rvd24iPjxwcmU+PGNvZGU+QyBwb3J0IHRvIEp1bGlhIGZvciAmIzk2O3Nob2tpa2EmIzk2OzwvY29kZT48L3ByZT4KCgo8L2Rpdj4KPC9kaXY+CqRtaW1lqXRleHQvaHRtbKxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WXlmahfFLBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNiuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOAEb/sbVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MoqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WXlmQcMzLBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUyuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOG6V+H7VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YoqmcXVldWVkwqRsb2dzmIikbGluZf+jbXNnkqLOsap0ZXh0L3BsYWlup2NlbGxfaWTZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YqZrd2FyZ3ORkq0ozrFfbmV4dCwgzrEpkoOoZWxlbWVudHOSkgGSpzEuMTczNTSqdGV4dC9wbGFpbpICkqMwLjiqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksGYxZWI1MGU5ZDdhMzQyNznZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLlNYWluX3dvcmtzcGFjZSMyXzEzYWI4NDJkpGZpbGXZaC9Vc2Vycy90ZXJhc2FraXNhdG9zaGkvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL212Y19uZXcuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3Vwp212Y19uZXelbGV2ZWykSW5mb4ikbGluZf+jbXNnkqLOsap0ZXh0L3BsYWlup2NlbGxfaWTZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YqZrd2FyZ3ORkq0ozrFfbmV4dCwgzrEpkoOoZWxlbWVudHOSkgGSpzEuMDYzODaqdGV4dC9wbGFpbpICkqcxLjE3MzU0qnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLBhMTA3ZDc2YzM4NTgxNzI52SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS5TWFpbl93b3Jrc3BhY2UjMl8xM2FiODQyZKRmaWxl2WgvVXNlcnMvdGVyYXNha2lzYXRvc2hpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by9tdmNfbmV3LmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cKdtdmNfbmV3pWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SRkZGJiZWVkOC0yM2VjLTQyODItYjVkMS1jOWE2ZmU4ZDhhOGKma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqcxLjAxMDU0qnRleHQvcGxhaW6SApKnMS4wNjM4Nqp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwM2UxMjU2NzYyNjkwZmQxONkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkZGRiYmVlZDgtMjNlYy00MjgyLWI1ZDEtYzlhNmZlOGQ4YThipmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKmMS4wMDA0qnRleHQvcGxhaW6SApKnMS4wMTA1NKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwYjM4N2Y4YmYwYWU3MzEzZdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkZGRiYmVlZDgtMjNlYy00MjgyLWI1ZDEtYzlhNmZlOGQ4YThipmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKmMS4wMDA0qnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLBlY2ExMjgzNzExMTM2NmEx2SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS5TWFpbl93b3Jrc3BhY2UjMl8xM2FiODQyZKRmaWxl2WgvVXNlcnMvdGVyYXNha2lzYXRvc2hpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by9tdmNfbmV3LmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cKdtdmNfbmV3pWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SRkZGJiZWVkOC0yM2VjLTQyODItYjVkMS1jOWE2ZmU4ZDhhOGKma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqMxLjCqdGV4dC9wbGFpbpICkqMxLjCqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksDZiNDVkYjE4ZjI1YTg3ZjLZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLlNYWluX3dvcmtzcGFjZSMyXzEzYWI4NDJkpGZpbGXZaC9Vc2Vycy90ZXJhc2FraXNhdG9zaGkvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL212Y19uZXcuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3Vwp212Y19uZXelbGV2ZWykSW5mb4ikbGluZf+jbXNnkqLOsap0ZXh0L3BsYWlup2NlbGxfaWTZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YqZrd2FyZ3ORkq0ozrFfbmV4dCwgzrEpkoOoZWxlbWVudHOSkgGSozEuMKp0ZXh0L3BsYWlukgKSozEuMKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwYjk1ZDc2NDU2Yzk4OTEzMNkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuU1haW5fd29ya3NwYWNlIzJfMTNhYjg0MmSkZmlsZdloL1VzZXJzL3RlcmFzYWtpc2F0b3NoaS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vbXZjX25ldy5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCnbXZjX25ld6VsZXZlbKRJbmZviKRsaW5l/6Ntc2eS2arjgqjjg43jg6vjgq7jg7zjgYzmnIDlsI/jgavjgarjgovlpInliIbjg5Hjg6njg6Hjg7zjgr/jga8xLjAwMDAwMDAwMDAK5Z+65bqV54q25oWL44Gu44Ko44ON44Or44Ku44O844GvLTAuNTAwMDAwMDAwMAogIDguMTkxMjI3IHNlY29uZHMgKDMuNzMgayBhbGxvY2F0aW9uczogNjQ4LjcxOSBLaUIpCqp0ZXh0L3BsYWlup2NlbGxfaWTZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YqZrd2FyZ3OQomlktFBsdXRvUnVubmVyX2QxYWNiODFlpGZpbGXZXC9Vc2Vycy90ZXJhc2FraXNhdG9zaGkvLmp1bGlhL3BhY2thZ2VzL1BsdXRvL0trVkxJL3NyYy9ydW5uZXIvUGx1dG9SdW5uZXIvc3JjL1BsdXRvUnVubmVyLmpspWdyb3Vwq1BsdXRvUnVubmVypWxldmVsrkxvZ0xldmVsKC01NTUpp3J1bm5pbmfCpm91dHB1dIakYm9keaCkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZeWtM6/AsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRkZGJiZWVkOC0yM2VjLTQyODItYjVkMS1jOWE2ZmU4ZDhhOGK5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc8AAAAB6D26KLVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WXlmVHJ+7BwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlhuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOAfa8TLVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZMW1ldHJvcG9saXNfdGVzdCEgKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAxIG1ldGhvZCmkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZeWp1qYasHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTW5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AQMfPtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3iqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2gEWZGF0YTEgPSBbMS40MjQ0ODI5MDcwNTgwOTI5LCAtMS4yNjg3NzU0ODc0ODA3NzUsIDAuOTQzNzk5MjI0MzE5MzcwNSwgMS4wOTE3ODg2ODQyMjA4OSwgLTAuNzA2MDU2MTI0MDk4MTg3NSwgLTEuNDA5NDY1NTA3NzAzMzM1MywgLTEuNDc1ODM3NzEyOTU1MDc0OCwgMS4zMDI4NzEwNTQ4MDM5NjEsIC0wLjc0NzczMDA1Mzg2OTM3MzIsIDAuNTU0MzA0Njg2NjgyMTg4MV0KVGVzdCBTdW1tYXJ5OiB8IFBhc3MgIFRvdGFsICBUaW1lCmluaXRjZmchICAgICAgfCAgICAzICAgICAgMyAgMC4xcwqqdGV4dC9wbGFpbqdjZWxsX2lk2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzema3dhcmdzkKJpZLRQbHV0b1J1bm5lcl9kMWFjYjgxZaRmaWxl2VwvVXNlcnMvdGVyYXNha2lzYXRvc2hpLy5qdWxpYS9wYWNrYWdlcy9QbHV0by9La1ZMSS9zcmMvcnVubmVyL1BsdXRvUnVubmVyL3NyYy9QbHV0b1J1bm5lci5qbKVncm91cKtQbHV0b1J1bm5lcqVsZXZlbK5Mb2dMZXZlbCgtNTU1KadydW5uaW5nwqZvdXRwdXSGpGJvZHmFpnByZWZpeLNUZXN0LkRlZmF1bHRUZXN0U2V0qGVsZW1lbnRzmpKrZGVzY3JpcHRpb26SqiJpbml0Y2ZnISKqdGV4dC9wbGFpbpKncmVzdWx0c5KFpnByZWZpeKNBbnmoZWxlbWVudHOQpHR5cGWlQXJyYXmscHJlZml4X3Nob3J0oKhvYmplY3RpZLBkMDQ3MzdkYjBlMWVhYmIw2SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SSqG5fcGFzc2VkkqEzqnRleHQvcGxhaW6SqmFueW5vbnBhc3OSpWZhbHNlqnRleHQvcGxhaW6Sp3ZlcmJvc2WSpWZhbHNlqnRleHQvcGxhaW6SqnNob3d0aW1pbmeSpHRydWWqdGV4dC9wbGFpbpKqdGltZV9zdGFydJKzMS43MDQ0MzMyNTcwMjU3OTZlOap0ZXh0L3BsYWlukqh0aW1lX2VuZJKzMS43MDQ0MzMyNTcxMTQ5NDdlOap0ZXh0L3BsYWlukqhmYWlsZmFzdJKlZmFsc2WqdGV4dC9wbGFpbpKkZmlsZZLZXCIvVXNlcnMvdGVyYXNha2lzYXRvc2hpL3dvcmsvTXlWTUMuaiIg4ouvIDM0IGJ5dGVzIOKLryAiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzciqnRleHQvcGxhaW6kdHlwZaZzdHJ1Y3SscHJlZml4X3Nob3J0rkRlZmF1bHRUZXN0U2V0qG9iamVjdGlksDUxZWRhZWYyMmE3ZjAyMTOkbWltZdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0rHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZeWaR44ysHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNze5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4JAPoutXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZiiqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedkncmFkaXVzIChnZW5lcmljIGZ1bmN0aW9uIHdpdGggMSBtZXRob2QppG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WXlmlQL5bBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZiuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOAAfgV7VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NoqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZJW1haW4gKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAxIG1ldGhvZCmkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZeWp43VgsHBlcnNpc3RfanNfc3RhdGXDt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODa5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AMatOtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwqtzdGF0dXNfdHJlZYSkbmFtZahub3RlYm9va6hzdWJ0YXNrc4Smc2F2aW5nhKRuYW1lpnNhdmluZ6hzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdll5anFVeuqc3RhcnRlZF9hdMtB2WXlqcVRBal3b3Jrc3BhY2WEpG5hbWWpd29ya3NwYWNlqHN1YnRhc2tzgqxpbml0X3Byb2Nlc3OEpG5hbWWsaW5pdF9wcm9jZXNzqHN1YnRhc2tzhKE0hKRuYW1loTSoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZeWX0CUYqnN0YXJ0ZWRfYXTLQdll5ZcDaZChMYSkbmFtZaExqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WXlluWCLKpzdGFydGVkX2F0y0HZZeWWRu6aoTKEpG5hbWWhMqhzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdll5Zb8NPyqc3RhcnRlZF9hdMtB2WXlluWdrqEzhKRuYW1loTOoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZeWXA1fBqnN0YXJ0ZWRfYXTLQdll5Zb8NQ2rZmluaXNoZWRfYXTLQdll5ZfQQ2eqc3RhcnRlZF9hdMtB2WXllkbuZ65jcmVhdGVfcHJvY2Vzc4SkbmFtZa5jcmVhdGVfcHJvY2Vzc6hzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdll5ZZCzGCqc3RhcnRlZF9hdMtB2WXlkzKt0atmaW5pc2hlZF9hdMtB2WXll9BDdKpzdGFydGVkX2F0y0HZZeWTMq24o3BrZ4SkbmFtZaNwa2eoc3VidGFza3OBqGFuYWx5c2lzhKRuYW1lqGFuYWx5c2lzqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WXlqcUpRapzdGFydGVkX2F0y0HZZeWpxST7q2ZpbmlzaGVkX2F0y0HZZeWpxSlKqnN0YXJ0ZWRfYXTLQdll5anFJOajcnVuhKRuYW1lo3J1bqhzdWJ0YXNrc4KwcmVzb2x2ZV90b3BvbG9neYSkbmFtZbByZXNvbHZlX3RvcG9sb2d5qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WXlqcVV+KpzdGFydGVkX2F0y0HZZeWpxUn5qGV2YWx1YXRlhKRuYW1lqGV2YWx1YXRlqHN1YnRhc2tzhaE0hKRuYW1loTSoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZeWtM6/zqnN0YXJ0ZWRfYXTLQdll5asl49qhMYSkbmFtZaExqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WXlqdamQKpzdGFydGVkX2F0y0HZZeWpxy+doTWEpG5hbWWhNahzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdll5a58somqc3RhcnRlZF9hdMtB2WXlrTPGoKEyhKRuYW1loTKoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZeWp43WOqnN0YXJ0ZWRfYXTLQdll5anWubahM4SkbmFtZaEzqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WXlqyRLf6pzdGFydGVkX2F0y0HZZeWp44eQq2ZpbmlzaGVkX2F0y0HZZeWufNAtqnN0YXJ0ZWRfYXTLQdll5anFVfirZmluaXNoZWRfYXTLQdll5a580Cmqc3RhcnRlZF9hdMtB2WXlqcVJz6tmaW5pc2hlZF9hdMCqc3RhcnRlZF9hdMtB2WXlh1xinrFjZWxsX2RlcGVuZGVuY2llc43ZJGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YbRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwjaVAdGltZZCzQmFzZS5nY19hbGxvY19jb3VudJCmQmFzZS4tkKtCYXNlLmdjX251bZCqQmFzZS5maXJzdJCsQmFzZS5HQ19EaWZmkL9CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1lX25zkKlCYXNlLmxhc3SQpEJhc2WQr0Jhc2UudGltZV9wcmludJCkbWFpbpHZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqxCYXNlLnRpbWVfbnOQvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNrRkb3duc3RyZWFtX2NlbGxzX21hcIGoaW5pdGNmZyGS2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzfZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NrJ1cHN0cmVhbV9jZWxsc19tYXCFpmxlbmd0aJChLZCuQWJzdHJhY3RWZWN0b3KQoSqQpHJhbmSQ2SQ3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjiEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMji0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcIKnQG1kX3N0cpCoZ2V0aW5kZXiQ2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTaEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTa0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcI2lQHRpbWWQs0Jhc2UuZ2NfYWxsb2NfY291bnSQpkJhc2UuLZCrQmFzZS5nY19udW2QqkJhc2UuZmlyc3SQrEJhc2UuR0NfRGlmZpC/QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltZV9uc5CpQmFzZS5sYXN0kKRCYXNlkK9CYXNlLnRpbWVfcHJpbnSQpG1haW6R2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODasQmFzZS50aW1lX25zkL5CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1pbmeQ2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTiEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTi0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcN4AIalUZXN0LmNvcHmQrFRlc3QucmV0aHJvd5CqVGVzdC5FcnJvcpCxVGVzdC5SYW5kb20uc2VlZCGQsFRlc3QucG9wX3Rlc3RzZXSQpFRlc3SR2SQ5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWG8VGVzdC5SYW5kb20uc2V0X2dsb2JhbF9zZWVkIZCuVGVzdC5ldmFsX3Rlc3SQvFRlc3QuQmFzZS5jdXJyZW50X2V4Y2VwdGlvbnOQqlRlc3QuY29weSGQqFRlc3QuaXNhkKtUZXN0LnJlY29yZJCzVGVzdC5fY2hlY2tfdGVzdHNldJCpVGVzdC5FeHBykKpUZXN0LlRocmV3kLBUZXN0LmRlZmF1bHRfcm5nkLFUZXN0LnB1c2hfdGVzdHNldJClQHRlc3SQs1Rlc3QuZmFpbGZhc3RfcHJpbnSQoj09kKtUZXN0LnR5cGVvZpC2VGVzdC5nZXRfdGVzdHNldF9kZXB0aJClemVyb3OQsFRlc3QuZ2V0X3Rlc3RzZXSQq1Rlc3QuZmluaXNokKRyYW5kkL9UZXN0LnRyaWdnZXJfdGVzdF9mYWlsdXJlX2JyZWFrkKdUZXN0Lj09kKtUZXN0LkJyb2tlbpCpc2V0Mnplcm8hkdkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNiqFRlc3QuPT09kKhAdGVzdHNldJCmVGVzdC4+kNkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNihLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNitGRvd25zdHJlYW1fY2VsbHNfbWFwgalzZXQyemVybyGS2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTjZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NrJ1cHN0cmVhbV9jZWxsc19tYXCJpEBkb2OQpHplcm+QoVSQrkFic3RyYWN0VmVjdG9ykKVUdXBsZZCmZWx0eXBlkKVmaWxsIZClVW5pb26QuiNfX190aGlzX3BsdXRvX21vZHVsZV9uYW1lkNkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUyhLRwcmVjZWRlbmNlX2hldXJpc3RpYwenY2VsbF9pZNkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUytGRvd25zdHJlYW1fY2VsbHNfbWFwgqpTdGF0aXN0aWNzkKZQcmludGaQsnVwc3RyZWFtX2NlbGxzX21hcIDZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YrRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwjaVAdGltZZCzQmFzZS5nY19hbGxvY19jb3VudJCmQmFzZS4tkKtCYXNlLmdjX251bZCqQmFzZS5maXJzdJCsQmFzZS5HQ19EaWZmkL9CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1lX25zkKlCYXNlLmxhc3SQpEJhc2WQr0Jhc2UudGltZV9wcmludJCkbWFpbpHZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqxCYXNlLnRpbWVfbnOQvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMHp2NlbGxfaWTZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YbRkb3duc3RyZWFtX2NlbGxzX21hcIGkVGVzdJLZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlONkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3snVwc3RyZWFtX2NlbGxzX21hcIDZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNbRkb3duc3RyZWFtX2NlbGxzX21hcIGwbWV0cm9wb2xpc190ZXN0IZHZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NrJ1cHN0cmVhbV9jZWxsc19tYXDeABOlcmFuZG6Qo2V4cJChOpCuQWJzdHJhY3RWZWN0b3KQpmlmZWxzZZCmaXNsZXNzkKdGbG9hdDY0kKRyYW5kkKE8kKllYWNoaW5kZXiQoS2Qo+KJpZCiPj2QoS+QpnJhZGl1c5HZJDA2OGNiOTdlLTg3MDQtNDU4ZS04ZmVmLTI4YWY2ZWZhNTk2YqErkKEqkKRtZWFukKNpbnaQ2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzeEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNze0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcN4AJqlUZXN0LmNvcHmQrFRlc3QucmV0aHJvd5CqVGVzdC5FcnJvcpCxVGVzdC5SYW5kb20uc2VlZCGQsFRlc3QucG9wX3Rlc3RzZXSQpFRlc3SR2SQ5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWG8VGVzdC5SYW5kb20uc2V0X2dsb2JhbF9zZWVkIZCtVGVzdC5SZXR1cm5lZJC8VGVzdC5CYXNlLmN1cnJlbnRfZXhjZXB0aW9uc5CqVGVzdC5jb3B5IZCoVGVzdC5pc2GQq1Rlc3QucmVjb3JkkLNUZXN0Ll9jaGVja190ZXN0c2V0kKlUZXN0LkV4cHKQqlRlc3QuVGhyZXeQoi48kLBUZXN0LmRlZmF1bHRfcm5nkKMuPD2QsVRlc3QucHVzaF90ZXN0c2V0kKVAdGVzdJCzVGVzdC5mYWlsZmFzdF9wcmludJCoaW5pdGNmZyGR2SQ1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTarVGVzdC50eXBlb2aQtlRlc3QuZ2V0X3Rlc3RzZXRfZGVwdGiQq1Rlc3QuZmluaXNokLBUZXN0LmdldF90ZXN0c2V0kKRyYW5kkL9UZXN0LnRyaWdnZXJfdGVzdF9mYWlsdXJlX2JyZWFrkKNhbGyQp1Rlc3QuPT2Qq1Rlc3QuQnJva2VukKRCYXNlkKlCYXNlLnJlcHKQrEJhc2UucHJpbnRsbpCoVGVzdC49PT2QqEB0ZXN0c2V0kKZUZXN0Lj6QpUBzaG93kNkkMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZihLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZitGRvd25zdHJlYW1fY2VsbHNfbWFwgaZyYWRpdXOR2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTWydXBzdHJlYW1fY2VsbHNfbWFwhKRzcXJ0kKFekKPiiJqQoSuQ2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODaEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODa0ZG93bnN0cmVhbV9jZWxsc19tYXCBpG1haW6T2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTbZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YtkkZjkzM2UxZGItYjYzMS00OTNlLTk0NzQtZTBhNDZkZjMwZThhsnVwc3RyZWFtX2NlbGxzX21hcN4AGrBtZXRyb3BvbGlzX3Rlc3QhkdkkNjQyOTExYzYtNjk4Yy00MGJiLWJlYzYtYzg4ODMzYzZjYWE1pmlzbGVzc5CnRmxvYXQ2NJDZJ0Jhc2UuQ29yZUxvZ2dpbmcuQmFzZS5maXh1cF9zdGRsaWJfcGF0aJCyQmFzZS5Db3JlTG9nZ2luZy4hkKZWZWN0b3KQoTyQoS+QpUBpbmZvkLFCYXNlLmludm9rZWxhdGVzdJCoaW5pdGNmZyGR2SQ1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTajYWJzkL1CYXNlLkNvcmVMb2dnaW5nLmludm9rZWxhdGVzdJC0QmFzZS5Db3JlTG9nZ2luZy49PT2QpXplcm9zkLojX19fdGhpc19wbHV0b19tb2R1bGVfbmFtZZCmc3Rkb3V0kKdAcHJpbnRmkKRCYXNlkKlzZXQyemVybyGR2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2KhLZC0QmFzZS5Db3JlTG9nZ2luZy5pc2GQoSuQpXVuZGVmkKEqkLNCYXNlLkNvcmVMb2dnaW5nLj49kLRjZWxsX2V4ZWN1dGlvbl9vcmRlcp3ZJDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MtkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlh2SQ3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjjZJDZmMzQ5OTA1LTU2ZDAtNDBmYS1iMjkwLTAzNmMyNThjYWRjYtkkNDA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU42SQ1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTbZJGI4ZjJjMGRkLWZlMTQtNGE5OC05MjcyLTg3MjkzNDMxN2E3N9kkMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZi2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTXZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NtkkMGM3YTAxNzUtOGViZC00ZTg5LTliYTAtOTc5N2FhOGU0NTU22SRkZGJiZWVkOC0yM2VjLTQyODItYjVkMS1jOWE2ZmU4ZDhhOGLZJGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YbRsYXN0X2hvdF9yZWxvYWRfdGltZcsAAAAAAAAAAKlzaG9ydHBhdGimdm1jLmpsrnByb2Nlc3Nfc3RhdHVzpXJlYWR5pHBhdGjZPC9Vc2Vycy90ZXJhc2FraXNhdG9zaGkvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtYy5qbK5sYXN0X3NhdmVfdGltZctB2WXlqcVQ/KpjZWxsX29yZGVyndkkN2JiZjUwMjUtMDM0Ni00MTA0LWE0N2EtNjNmNDkyZmM0MDI42SQ0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTLZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YdkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNi2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTjZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNtkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc32SQwNjhjYjk3ZS04NzA0LTQ1OGUtOGZlZi0yOGFmNmVmYTU5NmLZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNdkkYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg22SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTbZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YtkkZjkzM2UxZGItYjYzMS00OTNlLTk0NzQtZTBhNDZkZjMwZThhsXB1Ymxpc2hlZF9vYmplY3RzgKVuYnBrZ4qvaW5zdGFsbF90aW1lX25zzwAAAAFcEfsNrGluc3RhbnRpYXRlZMOyaW5zdGFsbGVkX3ZlcnNpb25zg6pTdGF0aXN0aWNzpnN0ZGxpYqRUZXN0pnN0ZGxpYqZQcmludGamc3RkbGlisHRlcm1pbmFsX291dHB1dHOEqlN0YXRpc3RpY3PaAYsKSW5zdGFudGlhdGluZy4uLgoKUmVzb2x2aW5nLi4uChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzLzE0L2NnNDM4ZnZkMjhkZzl3cHZwd3QxbHowYzAwMDBnbi9UL2psX0psZ040VC9Qcm9qZWN0LnRvbWxgChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzLzE0L2NnNDM4ZnZkMjhkZzl3cHZwd3QxbHowYzAwMDBnbi9UL2psX0psZ040VC9NYW5pZmVzdC50b21sYAoKUHJlY29tcGlsaW5nLi4uChtbMzJtG1sxbSAgQWN0aXZhdGluZxtbMjJtG1szOW0gcHJvamVjdCBhdCBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvMTQvY2c0MzhmdmQyOGRnOXdwdnB3dDFsejBjMDAwMGduL1QvamxfSmxnTjRUYKpuYnBrZ19zeW5j2gGLCkluc3RhbnRpYXRpbmcuLi4KClJlc29sdmluZy4uLgobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy8xNC9jZzQzOGZ2ZDI4ZGc5d3B2cHd0MWx6MGMwMDAwZ24vVC9qbF9KbGdONFQvUHJvamVjdC50b21sYAobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy8xNC9jZzQzOGZ2ZDI4ZGc5d3B2cHd0MWx6MGMwMDAwZ24vVC9qbF9KbGdONFQvTWFuaWZlc3QudG9tbGAKClByZWNvbXBpbGluZy4uLgobWzMybRtbMW0gIEFjdGl2YXRpbmcbWzIybRtbMzltIHByb2plY3QgYXQgYC9wcml2YXRlL3Zhci9mb2xkZXJzLzE0L2NnNDM4ZnZkMjhkZzl3cHZwd3QxbHowYzAwMDBnbi9UL2psX0psZ040VGCkVGVzdNoBiwpJbnN0YW50aWF0aW5nLi4uCgpSZXNvbHZpbmcuLi4KG1szMm0bWzFtICBObyBDaGFuZ2VzG1syMm0bWzM5bSB0byBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvMTQvY2c0MzhmdmQyOGRnOXdwdnB3dDFsejBjMDAwMGduL1QvamxfSmxnTjRUL1Byb2plY3QudG9tbGAKG1szMm0bWzFtICBObyBDaGFuZ2VzG1syMm0bWzM5bSB0byBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvMTQvY2c0MzhmdmQyOGRnOXdwdnB3dDFsejBjMDAwMGduL1QvamxfSmxnTjRUL01hbmlmZXN0LnRvbWxgCgpQcmVjb21waWxpbmcuLi4KG1szMm0bWzFtICBBY3RpdmF0aW5nG1syMm0bWzM5bSBwcm9qZWN0IGF0IGAvcHJpdmF0ZS92YXIvZm9sZGVycy8xNC9jZzQzOGZ2ZDI4ZGc5d3B2cHd0MWx6MGMwMDAwZ24vVC9qbF9KbGdONFRgplByaW50ZtoBiwpJbnN0YW50aWF0aW5nLi4uCgpSZXNvbHZpbmcuLi4KG1szMm0bWzFtICBObyBDaGFuZ2VzG1syMm0bWzM5bSB0byBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvMTQvY2c0MzhmdmQyOGRnOXdwdnB3dDFsejBjMDAwMGduL1QvamxfSmxnTjRUL1Byb2plY3QudG9tbGAKG1szMm0bWzFtICBObyBDaGFuZ2VzG1syMm0bWzM5bSB0byBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvMTQvY2c0MzhmdmQyOGRnOXdwdnB3dDFsejBjMDAwMGduL1QvamxfSmxnTjRUL01hbmlmZXN0LnRvbWxgCgpQcmVjb21waWxpbmcuLi4KG1szMm0bWzFtICBBY3RpdmF0aW5nG1syMm0bWzM5bSBwcm9qZWN0IGF0IGAvcHJpdmF0ZS92YXIvZm9sZGVycy8xNC9jZzQzOGZ2ZDI4ZGc5d3B2cHd0MWx6MGMwMDAwZ24vVC9qbF9KbGdONFRgp2VuYWJsZWTDt3Jlc3RhcnRfcmVjb21tZW5kZWRfbXNnwLRyZXN0YXJ0X3JlcXVpcmVkX21zZ8CtYnVzeV9wYWNrYWdlc5C2d2FpdGluZ19mb3JfcGVybWlzc2lvbsLZLHdhaXRpbmdfZm9yX3Blcm1pc3Npb25fYnV0X3Byb2JhYmx5X2Rpc2FibGVkwqtjZWxsX2lucHV0c43ZJGY5MzNlMWRiLWI2MzEtNDkzZS05NDc0LWUwYTQ2ZGYzMGU4YYSnY2VsbF9pZNkkZjkzM2UxZGItYjYzMS00OTNlLTk0NzQtZTBhNDZkZjMwZThhpGNvZGWsQHRpbWUgbWFpbigpqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTaEp2NlbGxfaWTZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNqRjb2Rl2ahmdW5jdGlvbiBpbml0Y2ZnIShkYXRhMTo6VCwgZGF0YTI6OlQsIGRhdGEzOjpUKSB3aGVyZSB7VDw6QWJzdHJhY3RWZWN0b3J9CiAgICBmb3IgZCBpbiAoZGF0YTEsIGRhdGEyLCBkYXRhMykKICAgICAgICBkIC49IChyYW5kKGxlbmd0aChkKSkgLi0gMC41KSAuKiAyIC4qIDIKICAgIGVuZAplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyOISnY2VsbF9pZNkkN2JiZjUwMjUtMDM0Ni00MTA0LWE0N2EtNjNmNDkyZmM0MDI4pGNvZGXaAjVtZCIiIgoKW+WkieWIhuODouODs+ODhuOCq+ODq+ODrShWTUMp44KS44KE44Gj44Gm44G/44KLfuawtOe0oOWOn+WtkH5dKGh0dHBzOi8vbWl5YW50YXJ1bWkuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAyMi8wNC8wOC8wODAwMDApIOOBriBKdWxpYSDnp7vmpI3jgpLooYzjgaPjgZ8uIOODoeODiOODreODneODquOCueODhuOCueODiOOBrumDqOWIhuOCkumWouaVsOWMluOBl+abuOOBj+OBueOBjeOCs+ODvOODieOBrumHj+OCkuWkp+W5heOBq+a4m+OCieOBmeOBk+OBqOOBjOOBp+OBjeOBn++8jiBKdWxpYeOBr1VuaWNvZGXmloflrZfjgYzkvb/jgYjjgovjga7jgafjgqrjg6rjgrjjg4rjg6vjga7lrp/oo4XjgpLjgoLjgajjgavlpInmlbDlkI3jgpLpganlrpzlpInmm7TjgZfjgabjgYTjgovvvI4KCm1ldHJvcG9saXNfdGVzdCEg44Gu5byV5pWw44Gv44GE44Gj44Gx44GE44GC44KL44GM77yM44KC44Gj44GoSnVsaWHjgonjgZfjgY/mm7jjgY/jga7jgafjgYLjgozjgarjgrPjg6zjgonjgpLjgb7jgajjgoHjgovmp4vpgKDkvZPjgpLlrprnvqnjgZnjgovjgbnjgY3jgafjgYLjgovvvI4KIiIiqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTD2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTaEp2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NqRjb2RlrEB0aW1lIG1haW4oKahtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkNDA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4hKdjZWxsX2lk2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTikY29kZdmsQHRlc3RzZXQgInNldDJ6ZXJvISIgYmVnaW4KCWRhdGExID0gcmFuZCgxMCkKICAgIGRhdGEyID0gcmFuZCgxMCkKICAgIGRhdGEzID0gcmFuZCgxMCkKICAgIHNldDJ6ZXJvIShkYXRhMSwgZGF0YTIsIGRhdGEzKQogICAgQHRlc3QgZGF0YTEgPT0gZGF0YTIgPT0gZGF0YTMgPT0gemVyb3MoMTApCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNihKdjZWxsX2lk2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2KkY29kZdnCIiIiCglDIHBvcnQgdG8gSnVsaWEgZm9yIGBzaG9raWthYAoiIiIKZnVuY3Rpb24gc2V0Mnplcm8hKGRhdGExOjpULCBkYXRhMjo6VCwgZGF0YTM6OlQpIHdoZXJlIHtUPDpBYnN0cmFjdFZlY3Rvcn0KICAgIGZvciBkIGluIChkYXRhMSwgZGF0YTIsIGRhdGEzKQogICAgICAgIGZpbGwhKGQsIHplcm8oZWx0eXBlKGQpKSkKICAgIGVuZAplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MoSnY2VsbF9pZNkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUypGNvZGXZKWJlZ2luCgl1c2luZyBTdGF0aXN0aWNzCgl1c2luZyBQcmludGYKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SRkZGJiZWVkOC0yM2VjLTQyODItYjVkMS1jOWE2ZmU4ZDhhOGKEp2NlbGxfaWTZJGRkYmJlZWQ4LTIzZWMtNDI4Mi1iNWQxLWM5YTZmZThkOGE4YqRjb2RlrEB0aW1lIG1haW4oKahtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlhhKdjZWxsX2lk2SQ5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWGkY29kZap1c2luZyBUZXN0qG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTWEp2NlbGxfaWTZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNaRjb2Rl2gbNZnVuY3Rpb24gbWV0cm9wb2xpc190ZXN0ISgKCc6xOjpGbG9hdDY0LCAKCc6jRV9sb2M6OlQsIM6j4oiCbG9nz4hf4oiCzrE6OlQszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsTo6VCwKCXjig5c6OlQsIHnig5c6OlQsIHrig5c6OlQsIHLig5c6OlQKKSB3aGVyZSBUIDw6IEFic3RyYWN0VmVjdG9yCgluc2FtcGxlcyA9IDMwMDAwCglzaWdtYSA9IDAuNAoJbnNhbXBsZXNfYnVybl9pbiA9IDQwMDAKCQoJZm9yIGkgaW4gMTpuc2FtcGxlcwkKCQlmb3IgaiBpbiBlYWNoaW5kZXgoeOKDlyx54oOXLHrig5cscuKDlykKCQkJeCA9IHjig5dbal0KCQkJeSA9IHnig5dbal0KCQkJeiA9IHrig5dbal0KCQkJciA9IHJhZGl1cyh4LHkseikKCQkJI8+IwrIgPSBleHAoLTLOsSpyKQoJCQkjIHByb3Bvc2FsIHN0ZXAKCQkJeOKAsiA9IHNpZ21hICogcmFuZG4oKSArICB4CgkJCXnigLIgPSBzaWdtYSAqIHJhbmRuKCkgKyAgeQoJCQl64oCyID0gc2lnbWEgKiByYW5kbigpICsgIHoKCQkJcuKAsiA9IHJhZGl1cyh44oCyLHnigLIseuKAsikKCQkJI8+VwrIgPSBleHAoLTLOsSpy4oCyKQoJCQkjYiA9IHJhbmQoKSA8IM+VwrIvz4jCsiAKCQkJYiA9IHJhbmQoKSA8IGV4cCgtMs6xICogcuKAsiArIDLOsSAqIHIpIAoJCQl44oOXW2pdID0gaWZlbHNlKGIsIHjigLIsIHgpCgkJCXnig5dbal0gPSBpZmVsc2UoYiwgeeKAsiwgeSkKCQkJeuKDl1tqXSA9IGlmZWxzZShiLCB64oCyLCB6KQoJCQly4oOXW2pdID0gaWZlbHNlKGIsIHLigLIsIHIpCgkJZW5kCgkJaWYgaSDiiaUgbnNhbXBsZXNfYnVybl9pbgoJCQlmb3IgaiBpbiBlYWNoaW5kZXgoeOKDlyx54oOXLHrig5cscuKDlykKCQkJCXggPSB44oOXW2pdCgkJCQl5ID0geeKDl1tqXQoJCQkJeiA9IHrig5dbal0KCQkJCXIgPSBy4oOXW2pdCgkJCQly4oG7wrkgPSBpbnYocikKCQkJCUVfbG9jID0gLXLigbvCuSAtMC41zrEgKiAozrEgLSAyICogcuKBu8K5KQoJCQkJ4oiCbG9nz4hf4oiCzrEgPSAtcgoJCQkJRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgPSBFX2xvYyAqIOKIgmxvZ8+IX+KIgs6xCgkJCQnOo0VfbG9jW2pdICs9IEVfbG9jCgkJCQnOo+KIgmxvZ8+IX+KIgs6xW2pdICs9IOKIgmxvZ8+IX+KIgs6xCgkJCQnOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xW2pdICs9IEVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xCgkJCWVuZAoJCWVuZAoJZW5kCgkjIOWQhCBqIOOBq+WvvuOBl+OBpuOBruW5s+Wdh+mHj+OCkuioiOeul+OBmeOCiy4g44Oh44Oi44Oq44KS5L2/44GE5Zue44GZ44Gf44KB44GrIGluLXBsYWNlIOioiOeul+OCkuOBl+OBpuOBhOOCi++8jgoJzqNFX2xvYyAuLz0gKG5zYW1wbGVzIC0gbnNhbXBsZXNfYnVybl9pbiArIDEpCgnOo+KIgmxvZ8+IX+KIgs6xIC4vPSAobnNhbXBsZXMgLSBuc2FtcGxlc19idXJuX2luICsgMSkKCc6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgLi89IChuc2FtcGxlcyAtIG5zYW1wbGVzX2J1cm5faW4gKyAxKQoJIyBqIOOBrui7uOOBq+WvvuOBl+OBpuW5s+Wdh+WApOOCkuioiOeul+OBmeOCiwoJRV9sb2MgPSBtZWFuKM6jRV9sb2MpCgniiIJsb2fPiF/iiILOsSA9IG1lYW4ozqPiiIJsb2fPiF/iiILOsSkKCUVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xID0gbWVhbijOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoKCWRFID0gMihFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSAtIEVfbG9jICog4oiCbG9nz4hf4oiCzrEpCglyZXR1cm4gZEUsIEVfbG9jCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3hKdjZWxsX2lk2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzekY29kZdnuQHRlc3RzZXQgImluaXRjZmchIiBiZWdpbgogICAgZGF0YTEgPSByYW5kKDEwKQogICAgZGF0YTIgPSByYW5kKDEwKQogICAgZGF0YTMgPSByYW5kKDEwKQogICAgaW5pdGNmZyEoZGF0YTEsIGRhdGEyLCBkYXRhMykKCUBzaG93IGRhdGExCiAgICBAdGVzdCBhbGwoLTIgLjw9IGRhdGExIC48IDIpCiAgICBAdGVzdCBhbGwoLTIgLjw9IGRhdGEyIC48IDIpCiAgICBAdGVzdCBhbGwoLTIgLjw9IGRhdGEzIC48IDIpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkMDY4Y2I5N2UtODcwNC00NThlLThmZWYtMjhhZjZlZmE1OTZihKdjZWxsX2lk2SQwNjhjYjk3ZS04NzA0LTQ1OGUtOGZlZi0yOGFmNmVmYTU5NmKkY29kZdkkcmFkaXVzKHgseSx6KSA9IOKImih4XjIgKyB5XjIgKyB6XjIpqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODaEp2NlbGxfaWTZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqRjb2Rl2gZyZnVuY3Rpb24gbWFpbigpCiAgICBud2Fsa2VycyA9IDQwMAogICAgc2FtcGxlID0gMzAwMDAKCiAgICDOsV9pbml0ID0gMC44CiAgICB4ID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKICAgIHkgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQogICAgeiA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCglyID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKCc6jRV9sb2MgPSB6ZXJvcyhud2Fsa2VycykKCc6j4oiCbG9nz4hf4oiCzrEgPSB6ZXJvcyhud2Fsa2VycykKCc6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgPSB6ZXJvcyhud2Fsa2VycykKICAgIGggPSAxZS0zCgoJzrEgPSDOsV9pbml0Cgl3aGlsZSB0cnVlCgkJaW5pdGNmZyEoeCx5LHopCgkJc2V0Mnplcm8hKM6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoJCWRFLCBfID0gbWV0cm9wb2xpc190ZXN0ISgKCQkJzrEsCgkJCc6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJCQl4LHkseixyCgkJKQoKCQnOseKCiiA9IM6xICsgaAoJCWluaXRjZmchKHgseSx6KQoJCXNldDJ6ZXJvISjOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSkKCQlkReKCiiwgXyA9IG1ldHJvcG9saXNfdGVzdCEoCgkJCc6x4oKKLAoJCQnOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwKCQkJeCx5LHoscgoJCSkKCgkJzrHigosgPSDOsSAtIGgKCQlpbml0Y2ZnISh4LHkseikKCQlzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCgkJZEXigossIF8gPSBtZXRyb3BvbGlzX3Rlc3QhKAoJCQnOseKCiywKCQkJzqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJCXgseSx6LHIKCQkpCgogICAgICAgIGRkRSA9IChkReKCiiAtIGRF4oKLKSAvICgyaCkKCQkjIG5ld3RvbiDms5XjgacgzrEg44KS5pu05paw44GZ44KLCiAgICAgICAgzrFfbmV4dCA9IM6xIC0gZEUgLyBkZEUKICAgICAgICBAaW5mbyAizrEiIM6xX25leHQsIM6xCiAgICAgICAgaWYgYWJzKM6xX25leHQgLSDOsSkgPCAxZS02CgkJCc6xID0gzrFfbmV4dAogICAgICAgICAgICBicmVhawogICAgICAgIGVuZAoJCc6xID0gzrFfbmV4dAogICAgZW5kCgogICAgYWxwaGFfdmEgPSDOsQoJIyDnkIbmg7Pjga8gMS4wCiAgICBAcHJpbnRmKCLjgqjjg43jg6vjgq7jg7zjgYzmnIDlsI/jgavjgarjgovlpInliIbjg5Hjg6njg6Hjg7zjgr/jga8lLjEwZlxuIiwgYWxwaGFfdmEpIAoJaW5pdGNmZyEoeCx5LHopCglzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCglfLCBFID0gbWV0cm9wb2xpc190ZXN0ISgKCQlhbHBoYV92YSwKCQnOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwKCQl4LHkseixyCgkpCgkjIOeQhuaDs+OBryAtMC41CglAcHJpbnRmKCLln7rlupXnirbmhYvjga7jgqjjg43jg6vjgq7jg7zjga8lLjEwZlxuIiwgRSkKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTCq25vdGVib29rX2lk2SRkMjcwY2ZkOC1hYjhjLTExZWUtMjgwNC1iNTQyM2QyZmY5MTCraW5fdGVtcF9kaXLCqG1ldGFkYXRhgA==";
window.pluto_preamble_html = undefined;
</script>
<meta name="pluto-insertion-spot-parameters">
<script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.c69300f2.js" type="module" defer="" integrity="sha384-sLMlcWvt4TmaGbLLnhN9nz+JY2xsbCeklFggrWNJ4zBrwPosiufyTbUD6aYbHgE4" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.8a3292da.js" integrity="sha384-itp4oE2PRbSrrTHVpWh8sqAuVUsz7ja6L2Dgp/JRfMCD2AwVdTk56K96POF3oLmu" crossorigin="anonymous"></script><script type="text/javascript" id="MathJax-script" integrity="sha384-4kE/rQ11E8xT9QgrCBTyvenkuPfQo8rXYQvJZuMgxyPOoUfpatjQPlgdv6V5yhUK" crossorigin="" not-the-src-yet="https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg-full.js" async=""></script></head><body class="loading no-MαθJax"> <div style="display:flex;min-height:100vh;"> <pluto-editor class="fullscreen"></pluto-editor> </div> </body></html>
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
extern crate rand;
extern crate rand_distr;
use rand::Rng;
use rand_distr::{Distribution, Normal};
use std::f64;
use std::time::Instant;
const N_WALKERS: usize = 400;
const N_SAMPLES_BURN_IN: usize = 4000;
const N_SAMPLES: usize = 30000;
const PI: f64 = std::f64::consts::PI;
const PI2: f64 = 2.0 * std::f64::consts::PI;
const SIGMA: f64 = 0.4;
fn metropolis_test(alpha: f64) -> [f64; 2] {
let mut dE_E = [0.0; 2];
let mut sum_d_ln_psi = [0.0; N_WALKERS];
let mut sum_E_loc = [0.0; N_WALKERS];
let mut sum_E_loc_d_ln_psi = [0.0; N_WALKERS];
let mut vec = vec![[0.0; N_WALKERS]; 3];
let mut rr = [0.0; N_WALKERS];
let mut vec_next = vec![[0.0; N_WALKERS]; 3];
let mut rr_next = [0.0; N_WALKERS];
let mut rng = rand::thread_rng();
// 正規分布を生成するためのDistributionを作成
let normal = Normal::new(0.0, 1.0).unwrap();
for i_w in 0..N_WALKERS {
sum_E_loc_d_ln_psi[i_w] = 0.0;
sum_E_loc[i_w] = 0.0;
sum_d_ln_psi[i_w] = 0.0;
}
for i_w in 0..N_WALKERS {
for i in 0..3 {
vec[i][i_w] = 4.0 * (rng.gen::<f64>() - 0.5);
}
rr[i_w] = (vec[0][i_w].powi(2) + vec[1][i_w].powi(2) + vec[2][i_w].powi(2)).sqrt();
}
for iter in 0..N_SAMPLES {
for i_w in 0..N_WALKERS {
let mut u = [0.0; 5];
u[0] = normal.sample(&mut rng);
u[1] = normal.sample(&mut rng);
u[2] = normal.sample(&mut rng);
u[3] = normal.sample(&mut rng);
u[4] = rng.gen::<f64>();
for i in 0..3 {
vec_next[i][i_w] = vec[i][i_w] + SIGMA * u[i];
}
rr_next[i_w] =
(vec_next[0][i_w].powi(2) + vec_next[1][i_w].powi(2) + vec_next[2][i_w].powi(2))
.sqrt();
if u[4] < (2.0 * alpha * (rr[i_w] - rr_next[i_w])).exp() {
for i in 0..3 {
vec[i][i_w] = vec_next[i][i_w];
}
rr[i_w] = rr_next[i_w];
}
}
if iter >= N_SAMPLES_BURN_IN {
for i_w in 0..N_WALKERS {
let E_loc = -1.0 / rr[i_w] - 0.5 * alpha * (alpha - 2.0 / rr[i_w]);
let d_ln_psi = -rr[i_w];
let E_loc_d_ln_psi = E_loc * d_ln_psi;
sum_E_loc[i_w] += E_loc;
sum_d_ln_psi[i_w] += d_ln_psi;
sum_E_loc_d_ln_psi[i_w] += E_loc_d_ln_psi;
}
}
}
let inv_denominator = 1.0 / (N_SAMPLES - N_SAMPLES_BURN_IN) as f64;
for i_w in 0..N_WALKERS {
sum_E_loc[i_w] *= inv_denominator;
sum_d_ln_psi[i_w] *= inv_denominator;
sum_E_loc_d_ln_psi[i_w] *= inv_denominator;
}
let E_loc = sum_E_loc.iter().sum::<f64>() / N_WALKERS as f64;
let d_ln_psi = sum_d_ln_psi.iter().sum::<f64>() / N_WALKERS as f64;
let E_loc_d_ln_psi = sum_E_loc_d_ln_psi.iter().sum::<f64>() / (N_WALKERS) as f64;
dE_E[0] = 2.0 * (E_loc_d_ln_psi - E_loc * d_ln_psi);
dE_E[1] = E_loc;
dE_E
}
fn mcmc() {
let mut alpha = 0.8;
let _alpha_ini = 0.8;
let h = 1e-3;
let _rng = rand::thread_rng();
for _ in 0..10 {
let dE_E = metropolis_test(alpha);
let dE = dE_E[0];
let alpha_plus = alpha + h;
let dE_E_plus = metropolis_test(alpha_plus);
let dE_plus = dE_E_plus[0];
let alpha_minus = alpha - h;
let dE_E_minus = metropolis_test(alpha_minus);
let dE_minus = dE_E_minus[0];
let d_dE = (dE_plus - dE_minus) / (2.0 * h);
let alpha_next = alpha - dE / d_dE;
println!("{:.15} {:.15}", alpha_next, alpha);
if (alpha_next - alpha).abs() < 1e-6 {
alpha = alpha_next;
break;
}
alpha = alpha_next;
}
println!("{:.15} 1.0 になってたらOK", alpha);
let dE_E = metropolis_test(alpha);
let E = dE_E[1];
println!("{:.15} -0.5 になってたらOK", E);
}
fn main() {
let start_time = Instant::now();
mcmc();
let end_time = Instant::now();
let elapsed_time = end_time.duration_since(start_time);
println!("Elapsed Time: {:?}", elapsed_time);
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=device-width"><meta charset="utf-8">
<meta name="pluto-insertion-spot-meta">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="white"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#2a2928"><meta name="color-scheme" content="light dark"><link rel="icon" type="image/png" sizes="16x16" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-16x16.347d2855.png" integrity="sha384-3qsGeVLdddzV9oIkj3PhXXQX2CZCjOD/CiyrPQOX6InOWw3HAHClrsQhPfX9uRAj" crossorigin="anonymous"><link rel="icon" type="image/png" sizes="32x32" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-32x32.8789add4.png" integrity="sha384-cOe5vSoBIgKNgkUL27p9RpsGVY0uBg9PejLccDy+fR8ZD1Iv5dF1MGHjIZAIZwm6" crossorigin="anonymous"><link rel="icon" type="image/png" sizes="96x96" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon-96x96.48689391.png" integrity="sha384-TN49cYb8GyNmrZT14bsYXXo4l1x1NJeJ/EHuVAauAKsNPopPHLojijs9jFT4Vs8c" crossorigin="anonymous"><link rel="pluto-logo-big" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/logo.004c1d7c.svg" integrity="sha384-GkQkODcGxsrSRJCkeakBXihum0GUM44cwBgKyutDimectXCbCgj6Vu3jlrueqEcN" crossorigin="anonymous"><link rel="pluto-logo-small" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/favicon_unsaturated.d1387b25.svg" integrity="sha384-omwjH+Qy3hpAVf5FYd/pkaDBuVAfsEDRN7eBxEA8Ek00OAWP+aiV+GpEYk3I7lyo" crossorigin="anonymous"><script type="module" src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.23f324ce.js" integrity="sha384-4l9NNFe3thsPdrGcAdnBEfNmojvUidAN6OBuPDii3JDkVIF5TMXkICWqHEsh8sXq" crossorigin="anonymous"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/juliamono.c6034ab4.css" integrity="sha384-n0za6lUXlyf4XC+nGkZWj3TLDnRbNpAcoi4PZGSlQMPoyqGa9kGY+ZXkUgZGIhQt" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.c98fb036.css" integrity="sha384-hq2r9iSY9J+3FSHCB6PZ5jTCnnhSL7DhUmwTXDjMmklxEsQ+2YHWCS7Cm0i5Y/rT" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/vollkorn.089565a8.css" integrity="sha384-jnV/84VtSgBLF70H+s2rxJcOUZIMDR+X/ElFZA83i9ZtZSWiIMFAgPyrWkOJV08q" crossorigin="anonymous"><script defer="">console.log("Pluto.jl, by Fons van der Plas (https://github.com/fonsp), Mikołaj Bochenski (https://github.com/malyvsen), Michiel Dral (https://github.com/dralletje) and friends 🌈");</script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.b8733d72.js" defer="" integrity="sha384-84yPd6AGZ/1IUiaBlssipmMKMFz9WGFQ+u8vYZ9cWicH6bZm7ZOej+kLDXnIIAQJ" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.9f9dc874.js" defer="" integrity="sha384-tkFo1EK72I9JvoTmHFa199dfRzW8mkXPUkHb/N7UhYI+bxKzX3Kh8LNCZz1ltsFF" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.90ede145.js" defer="" integrity="sha384-CuNU9gQg6fa/yynNqNWjHWzPm4nj+d7O6+HXsNGSqClhs/bYQIbBC3Lw/kh8Ukui" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.dbeed08a.js" defer="" integrity="sha384-1BEdQwXfZi4ZpsNV8w1X8pQcVK1/DS/+/M8OTo3gol7mdEspSN7nT6llX57NQCSt" crossorigin="anonymous"></script><script id="iframe-resizer-content-window-script" src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.6386bd9d.js" crossorigin="anonymous" defer="" integrity="sha384-tgN2a0VDi/lCYwZuDqT7L+A/Y/9kpxf3HV7zv2BJ5Fu7zW0EClq0nM4crfK3TRPs"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.2dae1b31.css" type="text/css" integrity="sha384-Tcw0GaMme/KbluiF6zJjOMqdXU+GeDMSRoX0MhIH0cfyRAO7XQQWWwfsJY7Wx2yK" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.82b535be.css" type="text/css" media="all" data-pluto-file="hide-ui" integrity="sha384-oYS1v2EOz2AtXoLXUVgvn3mEtQdJg1mfwZwLfJi++UQyF/qo43KuvjZ603iShU3X" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.ec3a6a5b.css" type="text/css" integrity="sha384-SuGFZkuBuG+lmfz6RbnvjtcyIh8W1xDYi1sebwn7bl9VMQnhmr6EniSmIdcHJ55l" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.1f4cf2ca.css" type="text/css" integrity="sha384-lBSBsn8FT1UzGOsNVudfV8RSHQEuNWqrCb6xQnF10uvF9AiCzYsCRXvKlhtQvV3c" crossorigin="anonymous"><link rel="preload" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/juliamono.c6034ab4.css" as="style" integrity="sha384-n0za6lUXlyf4XC+nGkZWj3TLDnRbNpAcoi4PZGSlQMPoyqGa9kGY+ZXkUgZGIhQt" crossorigin="anonymous"><link rel="preload" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/vollkorn.089565a8.css" as="style" integrity="sha384-jnV/84VtSgBLF70H+s2rxJcOUZIMDR+X/ElFZA83i9ZtZSWiIMFAgPyrWkOJV08q" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.e82e08bd.css" type="text/css" integrity="sha384-7YN+h8b6N4N65qk8TG/J2KPF95D8z3sGNd06rokz4CX9oWu0KnRAF5cVWu3BkkaN" crossorigin="anonymous"><script data-pluto-file="launch-parameters">
window.pluto_notebook_id = undefined;
window.pluto_isolated_cell_ids = undefined;
window.pluto_notebookfile = "data:text/julia;charset=utf-8;base64,IyMjIEEgUGx1dG8uamwgbm90ZWJvb2sgIyMjCiMgdjAuMTkuMzYKCnVzaW5nIE1hcmtkb3duCnVzaW5nIEludGVyYWN0aXZlVXRpbHMKCiMg4pWU4pWQ4pWhIDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MgpiZWdpbgoJdXNpbmcgTG9vcFZlY3Rvcml6YXRpb24KCgl1c2luZyBTdGF0aXN0aWNzCgl1c2luZyBQcmludGYKZW5kCgojIOKVlOKVkOKVoSA5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWEKdXNpbmcgVGVzdAoKIyDilZTilZDilaEgN2JiZjUwMjUtMDM0Ni00MTA0LWE0N2EtNjNmNDkyZmM0MDI4Cm1kIiIiCgpb5aSJ5YiG44Oi44Oz44OG44Kr44Or44OtKFZNQynjgpLjgoTjgaPjgabjgb/jgot+5rC057Sg5Y6f5a2Qfl0oaHR0cHM6Ly9taXlhbnRhcnVtaS5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDIyLzA0LzA4LzA4MDAwMCkg44GuIEp1bGlhIOenu+akjeOCkuihjOOBo+OBny4g44Oh44OI44Ot44Od44Oq44K544OG44K544OI44Gu6YOo5YiG44KS6Zai5pWw5YyW44GX5pu444GP44G544GN44Kz44O844OJ44Gu6YeP44KS5aSn5bmF44Gr5rib44KJ44GZ44GT44Go44GM44Gn44GN44Gf77yOIEp1bGlh44GvVW5pY29kZeaWh+Wtl+OBjOS9v+OBiOOCi+OBruOBp+OCquODquOCuOODiuODq+OBruWun+ijheOCkuOCguOBqOOBq+WkieaVsOWQjeOCkumBqeWunOWkieabtOOBl+OBpuOBhOOCi++8jgoKbWV0cm9wb2xpc190ZXN0ISDjga7lvJXmlbDjga/jgYTjgaPjgbHjgYTjgYLjgovjgYzvvIzjgoLjgaPjgahKdWxpYeOCieOBl+OBj+abuOOBj+OBruOBp+OBguOCjOOBquOCs+ODrOOCieOCkuOBvuOBqOOCgeOCi+ani+mAoOS9k+OCkuWumue+qeOBmeOCi+OBueOBjeOBp+OBguOCi++8jgoiIiIKCiMg4pWU4pWQ4pWhIDZmMzQ5OTA1LTU2ZDAtNDBmYS1iMjkwLTAzNmMyNThjYWRjYgoiIiIKCUMgcG9ydCB0byBKdWxpYSBmb3IgYHNob2tpa2FgCiIiIgpmdW5jdGlvbiBzZXQyemVybyEoZGF0YTE6OlQsIGRhdGEyOjpULCBkYXRhMzo6VCkgd2hlcmUge1Q8OkFic3RyYWN0VmVjdG9yfQogICAgZm9yIGQgaW4gKGRhdGExLCBkYXRhMiwgZGF0YTMpCiAgICAgICAgZmlsbCEoZCwgemVybyhlbHR5cGUoZCkpKQogICAgZW5kCmVuZAoKIyDilZTilZDilaEgNDA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4CkB0ZXN0c2V0ICJzZXQyemVybyEiIGJlZ2luCglkYXRhMSA9IHJhbmQoMTApCiAgICBkYXRhMiA9IHJhbmQoMTApCiAgICBkYXRhMyA9IHJhbmQoMTApCiAgICBzZXQyemVybyEoZGF0YTEsIGRhdGEyLCBkYXRhMykKICAgIEB0ZXN0IGRhdGExID09IGRhdGEyID09IGRhdGEzID09IHplcm9zKDEwKQplbmQKCiMg4pWU4pWQ4pWhIDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNgpmdW5jdGlvbiBpbml0Y2ZnIShkYXRhMTo6VCwgZGF0YTI6OlQsIGRhdGEzOjpUKSB3aGVyZSB7VDw6QWJzdHJhY3RWZWN0b3J9CglAdHVyYm8gZGF0YTEgLj0gKHJhbmQobGVuZ3RoKGRhdGExKSkgLi0gMC41KSAuKiAyIC4qIDIKCUB0dXJibyBkYXRhMiAuPSAocmFuZChsZW5ndGgoZGF0YTIpKSAuLSAwLjUpIC4qIDIgLiogMgoJQHR1cmJvIGRhdGEzIC49IChyYW5kKGxlbmd0aChkYXRhMykpIC4tIDAuNSkgLiogMiAuKiAyCmVuZAoKIyDilZTilZDilaEgYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3CkB0ZXN0c2V0ICJpbml0Y2ZnISIgYmVnaW4KICAgIGRhdGExID0gcmFuZCgxMCkKICAgIGRhdGEyID0gcmFuZCgxMCkKICAgIGRhdGEzID0gcmFuZCgxMCkKICAgIGluaXRjZmchKGRhdGExLCBkYXRhMiwgZGF0YTMpCglAc2hvdyBkYXRhMQogICAgQHRlc3QgYWxsKC0yIC48PSBkYXRhMSAuPCAyKQogICAgQHRlc3QgYWxsKC0yIC48PSBkYXRhMiAuPCAyKQogICAgQHRlc3QgYWxsKC0yIC48PSBkYXRhMyAuPCAyKQplbmQKCiMg4pWU4pWQ4pWhIDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNQojIOOBm+OBo+OBi+OBj+OBquOBruOBpyB0dXJibyDjgaggYnJvYWRjYXN0IOOCkuS9v+OBhuOCiOOBhuOBq+OBl+OBn++8jgojIHR1cmJvIG1hY3JvIOOBjOS9v+OBiOOBquOBhOOCseODvOOCueOBoOOBqOODmeOCv+OBq+ODq+ODvOODl+OCkuabuOOBhOOBn+OBu+OBhuOBjOmrmOmAn+OBp+OBguOCiy7jgIAKIyDlvJXmlbDjgYTjgaPjgbHjgYTjgavjgarjgovjga7jga/lm7DjgorjgoLjga4KCmZ1bmN0aW9uIG1ldHJvcG9saXNfdGVzdCEoCgnOsTo6RmxvYXQ2NCwgCgnOo0VfbG9jOjpULCDOo+KIgmxvZ8+IX+KIgs6xOjpULM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrE6OlQsCgl4OjpULCB5OjpULCB6OjpULCByOjpULAoJeOKAsjo6VCwgeeKAsjo6VCwgeuKAsjo6VCwgcuKAsjo6VCwKCWIsIHJfaW52OjpULAoJRV9sb2M6OlQs4oiCbG9nz4hf4oiCzrE6OlQsRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrE6OlQsCikgd2hlcmUgVCA8OiBBYnN0cmFjdFZlY3RvcgoJbnNhbXBsZXMgPSAzMDAwMAoJc2lnbWEgPSAwLjQKCW5zYW1wbGVzX2J1cm5faW4gPSA0MDAwCglud2Fsa2VycyA9IGxlbmd0aCh4KQoKCWZvciBpIGluIDE6bnNhbXBsZXMJCgkJQHR1cmJvIEAuIGJlZ2luCgkJCXjigLIgPSB4ICsgc2lnbWEgKiAkcmFuZG4obndhbGtlcnMpCgkJCXnigLIgPSB5ICsgc2lnbWEgKiAkcmFuZG4obndhbGtlcnMpCgkJCXrigLIgPSB6ICsgc2lnbWEgKiAkcmFuZG4obndhbGtlcnMpCgkJCXLigLIgPSBzcXJ0KHjigLIgXiAyICsgeeKAsiBeIDIgKyB64oCyIF4gMikKCgkJCWIgPSAkcmFuZChud2Fsa2VycykgPCBleHAoLTLOsSpy4oCyICsgMs6xKnIpCgkJCXggPSB44oCyICogYiArIHggKiAoMSAtIGIpCgkJCXkgPSB54oCyICogYiArIHkgKiAoMSAtIGIpCgkJCXogPSB64oCyICogYiArIHogKiAoMSAtIGIpCgkJCXIgPSBy4oCyICogYiArIHIgKiAoMSAtIGIpCgkJZW5kCgkJCgkJQHR1cmJvIEAuIGJlZ2luCgkJCXJfaW52ID0gMSAvIHIKCQkJRV9sb2MgPSAtcl9pbnYgLSAwLjXOsSAqICjOsSAtIDJyX2ludikKCQkJ4oiCbG9nz4hf4oiCzrEgPSAtcgoJCQlFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSA9IEVfbG9jICog4oiCbG9nz4hf4oiCzrEKCgkJCWIgPSAoaSDiiaUgbnNhbXBsZXNfYnVybl9pbikKCQkJzqNFX2xvYyArPSBiICogRV9sb2MKCQkJzqPiiIJsb2fPiF/iiILOsSArPSBiICog4oiCbG9nz4hf4oiCzrEKCQkJzqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSArPSBiICogRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEKCQllbmQKCWVuZAoJIyDlkIQgaiDjgavlr77jgZfjgabjga7lubPlnYfph4/jgpLoqIjnrpfjgZnjgosuIOODoeODouODquOCkuS9v+OBhOWbnuOBmeOBn+OCgeOBqyBpbi1wbGFjZSDoqIjnrpfjgpLjgZfjgabjgYTjgovvvI4KCUAuIGJlZ2luCgkJzqNFX2xvYyAvPSAobnNhbXBsZXMgLSBuc2FtcGxlc19idXJuX2luICsgMSkKCQnOo+KIgmxvZ8+IX+KIgs6xIC89IChuc2FtcGxlcyAtIG5zYW1wbGVzX2J1cm5faW4gKyAxKQoJCc6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgLz0gKG5zYW1wbGVzIC0gbnNhbXBsZXNfYnVybl9pbiArIDEpCgllbmQKCSMgaiDjga7ou7jjgavlr77jgZfjgablubPlnYflgKTjgpLoqIjnrpfjgZnjgosKCc68RV9sb2MgPSBtZWFuKM6jRV9sb2MpCgnOvOKIgmxvZ8+IX+KIgs6xID0gbWVhbijOo+KIgmxvZ8+IX+KIgs6xKQoJzrxFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSA9IG1lYW4ozqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSkKCglkRSA9IDIozrxFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSAtIM68RV9sb2MgKiDOvOKIgmxvZ8+IX+KIgs6xKQoJcmV0dXJuIGRFLCDOvEVfbG9jCmVuZAoKIyDilZTilZDilaEgYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2CmZ1bmN0aW9uIG1haW4oYWxwaGFfaW5pdCkKICAgIG53YWxrZXJzID0gNDAwCiAgICBzYW1wbGUgPSAzMDAwMAoKICAgIM6xX2luaXQgPSAwLjgKICAgIHggPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQogICAgeSA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCiAgICB6ID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKCXIgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQogICAgeOKAsiA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCiAgICB54oCyID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKICAgIHrigLIgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQoJcuKAsiA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCgoJzqNFX2xvYyA9IHplcm9zKG53YWxrZXJzKQoJzqPiiIJsb2fPiF/iiILOsSA9IHplcm9zKG53YWxrZXJzKQoJzqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSA9IHplcm9zKG53YWxrZXJzKQogICAgaCA9IDFlLTMKCgliID0gc2ltaWxhcih4KQoJcl9pbnYgPSBzaW1pbGFyKHgpCglFX2xvYyA9IHNpbWlsYXIoeCkKCeKIgmxvZ8+IX+KIgs6xID0gc2ltaWxhcih4KQoJRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgPSBzaW1pbGFyKHgpCgoJzrEgPSBhbHBoYV9pbml0Cgl3aGlsZSB0cnVlCgkJaW5pdGNmZyEoeCx5LHopCgkJQHR1cmJvIEAuIHIgPSBzcXJ0KHggXiAyICsgeSBeIDIgKyB6IF4gMikKCQlzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCgkJZEUsIF8gPSBtZXRyb3BvbGlzX3Rlc3QhKAoJCQnOsSwKCQkJzqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJCXgseSx6LHIsCgkJCXjigLIseeKAsix64oCyLHLigLIsCgkJCWIsIHJfaW52LAoJCQlFX2xvYyziiIJsb2fPiF/iiILOsSxFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwpCgoJCc6x4oKKID0gzrEgKyBoCgkJaW5pdGNmZyEoeCx5LHopCgkJQHR1cmJvIEAuIHIgPSBzcXJ0KHggXiAyICsgeSBeIDIgKyB6IF4gMikKCQlzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCgkJZEXigoosIF8gPSBtZXRyb3BvbGlzX3Rlc3QhKAoJCQnOseKCiiwKCQkJzqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJCXgseSx6LHIsCgkJCXjigLIseeKAsix64oCyLHLigLIsCgkJCWIsIHJfaW52LAoJCQlFX2xvYyziiIJsb2fPiF/iiILOsSxFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwKCQkpCgoJCc6x4oKLID0gzrEgLSBoCgkJaW5pdGNmZyEoeCx5LHopCgkJQHR1cmJvIEAuIHIgPSBzcXJ0KHggXiAyICsgeSBeIDIgKyB6IF4gMikKCQlzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCgkJZEXigossIF8gPSBtZXRyb3BvbGlzX3Rlc3QhKAoJCQnOseKCiywKCQkJzqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJCXgseSx6LHIsCgkJCXjigLIseeKAsix64oCyLHLigLIsCgkJCWIsIHJfaW52LAoJCQlFX2xvYyziiIJsb2fPiF/iiILOsSxFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwKCQkpCgogICAgICAgIGRkRSA9IChkReKCiiAtIGRF4oKLKSAvICgyaCkKCQkjIG5ld3RvbiDms5XjgacgzrEg44KS5pu05paw44GZ44KLCiAgICAgICAgzrFfbmV4dCA9IM6xIC0gZEUgLyBkZEUKICAgICAgICBAaW5mbyAizrEiIM6xX25leHQsIM6xCiAgICAgICAgaWYgYWJzKM6xX25leHQgLSDOsSkgPCAxZS02CgkJCc6xID0gzrFfbmV4dAogICAgICAgICAgICBicmVhawogICAgICAgIGVuZAoJCc6xID0gzrFfbmV4dAogICAgZW5kCgogICAgYWxwaGFfdmEgPSDOsQoJIyDnkIbmg7Pjga8gMS4wCiAgICBAcHJpbnRmKCLjgqjjg43jg6vjgq7jg7zjgYzmnIDlsI/jgavjgarjgovlpInliIbjg5Hjg6njg6Hjg7zjgr/jga8lLjEwZlxuIiwgYWxwaGFfdmEpIAoJaW5pdGNmZyEoeCx5LHopCglALiByID0gc3FydCh4IF4gMiArIHkgXiAyICsgeiBeIDIpCglzZXQyemVybyEozqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCglfLCBFID0gbWV0cm9wb2xpc190ZXN0ISgKCQlhbHBoYV92YSwKCQnOo0VfbG9jLM6j4oiCbG9nz4hf4oiCzrEszqNFX2xvY190aW1lc1/iiIJsb2fPiF/iiILOsSwKCQl4LHkseixyLAoJCXjigLIseeKAsix64oCyLHLigLIsCgkJYiwgcl9pbnYsCgkJRV9sb2Ms4oiCbG9nz4hf4oiCzrEsRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkpCgkjIOeQhuaDs+OBryAtMC41CglAcHJpbnRmKCLln7rlupXnirbmhYvjga7jgqjjg43jg6vjgq7jg7zjga8lLjEwZlxuIiwgRSkKZW5kCgojIOKVlOKVkOKVoSAwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTYKQHRpbWUgbWFpbigwLjgpCgojIOKVlOKVkOKVoSA3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjQKQHRpbWUgbWFpbigwLjgpCgojIOKVlOKVkOKVoSA4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmQKQHRpbWUgbWFpbigwLjgpCgojIOKVlOKVkOKVoSAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDEKUExVVE9fUFJPSkVDVF9UT01MX0NPTlRFTlRTID0gIiIiCltkZXBzXQpMb29wVmVjdG9yaXphdGlvbiA9ICJiZGNhY2FlOC0xNjIyLTExZTktMmE1Yy01MzI2NzkzMjM4OTAiClByaW50ZiA9ICJkZTA4NThkYS02MzAzLTVlNjctODc0NC01MWVkZGVlZWI4ZDciClN0YXRpc3RpY3MgPSAiMTA3NDViMTYtNzljZS0xMWU4LTExZjktN2QxM2FkMzJhM2IyIgpUZXN0ID0gIjhkZmVkNjE0LWUyMmMtNWUwOC04NWUxLTY1YzUyMzRmMGI0MCIKCltjb21wYXRdCkxvb3BWZWN0b3JpemF0aW9uID0gIn4wLjEyLjE2NiIKIiIiCgojIOKVlOKVkOKVoSAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDIKUExVVE9fTUFOSUZFU1RfVE9NTF9DT05URU5UUyA9ICIiIgojIFRoaXMgZmlsZSBpcyBtYWNoaW5lLWdlbmVyYXRlZCAtIGVkaXRpbmcgaXQgZGlyZWN0bHkgaXMgbm90IGFkdmlzZWQKCmp1bGlhX3ZlcnNpb24gPSAiMS4xMC4wIgptYW5pZmVzdF9mb3JtYXQgPSAiMi4wIgpwcm9qZWN0X2hhc2ggPSAiMzgwNDU0NjE2ZTVlMzQ1YTlhMmFhNmViZDkzN2MxM2M3ZTEyODNmNSIKCltbZGVwcy5BZGFwdF1dCmRlcHMgPSBbIkxpbmVhckFsZ2VicmEiLCAiUmVxdWlyZXMiXQpnaXQtdHJlZS1zaGExID0gImY4YzcyNGEyMDY2YjJkMzdkMDIzNGZlNDAyMmVjNjc5ODcwMjJkMDAiCnV1aWQgPSAiNzllNmEzYWItNWRmYi01MDRkLTkzMGQtNzM4YTJhOTM4YTBlIgp2ZXJzaW9uID0gIjQuMC4wIgoKICAgIFtkZXBzLkFkYXB0LmV4dGVuc2lvbnNdCiAgICBBZGFwdFN0YXRpY0FycmF5c0V4dCA9ICJTdGF0aWNBcnJheXMiCgogICAgW2RlcHMuQWRhcHQud2Vha2RlcHNdCiAgICBTdGF0aWNBcnJheXMgPSAiOTAxMzdmZmEtNzM4NS01NjQwLTgxYjktZTUyMDM3MjE4MTgyIgoKW1tkZXBzLkFycmF5SW50ZXJmYWNlXV0KZGVwcyA9IFsiQWRhcHQiLCAiTGluZWFyQWxnZWJyYSIsICJSZXF1aXJlcyIsICJTcGFyc2VBcnJheXMiLCAiU3VpdGVTcGFyc2UiXQpnaXQtdHJlZS1zaGExID0gImJiZWMwOGEzN2Y4NzIyNzg2ZDg3YmVkZjg0ZWFlMTljMDIwYzRlZmEiCnV1aWQgPSAiNGZiYTI0NWMtMGQ5MS01ZWEwLTliM2UtNmFiYzA0ZWU1N2E5Igp2ZXJzaW9uID0gIjcuNy4wIgoKICAgIFtkZXBzLkFycmF5SW50ZXJmYWNlLmV4dGVuc2lvbnNdCiAgICBBcnJheUludGVyZmFjZUJhbmRlZE1hdHJpY2VzRXh0ID0gIkJhbmRlZE1hdHJpY2VzIgogICAgQXJyYXlJbnRlcmZhY2VCbG9ja0JhbmRlZE1hdHJpY2VzRXh0ID0gIkJsb2NrQmFuZGVkTWF0cmljZXMiCiAgICBBcnJheUludGVyZmFjZUNVREFFeHQgPSAiQ1VEQSIKICAgIEFycmF5SW50ZXJmYWNlR1BVQXJyYXlzQ29yZUV4dCA9ICJHUFVBcnJheXNDb3JlIgogICAgQXJyYXlJbnRlcmZhY2VTdGF0aWNBcnJheXNDb3JlRXh0ID0gIlN0YXRpY0FycmF5c0NvcmUiCiAgICBBcnJheUludGVyZmFjZVRyYWNrZXJFeHQgPSAiVHJhY2tlciIKCiAgICBbZGVwcy5BcnJheUludGVyZmFjZS53ZWFrZGVwc10KICAgIEJhbmRlZE1hdHJpY2VzID0gImFhZTAxNTE4LTUzNDItNTMxNC1iZTE0LWRmMjM3OTAxMzk2ZiIKICAgIEJsb2NrQmFuZGVkTWF0cmljZXMgPSAiZmZhYjU3MzEtOTdiNS01OTk1LTkxMzgtNzllOGMxODQ2ZGYwIgogICAgQ1VEQSA9ICIwNTI3NjhlZi01MzIzLTU3MzItYjFiYi02NmM4YjY0ODQwYmEiCiAgICBHUFVBcnJheXNDb3JlID0gIjQ2MTkyYjg1LWM0ZDUtNDM5OC1hOTkxLTEyZWRlNzdmNDUyNyIKICAgIFN0YXRpY0FycmF5c0NvcmUgPSAiMWU4M2JmODAtNDMzNi00ZDI3LWJmNWQtZDVhNGY4NDU1ODNjIgogICAgVHJhY2tlciA9ICI5Zjc4ODNhZC03MWMwLTU3ZWItOWY3Zi1iNWM5ZTZkMzc4OWMiCgpbW2RlcHMuQXJ0aWZhY3RzXV0KdXVpZCA9ICI1NmYyMmQ3Mi1mZDZkLTk4ZjEtMDJmMC0wOGRkYzA5MDdjMzMiCgpbW2RlcHMuQmFzZTY0XV0KdXVpZCA9ICIyYTBmNDRlMy02YzgzLTU1YmQtODdlNC1iMTk3OGQ5OGJkNWYiCgpbW2RlcHMuQml0VHdpZGRsaW5nQ29udmVuaWVuY2VGdW5jdGlvbnNdXQpkZXBzID0gWyJTdGF0aWMiXQpnaXQtdHJlZS1zaGExID0gIjBjNWY4MWY0N2JiYmNmNGFlYTdiMjk1OTEzNTcxMzQ1OTE3MDc5OGIiCnV1aWQgPSAiNjI3ODM5ODEtNGNiZC00MmZjLWJjYTgtMTYzMjVkZThkYzRiIgp2ZXJzaW9uID0gIjAuMS41IgoKW1tkZXBzLkNQVVN1bW1hcnldXQpkZXBzID0gWyJDcHVJZCIsICJJZkVsc2UiLCAiUHJlY29tcGlsZVRvb2xzIiwgIlN0YXRpYyJdCmdpdC10cmVlLXNoYTEgPSAiNjAxZjdlN2IzZDM2ZjE4NzkwZTJjYWY4M2E4ODJkODhlOWI3MWZmMSIKdXVpZCA9ICIyYTBmYmYzZC1iYjljLTQ4ZjMtYjBhOS04MTRkOTlmZDdhYjkiCnZlcnNpb24gPSAiMC4yLjQiCgpbW2RlcHMuQ2xvc2VPcGVuSW50ZXJ2YWxzXV0KZGVwcyA9IFsiU3RhdGljIiwgIlN0YXRpY0FycmF5SW50ZXJmYWNlIl0KZ2l0LXRyZWUtc2hhMSA9ICI3MDIzMmY4MmZmYWFiOWRjNTI1ODVlMGRkMDQzYjVlMGM2YjcxNGYxIgp1dWlkID0gImZiNmExNWIyLTcwM2MtNDBkZi05MDkxLTA4YTA0OTY3Y2ZhOSIKdmVyc2lvbiA9ICIwLjEuMTIiCgpbW2RlcHMuQ29tcGF0XV0KZGVwcyA9IFsiVVVJRHMiXQpnaXQtdHJlZS1zaGExID0gIjg4NjgyNmQ3NmVhOWU3MmIzNWZjZDAwMGU1MzU1ODhmN2I2MGYyMWQiCnV1aWQgPSAiMzRkYTIxODUtYjI5Yi01YzEzLWIwYzctYWNmMTcyNTEzZDIwIgp2ZXJzaW9uID0gIjQuMTAuMSIKd2Vha2RlcHMgPSBbIkRhdGVzIiwgIkxpbmVhckFsZ2VicmEiXQoKICAgIFtkZXBzLkNvbXBhdC5leHRlbnNpb25zXQogICAgQ29tcGF0TGluZWFyQWxnZWJyYUV4dCA9ICJMaW5lYXJBbGdlYnJhIgoKW1tkZXBzLkNvbXBpbGVyU3VwcG9ydExpYnJhcmllc19qbGxdXQpkZXBzID0gWyJBcnRpZmFjdHMiLCAiTGliZGwiXQp1dWlkID0gImU2NmUwMDc4LTcwMTUtNTQ1MC05MmY3LTE1ZmJkOTU3ZjJhZSIKdmVyc2lvbiA9ICIxLjAuNSsxIgoKW1tkZXBzLkNwdUlkXV0KZGVwcyA9IFsiTWFya2Rvd24iXQpnaXQtdHJlZS1zaGExID0gImZjYmI3MmIwMzI2OTI2MTBiZmJkYjE1MDE4YWMxNmEzNmNmMmU0MDYiCnV1aWQgPSAiYWRhZmM5OWItZTM0NS01ODUyLTk4M2MtZjI4YWNiOTNkODc5Igp2ZXJzaW9uID0gIjAuMy4xIgoKW1tkZXBzLkRhdGVzXV0KZGVwcyA9IFsiUHJpbnRmIl0KdXVpZCA9ICJhZGUyY2E3MC0zODkxLTU5NDUtOThmYi1kYzA5OTQzMmUwNmEiCgpbW2RlcHMuRG9jU3RyaW5nRXh0ZW5zaW9uc11dCmRlcHMgPSBbIkxpYkdpdDIiXQpnaXQtdHJlZS1zaGExID0gIjJmYjFlMDJmMmI2MzVkMDg0NWRmNWQ3YzE2N2ZlYzRkZDczOWIwMGQiCnV1aWQgPSAiZmZiZWQxNTQtNGVmNy01NDJkLWJiYjctYzA5ZDNhNzlmY2FlIgp2ZXJzaW9uID0gIjAuOS4zIgoKW1tkZXBzLkhvc3RDUFVGZWF0dXJlc11dCmRlcHMgPSBbIkJpdFR3aWRkbGluZ0NvbnZlbmllbmNlRnVuY3Rpb25zIiwgIklmRWxzZSIsICJMaWJkbCIsICJTdGF0aWMiXQpnaXQtdHJlZS1zaGExID0gImViOGZlZDI4ZjQ5OTQ2MDBlMjliZWVmNDk3NDQ2MzlkOTg1YTA0YjIiCnV1aWQgPSAiM2U1YjZmYmItMDk3Ni00ZDJjLTkxNDYtZDc5ZGU4M2YyZmIwIgp2ZXJzaW9uID0gIjAuMS4xNiIKCltbZGVwcy5JZkVsc2VdXQpnaXQtdHJlZS1zaGExID0gImRlYmRkMDBmZmVmMDQ2NjVjY2JiM2UxNTA3NDdhNzc1NjBlOGZhZDEiCnV1aWQgPSAiNjE1ZjE4N2MtY2JlNC00ZWYxLWJhM2ItMmZjZjU4ZDZkMTczIgp2ZXJzaW9uID0gIjAuMS4xIgoKW1tkZXBzLkludGVyYWN0aXZlVXRpbHNdXQpkZXBzID0gWyJNYXJrZG93biJdCnV1aWQgPSAiYjc3ZTBhNGMtZDI5MS01N2EwLTkwZTgtOGRiMjVhMjdhMjQwIgoKW1tkZXBzLkxheW91dFBvaW50ZXJzXV0KZGVwcyA9IFsiQXJyYXlJbnRlcmZhY2UiLCAiTGluZWFyQWxnZWJyYSIsICJNYW51YWxNZW1vcnkiLCAiU0lNRFR5cGVzIiwgIlN0YXRpYyIsICJTdGF0aWNBcnJheUludGVyZmFjZSJdCmdpdC10cmVlLXNoYTEgPSAiNjJlZGZlZTMyMTE5ODEyNDFiNTdmZjFjZWRmNGQ3NGQ3OTUxOTI3NyIKdXVpZCA9ICIxMGYxOWZmMy03OThmLTQwNWQtOTc5Yi01NTQ1N2Y4ZmMwNDciCnZlcnNpb24gPSAiMC4xLjE1IgoKW1tkZXBzLkxpYkdpdDJdXQpkZXBzID0gWyJCYXNlNjQiLCAiTGliR2l0Ml9qbGwiLCAiTmV0d29ya09wdGlvbnMiLCAiUHJpbnRmIiwgIlNIQSJdCnV1aWQgPSAiNzZmODU0NTAtNTIyNi01YjVhLThlYWEtNTI5YWQwNDViNDMzIgoKW1tkZXBzLkxpYkdpdDJfamxsXV0KZGVwcyA9IFsiQXJ0aWZhY3RzIiwgIkxpYlNTSDJfamxsIiwgIkxpYmRsIiwgIk1iZWRUTFNfamxsIl0KdXVpZCA9ICJlMzdkYWY2Ny01OGE0LTU5MGEtOGU5OS1iMDI0NWRkMmZmYzUiCnZlcnNpb24gPSAiMS42LjQrMCIKCltbZGVwcy5MaWJTU0gyX2psbF1dCmRlcHMgPSBbIkFydGlmYWN0cyIsICJMaWJkbCIsICJNYmVkVExTX2psbCJdCnV1aWQgPSAiMjk4MTZiNWEtYjlhYi01NDZmLTkzM2MtZWRhZDE4ODZkZmE4Igp2ZXJzaW9uID0gIjEuMTEuMCsxIgoKW1tkZXBzLkxpYmRsXV0KdXVpZCA9ICI4ZjM5OWRhMy0zNTU3LTU2NzUtYjVmZi1mYjgzMmM5N2NiZGIiCgpbW2RlcHMuTGluZWFyQWxnZWJyYV1dCmRlcHMgPSBbIkxpYmRsIiwgIk9wZW5CTEFTX2psbCIsICJsaWJibGFzdHJhbXBvbGluZV9qbGwiXQp1dWlkID0gIjM3ZTJlNDZkLWY4OWQtNTM5ZC1iNGVlLTgzOGZjY2NjOWM4ZSIKCltbZGVwcy5Mb2dnaW5nXV0KdXVpZCA9ICI1NmRkYjAxNi04NTdiLTU0ZTEtYjgzZC1kYjRkNThkYjU1NjgiCgpbW2RlcHMuTG9vcFZlY3Rvcml6YXRpb25dXQpkZXBzID0gWyJBcnJheUludGVyZmFjZSIsICJDUFVTdW1tYXJ5IiwgIkNsb3NlT3BlbkludGVydmFscyIsICJEb2NTdHJpbmdFeHRlbnNpb25zIiwgIkhvc3RDUFVGZWF0dXJlcyIsICJJZkVsc2UiLCAiTGF5b3V0UG9pbnRlcnMiLCAiTGluZWFyQWxnZWJyYSIsICJPZmZzZXRBcnJheXMiLCAiUG9seWVzdGVyV2VhdmUiLCAiUHJlY29tcGlsZVRvb2xzIiwgIlNJTURUeXBlcyIsICJTTEVFRlBpcmF0ZXMiLCAiU3RhdGljIiwgIlN0YXRpY0FycmF5SW50ZXJmYWNlIiwgIlRocmVhZGluZ1V0aWxpdGllcyIsICJVblBhY2siLCAiVmVjdG9yaXphdGlvbkJhc2UiXQpnaXQtdHJlZS1zaGExID0gIjBmNTY0OGZiYWUwZDAxNWUzYWJlNTg2N2JjYTJiMzYyZjY3YTU4OTQiCnV1aWQgPSAiYmRjYWNhZTgtMTYyMi0xMWU5LTJhNWMtNTMyNjc5MzIzODkwIgp2ZXJzaW9uID0gIjAuMTIuMTY2IgoKICAgIFtkZXBzLkxvb3BWZWN0b3JpemF0aW9uLmV4dGVuc2lvbnNdCiAgICBGb3J3YXJkRGlmZkV4dCA9IFsiQ2hhaW5SdWxlc0NvcmUiLCAiRm9yd2FyZERpZmYiXQogICAgU3BlY2lhbEZ1bmN0aW9uc0V4dCA9ICJTcGVjaWFsRnVuY3Rpb25zIgoKICAgIFtkZXBzLkxvb3BWZWN0b3JpemF0aW9uLndlYWtkZXBzXQogICAgQ2hhaW5SdWxlc0NvcmUgPSAiZDM2MGQyZTYtYjI0Yy0xMWU5LWEyYTMtMmEyYWUyZGJjY2U0IgogICAgRm9yd2FyZERpZmYgPSAiZjYzNjlmMTEtNzczMy01ODI5LTk2MjQtMjU2M2FhNzA3MjEwIgogICAgU3BlY2lhbEZ1bmN0aW9ucyA9ICIyNzZkYWY2Ni0zODY4LTU0NDgtOWFhNC1jZDE0NmQ5Mzg0MWIiCgpbW2RlcHMuTWFudWFsTWVtb3J5XV0KZ2l0LXRyZWUtc2hhMSA9ICJiY2FlZjRmYzdhMGNmZTJjYmE2MzZkODRjZGE1NGI1ZTRlNGNhM2NkIgp1dWlkID0gImQxMjVlNGQzLTIyMzctNDcxOS1iMTljLWZhNjQxYjhhNDY2NyIKdmVyc2lvbiA9ICIwLjEuOCIKCltbZGVwcy5NYXJrZG93bl1dCmRlcHMgPSBbIkJhc2U2NCJdCnV1aWQgPSAiZDZmNDM3NmUtYWVmNS01MDVhLTk2YzEtOWMwMjczOTQ2MDdhIgoKW1tkZXBzLk1iZWRUTFNfamxsXV0KZGVwcyA9IFsiQXJ0aWZhY3RzIiwgIkxpYmRsIl0KdXVpZCA9ICJjOGZmZDljMy0zMzBkLTU4NDEtYjc4ZS0wODE3ZDcxNDVmYTEiCnZlcnNpb24gPSAiMi4yOC4yKzEiCgpbW2RlcHMuTmV0d29ya09wdGlvbnNdXQp1dWlkID0gImNhNTc1OTMwLWMyZTMtNDNhOS1hY2U0LTFlOTg4YjJjMTkwOCIKdmVyc2lvbiA9ICIxLjIuMCIKCltbZGVwcy5PZmZzZXRBcnJheXNdXQpnaXQtdHJlZS1zaGExID0gIjZhNzMxZjJiNWMwMzE1NzQxOGEyMGMxMjE5NWViNGI3NGM4Zjg2MjEiCnV1aWQgPSAiNmZlMWJmYjAtZGUyMC01MDAwLThjYTctODBmNTdkMjZmODgxIgp2ZXJzaW9uID0gIjEuMTMuMCIKd2Vha2RlcHMgPSBbIkFkYXB0Il0KCiAgICBbZGVwcy5PZmZzZXRBcnJheXMuZXh0ZW5zaW9uc10KICAgIE9mZnNldEFycmF5c0FkYXB0RXh0ID0gIkFkYXB0IgoKW1tkZXBzLk9wZW5CTEFTX2psbF1dCmRlcHMgPSBbIkFydGlmYWN0cyIsICJDb21waWxlclN1cHBvcnRMaWJyYXJpZXNfamxsIiwgIkxpYmRsIl0KdXVpZCA9ICI0NTM2NjI5YS1jNTI4LTViODAtYmQ0Ni1mODBkNTFjNWIzNjMiCnZlcnNpb24gPSAiMC4zLjIzKzIiCgpbW2RlcHMuUG9seWVzdGVyV2VhdmVdXQpkZXBzID0gWyJCaXRUd2lkZGxpbmdDb252ZW5pZW5jZUZ1bmN0aW9ucyIsICJDUFVTdW1tYXJ5IiwgIklmRWxzZSIsICJTdGF0aWMiLCAiVGhyZWFkaW5nVXRpbGl0aWVzIl0KZ2l0LXRyZWUtc2hhMSA9ICIyNDBkNzE3MGY1ZmZkYjI4NWY5NDI3YjkyMzMzYzM0NjNiZjY1YmY2Igp1dWlkID0gIjFkMDA0MGM5LThiOTgtNGVlNy04Mzg4LTNmNTE3ODljYTBhZCIKdmVyc2lvbiA9ICIwLjIuMSIKCltbZGVwcy5QcmVjb21waWxlVG9vbHNdXQpkZXBzID0gWyJQcmVmZXJlbmNlcyJdCmdpdC10cmVlLXNoYTEgPSAiMDNiNGMyNWI0M2NiODRjZWU1YzkwYWE5YjVlYTBhNzhmZDg0OGQyZiIKdXVpZCA9ICJhZWE3YmUwMS02YTZhLTQwODMtODg1Ni04YTZlNjcwNGQ4MmEiCnZlcnNpb24gPSAiMS4yLjAiCgpbW2RlcHMuUHJlZmVyZW5jZXNdXQpkZXBzID0gWyJUT01MIl0KZ2l0LXRyZWUtc2hhMSA9ICIwMDgwNWNkNDI5ZGNiNDg3MDA2MGZmNDllZjQ0MzQ4NmMyNjJlMzhlIgp1dWlkID0gIjIxMjE2YzZhLTJlNzMtNjU2My02ZTY1LTcyNjU2NjY1NzI1MCIKdmVyc2lvbiA9ICIxLjQuMSIKCltbZGVwcy5QcmludGZdXQpkZXBzID0gWyJVbmljb2RlIl0KdXVpZCA9ICJkZTA4NThkYS02MzAzLTVlNjctODc0NC01MWVkZGVlZWI4ZDciCgpbW2RlcHMuUmFuZG9tXV0KZGVwcyA9IFsiU0hBIl0KdXVpZCA9ICI5YTNmODI4NC1hMmM5LTVmMDItOWExMS04NDU5ODBhMWZkNWMiCgpbW2RlcHMuUmVxdWlyZXNdXQpkZXBzID0gWyJVVUlEcyJdCmdpdC10cmVlLXNoYTEgPSAiODM4YTNhNDE4OGUyZGVkODdhNGY5ZjE4NGI0YjBkNzhhMWU5MWNiNyIKdXVpZCA9ICJhZTAyOTAxMi1hNGRkLTUxMDQtOWRhYS1kNzQ3ODg0ODA1ZGYiCnZlcnNpb24gPSAiMS4zLjAiCgpbW2RlcHMuU0hBXV0KdXVpZCA9ICJlYThlOTE5Yy0yNDNjLTUxYWYtODgyNS1hYWE2M2NkNzIxY2UiCnZlcnNpb24gPSAiMC43LjAiCgpbW2RlcHMuU0lNRFR5cGVzXV0KZ2l0LXRyZWUtc2hhMSA9ICIzMzAyODk2MzZmYjgxMDdjNWYzMjA4OGQyNzQxZTlmZDdhMDYxYTVjIgp1dWlkID0gIjk0ZTg1N2RmLTc3Y2UtNDE1MS04OWU1LTc4OGIzMzE3N2JlNCIKdmVyc2lvbiA9ICIwLjEuMCIKCltbZGVwcy5TTEVFRlBpcmF0ZXNdXQpkZXBzID0gWyJJZkVsc2UiLCAiU3RhdGljIiwgIlZlY3Rvcml6YXRpb25CYXNlIl0KZ2l0LXRyZWUtc2hhMSA9ICIzYWFjNmQ2OGM1ZTU3NDQ5ZjViOWI4NjVjOWJhNTBhYzI5NzBjNGNmIgp1dWlkID0gIjQ3NjUwMWU4LTA5YTItNWVjZS04ODY5LWZiODJkZTg5YTFmYSIKdmVyc2lvbiA9ICIwLjYuNDIiCgpbW2RlcHMuU2VyaWFsaXphdGlvbl1dCnV1aWQgPSAiOWU4OGI0MmEtZjgyOS01YjBjLWJiZTktOWU5MjMxOTgxNjZiIgoKW1tkZXBzLlNwYXJzZUFycmF5c11dCmRlcHMgPSBbIkxpYmRsIiwgIkxpbmVhckFsZ2VicmEiLCAiUmFuZG9tIiwgIlNlcmlhbGl6YXRpb24iLCAiU3VpdGVTcGFyc2VfamxsIl0KdXVpZCA9ICIyZjAxMTg0ZS1lMjJiLTVkZjUtYWU2My1kOTNlYmFiNjllYWYiCnZlcnNpb24gPSAiMS4xMC4wIgoKW1tkZXBzLlN0YXRpY11dCmRlcHMgPSBbIklmRWxzZSJdCmdpdC10cmVlLXNoYTEgPSAiZjI5NWUwYTFkYTRjYTQyNTY1OWM1NzQ0MWJjYjU5YWJiMDM1YTRiYyIKdXVpZCA9ICJhZWRmZmNkMC03MjcxLTRjYWQtODlkMC1kYzYyOGY3NmM2ZDMiCnZlcnNpb24gPSAiMC44LjgiCgpbW2RlcHMuU3RhdGljQXJyYXlJbnRlcmZhY2VdXQpkZXBzID0gWyJBcnJheUludGVyZmFjZSIsICJDb21wYXQiLCAiSWZFbHNlIiwgIkxpbmVhckFsZ2VicmEiLCAiUHJlY29tcGlsZVRvb2xzIiwgIlJlcXVpcmVzIiwgIlNwYXJzZUFycmF5cyIsICJTdGF0aWMiLCAiU3VpdGVTcGFyc2UiXQpnaXQtdHJlZS1zaGExID0gIjVkNjY4MThhMzliYjA0YmYzMjhlOTJiYzkzM2VjNWI0ZWU4OGU0MzYiCnV1aWQgPSAiMGQ3ZWQzNzAtZGEwMS00ZjUyLWJkOTMtNDFkMzUwYjhiNzE4Igp2ZXJzaW9uID0gIjEuNS4wIgoKICAgIFtkZXBzLlN0YXRpY0FycmF5SW50ZXJmYWNlLmV4dGVuc2lvbnNdCiAgICBTdGF0aWNBcnJheUludGVyZmFjZU9mZnNldEFycmF5c0V4dCA9ICJPZmZzZXRBcnJheXMiCiAgICBTdGF0aWNBcnJheUludGVyZmFjZVN0YXRpY0FycmF5c0V4dCA9ICJTdGF0aWNBcnJheXMiCgogICAgW2RlcHMuU3RhdGljQXJyYXlJbnRlcmZhY2Uud2Vha2RlcHNdCiAgICBPZmZzZXRBcnJheXMgPSAiNmZlMWJmYjAtZGUyMC01MDAwLThjYTctODBmNTdkMjZmODgxIgogICAgU3RhdGljQXJyYXlzID0gIjkwMTM3ZmZhLTczODUtNTY0MC04MWI5LWU1MjAzNzIxODE4MiIKCltbZGVwcy5TdGF0aXN0aWNzXV0KZGVwcyA9IFsiTGluZWFyQWxnZWJyYSIsICJTcGFyc2VBcnJheXMiXQp1dWlkID0gIjEwNzQ1YjE2LTc5Y2UtMTFlOC0xMWY5LTdkMTNhZDMyYTNiMiIKdmVyc2lvbiA9ICIxLjEwLjAiCgpbW2RlcHMuU3VpdGVTcGFyc2VdXQpkZXBzID0gWyJMaWJkbCIsICJMaW5lYXJBbGdlYnJhIiwgIlNlcmlhbGl6YXRpb24iLCAiU3BhcnNlQXJyYXlzIl0KdXVpZCA9ICI0NjA3YjBmMC0wNmYzLTVjZGEtYjZiMS1hNjE5NmExNzI5ZTkiCgpbW2RlcHMuU3VpdGVTcGFyc2VfamxsXV0KZGVwcyA9IFsiQXJ0aWZhY3RzIiwgIkxpYmRsIiwgImxpYmJsYXN0cmFtcG9saW5lX2psbCJdCnV1aWQgPSAiYmVhODdkNGEtN2Y1Yi01Nzc4LTlhZmUtOGNjNDUxODQ4NDZjIgp2ZXJzaW9uID0gIjcuMi4xKzEiCgpbW2RlcHMuVE9NTF1dCmRlcHMgPSBbIkRhdGVzIl0KdXVpZCA9ICJmYTI2N2YxZi02MDQ5LTRmMTQtYWE1NC0zM2JhZmFlMWVkNzYiCnZlcnNpb24gPSAiMS4wLjMiCgpbW2RlcHMuVGVzdF1dCmRlcHMgPSBbIkludGVyYWN0aXZlVXRpbHMiLCAiTG9nZ2luZyIsICJSYW5kb20iLCAiU2VyaWFsaXphdGlvbiJdCnV1aWQgPSAiOGRmZWQ2MTQtZTIyYy01ZTA4LTg1ZTEtNjVjNTIzNGYwYjQwIgoKW1tkZXBzLlRocmVhZGluZ1V0aWxpdGllc11dCmRlcHMgPSBbIk1hbnVhbE1lbW9yeSJdCmdpdC10cmVlLXNoYTEgPSAiZWRhMDhmN2U5ODE4ZWI1MzY2MWIzZGViNzRlMzE1OTQ2MGRmYmMyNyIKdXVpZCA9ICI4MjkwZDIwOS1jYWUzLTQ5YzAtODAwMi1jOGMyNGQ1N2RhYjUiCnZlcnNpb24gPSAiMC41LjIiCgpbW2RlcHMuVVVJRHNdXQpkZXBzID0gWyJSYW5kb20iLCAiU0hBIl0KdXVpZCA9ICJjZjcxMThhNy02OTc2LTViMWEtOWEzOS03YWRjNzJmNTkxYTQiCgpbW2RlcHMuVW5QYWNrXV0KZ2l0LXRyZWUtc2hhMSA9ICIzODdjMWY3Mzc2MjIzMWU4NmUwYzljNTQ0M2NlM2I0YTBhOWEwYzJiIgp1dWlkID0gIjNhODg0ZWQ2LTMxZWYtNDdkNy05ZDJhLTYzMTgyYzQ5MjhlZCIKdmVyc2lvbiA9ICIxLjAuMiIKCltbZGVwcy5Vbmljb2RlXV0KdXVpZCA9ICI0ZWMwYTgzZS00OTNlLTUwZTItYjlhYy04ZjcyYWNmNWE4ZjUiCgpbW2RlcHMuVmVjdG9yaXphdGlvbkJhc2VdXQpkZXBzID0gWyJBcnJheUludGVyZmFjZSIsICJDUFVTdW1tYXJ5IiwgIkhvc3RDUFVGZWF0dXJlcyIsICJJZkVsc2UiLCAiTGF5b3V0UG9pbnRlcnMiLCAiTGliZGwiLCAiTGluZWFyQWxnZWJyYSIsICJTSU1EVHlwZXMiLCAiU3RhdGljIiwgIlN0YXRpY0FycmF5SW50ZXJmYWNlIl0KZ2l0LXRyZWUtc2hhMSA9ICI3MjA5ZGY5MDFlNmVkNzQ4OWZlOWI3YWEzZTQ2ZmI3ODhlMTVkYjg1Igp1dWlkID0gIjNkNWRkMDhjLWZkOWQtMTFlOC0xN2ZhLWVkMjgzNjA0OGMyZiIKdmVyc2lvbiA9ICIwLjIxLjY1IgoKW1tkZXBzLmxpYmJsYXN0cmFtcG9saW5lX2psbF1dCmRlcHMgPSBbIkFydGlmYWN0cyIsICJMaWJkbCJdCnV1aWQgPSAiOGU4NTBiOTAtODZkYi01MzRjLWEwZDMtMTQ3ODE3NmM3ZDkzIgp2ZXJzaW9uID0gIjUuOC4wKzEiCiIiIgoKIyDilZTilZDilaEgQ2VsbCBvcmRlcjoKIyDilZ/ilIA3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjgKIyDilaDilZA0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTIKIyDilaDilZA5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWEKIyDilaDilZA2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2IKIyDilaDilZA0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTgKIyDilaDilZA1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTYKIyDilaDilZBiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzcKIyDilaDilZA2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTUKIyDilaDilZBhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODYKIyDilaDilZAwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTYKIyDilaDilZA3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjQKIyDilaDilZA4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmQKIyDilZ/ilIAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDEKIyDilZ/ilIAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDIK";
window.pluto_disable_ui = true;
window.pluto_slider_server_url = undefined;
window.pluto_binder_url = "https://mybinder.org/v2/gh/fonsp/pluto-on-binder/v0.19.36";
window.pluto_statefile = "data:;base64,3gARpWJvbmRzgKxjZWxsX3Jlc3VsdHOM2SQ1OTA2ZmExOS1iMjViLTRjNDYtOWM1ZC1kYTBjNDkwZDBjZTaKpnF1ZXVlZMKkbG9nc5CncnVubmluZ8Kmb3V0cHV0hqRib2R52Slpbml0Y2ZnISAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDEgbWV0aG9kKaRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdlnhlLAcTKwcGVyc2lzdF9qc19zdGF0ZcK3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzgAdxf21cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTC2SQ3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjiKpnF1ZXVlZMKkbG9nc5CncnVubmluZ8Kmb3V0cHV0hqRib2R52gJrPGRpdiBjbGFzcz0ibWFya2Rvd24iPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWl5YW50YXJ1bWkuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAyMi8wNC8wOC8wODAwMDAiPuWkieWIhuODouODs+ODhuOCq+ODq+ODrSYjNDA7Vk1DJiM0MTvjgpLjgoTjgaPjgabjgb/jgot+5rC057Sg5Y6f5a2QfjwvYT4g44GuIEp1bGlhIOenu+akjeOCkuihjOOBo+OBny4g44Oh44OI44Ot44Od44Oq44K544OG44K544OI44Gu6YOo5YiG44KS6Zai5pWw5YyW44GX5pu444GP44G544GN44Kz44O844OJ44Gu6YeP44KS5aSn5bmF44Gr5rib44KJ44GZ44GT44Go44GM44Gn44GN44Gf77yOIEp1bGlh44GvVW5pY29kZeaWh+Wtl+OBjOS9v+OBiOOCi+OBruOBp+OCquODquOCuOODiuODq+OBruWun+ijheOCkuOCguOBqOOBq+WkieaVsOWQjeOCkumBqeWunOWkieabtOOBl+OBpuOBhOOCi++8jjwvcD4KPHA+bWV0cm9wb2xpc190ZXN0JiMzMzsg44Gu5byV5pWw44Gv44GE44Gj44Gx44GE44GC44KL44GM77yM44KC44Gj44GoSnVsaWHjgonjgZfjgY/mm7jjgY/jga7jgafjgYLjgozjgarjgrPjg6zjgonjgpLjgb7jgajjgoHjgovmp4vpgKDkvZPjgpLlrprnvqnjgZnjgovjgbnjgY3jgafjgYLjgovvvI48L3A+CjwvZGl2PqRtaW1lqXRleHQvaHRtbKxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WeGUmjuyLBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkN2JiZjUwMjUtMDM0Ni00MTA0LWE0N2EtNjNmNDkyZmM0MDI4uWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOAeBdW7VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NoqmcXVldWVkwqRsb2dzloikbGluZf+jbXNnkqLOsap0ZXh0L3BsYWlup2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NqZrd2FyZ3ORkq0ozrFfbmV4dCwgzrEpkoOoZWxlbWVudHOSkgGSpjEuMDk4OKp0ZXh0L3BsYWlukgKSozAuOKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwOTJmNzcxNjZlN2UwMTY0ZtkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuk1haW5fd29ya3NwYWNlIzE1XzY4YjE2NTY3pGZpbGXZaC9Vc2Vycy90ZXJhc2FraS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vdm1jX3ZlY3Rvcml6ZWQuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3VwrnZtY192ZWN0b3JpemVkpWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTama3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqgwLjk4NzU0Oap0ZXh0L3BsYWlukgKSpjEuMDk4OKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSvMjk4NDM5NzM3YzUwMzdk2SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS6TWFpbl93b3Jrc3BhY2UjMTVfNjhiMTY1NjekZmlsZdloL1VzZXJzL3RlcmFzYWtpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by92bWNfdmVjdG9yaXplZC5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCudm1jX3ZlY3Rvcml6ZWSlbGV2ZWykSW5mb4ikbGluZf+jbXNnkqLOsap0ZXh0L3BsYWlup2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NqZrd2FyZ3ORkq0ozrFfbmV4dCwgzrEpkoOoZWxlbWVudHOSkgGSqDAuOTk5OTExqnRleHQvcGxhaW6SApKoMC45ODc1NDmqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksGE3NTJiNDIxMGI5YmIyMGHZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLpNYWluX3dvcmtzcGFjZSMxNV82OGIxNjU2N6RmaWxl2WgvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtY192ZWN0b3JpemVkLmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cK52bWNfdmVjdG9yaXplZKVsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkMGM3YTAxNzUtOGViZC00ZTg5LTliYTAtOTc5N2FhOGU0NTU2pmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKoMC45OTk5MTGqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksDQ4NzZkOTEwMTY0NTVlOGHZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLpNYWluX3dvcmtzcGFjZSMxNV82OGIxNjU2N6RmaWxl2WgvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtY192ZWN0b3JpemVkLmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cK52bWNfdmVjdG9yaXplZKVsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkMGM3YTAxNzUtOGViZC00ZTg5LTliYTAtOTc5N2FhOGU0NTU2pmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKjMS4wqnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLAyOTc1ZDFlYTY1ZTIzOTc22SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS6TWFpbl93b3Jrc3BhY2UjMTVfNjhiMTY1NjekZmlsZdloL1VzZXJzL3RlcmFzYWtpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by92bWNfdmVjdG9yaXplZC5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCudm1jX3ZlY3Rvcml6ZWSlbGV2ZWykSW5mb4ikbGluZf+jbXNnktm444Ko44ON44Or44Ku44O844GM5pyA5bCP44Gr44Gq44KL5aSJ5YiG44OR44Op44Oh44O844K/44GvMC45OTk5OTk5OTk2CuWfuuW6leeKtuaFi+OBruOCqOODjeODq+OCruODvOOBry0wLjUwMDAwMDAwMDAKICAzLjU1NDc3MyBzZWNvbmRzICgxLjkyIE0gYWxsb2NhdGlvbnM6IDUuOTUxIEdpQiwgMjYuMDYlIGdjIHRpbWUpCqp0ZXh0L3BsYWlup2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NqZrd2FyZ3OQomlktFBsdXRvUnVubmVyX2QxYWNiODFlpGZpbGXZVS9Vc2Vycy90ZXJhc2FraS8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdlnhtAfHwiwcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lztPjfFO1cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTC2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTiKpnF1ZXVlZMKkbG9nc5GIpGxpbmX/o21zZ5LZRFRlc3QgU3VtbWFyeTogfCBQYXNzICBUb3RhbCAgVGltZQpzZXQyemVybyEgICAgIHwgICAgMSAgICAgIDEgIDAuMHMKqnRleHQvcGxhaW6nY2VsbF9pZNkkNDA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4pmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlVL1VzZXJzL3RlcmFzYWtpLy5qdWxpYS9wYWNrYWdlcy9QbHV0by9La1ZMSS9zcmMvcnVubmVyL1BsdXRvUnVubmVyL3NyYy9QbHV0b1J1bm5lci5qbKVncm91cKtQbHV0b1J1bm5lcqVsZXZlbK5Mb2dMZXZlbCgtNTU1KadydW5uaW5nwqZvdXRwdXSGpGJvZHmFpnByZWZpeLNUZXN0LkRlZmF1bHRUZXN0U2V0qGVsZW1lbnRzmpKrZGVzY3JpcHRpb26SqyJzZXQyemVybyEiqnRleHQvcGxhaW6Sp3Jlc3VsdHOShaZwcmVmaXijQW55qGVsZW1lbnRzkKR0eXBlpUFycmF5rHByZWZpeF9zaG9ydKCob2JqZWN0aWSwOTVkMzcxMjFlMmJmMTMyMdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0kqhuX3Bhc3NlZJKhMap0ZXh0L3BsYWlukqphbnlub25wYXNzkqVmYWxzZap0ZXh0L3BsYWlukqd2ZXJib3NlkqVmYWxzZap0ZXh0L3BsYWlukqpzaG93dGltaW5nkqR0cnVlqnRleHQvcGxhaW6SqnRpbWVfc3RhcnSSszEuNzA0ODU5OTc4MjMyNDE1ZTmqdGV4dC9wbGFpbpKodGltZV9lbmSSszEuNzA0ODU5OTc4MjQ1NDE1ZTmqdGV4dC9wbGFpbpKoZmFpbGZhc3SSpWZhbHNlqnRleHQvcGxhaW6SpGZpbGWS2VwiL1VzZXJzL3RlcmFzYWtpL3dvcmsvTXlWTUMuamwvcGxheWciIOKLryAzNCBieXRlcyDii68gIjA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4Iqp0ZXh0L3BsYWlupHR5cGWmc3RydWN0rHByZWZpeF9zaG9ydK5EZWZhdWx0VGVzdFNldKhvYmplY3RpZK9lZDc0OGRiM2ZiNDQ3ODekbWltZdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0rHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZ4ZStKq0sHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTi5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4CZCBHtXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY0iqZxdWV1ZWTCpGxvZ3OViKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY0pmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKoMC45OTQwNTKqdGV4dC9wbGFpbpICkqMwLjiqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksDc5NWI2OWQ0YWRlYzY3YTXZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLpNYWluX3dvcmtzcGFjZSMxNV82OGIxNjU2N6RmaWxl2WgvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtY192ZWN0b3JpemVkLmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cK52bWNfdmVjdG9yaXplZKVsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY0pmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKoMC45OTk4NzmqdGV4dC9wbGFpbpICkqgwLjk5NDA1Mqp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwZTE0ODRlODEzYTA5MThjY9khYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuk1haW5fd29ya3NwYWNlIzE1XzY4YjE2NTY3pGZpbGXZaC9Vc2Vycy90ZXJhc2FraS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vdm1jX3ZlY3Rvcml6ZWQuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3VwrnZtY192ZWN0b3JpemVkpWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQ3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjSma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqMxLjCqdGV4dC9wbGFpbpICkqgwLjk5OTg3Oap0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwOGVmOWYyYzE1MjkyNGQ1OdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuk1haW5fd29ya3NwYWNlIzE1XzY4YjE2NTY3pGZpbGXZaC9Vc2Vycy90ZXJhc2FraS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vdm1jX3ZlY3Rvcml6ZWQuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3VwrnZtY192ZWN0b3JpemVkpWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQ3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjSma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqMxLjCqdGV4dC9wbGFpbpICkqMxLjCqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksDQ5MTM5YzVmN2Q0YWEwY2XZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLpNYWluX3dvcmtzcGFjZSMxNV82OGIxNjU2N6RmaWxl2WgvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtY192ZWN0b3JpemVkLmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cK52bWNfdmVjdG9yaXplZKVsZXZlbKRJbmZviKRsaW5l/6Ntc2eS2bjjgqjjg43jg6vjgq7jg7zjgYzmnIDlsI/jgavjgarjgovlpInliIbjg5Hjg6njg6Hjg7zjgr/jga8wLjk5OTk5OTk5OTYK5Z+65bqV54q25oWL44Gu44Ko44ON44Or44Ku44O844GvLTAuNTAwMDAwMDAwMAogIDIuODc1NTc5IHNlY29uZHMgKDEuNTYgTSBhbGxvY2F0aW9uczogNC44MzYgR2lCLCAyNi4yNCUgZ2MgdGltZSkKqnRleHQvcGxhaW6nY2VsbF9pZNkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY0pmt3YXJnc5CiaWS0UGx1dG9SdW5uZXJfZDFhY2I4MWWkZmlsZdlVL1VzZXJzL3RlcmFzYWtpLy5qdWxpYS9wYWNrYWdlcy9QbHV0by9La1ZMSS9zcmMvcnVubmVyL1BsdXRvUnVubmVyL3NyYy9QbHV0b1J1bm5lci5qbKVncm91cKtQbHV0b1J1bm5lcqVsZXZlbK5Mb2dMZXZlbCgtNTU1KadydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WeG0NiOj7BwZXJzaXN0X2pzX3N0YXRlw7doYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY0uWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOq2cowbVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDZmMzQ5OTA1LTU2ZDAtNDBmYS1iMjkwLTAzNmMyNThjYWRjYoqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZnDxkaXYgY2xhc3M9InBsdXRvLWRvY3MtYmluZGluZyI+CjxzcGFuPnNldDJ6ZXJvITwvc3Bhbj4KPGRpdiBjbGFzcz0ibWFya2Rvd24iPjxwcmU+PGNvZGU+QyBwb3J0IHRvIEp1bGlhIGZvciAmIzk2O3Nob2tpa2EmIzk2OzwvY29kZT48L3ByZT4KCgo8L2Rpdj4KPC9kaXY+CqRtaW1lqXRleHQvaHRtbKxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WeGUncCvLBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNiuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOACjLl7VwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MoqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WeGUg0XubBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUyuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOGrjthbVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHmgpG1pbWWqdGV4dC9wbGFpbqxyb290YXNzaWduZWXAsmxhc3RfcnVuX3RpbWVzdGFtcMtB2WeGUjkHbLBwZXJzaXN0X2pzX3N0YXRlwrdoYXNfcGx1dG9faG9va19mZWF0dXJlc8KnY2VsbF9pZNkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlhuWRlcGVuZHNfb25fZGlzYWJsZWRfY2VsbHPCp3J1bnRpbWXOAX9PALVwdWJsaXNoZWRfb2JqZWN0X2tleXOQuGRlcGVuZHNfb25fc2tpcHBlZF9jZWxsc8KnZXJyb3JlZMLZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNYqmcXVldWVkwqRsb2dzkKdydW5uaW5nwqZvdXRwdXSGpGJvZHnZMW1ldHJvcG9saXNfdGVzdCEgKGdlbmVyaWMgZnVuY3Rpb24gd2l0aCAxIG1ldGhvZCmkbWltZap0ZXh0L3BsYWlurHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZ4bPChvFsHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTW5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4AfnUctXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3iqZxdWV1ZWTCpGxvZ3ORiKRsaW5l/6Ntc2eS2gEYZGF0YTEgPSBbMS45NzY5MDM4MTY1ODM1NDEzLCAtMS4zNDEyMTcyMzg4NDY5MDgsIC0wLjE5MzY3MTA4NzExNzU2MzUzLCAtMC45ODkwMTgyNzg0NjY5NzQ1LCAxLjAwOTM5MzMyNjQ2MTksIC0xLjAyOTQzODE4MzYwMjgxMDEsIDEuOTI3ODgwNzk3NDM1OTI4NCwgLTEuMjExNDkxMTY1MDEzMDE0LCAtMC40NTIzMDg1NTYyNDczNDA1NywgMC44Mjk1ODc0Nzg3OTAzNTQxXQpUZXN0IFN1bW1hcnk6IHwgUGFzcyAgVG90YWwgIFRpbWUKaW5pdGNmZyEgICAgICB8ICAgIDMgICAgICAzICAwLjFzCqp0ZXh0L3BsYWlup2NlbGxfaWTZJGI4ZjJjMGRkLWZlMTQtNGE5OC05MjcyLTg3MjkzNDMxN2E3N6Zrd2FyZ3OQomlktFBsdXRvUnVubmVyX2QxYWNiODFlpGZpbGXZVS9Vc2Vycy90ZXJhc2FraS8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5haZwcmVmaXizVGVzdC5EZWZhdWx0VGVzdFNldKhlbGVtZW50c5qSq2Rlc2NyaXB0aW9ukqoiaW5pdGNmZyEiqnRleHQvcGxhaW6Sp3Jlc3VsdHOShaZwcmVmaXijQW55qGVsZW1lbnRzkKR0eXBlpUFycmF5rHByZWZpeF9zaG9ydKCob2JqZWN0aWSwYTYzNDljNjllY2M0N2MxNtkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0kqhuX3Bhc3NlZJKhM6p0ZXh0L3BsYWlukqphbnlub25wYXNzkqVmYWxzZap0ZXh0L3BsYWlukqd2ZXJib3NlkqVmYWxzZap0ZXh0L3BsYWlukqpzaG93dGltaW5nkqR0cnVlqnRleHQvcGxhaW6SqnRpbWVfc3RhcnSSszEuNzA0ODU5OTgwNDM5MjczZTmqdGV4dC9wbGFpbpKodGltZV9lbmSSsjEuNzA0ODU5OTgwNTAzMTZlOap0ZXh0L3BsYWlukqhmYWlsZmFzdJKlZmFsc2WqdGV4dC9wbGFpbpKkZmlsZZLZXCIvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5ZyIg4ouvIDM0IGJ5dGVzIOKLryAiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzciqnRleHQvcGxhaW6kdHlwZaZzdHJ1Y3SscHJlZml4X3Nob3J0rkRlZmF1bHRUZXN0U2V0qG9iamVjdGlksGVkMTY3NTQ1MDAzMjczYmKkbWltZdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0rHJvb3Rhc3NpZ25lZcCybGFzdF9ydW5fdGltZXN0YW1wy0HZZ4ZTIFvRsHBlcnNpc3RfanNfc3RhdGXCt2hhc19wbHV0b19ob29rX2ZlYXR1cmVzwqdjZWxsX2lk2SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNze5ZGVwZW5kc19vbl9kaXNhYmxlZF9jZWxsc8KncnVudGltZc4Gh5BStXB1Ymxpc2hlZF9vYmplY3Rfa2V5c5C4ZGVwZW5kc19vbl9za2lwcGVkX2NlbGxzwqdlcnJvcmVkwtkkYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2iqZxdWV1ZWTCpGxvZ3OQp3J1bm5pbmfCpm91dHB1dIakYm9kedklbWFpbiAoZ2VuZXJpYyBmdW5jdGlvbiB3aXRoIDEgbWV0aG9kKaRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdlnhs8Tf42wcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NrlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzgBlEiq1cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTC2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSKpnF1ZXVlZMKkbG9nc5aIpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqgwLjkxNzg3Mqp0ZXh0L3BsYWlukgKSozAuOKp0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwN2NjN2YzMDMzNTFmNDI1OdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuk1haW5fd29ya3NwYWNlIzE1XzY4YjE2NTY3pGZpbGXZaC9Vc2Vycy90ZXJhc2FraS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vdm1jX3ZlY3Rvcml6ZWQuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3VwrnZtY192ZWN0b3JpemVkpWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqcxLjAwMDc1qnRleHQvcGxhaW6SApKoMC45MTc4NzKqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksDY3MDkzMjkyYzA4NzAwODPZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLpNYWluX3dvcmtzcGFjZSMxNV82OGIxNjU2N6RmaWxl2WgvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtY192ZWN0b3JpemVkLmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cK52bWNfdmVjdG9yaXplZKVsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkODljYTI5NzUtNjFhOS00YWYwLWEzMzQtMzM4NTdmYmUwZDJkpmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKnMS4wMDA3Nap0ZXh0L3BsYWlupHR5cGWlVHVwbGWob2JqZWN0aWSwZDA0NmFjYTQ4ZmIyMDkwYdkhYXBwbGljYXRpb24vdm5kLnBsdXRvLnRyZWUrb2JqZWN0omlkuk1haW5fd29ya3NwYWNlIzE1XzY4YjE2NTY3pGZpbGXZaC9Vc2Vycy90ZXJhc2FraS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vdm1jX3ZlY3Rvcml6ZWQuamwjPT0jYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pWdyb3VwrnZtY192ZWN0b3JpemVkpWxldmVspEluZm+IpGxpbmX/o21zZ5KizrGqdGV4dC9wbGFpbqdjZWxsX2lk2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSma3dhcmdzkZKtKM6xX25leHQsIM6xKZKDqGVsZW1lbnRzkpIBkqMxLjCqdGV4dC9wbGFpbpICkqMxLjCqdGV4dC9wbGFpbqR0eXBlpVR1cGxlqG9iamVjdGlksGRjMmY2MzRkNTA1NDAyM2XZIWFwcGxpY2F0aW9uL3ZuZC5wbHV0by50cmVlK29iamVjdKJpZLpNYWluX3dvcmtzcGFjZSMxNV82OGIxNjU2N6RmaWxl2WgvVXNlcnMvdGVyYXNha2kvd29yay9NeVZNQy5qbC9wbGF5Z3JvdW5kL3BsdXRvL3ZtY192ZWN0b3JpemVkLmpsIz09I2E1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqVncm91cK52bWNfdmVjdG9yaXplZKVsZXZlbKRJbmZviKRsaW5l/6Ntc2eSos6xqnRleHQvcGxhaW6nY2VsbF9pZNkkODljYTI5NzUtNjFhOS00YWYwLWEzMzQtMzM4NTdmYmUwZDJkpmt3YXJnc5GSrSjOsV9uZXh0LCDOsSmSg6hlbGVtZW50c5KSAZKjMS4wqnRleHQvcGxhaW6SApKjMS4wqnRleHQvcGxhaW6kdHlwZaVUdXBsZahvYmplY3RpZLA0YTNkOWEwMmI0MjVkOTVh2SFhcHBsaWNhdGlvbi92bmQucGx1dG8udHJlZStvYmplY3SiaWS6TWFpbl93b3Jrc3BhY2UjMTVfNjhiMTY1NjekZmlsZdloL1VzZXJzL3RlcmFzYWtpL3dvcmsvTXlWTUMuamwvcGxheWdyb3VuZC9wbHV0by92bWNfdmVjdG9yaXplZC5qbCM9PSNhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODalZ3JvdXCudm1jX3ZlY3Rvcml6ZWSlbGV2ZWykSW5mb4ikbGluZf+jbXNnktm444Ko44ON44Or44Ku44O844GM5pyA5bCP44Gr44Gq44KL5aSJ5YiG44OR44Op44Oh44O844K/44GvMS4wMDAwMDAwMDAwCuWfuuW6leeKtuaFi+OBruOCqOODjeODq+OCruODvOOBry0wLjUwMDAwMDAwMDAKICAzLjQ4NDc1MCBzZWNvbmRzICgxLjkyIE0gYWxsb2NhdGlvbnM6IDUuOTUxIEdpQiwgMjUuMTYlIGdjIHRpbWUpCqp0ZXh0L3BsYWlup2NlbGxfaWTZJDg5Y2EyOTc1LTYxYTktNGFmMC1hMzM0LTMzODU3ZmJlMGQyZKZrd2FyZ3OQomlktFBsdXRvUnVubmVyX2QxYWNiODFlpGZpbGXZVS9Vc2Vycy90ZXJhc2FraS8uanVsaWEvcGFja2FnZXMvUGx1dG8vS2tWTEkvc3JjL3J1bm5lci9QbHV0b1J1bm5lci9zcmMvUGx1dG9SdW5uZXIuamylZ3JvdXCrUGx1dG9SdW5uZXKlbGV2ZWyuTG9nTGV2ZWwoLTU1NSmncnVubmluZ8Kmb3V0cHV0hqRib2R5oKRtaW1lqnRleHQvcGxhaW6scm9vdGFzc2lnbmVlwLJsYXN0X3J1bl90aW1lc3RhbXDLQdlnhtG4/h6wcGVyc2lzdF9qc19zdGF0ZcO3aGFzX3BsdXRvX2hvb2tfZmVhdHVyZXPCp2NlbGxfaWTZJDg5Y2EyOTc1LTYxYTktNGFmMC1hMzM0LTMzODU3ZmJlMGQyZLlkZXBlbmRzX29uX2Rpc2FibGVkX2NlbGxzwqdydW50aW1lzs+2/0u1cHVibGlzaGVkX29iamVjdF9rZXlzkLhkZXBlbmRzX29uX3NraXBwZWRfY2VsbHPCp2Vycm9yZWTCq3N0YXR1c190cmVlhKRuYW1lqG5vdGVib29rqHN1YnRhc2tzhKZzYXZpbmeEpG5hbWWmc2F2aW5nqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WeG2OWDhKpzdGFydGVkX2F0y0HZZ4bY5X/2qXdvcmtzcGFjZYSkbmFtZal3b3Jrc3BhY2Woc3VidGFza3OCrGluaXRfcHJvY2Vzc4SkbmFtZaxpbml0X3Byb2Nlc3Ooc3VidGFza3OEoTSEpG5hbWWhNKhzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdlnhlGRA6eqc3RhcnRlZF9hdMtB2WeGUTZwTKExhKRuYW1loTGoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZ4ZRLyI6qnN0YXJ0ZWRfYXTLQdlnhlDxUPyhMoSkbmFtZaEyqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WeGUTL4d6pzdGFydGVkX2F0y0HZZ4ZRLzG6oTOEpG5hbWWhM6hzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdlnhlE2cD+qc3RhcnRlZF9hdMtB2WeGUTMGnqtmaW5pc2hlZF9hdMtB2WeGUZERMKpzdGFydGVkX2F0y0HZZ4ZQ8VDbrmNyZWF0ZV9wcm9jZXNzhKRuYW1lrmNyZWF0ZV9wcm9jZXNzqHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WeGUPFCFKpzdGFydGVkX2F0y0HZZ4ZQEW6xq2ZpbmlzaGVkX2F0y0HZZ4ZRkRE4qnN0YXJ0ZWRfYXTLQdlnhlARbqSjcGtnhKRuYW1lo3BrZ6hzdWJ0YXNrc4GoYW5hbHlzaXOEpG5hbWWoYW5hbHlzaXOoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZ4bO/cIJqnN0YXJ0ZWRfYXTLQdlnhs79tz2rZmluaXNoZWRfYXTLQdlnhs79wg2qc3RhcnRlZF9hdMtB2WeGzv23JKNydW6EpG5hbWWjcnVuqHN1YnRhc2tzgrByZXNvbHZlX3RvcG9sb2d5hKRuYW1lsHJlc29sdmVfdG9wb2xvZ3moc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZ4bO/p+dqnN0YXJ0ZWRfYXTLQdlnhs792ceoZXZhbHVhdGWEpG5hbWWoZXZhbHVhdGWoc3VidGFza3OFoTSEpG5hbWWhNKhzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdlnhtDYjqyqc3RhcnRlZF9hdMtB2WeG0B8ta6ExhKRuYW1loTGoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZ4bPChvnqnN0YXJ0ZWRfYXTLQdlnhs8AHVihNYSkbmFtZaE1qHN1YnRhc2tzgKtmaW5pc2hlZF9hdMtB2WeG0bj+P6pzdGFydGVkX2F0y0HZZ4bQ2JsToTKEpG5hbWWhMqhzdWJ0YXNrc4CrZmluaXNoZWRfYXTLQdlnhs8Tf7eqc3RhcnRlZF9hdMtB2WeGzwoqx6EzhKRuYW1loTOoc3VidGFza3OAq2ZpbmlzaGVkX2F0y0HZZ4bQHx8lqnN0YXJ0ZWRfYXTLQdlnhs8Tj1irZmluaXNoZWRfYXTLQdlnhtG5Gcaqc3RhcnRlZF9hdMtB2WeGzv6foatmaW5pc2hlZF9hdMtB2WeG0bkZxqpzdGFydGVkX2F0y0HZZ4bO/dm2q2ZpbmlzaGVkX2F0wKpzdGFydGVkX2F0y0HZZ4VAcBvvsWNlbGxfZGVwZW5kZW5jaWVzjNkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U2hLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U2tGRvd25zdHJlYW1fY2VsbHNfbWFwgahpbml0Y2ZnIZLZJGI4ZjJjMGRkLWZlMTQtNGE5OC05MjcyLTg3MjkzNDMxN2E3N9kkYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2snVwc3RyZWFtX2NlbGxzX21hcIy/TG9vcFZlY3Rvcml6YXRpb24udm1hdGVyaWFsaXplIZCxTG9vcFZlY3Rvcml6YXRpb26R2SQ0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTKuQWJzdHJhY3RWZWN0b3KQ2SBMb29wVmVjdG9yaXphdGlvbi5hdnhfY29uZmlnX3ZhbJCkcmFuZJCmbGVuZ3RokKRCYXNlkKEtkLBCYXNlLmJyb2FkY2FzdGVkkKNWYWyQoSqQpkB0dXJib5DZJDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyOIS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyOLRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwgqdAbWRfc3RykKhnZXRpbmRleJDZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NrRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFwjaVAdGltZZCzQmFzZS5nY19hbGxvY19jb3VudJCmQmFzZS4tkKtCYXNlLmdjX251bZCqQmFzZS5maXJzdJCsQmFzZS5HQ19EaWZmkL9CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1lX25zkKlCYXNlLmxhc3SQpEJhc2WQr0Jhc2UudGltZV9wcmludJCkbWFpbpHZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqxCYXNlLnRpbWVfbnOQvkJhc2UuY3VtdWxhdGl2ZV9jb21waWxlX3RpbWluZ5DZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlOIS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlOLRkb3duc3RyZWFtX2NlbGxzX21hcICydXBzdHJlYW1fY2VsbHNfbWFw3gAhqVRlc3QuY29weZCsVGVzdC5yZXRocm93kKpUZXN0LkVycm9ykLFUZXN0LlJhbmRvbS5zZWVkIZCwVGVzdC5wb3BfdGVzdHNldJCkVGVzdJHZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YbxUZXN0LlJhbmRvbS5zZXRfZ2xvYmFsX3NlZWQhkK5UZXN0LmV2YWxfdGVzdJC8VGVzdC5CYXNlLmN1cnJlbnRfZXhjZXB0aW9uc5CqVGVzdC5jb3B5IZCoVGVzdC5pc2GQq1Rlc3QucmVjb3JkkLNUZXN0Ll9jaGVja190ZXN0c2V0kKlUZXN0LkV4cHKQqlRlc3QuVGhyZXeQsFRlc3QuZGVmYXVsdF9ybmeQsVRlc3QucHVzaF90ZXN0c2V0kKVAdGVzdJCzVGVzdC5mYWlsZmFzdF9wcmludJCiPT2Qq1Rlc3QudHlwZW9mkLZUZXN0LmdldF90ZXN0c2V0X2RlcHRokKV6ZXJvc5CwVGVzdC5nZXRfdGVzdHNldJCrVGVzdC5maW5pc2iQpHJhbmSQv1Rlc3QudHJpZ2dlcl90ZXN0X2ZhaWx1cmVfYnJlYWuQp1Rlc3QuPT2Qq1Rlc3QuQnJva2VukKlzZXQyemVybyGR2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2KoVGVzdC49PT2QqEB0ZXN0c2V0kKZUZXN0Lj6Q2SQ3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjSEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjS0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcI2lQHRpbWWQs0Jhc2UuZ2NfYWxsb2NfY291bnSQpkJhc2UuLZCrQmFzZS5nY19udW2QqkJhc2UuZmlyc3SQrEJhc2UuR0NfRGlmZpC/QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltZV9uc5CpQmFzZS5sYXN0kKRCYXNlkK9CYXNlLnRpbWVfcHJpbnSQpG1haW6R2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODasQmFzZS50aW1lX25zkL5CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1pbmeQ2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2KEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2K0ZG93bnN0cmVhbV9jZWxsc19tYXCBqXNldDJ6ZXJvIZLZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlONkkYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2snVwc3RyZWFtX2NlbGxzX21hcImkQGRvY5CkemVyb5ChVJCuQWJzdHJhY3RWZWN0b3KQpVR1cGxlkKZlbHR5cGWQpWZpbGwhkKVVbmlvbpC6I19fX3RoaXNfcGx1dG9fbW9kdWxlX25hbWWQ2SQ0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTKEtHByZWNlZGVuY2VfaGV1cmlzdGljB6djZWxsX2lk2SQ0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTK0ZG93bnN0cmVhbV9jZWxsc19tYXCDqlN0YXRpc3RpY3OQsUxvb3BWZWN0b3JpemF0aW9uk9kkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U22SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTXZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NqZQcmludGaQsnVwc3RyZWFtX2NlbGxzX21hcIDZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMHp2NlbGxfaWTZJDkxODExYjZkLTc3NDQtNGZiYy1iOWNiLTM4MDBhMWY4YmM5YbRkb3duc3RyZWFtX2NlbGxzX21hcIGkVGVzdJLZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlONkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3snVwc3RyZWFtX2NlbGxzX21hcIDZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNYS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNbRkb3duc3RyZWFtX2NlbGxzX21hcIGwbWV0cm9wb2xpc190ZXN0IZHZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NrJ1cHN0cmVhbV9jZWxsc19tYXDeABqkQ29yZZClcmFuZG6QpHNxcnSQqEBfX2RvdF9fkKdGbG9hdDY0kKZsZW5ndGiQoTyQr0NvcmUuYXBwbHlfdHlwZZCj4omlkKEvkKFekKZAdHVyYm+QpG1lYW6Qv0xvb3BWZWN0b3JpemF0aW9uLnZtYXRlcmlhbGl6ZSGQo2V4cJChOpCxTG9vcFZlY3Rvcml6YXRpb26R2SQ0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTKuQWJzdHJhY3RWZWN0b3KQ2SBMb29wVmVjdG9yaXphdGlvbi5hdnhfY29uZmlnX3ZhbJCkcmFuZJCkQmFzZZCwQmFzZS5icm9hZGNhc3RlZJChLZCjVmFskKErkKEqkNkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3hLRwcmVjZWRlbmNlX2hldXJpc3RpYwmnY2VsbF9pZNkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3tGRvd25zdHJlYW1fY2VsbHNfbWFwgLJ1cHN0cmVhbV9jZWxsc19tYXDeACapVGVzdC5jb3B5kKxUZXN0LnJldGhyb3eQqlRlc3QuRXJyb3KQsVRlc3QuUmFuZG9tLnNlZWQhkLBUZXN0LnBvcF90ZXN0c2V0kKRUZXN0kdkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlhvFRlc3QuUmFuZG9tLnNldF9nbG9iYWxfc2VlZCGQrVRlc3QuUmV0dXJuZWSQvFRlc3QuQmFzZS5jdXJyZW50X2V4Y2VwdGlvbnOQqlRlc3QuY29weSGQqFRlc3QuaXNhkKtUZXN0LnJlY29yZJCzVGVzdC5fY2hlY2tfdGVzdHNldJCpVGVzdC5FeHBykKpUZXN0LlRocmV3kKIuPJCwVGVzdC5kZWZhdWx0X3JuZ5CjLjw9kLFUZXN0LnB1c2hfdGVzdHNldJClQHRlc3SQs1Rlc3QuZmFpbGZhc3RfcHJpbnSQqGluaXRjZmchkdkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U2q1Rlc3QudHlwZW9mkLZUZXN0LmdldF90ZXN0c2V0X2RlcHRokKtUZXN0LmZpbmlzaJCwVGVzdC5nZXRfdGVzdHNldJCkcmFuZJC/VGVzdC50cmlnZ2VyX3Rlc3RfZmFpbHVyZV9icmVha5CjYWxskKdUZXN0Lj09kKtUZXN0LkJyb2tlbpCkQmFzZZCpQmFzZS5yZXBykKxCYXNlLnByaW50bG6QqFRlc3QuPT09kKhAdGVzdHNldJCmVGVzdC4+kKVAc2hvd5DZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NoS0cHJlY2VkZW5jZV9oZXVyaXN0aWMJp2NlbGxfaWTZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NrRkb3duc3RyZWFtX2NlbGxzX21hcIGkbWFpbpPZJDBjN2EwMTc1LThlYmQtNGU4OS05YmEwLTk3OTdhYThlNDU1NtkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY02SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSydXBzdHJlYW1fY2VsbHNfbWFw3gAmpENvcmWQsG1ldHJvcG9saXNfdGVzdCGR2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTWkc3FydJCmaXNsZXNzkKhAX19kb3RfX5CnRmxvYXQ2NJDZJ0Jhc2UuQ29yZUxvZ2dpbmcuQmFzZS5maXh1cF9zdGRsaWJfcGF0aJCnc2ltaWxhcpCyQmFzZS5Db3JlTG9nZ2luZy4hkKE8kKZWZWN0b3KQr0NvcmUuYXBwbHlfdHlwZZChL5ChXpClQGluZm+QsUJhc2UuaW52b2tlbGF0ZXN0kKZAdHVyYm+QqGluaXRjZmchkdkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U2o2Fic5C/TG9vcFZlY3Rvcml6YXRpb24udm1hdGVyaWFsaXplIZC9QmFzZS5Db3JlTG9nZ2luZy5pbnZva2VsYXRlc3SQtEJhc2UuQ29yZUxvZ2dpbmcuPT09kLFMb29wVmVjdG9yaXphdGlvbpHZJDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MtkgTG9vcFZlY3Rvcml6YXRpb24uYXZ4X2NvbmZpZ192YWyQpXplcm9zkLojX19fdGhpc19wbHV0b19tb2R1bGVfbmFtZZCmc3Rkb3V0kKdAcHJpbnRmkKRCYXNlkKlzZXQyemVybyGR2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2KwQmFzZS5icm9hZGNhc3RlZJC0QmFzZS5Db3JlTG9nZ2luZy5pc2GQoS2Qo1ZhbJChK5CldW5kZWaQoSqQs0Jhc2UuQ29yZUxvZ2dpbmcuPj2Q2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSEtHByZWNlZGVuY2VfaGV1cmlzdGljCadjZWxsX2lk2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmS0ZG93bnN0cmVhbV9jZWxsc19tYXCAsnVwc3RyZWFtX2NlbGxzX21hcI2lQHRpbWWQs0Jhc2UuZ2NfYWxsb2NfY291bnSQpkJhc2UuLZCrQmFzZS5nY19udW2QqkJhc2UuZmlyc3SQrEJhc2UuR0NfRGlmZpC/QmFzZS5jdW11bGF0aXZlX2NvbXBpbGVfdGltZV9uc5CpQmFzZS5sYXN0kKRCYXNlkK9CYXNlLnRpbWVfcHJpbnSQpG1haW6R2SRhNThhZjY4OS01MjYzLTRkNTItYWVhYy05NmRmYzE4NjkzODasQmFzZS50aW1lX25zkL5CYXNlLmN1bXVsYXRpdmVfY29tcGlsZV90aW1pbmeQtGNlbGxfZXhlY3V0aW9uX29yZGVynNkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUy2SQ5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWHZJDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyONkkNmYzNDk5MDUtNTZkMC00MGZhLWIyOTAtMDM2YzI1OGNhZGNi2SQ0MDRlNGJkYS1lZTJkLTRjYTktYTM5NS00MjQxYTQyMWE2ZTjZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNtkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc32SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTXZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NtkkMGM3YTAxNzUtOGViZC00ZTg5LTliYTAtOTc5N2FhOGU0NTU22SQ3ZDgyNWIzZi00OGM2LTQ4YjgtOTRiNS0wODg0YjExOGEyNjTZJDg5Y2EyOTc1LTYxYTktNGFmMC1hMzM0LTMzODU3ZmJlMGQyZLRsYXN0X2hvdF9yZWxvYWRfdGltZcsAAAAAAAAAAKlzaG9ydHBhdGisdm1jX3R1cmJvLmpsrnByb2Nlc3Nfc3RhdHVzpXJlYWR5pHBhdGjZOy9Vc2Vycy90ZXJhc2FraS93b3JrL015Vk1DLmpsL3BsYXlncm91bmQvcGx1dG8vdm1jX3R1cmJvLmpsrmxhc3Rfc2F2ZV90aW1ly0HZZ4bY5X/xqmNlbGxfb3JkZXKc2SQ3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjjZJDQ3YTAzNGZhLWE5NWUtMTFlZS0yMWU2LWIxMDBmNThkZmY1MtkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlh2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2LZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlONkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U22SRiOGYyYzBkZC1mZTE0LTRhOTgtOTI3Mi04NzI5MzQzMTdhNzfZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNdkkYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg22SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTbZJDdkODI1YjNmLTQ4YzYtNDhiOC05NGI1LTA4ODRiMTE4YTI2NNkkODljYTI5NzUtNjFhOS00YWYwLWEzMzQtMzM4NTdmYmUwZDJksXB1Ymxpc2hlZF9vYmplY3RzgKVuYnBrZ4qvaW5zdGFsbF90aW1lX25zwKxpbnN0YW50aWF0ZWTDsmluc3RhbGxlZF92ZXJzaW9uc4SqU3RhdGlzdGljc6ZzdGRsaWKxTG9vcFZlY3Rvcml6YXRpb26oMC4xMi4xNjakVGVzdKZzdGRsaWKmUHJpbnRmpnN0ZGxpYrB0ZXJtaW5hbF9vdXRwdXRzhqpTdGF0aXN0aWNz2gHVV2FpdGluZyBmb3Igb3RoZXIgbm90ZWJvb2tzIHRvIGZpbmlzaCBQa2cgb3BlcmF0aW9ucy4uLgoKSW5zdGFudGlhdGluZy4uLgoKUmVzb2x2aW5nLi4uChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYSy9Qcm9qZWN0LnRvbWxgChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYSy9NYW5pZmVzdC50b21sYAoKSW5zdGFudGlhdGluZy4uLgoKUHJlY29tcGlsaW5nLi4uChtbMzJtG1sxbSAgQWN0aXZhdGluZxtbMjJtG1szOW0gcHJvamVjdCBhdCBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvbHAvOWJ3eGZnczExOG5iXzMydnE4cHNuZF80MDAwMGduL1QvamxfVmE5RlhLYKpuYnBrZ19zeW5j2ZIKSW5zdGFudGlhdGluZy4uLgoKUHJlY29tcGlsaW5nLi4uChtbMzJtG1sxbSAgQWN0aXZhdGluZxtbMjJtG1szOW0gcHJvamVjdCBhdCBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvbHAvOWJ3eGZnczExOG5iXzMydnE4cHNuZF80MDAwMGduL1QvamxfVmE5RlhLYLFMb29wVmVjdG9yaXphdGlvbtoB1VdhaXRpbmcgZm9yIG90aGVyIG5vdGVib29rcyB0byBmaW5pc2ggUGtnIG9wZXJhdGlvbnMuLi4KCkluc3RhbnRpYXRpbmcuLi4KClJlc29sdmluZy4uLgobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9scC85Ynd4ZmdzMTE4bmJfMzJ2cThwc25kXzQwMDAwZ24vVC9qbF9WYTlGWEsvUHJvamVjdC50b21sYAobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9scC85Ynd4ZmdzMTE4bmJfMzJ2cThwc25kXzQwMDAwZ24vVC9qbF9WYTlGWEsvTWFuaWZlc3QudG9tbGAKCkluc3RhbnRpYXRpbmcuLi4KClByZWNvbXBpbGluZy4uLgobWzMybRtbMW0gIEFjdGl2YXRpbmcbWzIybRtbMzltIHByb2plY3QgYXQgYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYS2CkVGVzdNoB1VdhaXRpbmcgZm9yIG90aGVyIG5vdGVib29rcyB0byBmaW5pc2ggUGtnIG9wZXJhdGlvbnMuLi4KCkluc3RhbnRpYXRpbmcuLi4KClJlc29sdmluZy4uLgobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9scC85Ynd4ZmdzMTE4bmJfMzJ2cThwc25kXzQwMDAwZ24vVC9qbF9WYTlGWEsvUHJvamVjdC50b21sYAobWzMybRtbMW0gIE5vIENoYW5nZXMbWzIybRtbMzltIHRvIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9scC85Ynd4ZmdzMTE4bmJfMzJ2cThwc25kXzQwMDAwZ24vVC9qbF9WYTlGWEsvTWFuaWZlc3QudG9tbGAKCkluc3RhbnRpYXRpbmcuLi4KClByZWNvbXBpbGluZy4uLgobWzMybRtbMW0gIEFjdGl2YXRpbmcbWzIybRtbMzltIHByb2plY3QgYXQgYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYS2CmUHJpbnRm2gHVV2FpdGluZyBmb3Igb3RoZXIgbm90ZWJvb2tzIHRvIGZpbmlzaCBQa2cgb3BlcmF0aW9ucy4uLgoKSW5zdGFudGlhdGluZy4uLgoKUmVzb2x2aW5nLi4uChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYSy9Qcm9qZWN0LnRvbWxgChtbMzJtG1sxbSAgTm8gQ2hhbmdlcxtbMjJtG1szOW0gdG8gYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYSy9NYW5pZmVzdC50b21sYAoKSW5zdGFudGlhdGluZy4uLgoKUHJlY29tcGlsaW5nLi4uChtbMzJtG1sxbSAgQWN0aXZhdGluZxtbMjJtG1szOW0gcHJvamVjdCBhdCBgL3ByaXZhdGUvdmFyL2ZvbGRlcnMvbHAvOWJ3eGZnczExOG5iXzMydnE4cHNuZF80MDAwMGduL1QvamxfVmE5RlhLYLRWZWN0b3JpemVkU3RhdGlzdGljc9oDHQpBZGRpbmcgcGFja2FnZXMuLi4KG1szMm0bWzFtICAgUmVzb2x2aW5nG1syMm0bWzM5bSBwYWNrYWdlIHZlcnNpb25zLi4uChtbMzJtG1sxbSAgIEluc3RhbGxlZBtbMjJtG1szOW0gVmVjdG9yaXplZFN0YXRpc3RpY3Mg4pSAIHYwLjUuNwogICAgICAgICAgICAgVXBkYXRpbmcgICAgICAgICAgIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9scC85Ynd4ZmdzMTE4bmJfMzJ2cThwc25kXzQwMDAwZ24vVC9qbF9WYTlGWEsvUHJvamVjdC50b21sYAogIBtbOTBtWzNiODUzNjA1XSAbWzM5bRtbOTJtKyBWZWN0b3JpemVkU3RhdGlzdGljcyB2MC41LjcbWzM5bQobWzMybRtbMW0gICAgVXBkYXRpbmcbWzIybRtbMzltIGAvcHJpdmF0ZS92YXIvZm9sZGVycy9scC85Ynd4ZmdzMTE4bmJfMzJ2cThwc25kXzQwMDAwZ24vVC9qbF9WYTlGWEsvTWFuaWZlc3QudG9tbGAKICAbWzkwbVszYjg1MzYwNV0gG1szOW0bWzkybSsgVmVjdG9yaXplZFN0YXRpc3RpY3MgdjAuNS43G1szOW0KG1szMm0bWzFtTG9hZGluZxtbMjJtG1szOW0gcGFja2FnZXMuLi4KCkluc3RhbnRpYXRpbmcuLi4KClByZWNvbXBpbGluZy4uLgobWzMybRtbMW0gIEFjdGl2YXRpbmcbWzIybRtbMzltIHByb2plY3QgYXQgYC9wcml2YXRlL3Zhci9mb2xkZXJzL2xwLzlid3hmZ3MxMThuYl8zMnZxOHBzbmRfNDAwMDBnbi9UL2psX1ZhOUZYS2AKG1szMm0bWzFtUHJlY29tcGlsaW5nG1syMm0bWzM5bSBwcm9qZWN0Li4uCiAgMSBkZXBlbmRlbmN5IHN1Y2Nlc3NmdWxseSBwcmVjb21waWxlZCBpbiA3IHNlY29uZHMuIDM0IGFscmVhZHkgcHJlY29tcGlsZWQup2VuYWJsZWTDt3Jlc3RhcnRfcmVjb21tZW5kZWRfbXNnwLRyZXN0YXJ0X3JlcXVpcmVkX21zZ8CtYnVzeV9wYWNrYWdlc5C2d2FpdGluZ19mb3JfcGVybWlzc2lvbsLZLHdhaXRpbmdfZm9yX3Blcm1pc3Npb25fYnV0X3Byb2JhYmx5X2Rpc2FibGVkwqtjZWxsX2lucHV0c4zZJDU5MDZmYTE5LWIyNWItNGM0Ni05YzVkLWRhMGM0OTBkMGNlNoSnY2VsbF9pZNkkNTkwNmZhMTktYjI1Yi00YzQ2LTljNWQtZGEwYzQ5MGQwY2U2pGNvZGXZ9WZ1bmN0aW9uIGluaXRjZmchKGRhdGExOjpULCBkYXRhMjo6VCwgZGF0YTM6OlQpIHdoZXJlIHtUPDpBYnN0cmFjdFZlY3Rvcn0KCUB0dXJibyBkYXRhMSAuPSAocmFuZChsZW5ndGgoZGF0YTEpKSAuLSAwLjUpIC4qIDIgLiogMgoJQHR1cmJvIGRhdGEyIC49IChyYW5kKGxlbmd0aChkYXRhMikpIC4tIDAuNSkgLiogMiAuKiAyCglAdHVyYm8gZGF0YTMgLj0gKHJhbmQobGVuZ3RoKGRhdGEzKSkgLi0gMC41KSAuKiAyIC4qIDIKZW5kqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ3YmJmNTAyNS0wMzQ2LTQxMDQtYTQ3YS02M2Y0OTJmYzQwMjiEp2NlbGxfaWTZJDdiYmY1MDI1LTAzNDYtNDEwNC1hNDdhLTYzZjQ5MmZjNDAyOKRjb2Rl2gI1bWQiIiIKClvlpInliIbjg6Ljg7Pjg4bjgqvjg6vjg60oVk1DKeOCkuOChOOBo+OBpuOBv+OCi37msLTntKDljp/lrZB+XShodHRwczovL21peWFudGFydW1pLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMjIvMDQvMDgvMDgwMDAwKSDjga4gSnVsaWEg56e75qSN44KS6KGM44Gj44GfLiDjg6Hjg4jjg63jg53jg6rjgrnjg4bjgrnjg4jjga7pg6jliIbjgpLplqLmlbDljJbjgZfmm7jjgY/jgbnjgY3jgrPjg7zjg4njga7ph4/jgpLlpKfluYXjgavmuJvjgonjgZnjgZPjgajjgYzjgafjgY3jgZ/vvI4gSnVsaWHjga9Vbmljb2Rl5paH5a2X44GM5L2/44GI44KL44Gu44Gn44Kq44Oq44K444OK44Or44Gu5a6f6KOF44KS44KC44Go44Gr5aSJ5pWw5ZCN44KS6YGp5a6c5aSJ5pu044GX44Gm44GE44KL77yOCgptZXRyb3BvbGlzX3Rlc3QhIOOBruW8leaVsOOBr+OBhOOBo+OBseOBhOOBguOCi+OBjO+8jOOCguOBo+OBqEp1bGlh44KJ44GX44GP5pu444GP44Gu44Gn44GC44KM44Gq44Kz44Os44KJ44KS44G+44Go44KB44KL5qeL6YCg5L2T44KS5a6a576p44GZ44KL44G544GN44Gn44GC44KL77yOCiIiIqhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkw9kkMGM3YTAxNzUtOGViZC00ZTg5LTliYTAtOTc5N2FhOGU0NTU2hKdjZWxsX2lk2SQwYzdhMDE3NS04ZWJkLTRlODktOWJhMC05Nzk3YWE4ZTQ1NTakY29kZa9AdGltZSBtYWluKDAuOCmobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDQwNGU0YmRhLWVlMmQtNGNhOS1hMzk1LTQyNDFhNDIxYTZlOISnY2VsbF9pZNkkNDA0ZTRiZGEtZWUyZC00Y2E5LWEzOTUtNDI0MWE0MjFhNmU4pGNvZGXZrEB0ZXN0c2V0ICJzZXQyemVybyEiIGJlZ2luCglkYXRhMSA9IHJhbmQoMTApCiAgICBkYXRhMiA9IHJhbmQoMTApCiAgICBkYXRhMyA9IHJhbmQoMTApCiAgICBzZXQyemVybyEoZGF0YTEsIGRhdGEyLCBkYXRhMykKICAgIEB0ZXN0IGRhdGExID09IGRhdGEyID09IGRhdGEzID09IHplcm9zKDEwKQplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJDdkODI1YjNmLTQ4YzYtNDhiOC05NGI1LTA4ODRiMTE4YTI2NISnY2VsbF9pZNkkN2Q4MjViM2YtNDhjNi00OGI4LTk0YjUtMDg4NGIxMThhMjY0pGNvZGWvQHRpbWUgbWFpbigwLjgpqG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ2ZjM0OTkwNS01NmQwLTQwZmEtYjI5MC0wMzZjMjU4Y2FkY2KEp2NlbGxfaWTZJDZmMzQ5OTA1LTU2ZDAtNDBmYS1iMjkwLTAzNmMyNThjYWRjYqRjb2Rl2cIiIiIKCUMgcG9ydCB0byBKdWxpYSBmb3IgYHNob2tpa2FgCiIiIgpmdW5jdGlvbiBzZXQyemVybyEoZGF0YTE6OlQsIGRhdGEyOjpULCBkYXRhMzo6VCkgd2hlcmUge1Q8OkFic3RyYWN0VmVjdG9yfQogICAgZm9yIGQgaW4gKGRhdGExLCBkYXRhMiwgZGF0YTMpCiAgICAgICAgZmlsbCEoZCwgemVybyhlbHR5cGUoZCkpKQogICAgZW5kCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkNDdhMDM0ZmEtYTk1ZS0xMWVlLTIxZTYtYjEwMGY1OGRmZjUyhKdjZWxsX2lk2SQ0N2EwMzRmYS1hOTVlLTExZWUtMjFlNi1iMTAwZjU4ZGZmNTKkY29kZdlDYmVnaW4KCXVzaW5nIExvb3BWZWN0b3JpemF0aW9uCgoJdXNpbmcgU3RhdGlzdGljcwoJdXNpbmcgUHJpbnRmCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkOTE4MTFiNmQtNzc0NC00ZmJjLWI5Y2ItMzgwMGExZjhiYzlhhKdjZWxsX2lk2SQ5MTgxMWI2ZC03NzQ0LTRmYmMtYjljYi0zODAwYTFmOGJjOWGkY29kZap1c2luZyBUZXN0qG1ldGFkYXRhg6lzaG93X2xvZ3PDqGRpc2FibGVkwq5za2lwX2FzX3NjcmlwdMKrY29kZV9mb2xkZWTC2SQ2NDI5MTFjNi02OThjLTQwYmItYmVjNi1jODg4MzNjNmNhYTWEp2NlbGxfaWTZJDY0MjkxMWM2LTY5OGMtNDBiYi1iZWM2LWM4ODgzM2M2Y2FhNaRjb2Rl2gdJIyDjgZvjgaPjgYvjgY/jgarjga7jgacgdHVyYm8g44GoIGJyb2FkY2FzdCDjgpLkvb/jgYbjgojjgYbjgavjgZfjgZ/vvI4KIyB0dXJibyBtYWNybyDjgYzkvb/jgYjjgarjgYTjgrHjg7zjgrnjgaDjgajjg5njgr/jgavjg6vjg7zjg5fjgpLmm7jjgYTjgZ/jgbvjgYbjgYzpq5jpgJ/jgafjgYLjgosu44CACiMg5byV5pWw44GE44Gj44Gx44GE44Gr44Gq44KL44Gu44Gv5Zuw44KK44KC44GuCgpmdW5jdGlvbiBtZXRyb3BvbGlzX3Rlc3QhKAoJzrE6OkZsb2F0NjQsIAoJzqNFX2xvYzo6VCwgzqPiiIJsb2fPiF/iiILOsTo6VCzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xOjpULAoJeDo6VCwgeTo6VCwgejo6VCwgcjo6VCwKCXjigLI6OlQsIHnigLI6OlQsIHrigLI6OlQsIHLigLI6OlQsCgliLCByX2ludjo6VCwKCUVfbG9jOjpULOKIgmxvZ8+IX+KIgs6xOjpULEVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xOjpULAopIHdoZXJlIFQgPDogQWJzdHJhY3RWZWN0b3IKCW5zYW1wbGVzID0gMzAwMDAKCXNpZ21hID0gMC40Cgluc2FtcGxlc19idXJuX2luID0gNDAwMAoJbndhbGtlcnMgPSBsZW5ndGgoeCkKCglmb3IgaSBpbiAxOm5zYW1wbGVzCQoJCUB0dXJibyBALiBiZWdpbgoJCQl44oCyID0geCArIHNpZ21hICogJHJhbmRuKG53YWxrZXJzKQoJCQl54oCyID0geSArIHNpZ21hICogJHJhbmRuKG53YWxrZXJzKQoJCQl64oCyID0geiArIHNpZ21hICogJHJhbmRuKG53YWxrZXJzKQoJCQly4oCyID0gc3FydCh44oCyIF4gMiArIHnigLIgXiAyICsgeuKAsiBeIDIpCgoJCQliID0gJHJhbmQobndhbGtlcnMpIDwgZXhwKC0yzrEqcuKAsiArIDLOsSpyKQoJCQl4ID0geOKAsiAqIGIgKyB4ICogKDEgLSBiKQoJCQl5ID0geeKAsiAqIGIgKyB5ICogKDEgLSBiKQoJCQl6ID0geuKAsiAqIGIgKyB6ICogKDEgLSBiKQoJCQlyID0gcuKAsiAqIGIgKyByICogKDEgLSBiKQoJCWVuZAoJCQoJCUB0dXJibyBALiBiZWdpbgoJCQlyX2ludiA9IDEgLyByCgkJCUVfbG9jID0gLXJfaW52IC0gMC41zrEgKiAozrEgLSAycl9pbnYpCgkJCeKIgmxvZ8+IX+KIgs6xID0gLXIKCQkJRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgPSBFX2xvYyAqIOKIgmxvZ8+IX+KIgs6xCgoJCQliID0gKGkg4omlIG5zYW1wbGVzX2J1cm5faW4pCgkJCc6jRV9sb2MgKz0gYiAqIEVfbG9jCgkJCc6j4oiCbG9nz4hf4oiCzrEgKz0gYiAqIOKIgmxvZ8+IX+KIgs6xCgkJCc6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgKz0gYiAqIEVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xCgkJZW5kCgllbmQKCSMg5ZCEIGog44Gr5a++44GX44Gm44Gu5bmz5Z2H6YeP44KS6KiI566X44GZ44KLLiDjg6Hjg6Ljg6rjgpLkvb/jgYTlm57jgZnjgZ/jgoHjgasgaW4tcGxhY2Ug6KiI566X44KS44GX44Gm44GE44KL77yOCglALiBiZWdpbgoJCc6jRV9sb2MgLz0gKG5zYW1wbGVzIC0gbnNhbXBsZXNfYnVybl9pbiArIDEpCgkJzqPiiIJsb2fPiF/iiILOsSAvPSAobnNhbXBsZXMgLSBuc2FtcGxlc19idXJuX2luICsgMSkKCQnOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xIC89IChuc2FtcGxlcyAtIG5zYW1wbGVzX2J1cm5faW4gKyAxKQoJZW5kCgkjIGog44Gu6Lu444Gr5a++44GX44Gm5bmz5Z2H5YCk44KS6KiI566X44GZ44KLCgnOvEVfbG9jID0gbWVhbijOo0VfbG9jKQoJzrziiIJsb2fPiF/iiILOsSA9IG1lYW4ozqPiiIJsb2fPiF/iiILOsSkKCc68RV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgPSBtZWFuKM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEpCgoJZEUgPSAyKM68RV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgLSDOvEVfbG9jICogzrziiIJsb2fPiF/iiILOsSkKCXJldHVybiBkRSwgzrxFX2xvYwplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJGI4ZjJjMGRkLWZlMTQtNGE5OC05MjcyLTg3MjkzNDMxN2E3N4SnY2VsbF9pZNkkYjhmMmMwZGQtZmUxNC00YTk4LTkyNzItODcyOTM0MzE3YTc3pGNvZGXZ7kB0ZXN0c2V0ICJpbml0Y2ZnISIgYmVnaW4KICAgIGRhdGExID0gcmFuZCgxMCkKICAgIGRhdGEyID0gcmFuZCgxMCkKICAgIGRhdGEzID0gcmFuZCgxMCkKICAgIGluaXRjZmchKGRhdGExLCBkYXRhMiwgZGF0YTMpCglAc2hvdyBkYXRhMQogICAgQHRlc3QgYWxsKC0yIC48PSBkYXRhMSAuPCAyKQogICAgQHRlc3QgYWxsKC0yIC48PSBkYXRhMiAuPCAyKQogICAgQHRlc3QgYWxsKC0yIC48PSBkYXRhMyAuPCAyKQplbmSobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMLZJGE1OGFmNjg5LTUyNjMtNGQ1Mi1hZWFjLTk2ZGZjMTg2OTM4NoSnY2VsbF9pZNkkYTU4YWY2ODktNTI2My00ZDUyLWFlYWMtOTZkZmMxODY5Mzg2pGNvZGXaCbZmdW5jdGlvbiBtYWluKGFscGhhX2luaXQpCiAgICBud2Fsa2VycyA9IDQwMAogICAgc2FtcGxlID0gMzAwMDAKCiAgICDOsV9pbml0ID0gMC44CiAgICB4ID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKICAgIHkgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQogICAgeiA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCglyID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKICAgIHjigLIgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQogICAgeeKAsiA9IFZlY3RvcntGbG9hdDY0fSh1bmRlZiwgbndhbGtlcnMpCiAgICB64oCyID0gVmVjdG9ye0Zsb2F0NjR9KHVuZGVmLCBud2Fsa2VycykKCXLigLIgPSBWZWN0b3J7RmxvYXQ2NH0odW5kZWYsIG53YWxrZXJzKQoKCc6jRV9sb2MgPSB6ZXJvcyhud2Fsa2VycykKCc6j4oiCbG9nz4hf4oiCzrEgPSB6ZXJvcyhud2Fsa2VycykKCc6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEgPSB6ZXJvcyhud2Fsa2VycykKICAgIGggPSAxZS0zCgoJYiA9IHNpbWlsYXIoeCkKCXJfaW52ID0gc2ltaWxhcih4KQoJRV9sb2MgPSBzaW1pbGFyKHgpCgniiIJsb2fPiF/iiILOsSA9IHNpbWlsYXIoeCkKCUVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xID0gc2ltaWxhcih4KQoKCc6xID0gYWxwaGFfaW5pdAoJd2hpbGUgdHJ1ZQoJCWluaXRjZmchKHgseSx6KQoJCUB0dXJibyBALiByID0gc3FydCh4IF4gMiArIHkgXiAyICsgeiBeIDIpCgkJc2V0Mnplcm8hKM6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoJCWRFLCBfID0gbWV0cm9wb2xpc190ZXN0ISgKCQkJzrEsCgkJCc6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJCQl4LHkseixyLAoJCQl44oCyLHnigLIseuKAsixy4oCyLAoJCQliLCByX2ludiwKCQkJRV9sb2Ms4oiCbG9nz4hf4oiCzrEsRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsKQoKCQnOseKCiiA9IM6xICsgaAoJCWluaXRjZmchKHgseSx6KQoJCUB0dXJibyBALiByID0gc3FydCh4IF4gMiArIHkgXiAyICsgeiBeIDIpCgkJc2V0Mnplcm8hKM6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoJCWRF4oKKLCBfID0gbWV0cm9wb2xpc190ZXN0ISgKCQkJzrHigoosCgkJCc6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJCQl4LHkseixyLAoJCQl44oCyLHnigLIseuKAsixy4oCyLAoJCQliLCByX2ludiwKCQkJRV9sb2Ms4oiCbG9nz4hf4oiCzrEsRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJKQoKCQnOseKCiyA9IM6xIC0gaAoJCWluaXRjZmchKHgseSx6KQoJCUB0dXJibyBALiByID0gc3FydCh4IF4gMiArIHkgXiAyICsgeiBeIDIpCgkJc2V0Mnplcm8hKM6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoJCWRF4oKLLCBfID0gbWV0cm9wb2xpc190ZXN0ISgKCQkJzrHigossCgkJCc6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJCQl4LHkseixyLAoJCQl44oCyLHnigLIseuKAsixy4oCyLAoJCQliLCByX2ludiwKCQkJRV9sb2Ms4oiCbG9nz4hf4oiCzrEsRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJKQoKICAgICAgICBkZEUgPSAoZEXigoogLSBkReKCiykgLyAoMmgpCgkJIyBuZXd0b24g5rOV44GnIM6xIOOCkuabtOaWsOOBmeOCiwogICAgICAgIM6xX25leHQgPSDOsSAtIGRFIC8gZGRFCiAgICAgICAgQGluZm8gIs6xIiDOsV9uZXh0LCDOsQogICAgICAgIGlmIGFicyjOsV9uZXh0IC0gzrEpIDwgMWUtNgoJCQnOsSA9IM6xX25leHQKICAgICAgICAgICAgYnJlYWsKICAgICAgICBlbmQKCQnOsSA9IM6xX25leHQKICAgIGVuZAoKICAgIGFscGhhX3ZhID0gzrEKCSMg55CG5oOz44GvIDEuMAogICAgQHByaW50Zigi44Ko44ON44Or44Ku44O844GM5pyA5bCP44Gr44Gq44KL5aSJ5YiG44OR44Op44Oh44O844K/44GvJS4xMGZcbiIsIGFscGhhX3ZhKSAKCWluaXRjZmchKHgseSx6KQoJQC4gciA9IHNxcnQoeCBeIDIgKyB5IF4gMiArIHogXiAyKQoJc2V0Mnplcm8hKM6jRV9sb2MszqPiiIJsb2fPiF/iiILOsSzOo0VfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xKQoJXywgRSA9IG1ldHJvcG9saXNfdGVzdCEoCgkJYWxwaGFfdmEsCgkJzqNFX2xvYyzOo+KIgmxvZ8+IX+KIgs6xLM6jRV9sb2NfdGltZXNf4oiCbG9nz4hf4oiCzrEsCgkJeCx5LHosciwKCQl44oCyLHnigLIseuKAsixy4oCyLAoJCWIsIHJfaW52LAoJCUVfbG9jLOKIgmxvZ8+IX+KIgs6xLEVfbG9jX3RpbWVzX+KIgmxvZ8+IX+KIgs6xLAoJKQoJIyDnkIbmg7Pjga8gLTAuNQoJQHByaW50Zigi5Z+65bqV54q25oWL44Gu44Ko44ON44Or44Ku44O844GvJS4xMGZcbiIsIEUpCmVuZKhtZXRhZGF0YYOpc2hvd19sb2dzw6hkaXNhYmxlZMKuc2tpcF9hc19zY3JpcHTCq2NvZGVfZm9sZGVkwtkkODljYTI5NzUtNjFhOS00YWYwLWEzMzQtMzM4NTdmYmUwZDJkhKdjZWxsX2lk2SQ4OWNhMjk3NS02MWE5LTRhZjAtYTMzNC0zMzg1N2ZiZTBkMmSkY29kZa9AdGltZSBtYWluKDAuOCmobWV0YWRhdGGDqXNob3dfbG9nc8OoZGlzYWJsZWTCrnNraXBfYXNfc2NyaXB0wqtjb2RlX2ZvbGRlZMKrbm90ZWJvb2tfaWTZJGZiZTM2MTcyLWFmNmItMTFlZS0xM2MwLWRiMDg4NDdkMmYzMqtpbl90ZW1wX2RpcsKobWV0YWRhdGGA";
window.pluto_preamble_html = undefined;
</script>
<meta name="pluto-insertion-spot-parameters">
<script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.c69300f2.js" type="module" defer="" integrity="sha384-sLMlcWvt4TmaGbLLnhN9nz+JY2xsbCeklFggrWNJ4zBrwPosiufyTbUD6aYbHgE4" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/gh/fonsp/Pluto.jl@0.19.36/frontend-dist/editor.8a3292da.js" integrity="sha384-itp4oE2PRbSrrTHVpWh8sqAuVUsz7ja6L2Dgp/JRfMCD2AwVdTk56K96POF3oLmu" crossorigin="anonymous"></script><script type="text/javascript" id="MathJax-script" integrity="sha384-4kE/rQ11E8xT9QgrCBTyvenkuPfQo8rXYQvJZuMgxyPOoUfpatjQPlgdv6V5yhUK" crossorigin="" not-the-src-yet="https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg-full.js" async=""></script></head><body class="loading no-MαθJax"> <div style="display:flex;min-height:100vh;"> <pluto-editor class="fullscreen"></pluto-editor> </div> </body></html>
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@terasakisatoshi
Copy link
Author

terasakisatoshi commented Jan 5, 2024

概要

[変分モンテカルロ(VMC)をやってみる水素原子] の C プログラムを Julia および Python with NumPy, Numba を用いたプログラムを書いた.

Twitter(X) の https://x.com/dc1394/status/1741779797905404400?s=20 スレッドにあるものを修正した.

https://gist.github.com/terasakisatoshi/93e160fda48482c8eef855b8cf39f59f は古いコードです.

Pluto Notebook preview

https://htmlview.glitch.me/?https://gist.github.com/terasakisatoshi/a14b2847cfb7ec9a8420751db482ad71#file-vmc-html

@terasakisatoshi
Copy link
Author

Rust 版は

cargo new vmc によってプロジェクトを作る. vmc.rs を src/main.rs にリネームする.
Cargo.toml を入手して carugo run --release をする

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment