Laurel Road Personal Loans Review

By Mentor Staff | Edited By Mentor Staff

Updated On January 22, 2022

Editorial Note: This content is based solely on the author's opinions and is not provided, approved, endorsed or reviewed by any financial institution or partner.

How do we make money? The products featured on this website are from our partners who compensate us. This may impact which companies we review, the products we evaluate, and where and how a product appears on a page. We receive compensation from a partner when you apply for and receive a product through Mentor. This helps us to support our website, offer free content, tools and calculators, and continue to be one of the leading sources on personal finance.

Company Overview: Laurel Road

Laurel Road, the online division of Darien Rowayton Bank (DRB), is a leading personal loans lender based in Connecticut that operates in all 50 states. DRB was founded in 2006. Laurel Road offers personal loans, student loan refinancing, parent loan refinancing, new MBA loans and mortgages.

Laurel Road Personal Loan Overview

Laurel Road offers attractive rates and terms compared with other top lenders in the personal loan industry:

PGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLTEiPgoJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJT3ZlcnZpZXcKCQk8L2gzPgoJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWNvbnRlbnQiPgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQlNaW5pbXVtIENyZWRpdCBTY29yZToKCQkJCTwvZGl2PgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21pbmltdW1fY3JlZGl0X3Njb3JlJyApOyA/PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQlNaW5pbXVtIExvYW4gQW1vdW50OgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9sb2FuX2Ftb3VudCcgKTsgPz4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCTwvZGl2PgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCUxvYW4gVGVybXM6CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2FuX3Rlcm1zJyApOyA/PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQlNaW5pbXVtIEluY29tZToKCQkJCTwvZGl2PgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21pbmltdW1faW5jb21lJyApOyA/PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCURldGFpbHMKCQk8L2gzPgoJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWNvbnRlbnQiPgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQlPcmlnaW5hdGlvbiBGZWVzOgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfb3JpZ2luYXRpb25fZmVlcycgKTsgPz4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJTGF0ZSBGZWVzOgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQlQcmVwYXltZW50IFBlbmFsdHk6CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9wcmVwYXltZW50X3BlbmFsdHknICk7ID8+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCVNvZnQgQ3JlZGl0IENoZWNrOgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfc29mdF9jcmVkaXRfY2hlY2snICk7ID8+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+
PD9waHAKCgkkYXJncyA9IGFycmF5KAogICAgICAgICdwb3N0X3R5cGUnID0+ICdwbF9sZW5kZXInLAoJCSduYW1lJyA9PiAnbGF1cmVsLXJvYWQnLAoJCSdtZXRhX3F1ZXJ5JyA9PiBhcnJheSgKCQkJCWFycmF5KAoJCQkJCQkna2V5JyA9PiAncGxfbGVuZGVyX3Zpc2libGUnLAoJCQkJCQkndmFsdWUnID0+ICcxJywKCQkJCQkJJ2NvbXBhcmUnID0+ICc9JwoJCQkJCSkKCQkJKSwKICAgICk7CgoJJGxvb3AgPSBuZXcgV1BfUXVlcnkoICRhcmdzICk7CgoJd2hpbGUgKCAkbG9vcCAtPiBoYXZlX3Bvc3RzKCkgKSB7CgkJCgkJJGxvb3AgLT4gdGhlX3Bvc3QoKTsKCQkKCQllY2hvICc8YSBkYXRhLWV2ZW50LWxhYmVsPSJQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCkgLiAnIiBocmVmPSInIC4gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApIC4gJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbiI+R2V0IE15IFJhdGU8L2E+JzsKCQkKCQllY2hvICc8cCBjbGFzcz0ic2luZ2xlLWxlbmRlci1idXR0b24taGVscGVyLXRleHQiPiogQ2hlY2tpbmcgeW91ciByYXRlIGRvZXMgbm90IGFmZmVjdCB5b3VyIGNyZWRpdCBzY29yZS48L3A+JzsKCQkKCX0KCgl3cF9yZXNldF9wb3N0ZGF0YSgpOwoKPz4=

How Laurel Road Compares: Key Benefits Of Laurel Road’s Personal loan

Here are some of the reasons that Laurel Road borrowers love Laurel Road personal loans:

Easy Online Application: You can apply for a Laurel Road personal loan completely online.

Deferment and Forbearance: Laurel Road may allow borrowers to pause their student loan payments for one or more three-month periods (up to 12 months) through a forbearance if they face economic hardship.

Quick Disbursement: Funds are disbursed directly to your bank account

