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

Top

2 Comments

Migrating to the Cloud – It May Not Be As Easy As You Think

Migrating to the Cloud – It May Not Be As Easy As You Think
David Davis, vExpert, VCP/VCAP, CCIE
  • On November 19, 2015

Enterprises know that there are financial and operational benefits to moving applications and workloads to the cloud, consolidating datacenters, migrating from hypervisor to hypervisor, and migrating to hyperconvergence. Those benefits include (but aren’t limited to) being able to only pay for what you use (the Opex-pricing model), agility (being able to scale up and down, as your business needs change), and being able to retask technologists to tasks that offer the business a greater financial return (also known as getting IT out of the maintenance business and into the innovation business).

Sureline-LogoMost everyone knows that virtualization makes servers hardware independent however, with all the benefits of virtualization, seamless migration to the cloud is not one of them. Yes, there are tools to help and yes, moving a few VMs to the cloud might not be horrendously difficult (well, it depends on what it is, right?). However, many companies have hundreds, even thousands, of virtual machines. Servers run in different hypervisors. Just as the VM format of one hypervisor isn’t compatible with another, one cloud platform isn’t compatible with another. Because of the conversions that must be done, virtual drivers that must be changed, massive amounts of data that must be moved, and massive number of VMs that many companies have to migrate (to the cloud or to other platforms) – “taking it to the cloud” probably isn’t as easy as you think.

Sure, you could hire some cloud architects / experts who have scripts and tools but paying those kinds of consulting rates for people to manually perform these types of conversions and babysit the migration processes isn’t the smart move.

Recently, I learned about a new startup called Sureline Systems. Sureline provides migration and disaster recovery (DR) solutions through their new tool called SUREedgedge. When I first learned about SUREedge my initial thought might be that it was essentially a V2V (virtual to virtual) “file transfer tool”, almost like a FTP client. However, before you make the same assumption, let me assure you that there’s much more to it than that.

Migrating Server to The Cloud, Hypervisors, and Hyperconvergence With SUREedge

Having a tool that does V2V (virtual to virtual) or P2V (physical to virtual) is, of course, very beneficial but when you think about moving hundreds or thousands of servers across the Internet, a WAN, or VPN, you immediately think about the massive amount of data that must be moved and the lengthy transfer time that will be required.

Sureline wants to make these migrations easy and massively reduce the transfer time required to make a migration. Sureline’s SUREedge software appliances serves as the middleman in such a large migration process and not only perform the P2V and V2V and manage the transfer process but also reduce the amount of data that has to be transferred (and thus the time to transfer it). Additionally it allows you to plan, capture, transfer recover, test, resync and cut-over in a controlled and manageable way.

Sureline’s migration product, SUREedge-Migrator, is hardware, hypervisor, and cloud agnostic. It supports physical and virtual servers locally, in remote datacenters, and in private, public, or hybrid clouds.

Sureline-Systems-1

What makes SURedge unique is that it doesn’t just move the data, it actually deduplicates, compresses, encrypts, and then intelligently replicates the virtual machine data to the destination site (whether it’s another hypervisor, hyperconverged infrastructure, remote datacenter, or public cloud). With the SUREedge deduplication and compression being used and with so many virtual machines all being run on the same base operating systems (Windows and Linux), there is a tremendous amount of data reduction that can be performed. It’s the SUREedge data reduction that make migrations of hundreds or thousands of virtual machines possible in condensed time windows.

Understanding the Sureline Architecture

The base architecture for the Sureline solution is made up of two virtual machines. The install starts with a single Windows VM. Customers log into the machine, download SUREedge, and execute the installer. The installer creates a virtual machine infrastructure for the storage manager. From there, SUREedge tools determine how much storage customers have and how many clients they plan to move.

Sureline-Systems-2

SUREedge architecture contains both management control (user interface, scheduling) and storage manager (DeDupe, compression, encryption, replication) components

For cloud-to-cloud migration, SUREedge-Migrator copies recovery points across the WAN with inline deduplication to any cloud platform or remote site. Because any remote site or cloud can be used as a target site, and dissimilar hardware can be used at the primary and target site, SUREedge-Migrator helps users avoid cloud vendor lock-in.

Sureline Systems’ VP of product management, Gautam Thockchom, says “We’ve received a lot of interest in on-premises to cloud DR/migration as well as onboarding to hyperconverged infrastructure, including Nutanix Acropolis, VMware vSphere, and Microsoft Hyper-V.”.

