Image Image Image Image Image Image Image Image Image Image
Scroll to top

Top

No Comments

Nimble Storage’s Scale To Fit and Proactive Wellness Features Simplify IT

Nimble Storage’s Scale To Fit and Proactive Wellness Features Simplify IT
Scott D. Lowe, vExpert, MVP Virtual Machine, MCSE
  • On November 14, 2013

This week, Gestalt IT hosted a number of bloggers and analysts at Storage Field Day 4. One of the companies that we visited was Nimble Storage, a soon-to-be public that was actually launched at a previous Tech Field Day event. Nimble discussed with us a couple of important topics: Scale Out and Big Data.

Scale To Fit

Nimble began their session with a presentation by Umesh Maheshwari (Founder and CTO) around the company’s new scaling opportunities. He indicated that many vendors provide scale up capabilities, which provides scaling of resources in just a single dimension. While simple to implement, it can only scale to a point and eventually requires a forklift upgrade to get to the next scale unit. With scale out, on the other hand, all resources are scaled in all dimensions, enabling the product to refresh perpetually. But, while scale out is often a desired feature, it’s tough for vendors to create all of the constructs that are necessary to enable all of the nodes to act as a cohesive, singular whole.

Nimble has taken the approach that both approaches have a place in the enterprise and, personally, I believe they’re spot on. Many organizations have light duty I/O needs, but really high capacity needs. For these organizations, a scale up approach makes perfect sense and can save a lot of money. For others, they may need both high I/O and high capacity. These customers would quickly outstrip the resource potential in a single node, so having the ability to scale to four nodes in a cluster makes sense.

On the scale up front, Nimble enables these scenarios:

  • Scale capacity by adding additional storage shelves. Nimble supports up for four disk shelves per node.
  • Scale up performance by upgrading compute to get greater throughput and IOPS, and expanding cache with larger SSDs to handle more active data.

When it comes to scale out, Nimble enables customers to scale capacity and performance by grouping any combination of hybrid arrays to form a scale-out storage cluster. Nimble supports up to four nodes in a cluster. In a fully built-out cluster, up to sixteen disk shelves can exist. This is a far cry from the company’s already substantial v1 efforts and is a great step forward.

You may wonder why Nimble only scales to four nodes. At present, the company has taken a very important first step in achieving scale out in a way that enables an increase in both performance and capacity. Nimble chops up data into small slices and stripes them across node members. In doing so, Nimble can leverage all of the CPU, all of the network, and all of the spindles of all nodes, ensuring linear resource scalability. However, all fault tolerance still takes place at the node level. Bear in mind that each individual node is engineered to be highly available and Nimble indicates that their customers enjoy greater than 99.999% uptime. However, for volumes that use this slicing technique, if any node fails, the entire volume in inaccessible.

I asked Nimble if this was because they’re just kicking off their scale out efforts and they indicated that this was the case. Over time, they will build more substantial data protection mechanisms that allow customers to eventually scale well beyond just four nodes. In other words, they had to start somewhere, so they did. The primary downside to the approach is that the possibility of a failure for sliced volumes can be up to four times greater than for volumes the reside on a single volume alone, but with availability metrics better than 99.999% per node, the risk is still reasonable.

Scale to Fit has been released, but is not yet fully generally available.

InfoSight

Scale out has been a critical need for Nimble. Without it, the company would have been relegated to the SMB and small midmarket. But, what I’m even more excited about is InfoSight. Last year, I was just about as excited by what I saw from HP’s Gen 8 servers in which HP introduced comprehensive, phone-home instrumentation. The sensors constantly gather data and send that data to HP. In fact, when a customer calls HP, there’s a good chance that the support tech will know more about the issue than the customer.

Consider the traditional support approach:

  • A problem occurs
  • The customer tries to figure it out
  • The customer calls the vendor
  • The vendor asks the customer to reproduce the issue and then goes through the exact same steps that the customer has already performed
  • The customer gets frustrated
  • Eventually, the problem is fixed, but it could be days or even weeks while research takes place to nail down an intermittent issue.

InfoSight is Nimble’s big data answer to improving overall customer support and satisfaction, not to mention availability. Each Nimble array sends a heartbeat to Nimble HQ every five minutes. The heartbeat packet includes statistics about temperature, overall disk health, replication status, and a whole lot more. Each day, the array sends a more comprehensive set of stats back to Nimble as well. 30 million sensors (or more!) per array per day are reported to Nimble HQ. All of this information is pushed into the InfoSight engine.

is-1

Customers have access to all of this information via the InfoSight portal. More importantly, though, once Nimble has all of this information, it becomes simpler to determine root cause issues and even take proactive steps to avoid issues. For example, suppose Customer A has seen an issue that is the result of a particular configuration. Nimble can query InfoSight to determine what other customers might be susceptible to the same issue. In this service which Nimble calls Proactive Wellness, Nimble will open a ticket automatically for the customer and help them resolve the issue before it becomes a problem. In addition, Nimble can notify the customer of other situations as well, such as:

  • Opportunities to free up disk space
  • Alerts for unprotected volumes
  • Misconfiguration warnings (i.e. MPIO)

In fact, Nimble was able to quickly identify a software bug in their code because of the information that was being gleaned from real-world customer environments. Developers were able to quickly fix the code and, based on all of their metrics, reached out to customers with a fix in the order in which Nimble thought that they would be affected.

Personally, I believe that these kinds of solutions are absolutely critical for overworked IT departments. Any kind of partnership that can proactively correct issues in critical infrastructure is a boon.

In addition, the way that Nimble is leveraging Big Data is a perfect example of how Big Data can be leveraged to boost the bottom line and improve key metrics in various lines of business. In Nimble’s case:

  • They are able to better support their customers, which is a direct benefit.
  • They can very quickly correct code bugs, which is a direct benefit.
  • They can look for trends in real world usage to help make data-driven decisions regarding future development.

Summary

Nimble has taken a really good first step in scaling their architecture and I look forward to seeing where they take it next. With the current solution, Nimble has opened up a huge new market that needed more aggregate capacity and performance than could be supported before. Further, with InfoSight, Nimble has made sure that they have all of the data they need in order to continually — and proactively — support there customers while also helping to identify future development activities.

Submit a Comment

Do you want massive traffic?
Dignissim enim porta aliquam nisi pellentesque. Pulvinar rhoncus magnis turpis sit odio pid pulvinar mattis integer aliquam!
  • Goblinus globalus fantumo tubus dia montes
  • Scelerisque cursus dignissim lopatico vutario
  • Montes vutario lacus quis preambul den lacus
  • Leftomato denitro oculus softam lorum quis
  • Spiratio dodenus christmas gulleria tix digit
  • Dualo fitemus lacus quis preambul pat turtulis