Customer Service: Laurel Road offers live customer support 6 days a week

Eligibility Criteria

To apply for a Laurel Road personal loan, you need to meet the following eligibility criteria:

Requirements To Apply For Laurel Road Personal loan

Minimum Age: At least age of majority in your state

Citizenship/Residency: U.S. citizen or permanent resident (applies to co-signer too, if any)

Employment: You are currently employed or have an offer of employment

Loan eligibility depends on a number of additional factors, which may include your credit profile, income and total debt payments.

Bottom Line: Is Laurel Road right for you?

Laurel Road has a top reputation for personal loans.

Remember, Laurel Road caters to borrowers with good credit. For personal loans, Laurel Road prefers a minimum credit score of 640. Laurel Road does not have a minimum income requirement for personal loans.

Laurel Road also makes the online application easy because you upload a photo or screenshot directly, which saves the hassle of mailing or faxing documents.

If you have a good credit score, stable employment and want funds fast, then a Laurel Road personal loan may be right for you. You can use a Laurel Road personal loan for any purpose such as to pay off credit card debt, medical expenses, home improvement, engagement ring, wedding, honeymoon or new baby expenses.

Next Steps: How To Apply To Laurel Road

You can apply for a Laurel Road personal loan in 3 easy steps.

Step 1: Check your personalized personal loan rate in just 2 minutes.

Step 2: Complete application and upload documents.

Step 3: Accept loan terms and get funded.

The good news is that you can check your new personal loan rate online with Laurel Road before you complete the full application. This way, you’ll know whether you can be approved for Laurel Road personal loan. Therefore, Laurel Road will provide you with an estimated personal loan rate. The pre-approval is only a soft credit pull so there is no impact to your credit.

If you have been pre-approved, you’ll need at least the following documents to complete the online application (which takes about 10-15 minutes):

  • Your most recent pay stubs
  • Driver’s license or passport (or other forms of government-issued identification)

Funding for your personal loan is quick and can occur within several days.

Applying is super easy – get your personalized rate in 2 minutes

PD9waHAKCgkkYXJncyA9IGFycmF5KAogICAgICAgICdwb3N0X3R5cGUnID0+ICdwbF9sZW5kZXInLAoJCSduYW1lJyA9PiAnbGF1cmVsLXJvYWQnLAoJCSdtZXRhX3F1ZXJ5JyA9PiBhcnJheSgKCQkJCWFycmF5KAoJCQkJCQkna2V5JyA9PiAncGxfbGVuZGVyX3Zpc2libGUnLAoJCQkJCQkndmFsdWUnID0+ICcxJywKCQkJCQkJJ2NvbXBhcmUnID0+ICc9JwoJCQkJCSkKCQkJKSwKICAgICk7CgoJJGxvb3AgPSBuZXcgV1BfUXVlcnkoICRhcmdzICk7CgoJd2hpbGUgKCAkbG9vcCAtPiBoYXZlX3Bvc3RzKCkgKSB7CgkJCgkJJGxvb3AgLT4gdGhlX3Bvc3QoKTsKCQkKCQllY2hvICc8YSBkYXRhLWV2ZW50LWxhYmVsPSJQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCkgLiAnIiBocmVmPSInIC4gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApIC4gJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbiI+R2V0IE15IFJhdGU8L2E+JzsKCQkKCQllY2hvICc8cCBjbGFzcz0ic2luZ2xlLWxlbmRlci1idXR0b24taGVscGVyLXRleHQiPiogQ2hlY2tpbmcgeW91ciByYXRlIGRvZXMgbm90IGFmZmVjdCB5b3VyIGNyZWRpdCBzY29yZS48L3A+JzsKCQkKCX0KCgl3cF9yZXNldF9wb3N0ZGF0YSgpOwoKPz4=

Top Picks For Personal Loans

PD9waHAKCWVjaG8gZGF0ZSgnRicpIC4gIiAiIC4gZGF0ZSgiWSIpOwo/Pg==