Disaster Recovery and the Sureline

SUREedge uses a Common Technolgy Engine that can be used for migration and /or DR. Besides P2V and V2V migrations, Sureline can also provider enterprise disaster recovery services. Customers can use any remote site as a DR site and can use Microsoft, Amazon, CenturyLink, Google or any other cloud platform. A wide range of applications, including Exchange, SQL Server, Oracle, or in-house written applications are supported by Sureline.

Sureline-System-3

Sureline’s disaster recovery solution offers much of the same features and flexibility as SUREedge-Migrator. It allows enterprises to enable a DR solution locally, remotely, in the cloud, or all of the above. Its “any-to-any” recovery capability allows users to recover physical and virtual systems to an alternate hypervisor or the cloud. An enterprise could feasibly use SUREedge-DR at multiple locations and manage all of them from a single window. SUREedge-DR can directly DeDupe data to S3 or Azure storage, with nothing powered on the cloud. “Disaster recovery is one of the best uses of the cloud,” says Thockchom.

How can Sureline Help?

Sureline recently helped a company who needed to transfer 200 servers to the cloud. The company’s initial estimate for the migration of 200 servers required six months and half a million dollars. Sureline handled the task in about 14 days for a third of the price. It captured images of the servers in less than an hour and booted those images within SUREedge-Migrator. The client upgraded to Ubuntu 12; after testing the application, it migrated its data to AWS.

“Migration from one platform to another is not as straightforward as one would think. Having a proper technology that can do this, plus manage the entire operation, is critical to your success.” – Gautam Thockchom, Sureline Systems

As enterprise companies continue to move all or part of their data to the cloud, solutions such as SUREedge can help ease the pain of these large migrations.

About Sureline

Sureline Systems is the premier Applications Mobility solution provider for today’s Hybrid and Bi-Modal IT comprising of on-prem, private and public Clouds. Sureline’s SUREedge provides agility for enterprises to move their workloads on physical or virtual systems from any platform/location to any. Sureline’s capability to capture application and system images from any physical system or any flavor of hypervisor and recover it on any other hypervisor makes it a premier solution for DR and Migration to the Cloud where the source and target are typically dissimilar. Founded in 2010, the company serves a worldwide customer base from its Corporate Headquarters in Santa Clara, California and offices in Japan and India. For further information, please visit the Sureline Systems website at SurelineSystems.com.

Comments

  1. This is interesting technology. But migrating the VMs is the first step. What about ongoing operations, network connectivity, security requirements, and operation of VMs. This also needs to be considered. Being cloud vendor agnostic is fine, and it may work well for the initial migration. But doesn’t this pose challenges and extra cost at a later time. Wouldn’t it make more sense on a mid- to long-term business perspective to focus on one cloud vendor like Microsoft or VMware who can offer both on-premise as well as off-premise services?

  2. David Davis, VCP, VCAP-DCA

    Hi Frank,
    Thanks for reading!
    I agree that migration of VMs is only a first (but important) steps that an IT org may take. I also agree that as part of mid to long-term business perspectives, a company should be involved with a “one cloud” vendor who offers both on and off-premise services. Of course that assumes that they plan to or are interested in having both on and off premise – maybe they just want to move to a public cloud and be done. I suppose it all depends on the business / application needs and how/where they want to run their IT infrastructure.
    While this Sureline Systems solution isn’t a designed to be a “one cloud management solution”, it does appear to fit a need, in my opinion, for companies that need to do migrations of a MASSIVE number of virtual machines from one hypervisor to another, from one hyperconverged infrastructure to another, from cloud to cloud, or from on-premise virtualizaiton to public cloud (and back).
    Thanks for reading and I appreciate you taking the time to comment!
    Best,
    David

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+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV8yMycgIGFjdGlvbj0nL21pZ3JhdGluZy1jbG91ZC1tYXktbm90LWJlLWFzLWVhc3ktYXMteW91LXRoaW5rLyNnZl8yMyc+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+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfMjMnIGlkPSdnZm9ybV8yMycgIGFjdGlvbj0nL21pZ3JhdGluZy1jbG91ZC1tYXktbm90LWJlLWFzLWVhc3ktYXMteW91LXRoaW5rLyNnZl8yMyc+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=