* we never share your e-mail with third parties.
COMPANY NAME
221, Mount Olimpus, Rheasilvia, Mars,
Solar System, Milky Way Galaxy
+1 (999) 123-45-67
Thank You. We will contact you as soon as possible.
Do you want more traffic?
Dignissim enim porta aliquam nisi pellentesque. Pulvinar rhoncus magnis turpis sit odio pid pulvinar mattis integer aliquam!
  • Goblinus globalus fantumo tubus dia montes
  • Scelerisque cursus dignissim lopatico vutario
  • Montes vutario lacus quis preambul den lacus
  • Leftomato denitro oculus softam lorum quis
  • Spiratio dodenus christmas gulleria tix digit
  • Dualo fitemus lacus quis preambul pat turtulis
  • Scelerisque cursus dignissim lopatico vutario
  • Montes vutario lacus quis preambul den lacus
SUBSCRIBE TO OUR NEWSLETTER AND START INCREASING YOUR PROFITS NOW!
* we never share your e-mail with third parties.
SUBSCRIBE TO NEWSLETTER
Turpis dis amet adipiscing hac montes odio ac velit? Porta, non rhoncus vut, vel, et adipiscing magna pulvinar adipiscing est adipiscing urna. Dignissim rhoncus scelerisque pulvinar?
SUBSCRIBE TO OUR NEWSLETTER
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvajhsU2NITzJtTTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
All rights reserved © Company Name, 2014
CONTACT US
COMPANY NAME
221, Mount Olimpus, Rheasilvia, Mars
Solar System, Milky Way Galaxy
+1 (999) 999-99-99
Thank You. We will contact you as soon as possible.
Macbook Pro
* Intel Core i7 (3.8GHz, 6MB cache)
* Retina Display (2880 x 1880 px)
* NVIDIA GeForce GT 750M (Iris)
* 802.11ac Wi-Fi and Bluetooth 4.0
* Thunderbolt 2 (up to 20Gb/s)
* Faster All-Flash Storage (X1)
* Long Lasting Battery (9 hours)
Ivan Churakov, developer
Tel.:
Fax:
E-mail:
Website:
+1 (800) 800-1234, +1 (800) 123-4567
+1 (800) 800-1234 (ext. 1234)
ivan.churakov@domain.tld
http://halfdata.com/
My CodeCanyon Portfolio
Banner Manager Pro - CodeCanyon Item for Sale
Coming Soon and Maintenance Mode - CodeCanyon Item for Sale
Code Shop - CodeCanyon Item for Sale
Keyword Tooltips - CodeCanyon Item for Sale
Subscribe & Download - CodeCanyon Item for Sale
"A placerat mauris placerat et penatibus porta aliquet sed dapibus, pulvinar urna cum aliquet arcu lectus sed tortor aliquet sed dapibus."
John Doe, Astronomer
Bubble Company Inc. © 2011-2014
SUBSCRIBE TO NEWSLETTER
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Ii8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3NCV1BDdmR2OEJrP2F1dG9wbGF5PTEiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
ENJOY AURORA BOREALIS
SUBSCRIBE TO NEWSLETTER
INTERGALACTIC COMPANY
"Ridiculus enim cras placerat facilisis amet lorem ipsum scelerisque sagittis lorem tis!"
Jojn Doe, CEO
Tel.: +1 (800) 123-45-67, +1 (800) 123-45-68
Fax: +1 (800) 123-45-69 (any time, 24/7/365)
E-mail: info@intergalactic.company
Website: http://www.intergalactic.company
Address:
221, Mount Olimpus,
Rheasilvia region, Mars,
Solar System, Milky Way Galaxy
Do you want more traffic?
Dignissim enim porta aliquam nisi pellentesque. Pulvinar rhoncus magnis turpis sit odio pid pulvinar mattis integer aliquam!
  • Goblinus globalus fantumo tubus dia
  • Scelerisque cursus dignissim lopatico
  • Montes vutario lacus quis preambul
  • Leftomato denitro oculus softam lorum
  • Spiratio dodenus christmas gulleria tix
  • Dualo fitemus lacus quis preambul bela
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvajhsU2NITzJtTTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
* we never share your details with third parties.
Do you want massive traffic?
Scelerisque augue ac hac, aliquet, nascetur turpis. Augue diam phasellus odio lorem integer, aliquam aliquam sociis nisi adipiscing hacac.
  • Goblinus globalus fantumo tubus dia
  • Scelerisque cursus dignissim lopatico
  • Montes vutario lacus quis preambul
  • Leftomato denitro oculus softam lorum
  • Spiratio dodenus christmas gulleria tix
  • Dualo fitemus lacus quis preambul bela
PGlmcmFtZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvajhsU2NITzJtTTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
* we never share your details with third parties.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMjMnIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxhIGlkPSdnZl8yMycgbmFtZT0nZ2ZfMjMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV8yMycgIGFjdGlvbj0nL25pbWJsZS1zdG9yYWdlcy1zY2FsZS1maXQtcHJvYWN0aXZlLXdlbGxuZXNzLyNnZl8yMyc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2JvZHknPjx1bCBpZD0nZ2Zvcm1fZmllbGRzXzIzJyBjbGFzcz0nZ2Zvcm1fZmllbGRzIHRvcF9sYWJlbCBmb3JtX3N1YmxhYmVsX2JlbG93IGRlc2NyaXB0aW9uX2JlbG93Jz48bGkgaWQ9J2ZpZWxkXzIzXzEnIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfMScgPkZpcnN0IE5hbWU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzEnIGlkPSdpbnB1dF8yM18xJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzEnICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfMicgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM18yJyA+TGFzdCBOYW1lPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyBpZD0naW5wdXRfMjNfMicgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgIHRhYmluZGV4PScyJyAgIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzIzXzMnIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfMycgPkVtYWlsPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF8yM18zJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyB0YWJpbmRleD0nMycgICAvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfNScgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM181JyA+Q291bnRyeTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48c2VsZWN0IG5hbWU9J2lucHV0XzUnIGlkPSdpbnB1dF8yM181JyBvbmNoYW5nZT0nZ2ZfYXBwbHlfcnVsZXMoMjMsWzRdKTsnIGNsYXNzPSdtZWRpdW0gZ2ZpZWxkX3NlbGVjdCcgdGFiaW5kZXg9JzQnID48b3B0aW9uIHZhbHVlPSdVbml0ZWQgU3RhdGVzJyBzZWxlY3RlZD0nc2VsZWN0ZWQnPlVuaXRlZCBTdGF0ZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYW5hZGEnID5DYW5hZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVbml0ZWQgS2luZ2RvbScgPlVuaXRlZCBLaW5nZG9tPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXVzdHJhbGlhJyA+QXVzdHJhbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWZnaGFuaXN0YW4nID5BZmdoYW5pc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FsYmFuaWEnID5BbGJhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWxnZXJpYScgPkFsZ2VyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbWVyaWNhbiBTYW1vYScgPkFtZXJpY2FuIFNhbW9hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQW5kb3JyYScgPkFuZG9ycmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbmdvbGEnID5BbmdvbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbnRpZ3VhIGFuZCBCYXJidWRhJyA+QW50aWd1YSBhbmQgQmFyYnVkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FyZ2VudGluYScgPkFyZ2VudGluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FybWVuaWEnID5Bcm1lbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXVzdHJpYScgPkF1c3RyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBemVyYmFpamFuJyA+QXplcmJhaWphbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JhaGFtYXMnID5CYWhhbWFzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmFocmFpbicgPkJhaHJhaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCYW5nbGFkZXNoJyA+QmFuZ2xhZGVzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JhcmJhZG9zJyA+QmFyYmFkb3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCZWxhcnVzJyA+QmVsYXJ1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JlbGdpdW0nID5CZWxnaXVtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVsaXplJyA+QmVsaXplPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVuaW4nID5CZW5pbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Jlcm11ZGEnID5CZXJtdWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmh1dGFuJyA+Qmh1dGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQm9saXZpYScgPkJvbGl2aWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCb3NuaWEgYW5kIEhlcnplZ292aW5hJyA+Qm9zbmlhIGFuZCBIZXJ6ZWdvdmluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JvdHN3YW5hJyA+Qm90c3dhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCcmF6aWwnID5CcmF6aWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCcnVuZWknID5CcnVuZWk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCdWxnYXJpYScgPkJ1bGdhcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQnVya2luYSBGYXNvJyA+QnVya2luYSBGYXNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQnVydW5kaScgPkJ1cnVuZGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYW1ib2RpYScgPkNhbWJvZGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2FtZXJvb24nID5DYW1lcm9vbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhcGUgVmVyZGUnID5DYXBlIFZlcmRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2F5bWFuIElzbGFuZHMnID5DYXltYW4gSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycgPkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NoYWQnID5DaGFkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2hpbGUnID5DaGlsZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NoaW5hJyA+Q2hpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb2xvbWJpYScgPkNvbG9tYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29tb3JvcycgPkNvbW9yb3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnID5Db25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb25nbywgUmVwdWJsaWMgb2YgdGhlJyA+Q29uZ28sIFJlcHVibGljIG9mIHRoZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Nvc3RhIFJpY2EnID5Db3N0YSBSaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQyZvY2lyYzt0ZSBkJiMwMzk7SXZvaXJlJyA+QyZvY2lyYzt0ZSBkJiMwMzk7SXZvaXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ3JvYXRpYScgPkNyb2F0aWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDdWJhJyA+Q3ViYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0N5cHJ1cycgPkN5cHJ1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0N6ZWNoIFJlcHVibGljJyA+Q3plY2ggUmVwdWJsaWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEZW5tYXJrJyA+RGVubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0RqaWJvdXRpJyA+RGppYm91dGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEb21pbmljYScgPkRvbWluaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRG9taW5pY2FuIFJlcHVibGljJyA+RG9taW5pY2FuIFJlcHVibGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRWFzdCBUaW1vcicgPkVhc3QgVGltb3I8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFY3VhZG9yJyA+RWN1YWRvcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VneXB0JyA+RWd5cHQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFbCBTYWx2YWRvcicgPkVsIFNhbHZhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRXF1YXRvcmlhbCBHdWluZWEnID5FcXVhdG9yaWFsIEd1aW5lYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VyaXRyZWEnID5Fcml0cmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRXN0b25pYScgPkVzdG9uaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFdGhpb3BpYScgPkV0aGlvcGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRmlqaScgPkZpamk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdGaW5sYW5kJyA+RmlubGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ZyYW5jZScgPkZyYW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dhYm9uJyA+R2Fib248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHYW1iaWEnID5HYW1iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHZW9yZ2lhJyA+R2VvcmdpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dlcm1hbnknID5HZXJtYW55PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2hhbmEnID5HaGFuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dyZWVjZScgPkdyZWVjZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dyZWVubGFuZCcgPkdyZWVubGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dyZW5hZGEnID5HcmVuYWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3VhbScgPkd1YW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWF0ZW1hbGEnID5HdWF0ZW1hbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWluZWEnID5HdWluZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWluZWEtQmlzc2F1JyA+R3VpbmVhLUJpc3NhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1eWFuYScgPkd1eWFuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0hhaXRpJyA+SGFpdGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIb25kdXJhcycgPkhvbmR1cmFzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSG9uZyBLb25nJyA+SG9uZyBLb25nPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSHVuZ2FyeScgPkh1bmdhcnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJY2VsYW5kJyA+SWNlbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0luZGlhJyA+SW5kaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJbmRvbmVzaWEnID5JbmRvbmVzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJcmFuJyA+SXJhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lyYXEnID5JcmFxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSXJlbGFuZCcgPklyZWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJc3JhZWwnID5Jc3JhZWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJdGFseScgPkl0YWx5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSmFtYWljYScgPkphbWFpY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdKYXBhbicgPkphcGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSm9yZGFuJyA+Sm9yZGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS2F6YWtoc3RhbicgPkthemFraHN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLZW55YScgPktlbnlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS2lyaWJhdGknID5LaXJpYmF0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05vcnRoIEtvcmVhJyA+Tm9ydGggS29yZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb3V0aCBLb3JlYScgPlNvdXRoIEtvcmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS3V3YWl0JyA+S3V3YWl0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS3lyZ3l6c3RhbicgPkt5cmd5enN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMYW9zJyA+TGFvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xhdHZpYScgPkxhdHZpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xlYmFub24nID5MZWJhbm9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGVzb3RobycgPkxlc290aG88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMaWJlcmlhJyA+TGliZXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpYnlhJyA+TGlieWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMaWVjaHRlbnN0ZWluJyA+TGllY2h0ZW5zdGVpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpdGh1YW5pYScgPkxpdGh1YW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0x1eGVtYm91cmcnID5MdXhlbWJvdXJnPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFjZWRvbmlhJyA+TWFjZWRvbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFkYWdhc2NhcicgPk1hZGFnYXNjYXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWxhd2knID5NYWxhd2k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWxheXNpYScgPk1hbGF5c2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFsZGl2ZXMnID5NYWxkaXZlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hbGknID5NYWxpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFsdGEnID5NYWx0YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hcnNoYWxsIElzbGFuZHMnID5NYXJzaGFsbCBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWF1cml0YW5pYScgPk1hdXJpdGFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXVyaXRpdXMnID5NYXVyaXRpdXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNZXhpY28nID5NZXhpY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaWNyb25lc2lhJyA+TWljcm9uZXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vbGRvdmEnID5Nb2xkb3ZhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9uYWNvJyA+TW9uYWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9uZ29saWEnID5Nb25nb2xpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vbnRlbmVncm8nID5Nb250ZW5lZ3JvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9yb2NjbycgPk1vcm9jY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb3phbWJpcXVlJyA+TW96YW1iaXF1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J015YW5tYXInID5NeWFubWFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmFtaWJpYScgPk5hbWliaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOYXVydScgPk5hdXJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmVwYWwnID5OZXBhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldGhlcmxhbmRzJyA+TmV0aGVybGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXcgWmVhbGFuZCcgPk5ldyBaZWFsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmljYXJhZ3VhJyA+TmljYXJhZ3VhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmlnZXInID5OaWdlcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05pZ2VyaWEnID5OaWdlcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9yd2F5JyA+Tm9yd2F5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJyA+Tm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nT21hbicgPk9tYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQYWtpc3RhbicgPlBha2lzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFsYXUnID5QYWxhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BhbGVzdGluZScgPlBhbGVzdGluZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BhbmFtYScgPlBhbmFtYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BhcHVhIE5ldyBHdWluZWEnID5QYXB1YSBOZXcgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFyYWd1YXknID5QYXJhZ3VheTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BlcnUnID5QZXJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGhpbGlwcGluZXMnID5QaGlsaXBwaW5lczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BvbGFuZCcgPlBvbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BvcnR1Z2FsJyA+UG9ydHVnYWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQdWVydG8gUmljbycgPlB1ZXJ0byBSaWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUWF0YXInID5RYXRhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1JvbWFuaWEnID5Sb21hbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUnVzc2lhJyA+UnVzc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUndhbmRhJyA+UndhbmRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FpbnQgS2l0dHMgYW5kIE5ldmlzJyA+U2FpbnQgS2l0dHMgYW5kIE5ldmlzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FpbnQgTHVjaWEnID5TYWludCBMdWNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJyA+U2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYW1vYScgPlNhbW9hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FuIE1hcmlubycgPlNhbiBNYXJpbm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnID5TYW8gVG9tZSBhbmQgUHJpbmNpcGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYXVkaSBBcmFiaWEnID5TYXVkaSBBcmFiaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTZW5lZ2FsJyA+U2VuZWdhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NlcmJpYSBhbmQgTW9udGVuZWdybycgPlNlcmJpYSBhbmQgTW9udGVuZWdybzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NleWNoZWxsZXMnID5TZXljaGVsbGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2llcnJhIExlb25lJyA+U2llcnJhIExlb25lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2luZ2Fwb3JlJyA+U2luZ2Fwb3JlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2xvdmFraWEnID5TbG92YWtpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Nsb3ZlbmlhJyA+U2xvdmVuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb2xvbW9uIElzbGFuZHMnID5Tb2xvbW9uIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb21hbGlhJyA+U29tYWxpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvdXRoIEFmcmljYScgPlNvdXRoIEFmcmljYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NwYWluJyA+U3BhaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTcmkgTGFua2EnID5TcmkgTGFua2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTdWRhbicgPlN1ZGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3VkYW4sIFNvdXRoJyA+U3VkYW4sIFNvdXRoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3VyaW5hbWUnID5TdXJpbmFtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N3YXppbGFuZCcgPlN3YXppbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N3ZWRlbicgPlN3ZWRlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N3aXR6ZXJsYW5kJyA+U3dpdHplcmxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTeXJpYScgPlN5cmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGFpd2FuJyA+VGFpd2FuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGFqaWtpc3RhbicgPlRhamlraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUYW56YW5pYScgPlRhbnphbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGhhaWxhbmQnID5UaGFpbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RvZ28nID5Ub2dvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVG9uZ2EnID5Ub25nYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RyaW5pZGFkIGFuZCBUb2JhZ28nID5UcmluaWRhZCBhbmQgVG9iYWdvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVHVuaXNpYScgPlR1bmlzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdXJrZXknID5UdXJrZXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdXJrbWVuaXN0YW4nID5UdXJrbWVuaXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdXZhbHUnID5UdXZhbHU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVZ2FuZGEnID5VZ2FuZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVa3JhaW5lJyA+VWtyYWluZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VuaXRlZCBBcmFiIEVtaXJhdGVzJyA+VW5pdGVkIEFyYWIgRW1pcmF0ZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVcnVndWF5JyA+VXJ1Z3VheTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1V6YmVraXN0YW4nID5VemJla2lzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmFudWF0dScgPlZhbnVhdHU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWYXRpY2FuIENpdHknID5WYXRpY2FuIENpdHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWZW5lenVlbGEnID5WZW5lenVlbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWaWV0bmFtJyA+VmlldG5hbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZpcmdpbiBJc2xhbmRzLCBCcml0aXNoJyA+VmlyZ2luIElzbGFuZHMsIEJyaXRpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWaXJnaW4gSXNsYW5kcywgVS5TLicgPlZpcmdpbiBJc2xhbmRzLCBVLlMuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nWWVtZW4nID5ZZW1lbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1phbWJpYScgPlphbWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ppbWJhYndlJyA+WmltYmFid2U8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfNCcgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzQnID5TdGF0ZTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PHNlbGVjdCBuYW1lPSdpbnB1dF80JyBpZD0naW5wdXRfMjNfNCcgIGNsYXNzPSdtZWRpdW0gZ2ZpZWxkX3NlbGVjdCcgdGFiaW5kZXg9JzUnID48b3B0aW9uIHZhbHVlPSdBbGFiYW1hJyA+QWxhYmFtYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FsYXNrYScgPkFsYXNrYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FyaXpvbmEnID5Bcml6b25hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJrYW5zYXMnID5BcmthbnNhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhbGlmb3JuaWEnID5DYWxpZm9ybmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29sb3JhZG8nID5Db2xvcmFkbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Nvbm5lY3RpY3V0JyA+Q29ubmVjdGljdXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEZWxhd2FyZScgPkRlbGF3YXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRGlzdHJpY3Qgb2YgQ29sdW1iaWEnID5EaXN0cmljdCBvZiBDb2x1bWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Zsb3JpZGEnID5GbG9yaWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2VvcmdpYScgPkdlb3JnaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIYXdhaWknID5IYXdhaWk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJZGFobycgPklkYWhvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSWxsaW5vaXMnID5JbGxpbm9pczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0luZGlhbmEnID5JbmRpYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSW93YScgPklvd2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLYW5zYXMnID5LYW5zYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLZW50dWNreScgPktlbnR1Y2t5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTG91aXNpYW5hJyA+TG91aXNpYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFpbmUnID5NYWluZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hcnlsYW5kJyA+TWFyeWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXNzYWNodXNldHRzJyA+TWFzc2FjaHVzZXR0czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pY2hpZ2FuJyA+TWljaGlnYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaW5uZXNvdGEnID5NaW5uZXNvdGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaXNzaXNzaXBwaScgPk1pc3Npc3NpcHBpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWlzc291cmknID5NaXNzb3VyaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vbnRhbmEnID5Nb250YW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmVicmFza2EnID5OZWJyYXNrYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldmFkYScgPk5ldmFkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBIYW1wc2hpcmUnID5OZXcgSGFtcHNoaXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV3IEplcnNleScgPk5ldyBKZXJzZXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXcgTWV4aWNvJyA+TmV3IE1leGljbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBZb3JrJyA+TmV3IFlvcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J0aCBDYXJvbGluYScgPk5vcnRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9ydGggRGFrb3RhJyA+Tm9ydGggRGFrb3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nT2hpbycgPk9oaW88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPa2xhaG9tYScgPk9rbGFob21hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nT3JlZ29uJyA+T3JlZ29uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGVubnN5bHZhbmlhJyA+UGVubnN5bHZhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUmhvZGUgSXNsYW5kJyA+UmhvZGUgSXNsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU291dGggQ2Fyb2xpbmEnID5Tb3V0aCBDYXJvbGluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvdXRoIERha290YScgPlNvdXRoIERha290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Rlbm5lc3NlZScgPlRlbm5lc3NlZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RleGFzJyA+VGV4YXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVdGFoJyA+VXRhaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Zlcm1vbnQnID5WZXJtb250PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmlyZ2luaWEnID5WaXJnaW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1dhc2hpbmd0b24nID5XYXNoaW5ndG9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nV2VzdCBWaXJnaW5pYScgPldlc3QgVmlyZ2luaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdXaXNjb25zaW4nID5XaXNjb25zaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdXeW9taW5nJyA+V3lvbWluZzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FybWVkIEZvcmNlcyBBbWVyaWNhcycgPkFybWVkIEZvcmNlcyBBbWVyaWNhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FybWVkIEZvcmNlcyBFdXJvcGUnID5Bcm1lZCBGb3JjZXMgRXVyb3BlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZWQgRm9yY2VzIFBhY2lmaWMnID5Bcm1lZCBGb3JjZXMgUGFjaWZpYzwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM182JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfNicgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfNicgaWQ9J2lucHV0XzIzXzYnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nIHRhYmluZGV4PSc2JyAgIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzIzXzcnIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfNycgPkNvbXBhbnk8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzcnIGlkPSdpbnB1dF8yM183JyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzcnICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfOCcgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzgnID5Kb2IgVGl0bGU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF84JyBpZD0naW5wdXRfMjNfOCcgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgIHRhYmluZGV4PSc4JyAgIC8+PC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzIzJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1JlZ2lzdGVyIE5vdyEnIHRhYmluZGV4PSc5JyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjMiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yMyJdPXRydWU7ICAnIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTIzJmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzIzJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nMjMnIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzIzJyB2YWx1ZT0nV3lKYlhTSXNJbU5oT0RVM1ltWXdNRFl3TkRjd01UbGpNbUV5TWpBMk5HWmhaREF3TnpBMUlsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yMycgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yMycgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl8yMycgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl8yMycgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzIzJyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV8yMyc+PC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCAyMywgJ2h0dHA6Ly93d3cudmlydHVhbGl6YXRpb25zb2Z0d2FyZS5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV8yMycpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzIzJyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl8yMycpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO3NldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzIzJykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggMjMsICdodHRwOi8vd3d3LnZpcnR1YWxpemF0aW9uc29mdHdhcmUuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbMjMsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yMyddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5yZXBsYWNlV2l0aCgnPCcgKyAnZGl2IGlkPVwnZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzXCcgY2xhc3M9XCdnZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZV8yMyBnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VcJycgKyAnPicgKyBjb25maXJtYXRpb25fY29udGVudCArICc8JyArICcvZGl2JyArICc+Jyk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzJykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbMjNdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfMjMnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV8yMycpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzIzLCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwOlwvXC93d3cudmlydHVhbGl6YXRpb25zb2Z0d2FyZS5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHA6XC9cL3d3dy52aXJ0dWFsaXphdGlvbnNvZnR3YXJlLmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gMjMpIHtpZih3aW5kb3dbJ2pRdWVyeSddKXtpZighd2luZG93WydnZl9mb3JtX2NvbmRpdGlvbmFsX2xvZ2ljJ10pd2luZG93WydnZl9mb3JtX2NvbmRpdGlvbmFsX2xvZ2ljJ10gPSBuZXcgQXJyYXkoKTt3aW5kb3dbJ2dmX2Zvcm1fY29uZGl0aW9uYWxfbG9naWMnXVsyM10gPSB7J2xvZ2ljJyA6IHs0OiB7ImZpZWxkIjp7ImFjdGlvblR5cGUiOiJoaWRlIiwibG9naWNUeXBlIjoiYWxsIiwicnVsZXMiOlt7ImZpZWxkSWQiOiI1Iiwib3BlcmF0b3IiOiJpc25vdCIsInZhbHVlIjoiVW5pdGVkIFN0YXRlcyJ9XX0sIm5leHRCdXR0b24iOm51bGwsInNlY3Rpb24iOm51bGx9IH0sICdkZXBlbmRlbnRzJyA6IHs0OiBbNF0gfSwgJ2FuaW1hdGlvbicgOiAwICwgJ2RlZmF1bHRzJyA6IHsiNSI6IlVuaXRlZCBTdGF0ZXMifSB9OyBpZighd2luZG93WydnZl9udW1iZXJfZm9ybWF0J10pd2luZG93WydnZl9udW1iZXJfZm9ybWF0J10gPSAnZGVjaW1hbF9kb3QnO2pRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtnZl9hcHBseV9ydWxlcygyMywgWzRdLCB0cnVlKTtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzIzJykuc2hvdygpO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIFsyMywgbnVsbCwgdHJ1ZV0pO30gKTt9IGdmb3JtSW5pdENob3NlbkZpZWxkcygnI2lucHV0XzIzXzUsI2lucHV0XzIzXzQnLCdObyByZXN1bHRzIG1hdGNoZWQnKTt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7Z2Zvcm1Jbml0Q2hvc2VuRmllbGRzKCcjaW5wdXRfMjNfNSwjaW5wdXRfMjNfNCcsJ05vIHJlc3VsdHMgbWF0Y2hlZCcpO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzIzLCAxXSkgfSApOyA8L3NjcmlwdD4=
Can't Make the time?
Can't Make the Webinar Time?