PGRpdiBjbGFzcz0ibGVuZGVycy10YWJsZS1oZWFkZXItcm93LXdyYXBwZXIiPgoJPGRpdiBjbGFzcz0ibGVuZGVycy10YWJsZS1oZWFkZXItcm93Ij4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItbG9nby1oZWFkZXIgbGVuZGVycy10YWJsZS1oZWFkZXItY2VsbCI+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWFwci1oZWFkZXIgbGVuZGVycy10YWJsZS1oZWFkZXItY2VsbCI+CgkJCUFQUiA8c3BhbiBjbGFzcz0ibW9yZS1pbmZvLXRvb2x0aXAtdHJpZ2dlciI+PzxzcGFuIGNsYXNzPSJtb3JlLWluZm8tdG9vbHRpcC10ZXh0Ij5BUFIsIG9yIEFubnVhbCBQZXJjZW50YWdlIFJhdGUsIGlzIHRoZSBwcmljZSB5b3UgcGF5IHRvIGJvcnJvdyBtb25leS4gVmFyaWFibGUgQVBSIG1lYW5zIHRoYXQgeW91ciBpbnRlcmVzdCBjYW4gZmx1Y3R1YXRlIG92ZXIgdGltZSwgd2hpY2ggY2FuIGluY3JlYXNlIG9yIGRlY3JlYXNlIHlvdXIgbW9udGhseSBwYXltZW50LiBGaXhlZCBBUFIgbWVhbnMgdGhhdCB5b3VyIGludGVyZXN0IHdpbGwgYWx3YXlzIHN0YXkgdGhlIHNhbWUuIEV2ZW4gaWYgaW50ZXJlc3QgcmF0ZXMgY2hhbmdlLCB5b3VyIGludGVyZXN0IHJhdGUgb3IgbW9udGhseSBwYXltZW50IHdpbGwgbm90LiBBUFIgaW5jbHVkZXMgYSAwLjI1JSBkaXNjb3VudCB3aGVuIHlvdSBlbnJvbGwgaW4gYXV0b3BheS48L3NwYW4+PC9zcGFuPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLWhlYWRlciBsZW5kZXJzLXRhYmxlLWhlYWRlci1jZWxsIj4KCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4=
PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+

PD9waHAKCSRvdXRwdXQgPSAnJzsKCQoJJGFyZ3MgPSBhcnJheSgKICAgICAgICAncG9zdF90eXBlJyA9PiAncGxfbGVuZGVyJywKICAgICAgICAncG9zdHNfcGVyX3BhZ2UnID0+IC0xLAoJCSdtZXRhX3F1ZXJ5JyA9PiBhcnJheSgKCQkJCQkJCSdyZWxhdGlvbicgPT4gJ0FORCcsCgkJCQkJCQlhcnJheSgKCQkJCQkJCQkna2V5JyA9PiAncGxfbGVuZGVyX3Zpc2libGUnLAoJCQkJCQkJCSd2YWx1ZScgPT4gJzEnLAoJCQkJCQkJCSdjb21wYXJlJyA9PiAnPScsCgkJCQkJCQkpLAoJCQkJCQkJYXJyYXkoCgkJCQkJCQkJJ2tleScgPT4gJ3BsX2xlbmRlcl9kaXNjbG9zdXJlX3VybCcsCgkJCQkJCQkJJ2NvbXBhcmUnID0+ICdFWElTVFMnLAoJCQkJCQkJKSwKCQkJCQkJKSwKCQknbWV0YV9rZXknID0+ICdwbF9sZW5kZXJfcG9zaXRpb24nLAoJCSdvcmRlcmJ5JyA9PiAnbWV0YV92YWx1ZV9udW0nLAoJCSdvcmRlcicgPT4gJ0FTQycsCiAgICApOwoKCSRsb29wID0gbmV3IFdQX1F1ZXJ5KCAkYXJncyApOwoKCWlmICggJGxvb3AgLT4gaGF2ZV9wb3N0cygpICkgewoJCQoJCSRvdXRwdXQgPSAnRGlzY2xvc3VyZXM6ICc7CgkJCgkJd2hpbGUgKCAkbG9vcCAtPiBoYXZlX3Bvc3RzKCkgKSB7CgkJCQoJCQkkbG9vcCAtPiB0aGVfcG9zdCgpOwoJCQkKCQkJJG91dHB1dCAuPSAnPGEgaHJlZj0iJyAuIGdldF9maWVsZCggJ3BsX2xlbmRlcl9kaXNjbG9zdXJlX3VybCcgKSAuICciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij4nIC4gZ2V0X3RoZV90aXRsZSgpIC4gJzwvYT4gfCAnOwoJCQkKCQl9CgkJCgl9CgoJd3BfcmVzZXRfcG9zdGRhdGEoKTsKCgkkb3V0cHV0ID0gc3Vic3RyKCAkb3V0cHV0LCAwLCBzdHJsZW4oICRvdXRwdXQgKSAtIDMgKTsKCgllY2hvICRvdXRwdXQ7Cj8+

Let's mentor your money

Get the latest personal finance advice delivered directly to your inbox.