However, if you think the currency will face a significant spike in the coming years, hold on to your Bitcoin for a long time. You don’t have to worry about day trading limits on cryptocurrencies because they’re not regulated by FINRA or the SEC like stocks and options. Please read the Risk Disclosure Statement prior to trading futures products. CryptoManiaks is an authoritative crypto education platform dedicated to newcomers and cryptocurrency beginners. Collectively we have over 25 years of experience in cryptocurrency and we are passionate about guiding people through the complex world of crypto investing. Platforms charge fees for buying, selling and transferring cryptocurrencies.
- Offers more than 20 cryptocurrencies for trading including bitcoin, ethereum and litecoin.
- Bankrate’s editorial team writes on behalf of YOU – the reader.
- Kuiper and Schwartz agree that cryptocurrency investments should constitute only a small portion of your portfolio — about 2%.
- This is an era of near-zero interest rates, even negative nominal interest rates in some cases, and vast money-printing.
- Make sure any crypto investments you make do not get in the way of other goals like funding your retirement accounts and paying off high interest debt.
Coinbase, Kraken, and Gemini offer Bitcoin and a growing number of altcoins. These three are probably the easiest on-ramps to crypto in the entire industry. Binance caters to a more advanced trader, offering more serious trading functionality and a better variety of altcoin choices. FTX, a fast-growing crypto exchange that has garnered a multibillion-dollar valuation, offers a restricted number of altcoins to U.S. investors. Crypto advocates bill it as an alternative financial system set apart from central and private banks.
Investing puts your money to work for you in the hopes of growing your wealth. If the company performs well, you may generate a profit from its sucess. Buy and sell, send some to friends and family, or transfer your funds to another digital wallet on the blockchain. Take control of your bitcoin investment everywhere you go through the Coinbase mobile app.
Given the needs of various types of investors, the crypto space offers numerous channels for investing, including spot buying, derivatives, investment trusts , and crypto funds, like BitBull Capital. A growing number of traditional investment options that provide exposure to cryptocurrency have recently hit the market, including an array of exchange-traded funds last year. But Fidelity’s move is more striking because it would let Americans place bets on the emerging and highly volatile sector with their sacred retirement money.
Crypto Trading 101: The Moving Average Convergence Divergence
To date, several billions of dollars of crypto has been stolen by hackers stealing private keys. And because crypto holdings aren't FDIC-insured, the victims have been mostly out of luck. The major exchanges have beefed up security and purchased private insurance, but many experienced traders still aren't convinced.
The idea of being able to trade around the clock is pretty cool in theory. You can just get on your trading app during a sleepless night and start trading. But this flexibility can backfire when you start losing sleep over it.
Take note of fees and the reputation of the exchange when picking where to buy Bitcoin. Also, if you plan to transfer your Bitcoin out of the brokerage account, make sure that feature is supported, as not all brokerages give you that option. The content contained in this blog post is intended for general informational purposes only and is not meant to constitute legal, tax, accounting or investment advice.
In addition, for investors, this research is expected to illustrate the returns and risks faced when investing in bitcoin . One major problem with day trading cryptocurrencies is securing your crypto wallet. The least secure cryptocurrency wallets are online wallets. Crypto is a very volatile asset and as the coins are traded 24x7, prices move very rapidly. According to data from Coinbase , compiled by fool.com, on an average, a global crypto investor holds on to his or her crypto investments for a maximum 93 days, unlike stocks which they hold on to for years.
Canadian Bitcoin Exchange
There is no guarantee that any investment strategy will work under all market conditions or is suitable for all investors. Each investor should evaluate their ability to invest long term, especially during periods of downturn in the market. Investors should not substitute these materials for professional services, and should seek advice from an independent advisor before acting on any information presented.
Bitcoin’s programmed difficulty for verifying transactions is automatically updated every two weeks, and it seeks the optimal point of profitability and security. In other words, the difficulty of the puzzle to add new blocks to the blockchain is automatically tuned up or down depending on how efficiently miners as a whole are solving those puzzles. So, Bitcoin can be thought of as a rare digital commodity that has unique attributes. Although it has no industrial use, it is scarce, durable, portable, divisible, verifiable, storable, fungible, salable, and recognized across borders, and therefore has the properties of money. Like all “potential” money, though, it needs sustained demand to have value. Bitcoin’s protocol limits it to 21 million coins in total, which gives it scarcity, and therefore potentially gives it value… if there is demand for it.
Stash can help you manage your crypto investments with automated investing portfolios that include cryptocurrency. Investing in cryptocurrencies can be an intriguing prospect for a portion of your portfolio, http://fernandoeqcw059.image-perth.org/cryptocurrency-trading-platform-mobile-apps-for-free but you should make sure to diversify your investments with other holdings. Afinancial advisor could advise you on asset allocation and help you create an investment plan. Finding a qualified financial advisor doesn’t have to be hard.
Designed like a thumb drive, Ledger Nano has cold wallets ranging from about $60 to $120. You can buy bitcoin directly from other Bitcoin owners, much like you would buy items on Craigslist, through peer-to-peer tools like Bisq, Bitquick and LocalBitcoins.com. Use extreme caution if buying Bitcoin directly from individuals. It's also a good idea to make sure you understand what you're investing in.
<img src="data:image/jpeg;base64,DQoNCjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iLz48bWV0YSBuYW1lPSJhcGx1cy1leGluZm8iIGNvbnRlbnQ9InBpZD1rUkMzZmsmYW1wO3NpdGU9YWxpZXhwcmVzcyIvPjxtZXRhIG5hbWU9ImFwbHVzLWF1dG8tZXhwLXZpc2libGUiIGNvbnRlbnQ9IjAuNSIvPjxtZXRhIG5hbWU9ImFwbHVzLWF1dG8tZXhwLWR1cmF0aW9uIiBjb250ZW50PSI1MDAiLz48bWV0YSBuYW1lPSJkYXRhLXNwbSIgY29udGVudD0iYTJnMG8iLz48dGl0bGU+NDA0IHBhZ2U8L3RpdGxlPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii8vZy5hbGljZG4uY29tL2FlLWRpZGEvYWUtZXJyb3IvMC4wLjQvaW5kZXguY3NzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PHNjcmlwdD4oZnVuY3Rpb24gaW5pdENvbmZpZyhlbnYpIHsKICAgIHdpbmRvdy5fcnVuX2VudiA9IGVudjsKICAgIHdpbmRvdy5fcGFnZV9jb25maWdfID0geyBsb2FkZXI6IHsgYXBsdXM6IHRydWUgfSB9Owp9KSgicHJvZCIpOzwvc2NyaXB0PjxzY3JpcHQ+CiAgIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3dpbmRvdy5nZXBfcXVldWU9d2luZG93LmdlcF9xdWV1ZXx8W107ZnVuY3Rpb24gbihlLG4pe3JldHVybiB3aW5kb3cuZ2VwX3F1ZXVlLnB1c2goe2FjdGlvbjplLGFyZ3VtZW50czpufSl9dHJ5e3ZhciBlLHI9KG51bGw9PT0oZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9ImFwbHVzLWV4aW5mbyJdJykpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKXx8IiI7KG51bGw9PXI/dm9pZCAwOnIuc3BsaXQoIiYiKSkuZm9yRWFjaChmdW5jdGlvbihlKXtlPWUuc3BsaXQoIj0iKTsicGlkIj09PWVbMF0mJih3aW5kb3cuZ29sZGxvZ19xdWV1ZXx8KHdpbmRvdy5nb2xkbG9nX3F1ZXVlPVtdKSkucHVzaCh7YWN0aW9uOiJnb2xkbG9nLnNldE1ldGFJbmZvIixhcmd1bWVudHM6WyJhcGx1cy1jcHZkYXRhIix7cGlkOmVbMV19XX0pfSl9Y2F0Y2goZSl7fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oZSl7bigiaGFuZGxlRXJyb3IiLFtlXSl9LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIixmdW5jdGlvbihlKXtuKCJ1bmhhbmRsZWRyZWplY3Rpb24iLFtlXSl9LCEwKSx3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5tYXJrJiZ3aW5kb3cucGVyZm9ybWFuY2UubWVhc3VyZSYmKHdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrKCJtYXJrLXN0YXJ0UmVuZGVyIiksd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmUoInN0YXJ0UmVuZGVyIiwiZmV0Y2hTdGFydCIsIm1hcmstc3RhcnRSZW5kZXIiKSl9KCk7CiAgKGZ1bmN0aW9uKCl7aWYod2luZG93LmRtdHJhY2tfcGFnZWlkKXJldHVybjt0cnl7dmFyIGNuYT0iMDAxIjtpZihuZXcgUmVnRXhwKCIoPzo7ICk/Y25hPShbXjtdKik7PyIpLnRlc3QoZG9jdW1lbnQuY29va2llKSl7dmFyIHN0cj1kZWNvZGVVUklDb21wb25lbnQoUmVnRXhwWyIkMSJdKTtpZihzdHImJnN0ci5yZXBsYWNlKC8oXnMqKXwocyokKS9nLCIiKS5sZW5ndGg+MCl7Y25hPXN0cn19dmFyIHBhZ2VfaWQ9Y25hLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpkXS9nLCIiKS5zdWJzdHJpbmcoMCwxNik7dmFyIHJhbmRlbmQ9W3BhZ2VfaWQsKG5ldyBEYXRlKS5nZXRUaW1lKCkudG9TdHJpbmcoMTYpXS5qb2luKCIiKTt3aGlsZShyYW5kZW5kLmxlbmd0aDw0Mil7cmFuZGVuZCs9cGFyc2VJbnQoTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjFlMTApLDEwKS50b1N0cmluZygxNil9d2luZG93LmRtdHJhY2tfcGFnZWlkPXJhbmRlbmQuc3Vic3RyKDAsNDIpfWNhdGNoKGUpe3dpbmRvdy5kbXRyYWNrX3BhZ2VpZD0iLS0ifX0pKCk7CiAgIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlLG89ZnVuY3Rpb24oZSl7dmFyIG89T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4oZT1lLnRyaW0oKS5yZXBsYWNlKC9eKFw/fCN8JikvLCIiKSk/KGUuc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLGk9dC5zaGlmdCgpLG49dC5sZW5ndGg+MD90LmpvaW4oIj0iKTp2b2lkIDA7bj12b2lkIDA9PT1uP251bGw6ZGVjb2RlVVJJQ29tcG9uZW50KG4pLG9baV09bn0pKSxvKTpvfTtpZih3aW5kb3cuX2RpZGFfY29uZmlnXyYmIXdpbmRvdy5fZGlkYV9jb25maWdfLl9pbml0X2RhdGFfJiYobnVsbD09PShlPXdpbmRvdy5fcGFnZV9jb25maWdfKXx8dm9pZCAwPT09ZXx8IWUucHJlZmV0Y2gpKXt2YXIgdD13aW5kb3cuX2RpZGFfY29uZmlnXyxpPXQucGFnZU5hbWUsbj10LnBhZ2VWZXJzaW9uLGE9dC5oZWFkZXJzLHI9dm9pZCAwPT09YT97fTphLHM9dC5uZWVkTG9naW4sYz12b2lkIDAhPT1zJiZzLGw9dC5kYXRhLGQ9dm9pZCAwPT09bD97fTpsLHA9dC5wYXNzUXVlcnk7aWYoaSl7dmFyIHU9Ii9mbi8iLmNvbmNhdChpLCIvaW5kZXgiKTtkLnBhZ2VWZXJzaW9uPW4sYyYmKGQubmVlZExvZ2luPSEwKSx3aW5kb3cuX3BhZ2VfY29uZmlnXz13aW5kb3cuX3BhZ2VfY29uZmlnX3x8e30sd2luZG93Ll9wYWdlX2NvbmZpZ18ucHJlZmV0Y2g9e3VybDp1LGRhdGE6ZCxoZWFkZXJzOnIsd2l0aENyZWRlbnRpYWxzOiEwLHBhc3NRdWVyeTpwfX19IWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LHQ9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsaT1lLmVuYWJsZSxuPXZvaWQgMD09PWl8fGksYT1lLnVybCxyPWUuZGF0YSxzPXZvaWQgMD09PXI/e306cixjPWUuaGVhZGVycyxsPXZvaWQgMD09PWM/e306YyxkPWUud2l0aENyZWRlbnRpYWxzLHA9ZS5wYXNzUXVlcnksdT1lLl9pbml0X2RhdGFfO2lmKG4mJmEpe3ZhciBmPXQoKSxfPWYucmVzb2x2ZSx3PWYucmVqZWN0O2lmKHUpXyh1KTtlbHNle3ZhciBnLG09ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKToobmV3IERhdGUpLmdldFRpbWUoKX0saD1tKCksdj1uZXcgWE1MSHR0cFJlcXVlc3QseD1hO2lmKHApe3ZhciBiPW8obG9jYXRpb24uc2VhcmNoKTsiYm9vbGVhbiI9PXR5cGVvZiBwP09iamVjdC5hc3NpZ24ocyxiKTpBcnJheS5pc0FycmF5KHApJiZPYmplY3Qua2V5cyhiKS5mb3JFYWNoKChmdW5jdGlvbihlKXstMSE9PXAuaW5kZXhPZihlKSYmKHNbZV09YltlXSl9KSl9dmFyIHk9T2JqZWN0LmtleXMocykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iIi5jb25jYXQoZSwiPSIpLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQoc1tlXSkpfSkpLmpvaW4oIiYiKTt5JiYoeCs9LTE9PT14LmluZGV4T2YoIj8iKT8iPyI6IiYiLHgrPXkpLHYub3BlbigiR0VUIix4LCEwKSx2Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKDQ9PT10aGlzLnJlYWR5U3RhdGUpe3ZhciBlLG8sdDtpZih3aW5kb3cuY2xlYXJUaW1lb3V0KGcpLCJmdW5jdGlvbiI9PXR5cGVvZiB2LmdldFJlc3BvbnNlSGVhZGVyKXRyeXtlPXYuZ2V0UmVzcG9uc2VIZWFkZXIoImVhZ2xlZXllLXRyYWNlaWQiKSxvPXYuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxLXQiKSx0PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxLWlkIil9Y2F0Y2goZSl7fXZhciBpPW98fE1hdGguZmxvb3IobSgpLWgpLG49ISFvO2lmKDIwMD09PXRoaXMuc3RhdHVzKXt2YXIgYT17fTt0cnl7YT1KU09OLnBhcnNlKHRoaXMucmVzcG9uc2VUZXh0KSxPYmplY3QuYXNzaWduKGEse2Nvc3RUaW1lOmksZnJvbVNXOm4sdHJhY2VJZDplfSksdCYmKGEucGFnZUlkPXQpLF8oYSl9Y2F0Y2gobyl7dyh7Y29zdFRpbWU6aSxyZXNwb25zZTp0aGlzLnJlc3BvbnNlLG1zZzoiSlNPTi5wYXJzZSBlcnJvciEiLHRyYWNlSWQ6ZSxmcm9tU1c6bn0pfX1lbHNlIHcoe2Nvc3RUaW1lOmkscmVzcG9uc2U6dGhpcy5yZXNwb25zZSxtc2c6dGhpcy5zdGF0dXMsdHJhY2VJZDplLGZyb21TVzpufSl9fSwic2V0UmVxdWVzdEhlYWRlciJpbiB2JiZPYmplY3Qua2V5cyhsKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2LnNldFJlcXVlc3RIZWFkZXIoZSxsW2VdKX0pKSxkJiYodi53aXRoQ3JlZGVudGlhbHM9ITApLHYuc2VuZCgpLGc9d2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dChnKSx3KHtjb3N0VGltZToxZTQscmVzcG9uc2U6bnVsbCxtc2c6InJlc3BvbnNlIHRpbWVvdXQgMTBTIn0pLHYuYWJvcnQoKX0pLDFlNCl9fX0oKHdpbmRvdy5fcGFnZV9jb25maWdffHx7fSkucHJlZmV0Y2gsKGZ1bmN0aW9uKCl7dmFyIGU9bnVsbCxvPW51bGwsdD1bXSxpPVtdO3JldHVybiB3aW5kb3cuX19JTklUX0RBVEFfQ0FMTEJBQ0tfXz1mdW5jdGlvbihuLGEpe2U/bihlKTpvP2Eobyk6KHQucHVzaChuKSxpLnB1c2goYSkpfSx7cmVzb2x2ZTpmdW5jdGlvbihvKXtlPW8sdC5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZShvKX0pKX0scmVqZWN0OmZ1bmN0aW9uKGUpe289ZSxpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3JldHVybiBvKGUpfSkpfX19KSksKHdpbmRvdy5fcGFnZV9jb25maWdffHx7fSkubmVlZExvZ2luJiYtMT09PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJzaWduPXkiKSYmKGxvY2F0aW9uLmhyZWY9Ii8vbG9naW4uYWxpZXhwcmVzcy5jb20/cmV0dXJuX3VybD0iLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpKTt2YXIgZj17IiI6e3NpdGU6ImdsbyIsbG9jYWxlOiJlbl9VUyJ9LHJ1OntzaXRlOiJydXMiLGxvY2FsZToicnVfUlUifSxwdDp7c2l0ZToiYnJhIixsb2NhbGU6InB0X0JSIn0sZXM6e3NpdGU6ImVzcCIsbG9jYWxlOiJlc19FUyJ9LGZyOntzaXRlOiJmcmEiLGxvY2FsZToiZnJfRlIifSxpZDp7c2l0ZToiaWRuIixsb2NhbGU6ImluX0lEIn0saXQ6e3NpdGU6Iml0YSIsbG9jYWxlOiJpdF9JVCJ9LGphOntzaXRlOiJqcG4iLGxvY2FsZToiamFfSlAifSxrbzp7c2l0ZToia29yIixsb2NhbGU6ImtvX0tSIn0sZGU6e3NpdGU6ImRldSIsbG9jYWxlOiJkZV9ERSJ9LGFyOntzaXRlOiJhcmEiLGxvY2FsZToiYXJfTUEifSxubDp7c2l0ZToibmxkIixsb2NhbGU6Im5sX05MIn0sdGg6e3NpdGU6InRoYSIsbG9jYWxlOiJ0aF9USCJ9LHRyOntzaXRlOiJ0dXIiLGxvY2FsZToidHJfVFIifSx2aTp7c2l0ZToidm5tIixsb2NhbGU6InZpX1ZOIn0saGU6e3NpdGU6ImlzciIsbG9jYWxlOiJpd19JTCJ9LHBsOntzaXRlOiJwb2wiLGxvY2FsZToicGxfUEwifX07ZnVuY3Rpb24gXyhlLG8pe2UrPSI9Ijtmb3IodmFyIHQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldLnRyaW0oKTtpZigwPT1uLmluZGV4T2YoZSkpe3ZhciBhPW4uc3Vic3RyaW5nKGUubGVuZ3RoLG4ubGVuZ3RoKTtpZihvKXt2YXIgcj1uZXcgUmVnRXhwKCIoLiomPyIrbysiPSkoLio/KSgmLip8JCkiKTtyZXR1cm4gYS5tYXRjaChyKSxSZWdFeHAuJDJ9cmV0dXJuIGF9fXJldHVybiIifWZ1bmN0aW9uIHcoZSxvLHQpe3ZhciBpPV8obyk7aT1uZXcgUmVnRXhwKCIoLiomPyIrdCsiPSkoLio/KSgmLip8JCkiKS50ZXN0KGkpP1JlZ0V4cC4kMStlK1JlZ0V4cC4kMzooaT9pKyImIjoiIikrdCsiPSIrZSxkb2N1bWVudC5jb29raWU9IiIuY29uY2F0KG8sIj0iKS5jb25jYXQoaSwiOyBEb21haW49IikuY29uY2F0KGxvY2F0aW9uLmhvc3Quc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpLCI7IEV4cGlyZXM9U2F0LCAxOC1TZXAtMjA4OCAwMDowMDowMCBHTVQ7IFBhdGg9LzsiKX12YXIgZz13aW5kb3cuX3BhZ2VfY29uZmlnX3x8e30sbT1nLnN5bmNDb29raWUsaD1nLnN5bmNSdUNvb2tpZTsodm9pZCAwPT09aHx8aCkmJmZ1bmN0aW9uKCl7aWYoKC9hbGlleHByZXNzLnJ1JC8udGVzdChsb2NhdGlvbi5ob3N0KXx8L3RtYWxsLnJ1JC8udGVzdChsb2NhdGlvbi5ob3N0KSkmJiEod2luZG93LmxvY2F0aW9uLmhyZWYubGVuZ3RoPjE5MDApKXt2YXIgZSxvLHQsaSxuLGE9KHdpbmRvdy5fcm9ib3RMaXN0fHwiYW1zcGx1cyxhb2xidWlsZCxiYWlkdSxiaW5nYm90LGJpbmdwcmV2aWV3LG1zbmJvdCxhZHNib3QtZ29vZ2xlLGdvb2dsZWJvdCxtZWRpYXBhcnRuZXJzLWdvb2dsZSx0ZW9tYSxzbHVycCx5YW5kZXgseWFuZGV4Ym90LGJhaWR1c3BpZGVyLHlldGksc2V6bmFtYm90LHNvZ291LHlhbmRleG1vYmlsZWJvdCxtc25ib3QsbXNuYm90LW1lZGlhLHNvZ291LGJ5dGVzcGlkZXIiKS5zcGxpdCgiLCIpLHI9XygieG1hbl91c19mIik7ciYmLTEhPXIuaW5kZXhPZigiYWNzX3J0PSIpfHxmdW5jdGlvbigpe2Zvcih2YXIgZT0hMSxvPTAsdD1hLmxlbmd0aDtvPHQ7bysrKXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50JiYtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhW29dKSYmKGU9ITApO3JldHVybiBlfSgpfHwvX3NfdD0oXGQrKS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZikmJiEoKG5ldyBEYXRlKS5nZXRUaW1lKCktcGFyc2VJbnQoUmVnRXhwLiQxKT4xZTQpfHwod2luZG93LmxvY2F0aW9uLmhyZWY9Ii8vbG9naW4uYWxpZXhwcmVzcy5jb20vc3luY19jb29raWVfcmVhZC5odG0/eG1hbl9nb3RvPSIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudCgoZT13aW5kb3cubG9jYXRpb24uaHJlZixvPSJfc190Iix0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLGk9bmV3IFJlZ0V4cCgiKFs/Jl0pIitvKyI9Lio/KCZ8JCkiLCJpIiksbj0tMSE9PWUuaW5kZXhPZigiPyIpPyImIjoiPyIsZS5tYXRjaChpKT9lLnJlcGxhY2UoaSwiJDEiK28rIj0iK3QrIiQyIik6ZStuK28rIj0iK3QpKSkpfX0oKSxtJiZmdW5jdGlvbigpe2lmKC0xPT1bIm1iZXN0LmFsaWV4cHJlc3MuY29tIiwibWJlc3QuYWxpZXhwcmVzcy5ydSIsImJlc3QuYWxpZXhwcmVzcy5jb20iLCJiZXN0LmFsaWV4cHJlc3MucnUiXS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgZSxvPXdpbmRvdy5sb2NhdGlvbi5ob3N0O3N3aXRjaChvKXtjYXNlIm0uYWxpZXhwcmVzcy5jb20iOmNhc2Uid3d3LmFsaWV4cHJlc3MuY29tIjpyZXR1cm4gZlsiIl07Y2FzZSJtLmFsaWV4cHJlc3MucnUiOmNhc2Uid3d3LmFsaWV4cHJlc3MucnUiOnJldHVybiBmLnJ1O2RlZmF1bHQ6dmFyIHQ9bnVsbD09PShlPW8ubWF0Y2goL14oPzptXC4pPyhydXxwdHxlc3xmcnxpZHxpdHxqYXxrb3xkZXxhcnxubHx0aHx0cnx2aXxoZXxwbCk/XC5hbGlleHByZXNzXC5jb20vKSl8fHZvaWQgMD09PWU/dm9pZCAwOmVbMV07aWYodClyZXR1cm4gZlt0XXx8ZlsiIl19fSgpO2lmKGUpe3ZhciBvPXdpbmRvdy5sb2NhdGlvbi5ob3N0LHQ9XygiYWVwX3VzdWNfZiIsInNpdGUiKTt0PWZ1bmN0aW9uKGUpe3JldHVybi0xIT09T2JqZWN0LmtleXMoZikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZltlXS5zaXRlfSkpLmluZGV4T2YoZSl9KHQpP3Q6IiI7dmFyIGk9XygiYWVwX3VzdWNfZiIsImJfbG9jYWxlIik7aWYoIXR8fCJtLmFsaWV4cHJlc3MuY29tIiE9PW8mJiJ3d3cuYWxpZXhwcmVzcy5jb20iIT09byYmZS5sb2NhbGUhPT1pKXJldHVybiB3KGUuc2l0ZSwiYWVwX3VzdWNfZiIsInNpdGUiKSx2b2lkIHcoZS5sb2NhbGUsImFlcF91c3VjX2YiLCJiX2xvY2FsZSIpO2lmKCJnbG8iIT09dCl7dmFyIG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBvPSIiLHQ9T2JqZWN0LmtleXMoZiksaT0wO2k8dC5sZW5ndGg7aSsrKWlmKGZbdFtpXV0uc2l0ZT09PWUpe289dFtpXTticmVha31yZXR1cm4gb30odCk7Im0uYWxpZXhwcmVzcy5jb20iPT09bz9sb2NhdGlvbi5ocmVmPWxvY2F0aW9uLmhyZWYucmVwbGFjZSgvXmh0dHBzOlwvXC9tXC5hbGlleHByZXNzXC5jb20vLCJydSI9PT1uPyJodHRwczovL20uYWxpZXhwcmVzcy5ydSI6Imh0dHBzOi8vbS4iLmNvbmNhdChuLCIuYWxpZXhwcmVzcy5jb20iKSk6Ind3dy5hbGlleHByZXNzLmNvbSI9PT1vJiYobG9jYXRpb24uaHJlZj1sb2NhdGlvbi5ocmVmLnJlcGxhY2UoL15odHRwczpcL1wvd3d3XC5hbGlleHByZXNzXC5jb20vLCJydSI9PT1uPyJodHRwczovL2FsaWV4cHJlc3MucnUiOiJodHRwczovLyIuY29uY2F0KG4sIi5hbGlleHByZXNzLmNvbSIpKSl9fX19KCl9KCk7Cjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgaHRtbCB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7CiAgICAgICAgfQogICAgICAgICNyb290IHsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgfQogICAgICAgIC5wYWdlLW5vdC1mb3VuZCB7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1pbi13aWR0aDogNTcwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDM4NnB4OwogICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTk3cHgpOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87CiAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CjxzY3JpcHQ+KHdpbmRvdy5CT09NUl9tcT13aW5kb3cuQk9PTVJfbXF8fFtdKS5wdXNoKFsiYWRkVmFyIix7InJ1YS51cHVzaCI6ImZhbHNlIiwicnVhLmNwdXNoIjoiZmFsc2UiLCJydWEudXByZSI6ImZhbHNlIiwicnVhLmNwcmUiOiJmYWxzZSIsInJ1YS51cHJsIjoiZmFsc2UiLCJydWEuY3BybCI6ImZhbHNlIiwicnVhLmNwcmYiOiJmYWxzZSIsInJ1YS50cmFucyI6IiIsInJ1YS5jb29rIjoiZmFsc2UiLCJydWEuaW1zIjoiZmFsc2UiLCJydWEudWZwcmwiOiJmYWxzZSIsInJ1YS5jZnBybCI6ImZhbHNlIiwicnVhLmlzdXhwIjoiZmFsc2UiLCJydWEudGV4cCI6Im5vcnVsZW1hdGNoIn1dKTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdD4hZnVuY3Rpb24oYSl7dmFyIGU9Imh0dHBzOi8vcy5nby1tcHVsc2UubmV0L2Jvb21lcmFuZy8iLHQ9ImFkZEV2ZW50TGlzdGVuZXIiO2lmKCJGYWxzZSI9PSJUcnVlIilhLkJPT01SX2NvbmZpZz1hLkJPT01SX2NvbmZpZ3x8e30sYS5CT09NUl9jb25maWcuUGFnZVBhcmFtcz1hLkJPT01SX2NvbmZpZy5QYWdlUGFyYW1zfHx7fSxhLkJPT01SX2NvbmZpZy5QYWdlUGFyYW1zLnBjaT0hMCxlPSJodHRwczovL3MyLmdvLW1wdWxzZS5uZXQvYm9vbWVyYW5nLyI7aWYod2luZG93LkJPT01SX0FQSV9rZXk9IlFOQUZOLU01RzhFLU1UR0U5LU1SVlo0LUVDQjdaIixmdW5jdGlvbigpe2Z1bmN0aW9uIG4oZSl7YS5CT09NUl9vbmxvYWQ9ZSYmZS50aW1lU3RhbXB8fChuZXcgRGF0ZSkuZ2V0VGltZSgpfWlmKCFhLkJPT01SfHwhYS5CT09NUi52ZXJzaW9uJiYhYS5CT09NUi5zbmlwcGV0RXhlY3V0ZWQpe2EuQk9PTVI9YS5CT09NUnx8e30sYS5CT09NUi5zbmlwcGV0RXhlY3V0ZWQ9ITA7dmFyIGksXyxvLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7aWYoYVt0XSlhW3RdKCJsb2FkIixuLCExKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudCgib25sb2FkIixuKTtyLnNyYz0iamF2YXNjcmlwdDp2b2lkKDApIixyLnRpdGxlPSIiLHIucm9sZT0icHJlc2VudGF0aW9uIiwoci5mcmFtZUVsZW1lbnR8fHIpLnN0eWxlLmNzc1RleHQ9IndpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyOjA7ZGlzcGxheTpub25lOyIsbz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0sby5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLG8pO3RyeXtfPXIuY29udGVudFdpbmRvdy5kb2N1bWVudH1jYXRjaChPKXtpPWRvY3VtZW50LmRvbWFpbixyLnNyYz0iamF2YXNjcmlwdDp2YXIgZD1kb2N1bWVudC5vcGVuKCk7ZC5kb21haW49JyIraSsiJzt2b2lkKDApOyIsXz1yLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnR9Xy5vcGVuKCkuX2w9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKGkpdGhpcy5kb21haW49aTthLmlkPSJib29tci1pZi1hcyIsYS5zcmM9ZSsiUU5BRk4tTTVHOEUtTVRHRTktTVJWWjQtRUNCN1oiLEJPT01SX2xzdGFydD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmJvZHkuYXBwZW5kQ2hpbGQoYSl9LF8ud3JpdGUoIjxibyIrJ2R5IG9ubG9hZD0iZG9jdW1lbnQuX2woKTsiPicpLF8uY2xvc2UoKX19KCksIiIubGVuZ3RoPjApaWYoYSYmInBlcmZvcm1hbmNlImluIGEmJmEucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnBlcmZvcm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSlhLnBlcmZvcm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgpOyFmdW5jdGlvbigpe2lmKEJPT01SPWEuQk9PTVJ8fHt9LEJPT01SLnBsdWdpbnM9Qk9PTVIucGx1Z2luc3x8e30sIUJPT01SLnBsdWdpbnMuQUspe3ZhciBlPSIiPT0idHJ1ZSI/MTowLHQ9IiIsbj0iYXV3dXNuaXgzemFlc3l1end2aWEtZi1kYWZhNjkyNDktY2xpZW50bnN2NC1zLmFrYW1haWhkLm5ldCIsaT0iZmFsc2UiPT0idHJ1ZSI/MjoxLF89eyJhay52IjoiMzIiLCJhay5jcCI6IjEyNDg5NDEiLCJhay5haSI6cGFyc2VJbnQoIjYwNDU4OCIsMTApLCJhay5vbCI6IjAiLCJhay5jciI6MSwiYWsuaXB2Ijo0LCJhay5wcm90byI6Imh0dHAvMS4xIiwiYWsucmlkIjoiNWNlYWVmOSIsImFrLnIiOjM2MzUyLCJhay5hMiI6ZSwiYWsubSI6IngiLCJhay5uIjoiZXNzbCIsImFrLmJwY2lwIjoiNS40NS43My4wIiwiYWsuY3BvcnQiOjY0MjUzLCJhay5naCI6IjIuMTkuMTk1LjU1IiwiYWsucXVpY3YiOiIiLCJhay50bHN2IjoidGxzMS4yIiwiYWsuMHJ0dCI6IiIsImFrLmNzcmMiOiItIiwiYWsuYWNjIjoicmVubyIsImFrLnQiOiIxNjU0MjQwNTkyIiwiYWsuYWsiOiJoT0JpUXdaVVl6Q2c1VlNBZkNMaW1RPT0yZnJIcGlMR3JELzFxa1RaaWFnMEQvSXc0b1Qwa1ZLZ3JIN3NZS1VzQjBkZW9uVUhReUdxTFdqdnNWaWtFUkgvdVQ2UjB5MDZJVDZ4OCtQTUVhQ1VlSkZWUWxFMDgyaXEwZTB1WDJiREJrTFBPdzFnR25PWkluMUxTVGpDZmYyR0g0blIvKys2YWZUNnEvOTFyOFdiL3Vta2hrWElrQkNnUnlhZ3FKOHAyZXlLV2dvemQ2WGNRV2VUZUFMSFg5bmJnRUNyLzJ6a1FTWXd2OWtEYStzR3M1dk8vUkhiYWd6Rk53THdEQmNLeHZxNTBhUS82WVh1R2dMZDdPTHlzcS9IekR1RFVITDI0cDh5M2J0WWM2MzVpVko2Z2tONmRQemFJNkY5NGNvTXQ3VXZBVzNVcVZPWVZESXh3UmljcGovd1libkt3VHVYdDhkNFBJLzN4VEF4QitVa0VQYi9XekZtMEFuYU4rcHVaQjJaaXVNWmd0aEJrZ3RHT3FKbjloQUNKbU51VVcrdEJkVUVsQVM3WjZtTzR5S0djc2k5R0RlUHMvTXJyQzdpdktFPSIsImFrLnB2IjoiOTQiLCJhay5kcG9hYmVuYyI6IiIsImFrLnRmIjppfTtpZigiIiE9PXQpX1siYWsucnVkcyJdPXQ7dmFyIG89e2k6ITEsYXY6ZnVuY3Rpb24oZSl7dmFyIHQ9Imh0dHAuaW5pdGlhdG9yIjtpZihlJiYoIWVbdF18fCJzcGFfaGFyZCI9PT1lW3RdKSlfWyJhay5mZW8iXT12b2lkIDAhPT1hLmFGZW9BcHBsaWVkPzE6MCxCT09NUi5hZGRWYXIoXyl9LHJ2OmZ1bmN0aW9uKCl7dmFyIGE9WyJhay5icGNpcCIsImFrLmNwb3J0IiwiYWsuY3IiLCJhay5jc3JjIiwiYWsuZ2giLCJhay5pcHYiLCJhay5tIiwiYWsubiIsImFrLm9sIiwiYWsucHJvdG8iLCJhay5xdWljdiIsImFrLnRsc3YiLCJhay4wcnR0IiwiYWsuciIsImFrLmFjYyIsImFrLnQiLCJhay50ZiJdO0JPT01SLnJlbW92ZVZhcihhKX19O0JPT01SLnBsdWdpbnMuQUs9e2FrVmFyczpfLGFrRE5TUHJlRmV0Y2hEb21haW46bixpbml0OmZ1bmN0aW9uKCl7aWYoIW8uaSl7dmFyIGE9Qk9PTVIuc3Vic2NyaWJlO2EoImJlZm9yZV9iZWFjb24iLG8uYXYsbnVsbCxudWxsKSxhKCJvbmJlYWNvbiIsby5ydixudWxsLG51bGwpLG8uaT0hMH1yZXR1cm4gdGhpc30saXNfY29tcGxldGU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19fX0oKX0od2luZG93KTs8L3NjcmlwdD48L2hlYWQ+PGJvZHkgZGF0YS1zcG09ImFlLWVycm9yIj48IS0tIGNvc21vcyBzdGFydCAtLT4KCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2Nvc21vcy8wLjAuODAvcGMvaW5kZXguY3NzIj4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20vZy9hZS1mZS9nbG9iYWwvMC4wLjMvaW5kZXguanMiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2Nvc21vcy8wLjAuODAvcGMvaW5kZXguanMiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PgoKPCEtLSBjb3Ntb3MgZW5kIC0tPgoKCgoKCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20vZy9hZS1mZS9oZWFkZXItdWkvMC4wLjQ2L3ByZXYvYmFjay9tZS1oZWFkZXIuY3NzIj4KCgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cgl2YXIgaGVhZGVyQ29uZmlnID0gewoJCWxvY2FsZTogImVuX1VTIiwKICAgICAgICBzaXRlOiBudWxsCgl9Cjwvc2NyaXB0PgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLmNvbnRhaW5lciB7CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICB3aWR0aDogNzYwcHgKfQouY29udGFpbmVyOmFmdGVyLC5jb250YWluZXI6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGRpc3BsYXk6IHRhYmxlCn0KLmNvbnRhaW5lcjphZnRlciB7CiAgICBjbGVhcjogYm90aAp9CkBtZWRpYSAobWluLXdpZHRoOiA3NjBweCkgewogICAgLmNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OjIwcHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgICAgICB3aWR0aDogYXV0bwogICAgfQp9CkBtZWRpYSAobWluLXdpZHRoOiAxMDIwcHgpIHsKICAgIC5jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDoxNXB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IGF1dG8KICAgIH0KfQpAbWVkaWEgKG1pbi13aWR0aDogMTI2MHB4KSB7CiAgICAuY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6MDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICB3aWR0aDogMTIwMHB4CiAgICB9Cn0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9InRvcC1saWdodGhvdXNlIiBpZD0idG9wLWxpZ2h0aG91c2UiIGRhdGEtdGltZS1zdGFtcC1mb3ItbWFyaz0iIj4KICAgIDxkaXYgY2xhc3M9InRvcC1saWdodGhvdXNlLXdyYXAgY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtZ2xvYmFsIiBpZD0ibmF2LWdsb2JhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5nLWl0ZW0gbmctYnAiPjxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS9CaFFQZ0VXUE5NLmh0bSIKICAgICAgICAgICAgICAgICAgICByZWw9Im5vZm9sbG93Ij5CdXllciBQcm90ZWN0aW9uPC9hPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLWJwIj48YSBpZD0ibGlnaHRob3VzZS1mZWVkYmFjayIgaHJlZj0iamF2YXNjcmlwdDo7Ij5TdWdnZXN0aW9uPC9hPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLWhlbHAgbmctc3ViIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuZy1zdWItdGl0bGUiPkhlbHA8L3NwYW4+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5nLXN1Yi1saXN0Ij4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLXJvbGU9ImhlbHAtY2VudGVyLWxpbmsiIGNsYXNzPSJuZy1oZWxwLWxpbmsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3NlcnZpY2UuYWxpZXhwcmVzcy5jb20vcGFnZS9ob21lP3BhZ2VJZD0xNyZsYW5ndWFnZT1lbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0iZm9sbG93Ij5DdXN0b21lciBTZXJ2aWNlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vcmVwb3J0LmFsaWV4cHJlc3MuY29tLyIgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcm9sZT0iY29tcGxhaW50LWxpbmsiPkRpc3B1dGVzICZhbXA7IFJlcG9ydHM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLW1vYmlsZSI+PGEgaHJlZj0iLy9zYWxlLmFsaWV4cHJlc3MuY29tL2Rvd25sb2FkX2FwcF9ndWlkZS5odG0iCiAgICAgICAgICAgICAgICAgICAgcmVsPSJub2ZvbGxvdyI+U2F2ZSBiaWcgb24gb3VyIGFwcCE8L2E+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im1lLWhlYWRlciIgaWQ9ImhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJoZWFkZXItd3JhcCBjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhtLWxlZnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWxvZ28gaW5zaWRlLXBhZ2UtbG9nbyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3d3dy5hbGlleHByZXNzLmNvbS8iPjxzcGFuIGNsYXNzPSJsb2dvLWJhc2UiPkFsaUV4cHJlc3M8L3NwYW4+PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJobS1yaWdodCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jYXJ0LWNvbnRhaW5lciI+PGEgY2xhc3M9Im5hdi1jYXJ0IG1lLWljb25zIgogICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vc2hvcHBpbmdjYXJ0LmFsaWV4cHJlc3MuY29tL3Nob3BjYXJ0L3Nob3BjYXJ0RGV0YWlsLmh0bSI+Q2FydDxzcGFuIGlkPSJuYXYtY2FydC1udW0iIGNsYXNzPSJjYXJ0LW51bWJlciI+MDwvc3Bhbj48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtd2lzaGxpc3QiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9teS5hbGlleHByZXNzLmNvbS93aXNobGlzdC93aXNoX2xpc3RfcHJvZHVjdF9saXN0Lmh0bSIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibmF2LXdpc2hsaXN0LWxpbmsiPldpc2ggTGlzdDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi11c2VyLWFjY291bnQiIGlkPSJuYXYtdXNlci1hY2NvdW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVzZXJBY2NvdW50SW5mbyIgY2xhc3M9InVzZXItYWNjb3VudC1pbmZvIiBkYXRhLXJvbGU9InVzZXItYWNjb3VudC10b3AiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYWNjb3VudC1pbm5lciBoaWRkZW4tc20iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWNjb3VudC11bnNpZ25lZCIgZGF0YS1yb2xlPSJ1bnNpZ25lZCI+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly9sb2dpbi5hbGlleHByZXNzLmNvbS9leHByZXNzL211bFNpdGVMb2dpbi5odG0iIGRhdGEtcm9sZT0ic2lnbi1saW5rIj5TaWduIGluPC9hPjxzcGFuIGNsYXNzPSJ1YS1saW5lIj58PC9zcGFuPjxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9Im5vZm9sbG93IiBocmVmPSIvL3VzLmFlLmFsaWV4cHJlc3MuY29tL3dzdXNlci9idXllckpvaW4vZXhwcmVzc0pvaW5JbmRleC5odG0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvbGU9ImpvaW4tbGluayI+U2lnbiBPdXQ8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWNjb3VudC1uYW1lIiBkYXRhLXJvbGU9InVzZXJuYW1lIj4mbmJzcDs8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYWNjb3VudC1tYWluIiBkYXRhLXJvbGU9InVzZXItYWNjb3VudC1tYWluIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHlvdXQtdXNlci1zaWdub3V0IiBkYXRhLXJvbGU9InNpZ25vdXQtYnRuIj48YSByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9sb2dpbi5hbGlleHByZXNzLmNvbS94bWFuL3hsb2dvdXQuaHRtIj5TaWduIE91dDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHlvdXQtdXNlci1zaWduSW4iIGRhdGEtcm9sZT0idXNlci1zaWduSW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmx5b3V0LXdlbGNvbWUtdGV4dCIgZGF0YS1yb2xlPSJmbHlvdXQtd2VsY29tZSI+Jm5ic3A7PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL2xvZ2luLmFsaWV4cHJlc3MuY29tL2V4cHJlc3MvbXVsU2l0ZUxvZ2luLmh0bSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic2lnbi1idG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb2xlPSJzaWduLWxpbmsiPlNpZ24gaW48L2E+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmx5b3V0LXNpZ25Jbi10eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNpZ24gaW4gd2l0aDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJudXMtaWNvbiBudXMtZmFjZWJvb2siIGRhdGEtcm9sZT0ibG9naW4tdHlwZSIgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3RoaXJkcGFydHkuYWxpZXhwcmVzcy5jb20vbG9naW4uaHRtP3R5cGU9ZmImdHJhY2Vsb2c9d3NfZmJfdG9wYmFyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJmYWNlYm9vayI+Jm5ic3A7PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im51cy1pY29uIG51cy12ayIgZGF0YS1yb2xlPSJsb2dpbi10eXBlIiByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vdGhpcmRwYXJ0eS5hbGlleHByZXNzLmNvbS9sb2dpbi5odG0/dHlwZT12ayZ0cmFjZWxvZz13c192a190b3BiYXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9InZrIj4mbmJzcDs8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGwgY2xhc3M9ImZseW91dC12aXNpdG9ycy1sb2dpbiIgZGF0YS1yb2xlPSJ1c2VyLWxvZ2luIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0Pk5ldyBDdXN0b21lcj88L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iLy91cy5hZS5hbGlleHByZXNzLmNvbS93c3VzZXIvYnV5ZXJKb2luL2V4cHJlc3NKb2luSW5kZXguaHRtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJqb2luLWJ0biIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvbGU9ImpvaW4tbGluayI+Sm9pbiBGcmVlPC9hPjwvZGQ+CiAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmbHlvdXQtcmVtaW5kLWxpc3QiIGNsYXNzPSJmbHlvdXQtcmVtaW5kLWxpc3QiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZmx5b3V0LXF1aWNrLWVudHJ5IiBkYXRhLXJvbGU9InF1aWNrLWVudHJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9ob21lLmFsaWV4cHJlc3MuY29tL2luZGV4Lmh0bT90cmFjZWxvZz13c190b3BiYXIiPk15IEFsaUV4cHJlc3M8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vdHJhZGUuYWxpZXhwcmVzcy5jb20vb3JkZXJMaXN0Lmh0bSI+TXkgT3JkZXJzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL21zZy5hbGlleHByZXNzLmNvbT90cmFjZWxvZz13c190b3BiYXIiPk1lc3NhZ2UgQ2VudGVyPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL215LmFsaWV4cHJlc3MuY29tL3dpc2hsaXN0L3dpc2hfbGlzdF9wcm9kdWN0X2xpc3QuaHRtIj5XaXNoIExpc3Q8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ianMtbWVudS1teS1mYXZvcml0ZS1zdG9yZXMiIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9teS5hbGlleHByZXNzLmNvbS93aXNobGlzdC93aXNoX2xpc3Rfc3RvcmVfbGlzdC5odG0iPk15IEZhdm9yaXRlIFN0b3JlczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9jb3Vwb24uYWxpZXhwcmVzcy5jb20vYnV5ZXIvY291cG9uL2xpc3RWaWV3Lmh0bSI+TXkgQ291cG9uczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhtLW1pZGRsZSI+CiAgICAgICAgICAgIDxmb3JtIGlkPSJmb3JtLXNlYXJjaGJhciIgY2xhc3M9InNlYXJjaGJhci1mb3JtIiBhY3Rpb249Ii93aG9sZXNhbGUiIG1ldGhvZD0iZ2V0Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjYXRJZCIgbmFtZT0iY2F0SWQiIHZhbHVlPSIwIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaXN0b3J5VGFiIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaXN0b3J5U2VhcmNoSW5wdXQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imhpc3RvcnlTZWFyY2hDb3VudHJ5Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbml0aWF0aXZlX2lkIiBuYW1lPSJpbml0aWF0aXZlX2lkIiB2YWx1ZT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iSSYjMzk7bSBzaG9wcGluZyBmb3IuLi4iIG1heGxlbmd0aD0iNTAiIGF1dG9jb21wbGV0ZT0ib2ZmIiB2YWx1ZSBuYW1lPSJTZWFyY2hUZXh0IiBjbGFzcz0ic2VhcmNoLWtleSIgaWQ9InNlYXJjaC1rZXkiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzZWFyY2gtYnV0dG9uIG1lLWljb25zIiB2YWx1ZT4KICAgIAkJCQk8L2Rpdj4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2hlYWRlci11aS8wLjAuNDYvcHJldi9iYWNrL21lLWhlYWRlci5qcyIgYXN5bmMgZGVmZXIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGRpdiBpZD0icm9vdCI+PGRpdiBjbGFzcz0icGFnZS1ub3QtZm91bmQiPjxkaXYgY2xhc3M9ImNtLXJlc3VsdCI+PGRpdiBjbGFzcz0iY20tcmVzdWx0LWljb24iPjxpbWcgc3JjPSJodHRwczovL2FlMDEuYWxpY2RuLmNvbS9rZi9IVEIxZzdWcmF4RDFnSzBqU1pGSzVqY0pyVlhhdy5naWYiLz48L2Rpdj48ZGl2IGNsYXNzPSJjbS1yZXN1bHQtdGl0bGUiPlNvcnJ5LCB3ZSBjYW4ndCBmaW5kIHRoYXQgcGFnZTwvZGl2PjxkaXYgY2xhc3M9ImNtLXJlc3VsdC1zdWJ0aXRsZSI+QnV0IHdlIHN0aWxsIGhhdmUgbG90cyBmb3IgeW91IHRvIGRpc2NvdmVyIH48L2Rpdj48ZGl2IGNsYXNzPSJjbS1yZXN1bHQtZXh0cmEiPjxhIGhyZWY9Ii8iIGNsYXNzPSJidXR0b24tcHJpbWFyeSI+YmFjayB0byBob21lcGFnZTwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0PndpbmRvdy5faGVhZGVyX2xvY2FsZV8gPSB7ImNhbm5vdF9maW5kX3BhZ2VfcmVtaW5kZXIiOiJTb3JyeSwgd2UgY2FuJ3QgZmluZCB0aGF0IHBhZ2UiLCJjYW5ub3RfZmluZF9wYWdlX2RlYyI6IkJ1dCB3ZSBzdGlsbCBoYXZlIGxvdHMgZm9yIHlvdSB0byBkaXNjb3ZlciB+IiwiYmFja1RvSG9tZSI6ImJhY2sgdG8gaG9tZXBhZ2UifTwvc2NyaXB0PjxkaXY+PCEtLSB0ZXN0IDAuMC40IC0tPjwvZGl2PjwhLS1nYmYgYmxvY2sgc3RhcnQgLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAuc2l0ZS1mb290ZXIgewogICAgICAgIGNsZWFyOiBib3RoOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7CiAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkbCB7CiAgICAgICAgcGFkZGluZzogMCAwIDI1cHggMAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkdCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkZCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAwCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIGRkIGEgewogICAgICAgIGNvbG9yOiAjOTk5CiAgICB9CgogICAgLnNpdGUtZm9vdGVyIGRkIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjb2xvcjogI2Y5MAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2Ytc2l0ZUludHJvIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zaXRlSW50cm8gZGwgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHgKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLU11bHRpTGFuZ3VhZ2VTaXRlIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsIHsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAwCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgewogICAgICAgIHBhZGRpbmc6IDEwcHggMCA0MHB4OwogICAgICAgIGZsb2F0OiBsZWZ0CiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgYSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAzMHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTRjNzM5OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGE6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgbGVmdDogNnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjFweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvL2FlMDEuYWxpY2RuLmNvbS9rZi9IOTA3NzU3ZmRhZDE4NGUzMWExYjU4YmQ2NTA3NjY2ZGVvLnBuZyk7CiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZQogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGEuaXBob25lLWxpbmsgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGMKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLWRvd25sb2FkLWFwcCBhLmlwaG9uZS1saW5rOmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8vYWUwMS5hbGljZG4uY29tL2tmL0g2ZGVhNTJhN2MwZGY0YmQ0ODQ2Y2VjNmFkZDAwNjBhY00ucG5nKTsKICAgICAgICBsZWZ0OiA3cHgKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLWFsaWJhYmFHcm91cCB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgd2lkdGg6IDUwJQogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtYWxpYmFiYUdyb3VwIGRsIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuY2xlYXJmaXg6YWZ0ZXIgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgZm9udC1zaXplOiAwOwogICAgICAgIGNvbnRlbnQ6ICJcMDAyMCI7CiAgICAgICAgY2xlYXI6IGJvdGgKICAgIH0KICAgIC5zaXRlLWZvb3RlciAuY2xlYXJmaXggeyB6b29tOjE7fQoKICAgIC5mb290ZXItY29weXdyaXRlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiA4cHggMAogICAgfQoKICAgIC5mb290ZXItY29weXdyaXRlIC5jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IC42OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgfQoKICAgIC5mb290ZXItY29weXdyaXRlIGEgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIG1hcmdpbjogMCAycHgKICAgIH0KCiAgICAuZm9vdGVyLWNvcHl3cml0ZSBpbWd7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIH0KCiAgICBAbWVkaWEobWF4LXdpZHRoOjEwMTlweCkgewoKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNpdGVJbnRybywKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNpdGVJbnRybywKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNlb0tleXdvcmQsCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgewogICAgICAgICAgICB3aWR0aDogMTAwJQogICAgICAgIH0KCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsLAogICAgICAgIC5zaXRlLWZvb3RlciAuc2Ytc2l0ZUludHJvIGRsIHsKICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMAogICAgICAgIH0KCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1hbGliYWJhR3JvdXAgZGwsCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsIHsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDI1cHgKICAgICAgICB9CiAgICB9Cjwvc3R5bGU+CgoKCgo8ZGl2IGNsYXNzPSJzaXRlLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY2xlYXJmaXgiPgogICAgICAgIDxkaXYgY2xhc3M9InNmLWFsaWV4cHJlc3NJbmZvIGNsZWFyZml4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Ytc2l0ZUludHJvIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICA8ZHQ+SGVscDwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPjxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS9rcl9oZWxwY2VudGVyLmh0bSI+Q3VzdG9tZXIgU2VydmljZTwvYT4sCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vcmVwb3J0LmFsaWV4cHJlc3MuY29tIj5EaXNwdXRlcyAmYW1wOyBSZXBvcnRzPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS92OFlyOGY2MjlELmh0bSIgcmVmPSJub2ZvbGxvdyI+QnV5ZXIgUHJvdGVjdGlvbjwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXBwLmFsaWJhYmFncm91cC5jb20iIHJlZj0ibm9mb2xsb3ciPlJlcG9ydCBJUFIgaW5mcmluZ2VtZW50PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNmLU11bHRpTGFuZ3VhZ2VTaXRlIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICA8ZHQ+QWxpRXhwcmVzcyBNdWx0aS1MYW5ndWFnZSBTaXRlczwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3J1LmFsaWV4cHJlc3MuY29tIj5SdXNzaWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vcHQuYWxpZXhwcmVzcy5jb20iPlBvcnR1Z3Vlc2U8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcy5hbGlleHByZXNzLmNvbSI+U3BhbmlzaDwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2ZyLmFsaWV4cHJlc3MuY29tIj5GcmVuY2g8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9kZS5hbGlleHByZXNzLmNvbSI+R2VybWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vaXQuYWxpZXhwcmVzcy5jb20iPkl0YWxpYW48L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9ubC5hbGlleHByZXNzLmNvbSI+RHV0Y2g8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy90ci5hbGlleHByZXNzLmNvbSI+VHVya2lzaDwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2phLmFsaWV4cHJlc3MuY29tIj5KYXBhbmVzZTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2tvLmFsaWV4cHJlc3MuY29tIj5Lb3JlYW48L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy90aC5hbGlleHByZXNzLmNvbSI+VGhhaTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3ZpLmFsaWV4cHJlc3MuY29tIj5WaWV0bmFtZXNlPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vYXIuYWxpZXhwcmVzcy5jb20iPkFyYWJpYzwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2hlLmFsaWV4cHJlc3MuY29tIj5IZWJyZXc8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9wbC5hbGlleHByZXNzLmNvbSI+UG9saXNoPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZi1zZW9LZXl3b3JkIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PkJyb3dzZSBieSBDYXRlZ29yeTwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vcG9wdWxhci5odG1sIj5BbGwgUG9wdWxhcjwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vd2hvbGVzYWxlLmh0bWwiPlByb2R1Y3Q8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3Byb21vdGlvbi5odG1sIj5Qcm9tb3Rpb248L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3ByaWNlLmh0bWwiPkxvdyBQcmljZTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vY2hlYXAuaHRtbCI+R3JlYXQgVmFsdWU8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3Jldmlld3MuaHRtbCI+UmV2aWV3czwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9zYWxlLmFsaWV4cHJlc3MuY29tL2Jsb2cuaHRtIj5CbG9nPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3NlbGwuYWxpZXhwcmVzcy5jb20vNERZVEZzU2tWMC5odG0iPlNlbGxlciBQb3J0YWw8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2FsZS5hbGlleHByZXNzLmNvbS9CbGFja0ZyaWRheS5odG0iPkJMQUNLIEZSSURBWTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuYWxpZXhwcmVzcy5jb20vYXNzaXN0YW50P2lzZGw9eSZhZmZfc2hvcnRfa2V5PV9iWG1FRlBNJmFmPWhvbWUmYWZmX3BsYXRmcm9tPXRydWUiPkFsaUV4cHJlc3MgQXNzaXN0YW50PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNmLWFsaWJhYmFHcm91cCBjb2wtbGctMzAgY29sLW1kLTMwIGNvbC1zbS02MCI+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD5BbGliYWJhIEdyb3VwPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmFncm91cC5jb20vZW4vZ2xvYmFsL2hvbWUiIHJlZj0ibm9mb2xsb3ciPkFsaWJhYmEgR3JvdXAgV2Vic2l0ZTwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tLyIgcmVmPSJub2ZvbGxvdyI+QWxpRXhwcmVzczwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYWxpbWFtYS5jb20vIiByZWY9Im5vZm9sbG93Ij5BbGltYW1hPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pbnRsLmFsaXBheS5jb20vaW5kZXguaHRtIiByZWY9Im5vZm9sbG93Ij5BbGlwYXk8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmZsaWdneS5jb20vIiByZWY9Im5vZm9sbG93Ij5GbGlnZ3k8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20iIHJlZj0ibm9mb2xsb3ciPkFsaWJhYmEgQ2xvdWQ8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmEuY29tLyIgcmVmPSJub2ZvbGxvdyI+QWxpYmFiYSBJbnRlcm5hdGlvbmFsPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2FsaXFpbi50bWFsbC5jb20vIiByZWY9Im5vZm9sbG93Ij5BbGlUZWxlY29tPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5kaW5ndGFsay5jb20vIiByZWY9Im5vZm9sbG93Ij5EaW5nVGFsazwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qdS50YW9iYW8uY29tLyIgcmVmPSJub2ZvbGxvdyI+SnVodWFzdWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy50YW9iYW8uY29tLyIgcmVmPSJub2ZvbGxvdyI+VGFvYmFvIE1hcmtldHBsYWNlPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy50bWFsbC5jb20vIiByZWY9Im5vZm9sbG93Ij5UbWFsbDwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd29ybGQudGFvYmFvLmNvbS8iIHJlZj0ibm9mb2xsb3ciPlRhb2JhbyBHbG9iYWw8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaW9zLmNuLyIgcmVmPSJub2ZvbGxvdyI+QWxpT1M8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LjE2ODguY29tLyIgcmVmPSJub2ZvbGxvdyI+MTY4ODwvYT48L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNmLWRvd25sb2FkLWFwcCI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJhbmRyb2lkLWxpbmsiCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9Y29tLmFsaWJhYmEuYWxpZXhwcmVzc2hkIgogICAgICAgICAgICAgICAgcmVmPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgIEdvb2dsZSBQbGF5CiAgICAgICAgICAgIDwvYT4gCiAgICAgICAgICAgIDxhIGNsYXNzPSJpcGhvbmUtbGluayIKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vaXR1bmVzLmFwcGxlLmNvbS91cy9hcHAvYWxpZXhwcmVzcy9pZDQzNjY3MjAyOSIKICAgICAgICAgICAgICAgIHJlZj0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICBBcHAgU3RvcmUKICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKCgogICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvcHl3cml0ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pcHAuYWxpYmFiYWdyb3VwLmNvbSIgcmVmPSJub2ZvbGxvdyI+SW50ZWxsZWN0dWFsIFByb3BlcnR5IFByb3RlY3Rpb248L2E+IC0KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jYW1wYWlnbi5hbGlleHByZXNzLmNvbS93b3cvZ2NwL2FwcC1yZWRpcmVjdC10ZXJtcy9pbmRleCIgcmVmPSJub2ZvbGxvdyI+UHJpdmFjeSBQb2xpY3k8L2E+IC0gCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmFsaWV4cHJlc3MuY29tL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT4gLSAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9ydWxlLmFsaWJhYmEuY29tL3J1bGUvZGV0YWlsLzIwNDEuaHRtIiByZWY9Im5vZm9sbG93Ij5UZXJtcyBvZiBVc2U8L2E+IC0gCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2FsZS5hbGlleHByZXNzLmNvbS9fX3BjL1Fub0xGQlZmcVkuaHRtIiByZWY9Im5vZm9sbG93Ij5JbmZvcm1hdGlvbiBmb3IgRVUgY29uc3VtZXJzPC9hPiAtIAogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3Rlcm1zLmFsaWNkbi5jb20vbGVnYWwtYWdyZWVtZW50L3Rlcm1zL3N1aXRfYnUxX2FsaWV4cHJlc3Mvc3VpdF9idTFfYWxpZXhwcmVzczIwMjEwOTI5MTg1Nl8zNTk0MC5odG1sIiByZWY9Im5vZm9sbG93Ij5UcmFuc2FjdGlvbiBTZXJ2aWNlcyBBZ3JlZW1lbnQgZm9yIEVVIGNvbnN1bWVyczwvYT4gLSAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9ydWxlLmFsaWJhYmEuY29tL3J1bGUvZGV0YWlsLzUwMzguaHRtIiByZWY9Im5vZm9sbG93Ij5Vc2VyIEluZm9ybWF0aW9uIExlZ2FsIEVucXVpcnkgR3VpZGU8L2E+IAogICAgICAgICAgICDCqe+4jzIwMTAtMjAyMiBBbGlFeHByZXNzLmNvbS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lkaW5mby56amFtci56ai5nb3YuY24vL2JzY3guZG8/c3BtPTUyNjEuMTEzMzM1NTUuMDA2LjQuNmZkNDJmZTBMcmxZZXUmbWV0aG9kPWx6eHgmaWQ9MzMwMTA4MzMwMTA4MDAwMDAyMjE2OSIgcmVmPSJub2ZvbGxvdyI+PGltZyBzdHlsZT0id2lkdGg6MjJweDsiIHNyYz0iaHR0cHM6Ly9hZTAxLmFsaWNkbi5jb20va2YvSGZmZjUyY2Y3MWY3ODRkOTlhZDkzYzczYTMzNGU3ZTM3YS82NXg3MC5naWYiIC8+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JlaWFuLm1paXQuZ292LmNuLyI+IOWinuWAvOeUteS/oeS4muWKoee7j+iQpeiuuOWPr+ivgSDmtZlCMi0yMDEyMDA5MS04PC9hPiAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5iZWlhbi5nb3YuY24vcG9ydGFsL3JlZ2lzdGVyU3lzdGVtSW5mbz9zcG09YTI2MGsuZGFjdWdlbmVyYWwuaG9tZTIwMTlmb290ZXIuMzIuNjYzMzQzNmM4aDEwOGUmcmVjb3JkY29kZT0zMzAxMDgwMjAwMjI0OCIgcmVmPSJub2ZvbGxvdyI+PGltZyBzcmM9Ii8vYWUwMS5hbGljZG4uY29tL2tmL0gxMDczMTNjMTQ1YTI0ZWVjOTQyODdjMTlmZDJhYTVjMGUvMjB4MjAucG5nIiAvPiDmtZnlhaznvZHlronlpIcgMzMwMTA4MDIwMDIyNDjlj7c8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKCgoKCgo8c2NyaXB0PgogICAgLyogPCFbQ0RBVEFbICovCiAgdHJ5ewogICAgKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZixzZWFyY2ggPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLHJlZ3gxID0gL2lzZGw9eS8scmVneDQgPSAvYWZmX3Nob3J0X2tleT0vOyAgCiAgICAgICAgaWYgKCFyZWd4MS50ZXN0KHNlYXJjaCkgJiYgIXJlZ3g0LnRlc3Qoc2VhcmNoKSkgcmV0dXJuOwogICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKICAgICAgICBpbWcub25sb2FkPWZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGltZz1udWxsOwogICAgICAgIH07CiAgICAgICAgaW1nLnNyYz0iLy9zLmNsaWNrLmFsaWV4cHJlc3MuY29tL2RpcmVjdF9sYW5kaW5nLmh0bSIrIHNlYXJjaCArICImdmVyc2lvbj0xLjEiOwogIH0pKCk7CiAgfWNhdGNoKGUpewogIH0KLyogXV0+ICovCjwvc2NyaXB0PgoKCjxzY3JpcHQ+CiAgICBpZiAoIXdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4pIHsKICAgICAgICB3aW5kb3cucmVjZW50bHl2aWV3ZWRpMThuID0ge307CiAgICB9CgogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi5yZWNlbnRseXZpZXdlZENvbnRlbnQgPSAiUmVjZW50bHkgVmlld2VkIjsKICAgIHdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4udmlld01vcmVBY3Rpb24gPSAiVmlldyBNb3JlIjsKICAgIHdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4ubm90aGluZ3ZpZXdlZENvbnRlbnQgPSAiUmVjZW50bHkgVmlld2VkIFByb2R1Y3RzIGlzIGEgZnVuY3Rpb24gd2hpY2ggaGVscHMgeW91IGtlZXAgdHJhY2sgb2YgeW91ciByZWNlbnQgdmlld2luZyBoaXN0b3J5LiI7CiAgICB3aW5kb3cucmVjZW50bHl2aWV3ZWRpMThuLnNob3Bub3dBY3Rpb24gPSAiU2hvcCBOb3ciOwogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi50dXJub2ZmY29udGVudCA9ICJSZWNlbnRseSBWaWV3ZWQgUHJvZHVjdHMgaGFzIGJlZW4gdHVybmVkIG9mZi4iOwogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi50dW5vbkFjdGlvbiA9ICJDbGljayBoZXJlIHRvIHR1cm4gaXQgYmFjayBvbi4iOwogICAgCiAgICBpZiAoIXdpbmRvdy5hZXBsdXNpMThuKSB7CiAgICAgICAgd2luZG93LmFlcGx1c2kxOG4gPSB7fTsKICAgIH0KCiAgICB3aW5kb3cuYWVwbHVzaTE4bi5hZGRpdGlvbmFsVGV4dENvbnRlbnQgPSAn0K3RgtC+0YIg0YLQvtCy0LDRgCDQv9C+0YfRgtCwINC/0YDQuNCy0LXQt9GR0YIg0LTQvtC80L7QuSA8c3Ryb25nPtCx0LXRgdC/0LvQsNGC0L3Qvjwvc3Ryb25nPiDRgSDQtNC+0YHRgtCw0LLQutC+0LkgQWxpRXhwcmVzcyBTdGFuZGFyZCA8c3BhbiBzdHlsZT0iY29sb3I6ICM5NDk0OTQiID4j0YHQuNC00LjQvNC00L7QvNCwPC9zcGFuPic7Cjwvc2NyaXB0Pgo8IS0tZ2JmIGJsb2NrIGVuZCAtLT48L2JvZHk+PC9odG1sPg=="