Request the Recording!
If you haven’t had these virtual machine problems yet – you will! These VM problems and their solutions have been selected based on the real-world feedback from thousands of VMware Admins and you’ll have two vExperts on the webinar to offer insight and remedies.
arrow-right-green
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMjMnIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxhIGlkPSdnZl8yMycgbmFtZT0nZ2ZfMjMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV8yMycgIGFjdGlvbj0nL25pbWJsZS1zdG9yYWdlcy1zY2FsZS1maXQtcHJvYWN0aXZlLXdlbGxuZXNzLyNnZl8yMyc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2JvZHknPjx1bCBpZD0nZ2Zvcm1fZmllbGRzXzIzJyBjbGFzcz0nZ2Zvcm1fZmllbGRzIHRvcF9sYWJlbCBmb3JtX3N1YmxhYmVsX2JlbG93IGRlc2NyaXB0aW9uX2JlbG93Jz48bGkgaWQ9J2ZpZWxkXzIzXzEnIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfMScgPkZpcnN0IE5hbWU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzEnIGlkPSdpbnB1dF8yM18xJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzEnICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfMicgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM18yJyA+TGFzdCBOYW1lPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyBpZD0naW5wdXRfMjNfMicgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgIHRhYmluZGV4PScyJyAgIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzIzXzMnIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfMycgPkVtYWlsPHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J2lucHV0XzMnIGlkPSdpbnB1dF8yM18zJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyB0YWJpbmRleD0nMycgICAvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfNScgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yM181JyA+Q291bnRyeTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48c2VsZWN0IG5hbWU9J2lucHV0XzUnIGlkPSdpbnB1dF8yM181JyBvbmNoYW5nZT0nZ2ZfYXBwbHlfcnVsZXMoMjMsWzRdKTsnIGNsYXNzPSdtZWRpdW0gZ2ZpZWxkX3NlbGVjdCcgdGFiaW5kZXg9JzQnID48b3B0aW9uIHZhbHVlPSdVbml0ZWQgU3RhdGVzJyBzZWxlY3RlZD0nc2VsZWN0ZWQnPlVuaXRlZCBTdGF0ZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYW5hZGEnID5DYW5hZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVbml0ZWQgS2luZ2RvbScgPlVuaXRlZCBLaW5nZG9tPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXVzdHJhbGlhJyA+QXVzdHJhbGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWZnaGFuaXN0YW4nID5BZmdoYW5pc3Rhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FsYmFuaWEnID5BbGJhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQWxnZXJpYScgPkFsZ2VyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbWVyaWNhbiBTYW1vYScgPkFtZXJpY2FuIFNhbW9hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQW5kb3JyYScgPkFuZG9ycmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbmdvbGEnID5BbmdvbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBbnRpZ3VhIGFuZCBCYXJidWRhJyA+QW50aWd1YSBhbmQgQmFyYnVkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FyZ2VudGluYScgPkFyZ2VudGluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FybWVuaWEnID5Bcm1lbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXVzdHJpYScgPkF1c3RyaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBemVyYmFpamFuJyA+QXplcmJhaWphbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JhaGFtYXMnID5CYWhhbWFzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmFocmFpbicgPkJhaHJhaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCYW5nbGFkZXNoJyA+QmFuZ2xhZGVzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JhcmJhZG9zJyA+QmFyYmFkb3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCZWxhcnVzJyA+QmVsYXJ1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JlbGdpdW0nID5CZWxnaXVtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVsaXplJyA+QmVsaXplPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmVuaW4nID5CZW5pbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Jlcm11ZGEnID5CZXJtdWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQmh1dGFuJyA+Qmh1dGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQm9saXZpYScgPkJvbGl2aWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCb3NuaWEgYW5kIEhlcnplZ292aW5hJyA+Qm9zbmlhIGFuZCBIZXJ6ZWdvdmluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0JvdHN3YW5hJyA+Qm90c3dhbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCcmF6aWwnID5CcmF6aWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCcnVuZWknID5CcnVuZWk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdCdWxnYXJpYScgPkJ1bGdhcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQnVya2luYSBGYXNvJyA+QnVya2luYSBGYXNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQnVydW5kaScgPkJ1cnVuZGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYW1ib2RpYScgPkNhbWJvZGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2FtZXJvb24nID5DYW1lcm9vbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhcGUgVmVyZGUnID5DYXBlIFZlcmRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2F5bWFuIElzbGFuZHMnID5DYXltYW4gSXNsYW5kczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycgPkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NoYWQnID5DaGFkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ2hpbGUnID5DaGlsZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NoaW5hJyA+Q2hpbmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb2xvbWJpYScgPkNvbG9tYmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29tb3JvcycgPkNvbW9yb3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnID5Db25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDb25nbywgUmVwdWJsaWMgb2YgdGhlJyA+Q29uZ28sIFJlcHVibGljIG9mIHRoZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Nvc3RhIFJpY2EnID5Db3N0YSBSaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQyZvY2lyYzt0ZSBkJiMwMzk7SXZvaXJlJyA+QyZvY2lyYzt0ZSBkJiMwMzk7SXZvaXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ3JvYXRpYScgPkNyb2F0aWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDdWJhJyA+Q3ViYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0N5cHJ1cycgPkN5cHJ1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0N6ZWNoIFJlcHVibGljJyA+Q3plY2ggUmVwdWJsaWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEZW5tYXJrJyA+RGVubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0RqaWJvdXRpJyA+RGppYm91dGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEb21pbmljYScgPkRvbWluaWNhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRG9taW5pY2FuIFJlcHVibGljJyA+RG9taW5pY2FuIFJlcHVibGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRWFzdCBUaW1vcicgPkVhc3QgVGltb3I8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFY3VhZG9yJyA+RWN1YWRvcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VneXB0JyA+RWd5cHQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFbCBTYWx2YWRvcicgPkVsIFNhbHZhZG9yPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRXF1YXRvcmlhbCBHdWluZWEnID5FcXVhdG9yaWFsIEd1aW5lYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0VyaXRyZWEnID5Fcml0cmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRXN0b25pYScgPkVzdG9uaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdFdGhpb3BpYScgPkV0aGlvcGlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRmlqaScgPkZpamk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdGaW5sYW5kJyA+RmlubGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ZyYW5jZScgPkZyYW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dhYm9uJyA+R2Fib248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHYW1iaWEnID5HYW1iaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHZW9yZ2lhJyA+R2VvcmdpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dlcm1hbnknID5HZXJtYW55PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2hhbmEnID5HaGFuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dyZWVjZScgPkdyZWVjZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dyZWVubGFuZCcgPkdyZWVubGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0dyZW5hZGEnID5HcmVuYWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR3VhbScgPkd1YW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWF0ZW1hbGEnID5HdWF0ZW1hbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWluZWEnID5HdWluZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHdWluZWEtQmlzc2F1JyA+R3VpbmVhLUJpc3NhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0d1eWFuYScgPkd1eWFuYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0hhaXRpJyA+SGFpdGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIb25kdXJhcycgPkhvbmR1cmFzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSG9uZyBLb25nJyA+SG9uZyBLb25nPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSHVuZ2FyeScgPkh1bmdhcnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJY2VsYW5kJyA+SWNlbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0luZGlhJyA+SW5kaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJbmRvbmVzaWEnID5JbmRvbmVzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJcmFuJyA+SXJhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0lyYXEnID5JcmFxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSXJlbGFuZCcgPklyZWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJc3JhZWwnID5Jc3JhZWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJdGFseScgPkl0YWx5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSmFtYWljYScgPkphbWFpY2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdKYXBhbicgPkphcGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSm9yZGFuJyA+Sm9yZGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS2F6YWtoc3RhbicgPkthemFraHN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLZW55YScgPktlbnlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS2lyaWJhdGknID5LaXJpYmF0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05vcnRoIEtvcmVhJyA+Tm9ydGggS29yZWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb3V0aCBLb3JlYScgPlNvdXRoIEtvcmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS3V3YWl0JyA+S3V3YWl0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nS3lyZ3l6c3RhbicgPkt5cmd5enN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMYW9zJyA+TGFvczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xhdHZpYScgPkxhdHZpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xlYmFub24nID5MZWJhbm9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTGVzb3RobycgPkxlc290aG88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMaWJlcmlhJyA+TGliZXJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpYnlhJyA+TGlieWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdMaWVjaHRlbnN0ZWluJyA+TGllY2h0ZW5zdGVpbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpdGh1YW5pYScgPkxpdGh1YW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0x1eGVtYm91cmcnID5MdXhlbWJvdXJnPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFjZWRvbmlhJyA+TWFjZWRvbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFkYWdhc2NhcicgPk1hZGFnYXNjYXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWxhd2knID5NYWxhd2k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYWxheXNpYScgPk1hbGF5c2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFsZGl2ZXMnID5NYWxkaXZlczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hbGknID5NYWxpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFsdGEnID5NYWx0YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hcnNoYWxsIElzbGFuZHMnID5NYXJzaGFsbCBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWF1cml0YW5pYScgPk1hdXJpdGFuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXVyaXRpdXMnID5NYXVyaXRpdXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNZXhpY28nID5NZXhpY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaWNyb25lc2lhJyA+TWljcm9uZXNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vbGRvdmEnID5Nb2xkb3ZhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9uYWNvJyA+TW9uYWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9uZ29saWEnID5Nb25nb2xpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vbnRlbmVncm8nID5Nb250ZW5lZ3JvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTW9yb2NjbycgPk1vcm9jY288L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNb3phbWJpcXVlJyA+TW96YW1iaXF1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J015YW5tYXInID5NeWFubWFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmFtaWJpYScgPk5hbWliaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOYXVydScgPk5hdXJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmVwYWwnID5OZXBhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldGhlcmxhbmRzJyA+TmV0aGVybGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXcgWmVhbGFuZCcgPk5ldyBaZWFsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmljYXJhZ3VhJyA+TmljYXJhZ3VhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmlnZXInID5OaWdlcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05pZ2VyaWEnID5OaWdlcmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9yd2F5JyA+Tm9yd2F5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJyA+Tm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nT21hbicgPk9tYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQYWtpc3RhbicgPlBha2lzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFsYXUnID5QYWxhdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BhbGVzdGluZScgPlBhbGVzdGluZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BhbmFtYScgPlBhbmFtYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BhcHVhIE5ldyBHdWluZWEnID5QYXB1YSBOZXcgR3VpbmVhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGFyYWd1YXknID5QYXJhZ3VheTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BlcnUnID5QZXJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGhpbGlwcGluZXMnID5QaGlsaXBwaW5lczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BvbGFuZCcgPlBvbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1BvcnR1Z2FsJyA+UG9ydHVnYWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdQdWVydG8gUmljbycgPlB1ZXJ0byBSaWNvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUWF0YXInID5RYXRhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1JvbWFuaWEnID5Sb21hbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUnVzc2lhJyA+UnVzc2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUndhbmRhJyA+UndhbmRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FpbnQgS2l0dHMgYW5kIE5ldmlzJyA+U2FpbnQgS2l0dHMgYW5kIE5ldmlzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FpbnQgTHVjaWEnID5TYWludCBMdWNpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJyA+U2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYW1vYScgPlNhbW9hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2FuIE1hcmlubycgPlNhbiBNYXJpbm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnID5TYW8gVG9tZSBhbmQgUHJpbmNpcGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTYXVkaSBBcmFiaWEnID5TYXVkaSBBcmFiaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTZW5lZ2FsJyA+U2VuZWdhbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NlcmJpYSBhbmQgTW9udGVuZWdybycgPlNlcmJpYSBhbmQgTW9udGVuZWdybzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NleWNoZWxsZXMnID5TZXljaGVsbGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2llcnJhIExlb25lJyA+U2llcnJhIExlb25lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2luZ2Fwb3JlJyA+U2luZ2Fwb3JlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU2xvdmFraWEnID5TbG92YWtpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Nsb3ZlbmlhJyA+U2xvdmVuaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb2xvbW9uIElzbGFuZHMnID5Tb2xvbW9uIElzbGFuZHM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTb21hbGlhJyA+U29tYWxpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvdXRoIEFmcmljYScgPlNvdXRoIEFmcmljYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NwYWluJyA+U3BhaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTcmkgTGFua2EnID5TcmkgTGFua2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTdWRhbicgPlN1ZGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3VkYW4sIFNvdXRoJyA+U3VkYW4sIFNvdXRoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU3VyaW5hbWUnID5TdXJpbmFtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N3YXppbGFuZCcgPlN3YXppbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N3ZWRlbicgPlN3ZWRlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1N3aXR6ZXJsYW5kJyA+U3dpdHplcmxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdTeXJpYScgPlN5cmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGFpd2FuJyA+VGFpd2FuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGFqaWtpc3RhbicgPlRhamlraXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUYW56YW5pYScgPlRhbnphbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVGhhaWxhbmQnID5UaGFpbGFuZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RvZ28nID5Ub2dvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVG9uZ2EnID5Ub25nYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RyaW5pZGFkIGFuZCBUb2JhZ28nID5UcmluaWRhZCBhbmQgVG9iYWdvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVHVuaXNpYScgPlR1bmlzaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdXJrZXknID5UdXJrZXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdXJrbWVuaXN0YW4nID5UdXJrbWVuaXN0YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdUdXZhbHUnID5UdXZhbHU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVZ2FuZGEnID5VZ2FuZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVa3JhaW5lJyA+VWtyYWluZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1VuaXRlZCBBcmFiIEVtaXJhdGVzJyA+VW5pdGVkIEFyYWIgRW1pcmF0ZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVcnVndWF5JyA+VXJ1Z3VheTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1V6YmVraXN0YW4nID5VemJla2lzdGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmFudWF0dScgPlZhbnVhdHU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWYXRpY2FuIENpdHknID5WYXRpY2FuIENpdHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWZW5lenVlbGEnID5WZW5lenVlbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWaWV0bmFtJyA+VmlldG5hbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ZpcmdpbiBJc2xhbmRzLCBCcml0aXNoJyA+VmlyZ2luIElzbGFuZHMsIEJyaXRpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdWaXJnaW4gSXNsYW5kcywgVS5TLicgPlZpcmdpbiBJc2xhbmRzLCBVLlMuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nWWVtZW4nID5ZZW1lbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1phbWJpYScgPlphbWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1ppbWJhYndlJyA+WmltYmFid2U8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfNCcgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzQnID5TdGF0ZTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PHNlbGVjdCBuYW1lPSdpbnB1dF80JyBpZD0naW5wdXRfMjNfNCcgIGNsYXNzPSdtZWRpdW0gZ2ZpZWxkX3NlbGVjdCcgdGFiaW5kZXg9JzUnID48b3B0aW9uIHZhbHVlPSdBbGFiYW1hJyA+QWxhYmFtYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FsYXNrYScgPkFsYXNrYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FyaXpvbmEnID5Bcml6b25hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJrYW5zYXMnID5BcmthbnNhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0NhbGlmb3JuaWEnID5DYWxpZm9ybmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQ29sb3JhZG8nID5Db2xvcmFkbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Nvbm5lY3RpY3V0JyA+Q29ubmVjdGljdXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdEZWxhd2FyZScgPkRlbGF3YXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nRGlzdHJpY3Qgb2YgQ29sdW1iaWEnID5EaXN0cmljdCBvZiBDb2x1bWJpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0Zsb3JpZGEnID5GbG9yaWRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nR2VvcmdpYScgPkdlb3JnaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdIYXdhaWknID5IYXdhaWk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdJZGFobycgPklkYWhvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSWxsaW5vaXMnID5JbGxpbm9pczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0luZGlhbmEnID5JbmRpYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nSW93YScgPklvd2E8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLYW5zYXMnID5LYW5zYXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdLZW50dWNreScgPktlbnR1Y2t5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTG91aXNpYW5hJyA+TG91aXNpYW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWFpbmUnID5NYWluZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01hcnlsYW5kJyA+TWFyeWxhbmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXNzYWNodXNldHRzJyA+TWFzc2FjaHVzZXR0czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01pY2hpZ2FuJyA+TWljaGlnYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaW5uZXNvdGEnID5NaW5uZXNvdGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNaXNzaXNzaXBwaScgPk1pc3Npc3NpcHBpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTWlzc291cmknID5NaXNzb3VyaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J01vbnRhbmEnID5Nb250YW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmVicmFza2EnID5OZWJyYXNrYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldmFkYScgPk5ldmFkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBIYW1wc2hpcmUnID5OZXcgSGFtcHNoaXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTmV3IEplcnNleScgPk5ldyBKZXJzZXk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXcgTWV4aWNvJyA+TmV3IE1leGljbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J05ldyBZb3JrJyA+TmV3IFlvcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOb3J0aCBDYXJvbGluYScgPk5vcnRoIENhcm9saW5hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nTm9ydGggRGFrb3RhJyA+Tm9ydGggRGFrb3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nT2hpbycgPk9oaW88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdPa2xhaG9tYScgPk9rbGFob21hPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nT3JlZ29uJyA+T3JlZ29uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUGVubnN5bHZhbmlhJyA+UGVubnN5bHZhbmlhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nUmhvZGUgSXNsYW5kJyA+UmhvZGUgSXNsYW5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nU291dGggQ2Fyb2xpbmEnID5Tb3V0aCBDYXJvbGluYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1NvdXRoIERha290YScgPlNvdXRoIERha290YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Rlbm5lc3NlZScgPlRlbm5lc3NlZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1RleGFzJyA+VGV4YXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdVdGFoJyA+VXRhaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1Zlcm1vbnQnID5WZXJtb250PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nVmlyZ2luaWEnID5WaXJnaW5pYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J1dhc2hpbmd0b24nID5XYXNoaW5ndG9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nV2VzdCBWaXJnaW5pYScgPldlc3QgVmlyZ2luaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdXaXNjb25zaW4nID5XaXNjb25zaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSdXeW9taW5nJyA+V3lvbWluZzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FybWVkIEZvcmNlcyBBbWVyaWNhcycgPkFybWVkIEZvcmNlcyBBbWVyaWNhczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FybWVkIEZvcmNlcyBFdXJvcGUnID5Bcm1lZCBGb3JjZXMgRXVyb3BlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQXJtZWQgRm9yY2VzIFBhY2lmaWMnID5Bcm1lZCBGb3JjZXMgUGFjaWZpYzwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yM182JyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfNicgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfNicgaWQ9J2lucHV0XzIzXzYnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nIHRhYmluZGV4PSc2JyAgIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzIzXzcnIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93JyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjNfNycgPkNvbXBhbnk8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lcic+PGlucHV0IG5hbWU9J2lucHV0XzcnIGlkPSdpbnB1dF8yM183JyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgdGFiaW5kZXg9JzcnICAgLz48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjNfOCcgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdycgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzIzXzgnID5Kb2IgVGl0bGU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF84JyBpZD0naW5wdXRfMjNfOCcgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgIHRhYmluZGV4PSc4JyAgIC8+PC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzIzJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1JlZ2lzdGVyIE5vdyEnIHRhYmluZGV4PSc5JyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfMjMiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yMyJdPXRydWU7ICAnIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTIzJmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzIzJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nMjMnIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzIzJyB2YWx1ZT0nV3lKYlhTSXNJbU5oT0RVM1ltWXdNRFl3TkRjd01UbGpNbUV5TWpBMk5HWmhaREF3TnpBMUlsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yMycgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yMycgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl8yMycgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl8yMycgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzIzJyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV8yMyc+PC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCAyMywgJ2h0dHA6Ly93d3cudmlydHVhbGl6YXRpb25zb2Z0d2FyZS5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV8yMycpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzIzJyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl8yMycpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO3NldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzIzJykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggMjMsICdodHRwOi8vd3d3LnZpcnR1YWxpemF0aW9uc29mdHdhcmUuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbMjMsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yMyddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjMnKS5yZXBsYWNlV2l0aCgnPCcgKyAnZGl2IGlkPVwnZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzXCcgY2xhc3M9XCdnZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZV8yMyBnZm9ybXNfY29uZmlybWF0aW9uX21lc3NhZ2VcJycgKyAnPicgKyBjb25maXJtYXRpb25fY29udGVudCArICc8JyArICcvZGl2JyArICc+Jyk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1zX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzIzJykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbMjNdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfMjMnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV8yMycpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzIzLCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwOlwvXC93d3cudmlydHVhbGl6YXRpb25zb2Z0d2FyZS5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHA6XC9cL3d3dy52aXJ0dWFsaXphdGlvbnNvZnR3YXJlLmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gMjMpIHtpZih3aW5kb3dbJ2pRdWVyeSddKXtpZighd2luZG93WydnZl9mb3JtX2NvbmRpdGlvbmFsX2xvZ2ljJ10pd2luZG93WydnZl9mb3JtX2NvbmRpdGlvbmFsX2xvZ2ljJ10gPSBuZXcgQXJyYXkoKTt3aW5kb3dbJ2dmX2Zvcm1fY29uZGl0aW9uYWxfbG9naWMnXVsyM10gPSB7J2xvZ2ljJyA6IHs0OiB7ImZpZWxkIjp7ImFjdGlvblR5cGUiOiJoaWRlIiwibG9naWNUeXBlIjoiYWxsIiwicnVsZXMiOlt7ImZpZWxkSWQiOiI1Iiwib3BlcmF0b3IiOiJpc25vdCIsInZhbHVlIjoiVW5pdGVkIFN0YXRlcyJ9XX0sIm5leHRCdXR0b24iOm51bGwsInNlY3Rpb24iOm51bGx9IH0sICdkZXBlbmRlbnRzJyA6IHs0OiBbNF0gfSwgJ2FuaW1hdGlvbicgOiAwICwgJ2RlZmF1bHRzJyA6IHsiNSI6IlVuaXRlZCBTdGF0ZXMifSB9OyBpZighd2luZG93WydnZl9udW1iZXJfZm9ybWF0J10pd2luZG93WydnZl9udW1iZXJfZm9ybWF0J10gPSAnZGVjaW1hbF9kb3QnO2pRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtnZl9hcHBseV9ydWxlcygyMywgWzRdLCB0cnVlKTtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzIzJykuc2hvdygpO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIFsyMywgbnVsbCwgdHJ1ZV0pO30gKTt9IGdmb3JtSW5pdENob3NlbkZpZWxkcygnI2lucHV0XzIzXzUsI2lucHV0XzIzXzQnLCdObyByZXN1bHRzIG1hdGNoZWQnKTt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7Z2Zvcm1Jbml0Q2hvc2VuRmllbGRzKCcjaW5wdXRfMjNfNSwjaW5wdXRfMjNfNCcsJ05vIHJlc3VsdHMgbWF0Y2hlZCcpO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzIzLCAxXSkgfSApOyA8L3NjcmlwdD4=