diff --git a/test/suite/sputnik_converted/12_Statement/12.1_Block/S12.1_A1.js b/test/suite/sputnik_converted/12_Statement/12.1_Block/S12.1_A1.js
index e63406d77cfd84f6cc8b397e8cdb3ed1caf5db67..9e4c5c152ea9b80c83360b96bf501474c0ffdc0e 100644
--- a/test/suite/sputnik_converted/12_Statement/12.1_Block/S12.1_A1.js
+++ b/test/suite/sputnik_converted/12_Statement/12.1_Block/S12.1_A1.js
@@ -1,14 +1,14 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- "use strict";
-if (!strict_mode) { throw new SyntaxError('unspecified case'); }
-
-{
-    function __func(){}
-}
+ "use strict";
+if (!strict_mode) { throw new SyntaxError('unspecified case'); }
+
+{
+    function __func(){}
+}
  
 
diff --git a/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A7.js b/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A7.js
index 6b8c9c73e2f892639e9477002772f07cd65f0bc1..34b1870209e6d723153a618365f3f5709bf93ced 100644
--- a/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A7.js
+++ b/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A7.js
@@ -1,14 +1,14 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S12.5_A7;
-* @section: 12.5;
-* @assertion: In the "if" statement empty statement is allowed and is evaluated to "undefined";
-* @description: Checking by using eval "eval("if(1);"))";
-*/
-
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S12.5_A7;
+* @section: 12.5;
+* @assertion: In the "if" statement empty statement is allowed and is evaluated to "undefined";
+* @description: Checking by using eval "eval("if(1);"))";
+*/
+
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -22,20 +22,20 @@ assertion: "In the \"if\" statement empty statement is allowed and is evaluated
 description: "Checking by using eval \"eval(\"if(1);\"))\"",
 
 test: function testcase() {
-   //////////////////////////////////////////////////////////////////////////////
-//CHECK#1
-try {
-	var __evaluated = eval("if(1);");
-	if (__evaluated !== undefined) {
-		$ERROR('#1: __evaluated === undefined. Actual:  __evaluated ==='+ __evaluated  );
-	}
-
-} catch (e) {
-	$ERROR('#1.1: "__evaluated = eval("if(1);")" does not lead to throwing exception');
-
-}
-//
-//////////////////////////////////////////////////////////////////////////////
+   //////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+try {
+	var __evaluated = eval("if(1);");
+	if (__evaluated !== undefined) {
+		$ERROR('#1: __evaluated === undefined. Actual:  __evaluated ==='+ __evaluated  );
+	}
+
+} catch (e) {
+	$ERROR('#1.1: "__evaluated = eval("if(1);")" does not lead to throwing exception');
+
+}
+//
+//////////////////////////////////////////////////////////////////////////////
 
  }
 });
diff --git a/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T1.js b/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T1.js
index eb6fc2a6c91a27ac90ca0df2825ac5bb52efdfa4..3a892ac97a495ca0ef1f5756342d8fb3c76b63e4 100644
--- a/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T1.js
+++ b/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T1.js
@@ -1,16 +1,16 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- "use strict";
-if (!strict_mode) { throw new SyntaxError('unspecified case'); }
-
-if (true) {
-    function __func(){};
-} else {
-    function __func(){};
-}
+ "use strict";
+if (!strict_mode) { throw new SyntaxError('unspecified case'); }
+
+if (true) {
+    function __func(){};
+} else {
+    function __func(){};
+}
  
 
diff --git a/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T2.js b/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T2.js
index 5722d2bd9db11995aec1192b300d100247ae5f76..6ebf28c922e28e5075962045a712d94800cc5f3d 100644
--- a/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T2.js
+++ b/test/suite/sputnik_converted/12_Statement/12.5_The_if_Statement/S12.5_A9_T2.js
@@ -1,18 +1,18 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- (function(){
-"use strict";
-
-if (true) {
-    function __func(){};
-} else {
-    function __func(){};
-}
-
-});
+ (function(){
+"use strict";
+
+if (true) {
+    function __func(){};
+} else {
+    function __func(){};
+}
+
+});
  
 
diff --git a/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A1.js b/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A1.js
index 266561c287e4b1e867c1596b4914e21eee0348d8..b429ca07893495cff55e02ffef9a69e0cbe42e7c 100644
--- a/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A1.js
+++ b/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S12.6.1_A1;
-* @section: 12.6.1;
-* @assertion: When the production "do Statement while ( Expression )" is evaluated, Statement is evaluated first;
-* @description: Evaluating various Expressions;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S12.6.1_A1;
+* @section: 12.6.1;
+* @assertion: When the production "do Statement while ( Expression )" is evaluated, Statement is evaluated first;
+* @description: Evaluating various Expressions;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,37 +21,37 @@ assertion: "When the production \"do Statement while ( Expression )\" is evaluat
 description: "Evaluating various Expressions",
 
 test: function testcase() {
-   var __in__do;
-
-do __in__do=1; while ( false );
-
-//////////////////////////////////////////////////////////////////////////////
-//CHECK#1
-if (__in__do!==1) {
-	$ERROR('#1: false evaluates to false');
-}
-//
-//////////////////////////////////////////////////////////////////////////////
-
-do __in__do=2; while ( 0 );
-
-//////////////////////////////////////////////////////////////////////////////
-//CHECK#2
-if (__in__do!==2) {
-	$ERROR('#2: 0 evaluates to false');
-}
-//
-//////////////////////////////////////////////////////////////////////////////
-
-do __in__do=3; while ( "" );
-
-//////////////////////////////////////////////////////////////////////////////
-//CHECK#3
-if (__in__do!==3) {
-	$ERROR('#3: "" evaluates to false');
-}
-//
-//////////////////////////////////////////////////////////////////////////////
+   var __in__do;
+
+do __in__do=1; while ( false );
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__in__do!==1) {
+	$ERROR('#1: false evaluates to false');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+do __in__do=2; while ( 0 );
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__in__do!==2) {
+	$ERROR('#2: 0 evaluates to false');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+do __in__do=3; while ( "" );
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__in__do!==3) {
+	$ERROR('#3: "" evaluates to false');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
 
  }
 });
diff --git a/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T1.js b/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T1.js
index ae60d2f74884f34f678aa7d3ee5be90014619dc2..f3cd28cc2bba50f0fa16c2116725acd70c2b255e 100644
--- a/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T1.js
+++ b/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T1.js
@@ -1,14 +1,14 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- "use strict";
-if (!strict_mode) { throw new SyntaxError('unspecified case'); }
-
-do{
-    function __func(){};
-} while(0);
+ "use strict";
+if (!strict_mode) { throw new SyntaxError('unspecified case'); }
+
+do{
+    function __func(){};
+} while(0);
  
 
diff --git a/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T2.js b/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T2.js
index 09111a2d2e7399891e054c1050f83160f31ff75f..aaeb813f1d2872fb79289b85070da6c7c19dc54c 100644
--- a/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T2.js
+++ b/test/suite/sputnik_converted/12_Statement/12.6_Iteration_Statements/12.6.1_The_do_while_Statement/S12.6.1_A13_T2.js
@@ -1,15 +1,15 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- (function(){
-"use strict";
-do{
-    function __func(){};
-}while(0);
-
-});
+ (function(){
+"use strict";
+do{
+    function __func(){};
+}while(0);
+
+});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A12.js b/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A12.js
index 3bbf860655a37630346183f1ee3f934497af5321..2b048803b9e11e6ed7a95eea06e7bd727f20609f 100644
--- a/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A12.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.10.6.2_A12;
-* @section: 15.10.6.2;
-* @assertion: regExp exec() acts like regExp.exec('undefined') (step 2);
-* @description: Checking RegExp.prototype.exec.length;
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.10.6.2_A12;
+* @section: 15.10.6.2;
+* @assertion: regExp exec() acts like regExp.exec('undefined') (step 2);
+* @description: Checking RegExp.prototype.exec.length;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,14 +21,14 @@ assertion: "regExp exec() acts like regExp.exec(\'undefined\') (step 2)",
 description: "Checking RegExp.prototype.exec.length",
 
 test: function testcase() {
-   (/foo/).test('xfoox');
-var match = new RegExp('(.|\r|\n)*','').exec()[0];
-if (match === 'xfoox') {
-  $FAIL('#1: regExp.exec() leaks match globally');
-}
-if (match !== 'undefined') {
-  $FAIL('#2: regExp.exec() must coerce absent first arg to "undefined"');
-}
+   (/foo/).test('xfoox');
+var match = new RegExp('(.|\r|\n)*','').exec()[0];
+if (match === 'xfoox') {
+  $FAIL('#1: regExp.exec() leaks match globally');
+}
+if (match !== 'undefined') {
+  $FAIL('#2: regExp.exec() must coerce absent first arg to "undefined"');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A1_T1.js b/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A1_T1.js
index 1d3eacf760040c6678691eb7e088b5bb93d9e48a..6647f5c59d6adbaafc842eb860c8816058c71092 100644
--- a/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A1_T1.js
+++ b/test/suite/sputnik_converted/15_Native/15.10_RegExp_Objects/15.10.6_Properties_of_the_RegExp_Prototype_Object/15.10.6.2_RegExp.prototype.exec/S15.10.6.2_A1_T1.js
@@ -1,14 +1,14 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.10.6.2_A1_T1;
-* @section: 15.10.6.2;
-* @assertion: RegExp.prototype.exec(string) Performs a regular expression match of ToString(string) against the regular expression and 
-* returns an Array object containing the results of the match, or null if the string did not match;
-* @description: String is "123" and RegExp is /1|12/;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.10.6.2_A1_T1;
+* @section: 15.10.6.2;
+* @assertion: RegExp.prototype.exec(string) Performs a regular expression match of ToString(string) against the regular expression and 
+* returns an Array object containing the results of the match, or null if the string did not match;
+* @description: String is "123" and RegExp is /1|12/;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -22,38 +22,38 @@ assertion: "RegExp.prototype.exec(string) Performs a regular expression match of
 description: "String is \"123\" and RegExp is /1|12/",
 
 test: function testcase() {
-   __executed = /1|12/.exec("123");
-
-__expected = ["1"];
-__expected.index=0;
-__expected.input="123";
-
//CHECK#0
-if ((__executed instanceof Array) !== true) {
-	$ERROR('#0: __executed = /1|12/.exec("123"); (__executed instanceof Array) === true');
-}
-
-//CHECK#1
-if (__executed.length !== __expected.length) {
-  $ERROR('#1: __executed = /1|12/.exec("123"); __executed.length === ' + __expected.length + '. Actual: ' + __executed.length);
-}
-
-//CHECK#2
-if (__executed.index !== __expected.index) {
-  $ERROR('#2: __executed = /1|12/.exec("123"); __executed.index === ' + __expected.index + '. Actual: ' + __executed.index);
-}
-
-//CHECK#3
-if (__executed.input !== __expected.input) {
-  $ERROR('#3: __executed = /1|12/.exec("123"); __executed.input === ' + __expected.input + '. Actual: ' + __executed.input);
-}
-
-//CHECK#4
-for(var index=0; index<__expected.length; index++) {
-  if (__executed[index] !== __expected[index]) {
-    $ERROR('#4: __executed = /1|12/.exec("123"); __executed[' + index + '] === ' + __expected[index] + '. Actual: ' + __executed[index]);
-  }
-}
-
+   __executed = /1|12/.exec("123");
+
+__expected = ["1"];
+__expected.index=0;
+__expected.input="123";
+
//CHECK#0
+if ((__executed instanceof Array) !== true) {
+	$ERROR('#0: __executed = /1|12/.exec("123"); (__executed instanceof Array) === true');
+}
+
+//CHECK#1
+if (__executed.length !== __expected.length) {
+  $ERROR('#1: __executed = /1|12/.exec("123"); __executed.length === ' + __expected.length + '. Actual: ' + __executed.length);
+}
+
+//CHECK#2
+if (__executed.index !== __expected.index) {
+  $ERROR('#2: __executed = /1|12/.exec("123"); __executed.index === ' + __expected.index + '. Actual: ' + __executed.index);
+}
+
+//CHECK#3
+if (__executed.input !== __expected.input) {
+  $ERROR('#3: __executed = /1|12/.exec("123"); __executed.input === ' + __expected.input + '. Actual: ' + __executed.input);
+}
+
+//CHECK#4
+for(var index=0; index<__expected.length; index++) {
+  if (__executed[index] !== __expected[index]) {
+    $ERROR('#4: __executed = /1|12/.exec("123"); __executed[' + index + '] === ' + __expected[index] + '. Actual: ' + __executed[index]);
+  }
+}
+
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.12_The_JSON_Object/15.12.2_JSON.parse/S15.12.2_A1.js b/test/suite/sputnik_converted/15_Native/15.12_The_JSON_Object/15.12.2_JSON.parse/S15.12.2_A1.js
index 286a190dac9ab0c47e15e79da6244ea67e0d9481..493c2212267ab967db546a392fa8488139dc6ea6 100644
--- a/test/suite/sputnik_converted/15_Native/15.12_The_JSON_Object/15.12.2_JSON.parse/S15.12.2_A1.js
+++ b/test/suite/sputnik_converted/15_Native/15.12_The_JSON_Object/15.12.2_JSON.parse/S15.12.2_A1.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
- * @name: S15.12.2_A1;
- * @section: 15.12.2;
- * @assertion: JSON.parse must create a property with the given property name;
- * @description: Tests that JSON.parse treats "__proto__" as a regular property name;
- */
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.12.2_A1;
+ * @section: 15.12.2;
+ * @assertion: JSON.parse must create a property with the given property name;
+ * @description: Tests that JSON.parse treats "__proto__" as a regular property name;
+ */
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,13 +21,13 @@ assertion: "JSON.parse must create a property with the given property name",
 description: "Tests that JSON.parse treats \"__proto__\" as a regular property name",
 
 test: function testcase() {
-   var x = JSON.parse('{"__proto__":[]}');
-if (Object.getPrototypeOf(x) !== Object.prototype) {
-  $FAIL('#1: JSON.parse confused by "__proto__"');
-}
-if (!Array.isArray(x.__proto__)) {
-  $FAIL('#2: JSON.parse did not set "__proto__" as a regular property');
-}
+   var x = JSON.parse('{"__proto__":[]}');
+if (Object.getPrototypeOf(x) !== Object.prototype) {
+  $FAIL('#1: JSON.parse confused by "__proto__"');
+}
+if (!Array.isArray(x.__proto__)) {
+  $FAIL('#2: JSON.parse did not set "__proto__" as a regular property');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js
index 5a1198b176ae6919868220746a2f20708bd2f1c4..a1c9b486a4fc32407d7eca0d3529b32ba2c3c327 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.2.4.2_A12;
-* @section: 15.2.4.2;
-* @assertion: If the this value is undefined, return "[object Undefined]".
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A12;
+* @section: 15.2.4.2;
+* @assertion: If the this value is undefined, return "[object Undefined]".
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -20,9 +20,9 @@ assertion: "If the this value is undefined, return \"[object Undefined]\".",
 description: "",
 
 test: function testcase() {
-   if (Object.prototype.toString.call(undefined) !== "[object Undefined]") {
-  $ERROR('If the this value is undefined, return "[object Undefined]".');
-}
+   if (Object.prototype.toString.call(undefined) !== "[object Undefined]") {
+  $ERROR('If the this value is undefined, return "[object Undefined]".');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js
index 6f514dd067a4921021194edd3809220772b5b14c..54fd431228dade3db84f7cafe3db3a48d32dc9a8 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.2.4.2_A13;
-* @section: 15.2.4.2;
-* @assertion: If the this value is null, return "[object Null]".
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A13;
+* @section: 15.2.4.2;
+* @assertion: If the this value is null, return "[object Null]".
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -20,9 +20,9 @@ assertion: "If the this value is null, return \"[object Null]\".",
 description: "",
 
 test: function testcase() {
-   if (Object.prototype.toString.call(null) !== "[object Null]") {
-  $ERROR('If the this value is null, return "[object Null]".');
-}
+   if (Object.prototype.toString.call(null) !== "[object Null]") {
+  $ERROR('If the this value is null, return "[object Null]".');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js
index d982740f52ba01c11c5216b360a383623a0d0e26..3738abe4d2c5849a040383db64a8e4afeea96f06 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.2.4.2_A14;
-* @section: 15.2.4.2;
-* @assertion: Let O be the result of calling ToObject passing the this value as the argument.
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A14;
+* @section: 15.2.4.2;
+* @assertion: Let O be the result of calling ToObject passing the this value as the argument.
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -20,10 +20,10 @@ assertion: "Let O be the result of calling ToObject passing the this value as th
 description: "",
 
 test: function testcase() {
-   if (Object.prototype.toString.call(33) !== "[object Number]") {
-  $ERROR('Let O be the result of calling ToObject passing the this ' +
-         'value as the argument.');
-}
+   if (Object.prototype.toString.call(33) !== "[object Number]") {
+  $ERROR('Let O be the result of calling ToObject passing the this ' +
+         'value as the argument.');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js
index 366fdf34930bf825d66042edf8432dd3453dc96b..f4eebbb3667b8e80ac277a5f2abc774159bbbc1b 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.2.4.2_A15;
-* @section: 15.2.4.2;
-* @assertion: Let O be the result of calling ToObject passing the this value as the argument.
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A15;
+* @section: 15.2.4.2;
+* @assertion: Let O be the result of calling ToObject passing the this value as the argument.
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -20,10 +20,10 @@ assertion: "Let O be the result of calling ToObject passing the this value as th
 description: "",
 
 test: function testcase() {
-   if (Object.prototype.toString.call(true) !== "[object Boolean]") {
-  $ERROR('Let O be the result of calling ToObject passing the this ' +
-         'value as the argument.');
-}
+   if (Object.prototype.toString.call(true) !== "[object Boolean]") {
+  $ERROR('Let O be the result of calling ToObject passing the this ' +
+         'value as the argument.');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js
index a64a130522bed575350679d4c56bbc1cdcd1ee77..5d7dc95a842b3c43f10e7be8b41da51c23791da4 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.2.4.2_A16;
-* @section: 15.2.4.2;
-* @assertion: Let O be the result of calling ToObject passing the this value as the argument.
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A16;
+* @section: 15.2.4.2;
+* @assertion: Let O be the result of calling ToObject passing the this value as the argument.
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -20,10 +20,10 @@ assertion: "Let O be the result of calling ToObject passing the this value as th
 description: "",
 
 test: function testcase() {
-   if (Object.prototype.toString.call('foo') !== "[object String]") {
-  $ERROR('Let O be the result of calling ToObject passing the this ' +
-         'value as the argument.');
-}
+   if (Object.prototype.toString.call('foo') !== "[object String]") {
+  $ERROR('Let O be the result of calling ToObject passing the this ' +
+         'value as the argument.');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js
index ce4fd31dc2bb030ea450ae9fc6153c72ef861033..db1a7c9bd2153cb062f949b92a9616f3864df670 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.toLocaleString.call(undefined);
+ Object.prototype.toLocaleString.call(undefined);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js
index f8650e76cd828a55a74487149a963a033a358a5a..a3e3aab95ce40718160491866eb2112b3c4a7fcc 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.toLocaleString.call(null);
+ Object.prototype.toLocaleString.call(null);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js
index a3c0911cae34e8a77a9dfece08d7f98904c8d9cc..31b7e6f453017ac6fb222dfafe6403d8cc07b2d4 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.valueOf.call(undefined);
+ Object.prototype.valueOf.call(undefined);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js
index 946a5971f8aaf166b0efbf526a7ce4895593320e..3ebf3fe4c40182dddeba2006560091f9b1a204bd 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.valueOf.call(null);
+ Object.prototype.valueOf.call(null);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A14.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A14.js
index f7196b14f37271373483d407c2bfc5db3504fd9e..be6ab1d8ed2266a9b5ce4dce8d742539f6d2800e 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A14.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A14.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- (1,Object.prototype.valueOf)();
+ (1,Object.prototype.valueOf)();
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js
index 51149cf33d71242e3dc83fbe7b8c7f9dfe67d8e7..7dfc97eb2e98a4791ca17e5a860c2bae741796cf 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.hasOwnProperty.call(undefined, 'foo');
+ Object.prototype.hasOwnProperty.call(undefined, 'foo');
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js
index 5c3f33d108d540516e17c498180cb2439da457d6..b1af5b1c3abd15a61ede21a0976658592f071571 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.hasOwnProperty.call(null, 'foo');
+ Object.prototype.hasOwnProperty.call(null, 'foo');
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js
index d0f58eaa09de32871607054815732de6d1d35b2b..fa01e6a7fde245241c141d2d4c999a6c42d542a5 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.isPrototypeOf.call(undefined, {});
+ Object.prototype.isPrototypeOf.call(undefined, {});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js
index 4e52b20bbdc34df51810dcaa11983aaa8eabad7c..cd0d6e959d4846e832c6bbc1be232329a30a0f8a 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.isPrototypeOf.call(null, {});
+ Object.prototype.isPrototypeOf.call(null, {});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js
index 73ddf947e7e61437d6188818817087c8b511717c..e12ebf9faed20bb87c506398d567e92d2e762d9a 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.propertyIsEnumerable.call(undefined, 'foo');
+ Object.prototype.propertyIsEnumerable.call(undefined, 'foo');
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js
index bb14dcbc99e8b586cc4814e2ad6e4cc2ce916945..4d54b36b2114b918ad662a1b2bd5033b2db66e72 100644
--- a/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Object.prototype.propertyIsEnumerable.call(null, 'foo');
+ Object.prototype.propertyIsEnumerable.call(null, 'foo');
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A10.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A10.js
index 7fe965b7f86128806289e2dc92f49a5d89eecc86..f677337ee998c5c6a9da6a8a5b6267ddf37dcd78 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A10.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A10.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4.2_A10;
-* @section: 15.3.4.2;
-* @assertion: The Function.prototype.toString.length property has the attribute ReadOnly;
-* @description: Checking if varying the Function.prototype.toString.length property fails;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4.2_A10;
+* @section: 15.3.4.2;
+* @assertion: The Function.prototype.toString.length property has the attribute ReadOnly;
+* @description: Checking if varying the Function.prototype.toString.length property fails;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,19 +21,19 @@ assertion: "The Function.prototype.toString.length property has the attribute Re
 description: "Checking if varying the Function.prototype.toString.length property fails",
 
 test: function testcase() {
-   //CHECK#1
-if (!(Function.prototype.toString.hasOwnProperty('length'))) {
-  $FAIL('#1: the Function.prototype.toString has length property.');
-}
-
-var obj = Function.prototype.toString.length;
-
-Function.prototype.toString.length = function(){return "shifted";};
-
-//CHECK#2
-if (Function.prototype.toString.length !== obj) {
-  $ERROR('#2: the Function.prototype.toString length property has the attributes ReadOnly.');
-}
+   //CHECK#1
+if (!(Function.prototype.toString.hasOwnProperty('length'))) {
+  $FAIL('#1: the Function.prototype.toString has length property.');
+}
+
+var obj = Function.prototype.toString.length;
+
+Function.prototype.toString.length = function(){return "shifted";};
+
+//CHECK#2
+if (Function.prototype.toString.length !== obj) {
+  $ERROR('#2: the Function.prototype.toString length property has the attributes ReadOnly.');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A12.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A12.js
index 30dba13f2d165e3288f7770bbcec7e945a60235e..682672a3b2046f26fbd09a2fab642943dcefaff8 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A12.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.toString.call(undefined);
+ Function.prototype.toString.call(undefined);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A13.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A13.js
index d32cdf62932d894431aeb969deb73a46d980228c..8a93e40dced7d57fbece1ac92c5cac7437180915 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.toString.call(null);
+ Function.prototype.toString.call(null);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A14.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A14.js
index 762ce7027420a5d2effb620ddbe9f56f5417a83f..3b031c11b6aa27834b3a333e18c21e79f016f449 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A14.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A14.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.toString.call({});
+ Function.prototype.toString.call({});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A15.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A15.js
index 48c1e6637b8f206ed3fda515ef6c354969d25988..fed1aa2f9a0577d7897bb1218b2e0dc27a51f0e5 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A15.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A15.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.toString.call(/x/);
+ Function.prototype.toString.call(/x/);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A16.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A16.js
index 309cd4d32924a02cb443d249991935d1d4e14a3f..688186aa984986803b1549c12f3b8d1ca2ce61bf 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A16.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A16.js
@@ -1,11 +1,11 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- var obj = {toString: Function.prototype.toString};
-
-String(obj);
+ var obj = {toString: Function.prototype.toString};
+
+String(obj);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1.js
index 0c7b7547ddbbda670b41bf039d7af895be6f5319..7d11a2f946f8d78e0d0881ea6a661258778abdbe 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.2_Function.prototype.toString/S15.3.4.2_A1_T1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4.2_A1_T1;
-* @section: 15.3.4.2;
-* @assertion: An implementation-dependent representation of the function is returned. This representation has the syntax of a FunctionDeclaration;
-* @description: For testing use Function.prototype.toString() function;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4.2_A1_T1;
+* @section: 15.3.4.2;
+* @assertion: An implementation-dependent representation of the function is returned. This representation has the syntax of a FunctionDeclaration;
+* @description: For testing use Function.prototype.toString() function;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,14 +21,14 @@ assertion: "An implementation-dependent representation of the function is return
 description: "For testing use Function.prototype.toString() function",
 
 test: function testcase() {
-   var f = function(x) {
-  return x*x;
-};
-
-//CHECK#1
-if (eval(f.toString())(10) !== f(10)) {
-  $ERROR('#1: An implementation-dependent representation of the function is returned. This representation has the syntax of a FunctionDeclaration');
-}
+   var f = function(x) {
+  return x*x;
+};
+
+//CHECK#1
+if (eval(f.toString())(10) !== f(10)) {
+  $ERROR('#1: An implementation-dependent representation of the function is returned. This representation has the syntax of a FunctionDeclaration');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A13.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A13.js
index 6f6296d49db62e5502ac13a2d94969254cbc90df..e75c82eeac0747eb067adb51b870c65c3c094fca 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.apply.call(undefined, {}, []);
+ Function.prototype.apply.call(undefined, {}, []);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A14.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A14.js
index fffbfeaf29e0ae0fc267e572f83ff62a2e0c25bf..2c76362408eec229ae43186dd3208364f8491d53 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A14.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A14.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.apply.call(null, {}, []);
+ Function.prototype.apply.call(null, {}, []);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A15.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A15.js
index 3751ee5429d9f2239f05b3f163671e92ba48ecf5..49ffcf7d42b10f08375219e4db4067c518db9197 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A15.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A15.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.apply.call({}, {}, []);
+ Function.prototype.apply.call({}, {}, []);
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A16.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A16.js
index ae7017186800625d779335e775e5ea303248e39b..6c35da6ba44291c73add5da9297bff6e9f308cf3 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A16.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.3_Function.prototype.apply/S15.3.4.3_A16.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4.3_A16;
-* @section: 15.3.4.3;
-* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
-* @description: A RegExp is not a function, but it may be callable. Iff it is, it's typeof should be 'function', in which case apply should accept it as a valid this value.
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4.3_A16;
+* @section: 15.3.4.3;
+* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
+* @description: A RegExp is not a function, but it may be callable. Iff it is, it's typeof should be 'function', in which case apply should accept it as a valid this value.
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,20 +21,20 @@ assertion: "If IsCallable(func) is false, then throw a TypeError exception.",
 description: "A RegExp is not a function, but it may be callable. Iff it is, it\'s typeof should be \'function\', in which case apply should accept it as a valid this value.",
 
 test: function testcase() {
-   var re = (/x/);
-if (typeof re === 'function') {
-  Function.prototype.apply.call(re, undefined, ['x']);
-} else {
-  try {
-    Function.prototype.bind.call(re, undefined);
-    $FAIL('#1: If IsCallable(func) is false, ' +
-          'then (bind should) throw a TypeError exception');
-  } catch (e) {
-    if (!(e instanceof TypeError)) {
-      $ERROR('#1: TypeError expected. Actual: ' + e);
-    }
-  }
-}
+   var re = (/x/);
+if (typeof re === 'function') {
+  Function.prototype.apply.call(re, undefined, ['x']);
+} else {
+  try {
+    Function.prototype.bind.call(re, undefined);
+    $FAIL('#1: If IsCallable(func) is false, ' +
+          'then (bind should) throw a TypeError exception');
+  } catch (e) {
+    if (!(e instanceof TypeError)) {
+      $ERROR('#1: TypeError expected. Actual: ' + e);
+    }
+  }
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A13.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A13.js
index 7585e10552f3c7dfac46032c375e57ac32319ef3..003c688ba55fa6146c9f0c028b188f912d7e8b92 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A13.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.call.call(undefined, {});
+ Function.prototype.call.call(undefined, {});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A14.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A14.js
index a707efb0f8c9f21dcc1208a9e224e8339a03e2a5..404fee029eff98d37f6c53d4db038c35e9dd2bf7 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A14.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A14.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.call.call(null, {});
+ Function.prototype.call.call(null, {});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A15.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A15.js
index 47a0eebe5aedade2730de4278f8d289794930863..110883778d9a9157f436e2e5f6c6561f848fa700 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A15.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A15.js
@@ -1,9 +1,9 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.call.call({}, {});
+ Function.prototype.call.call({}, {});
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A16.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A16.js
index 7a83864412d26ab19aab3dcba5203a64cbb7e145..244dfb50ec3a05d4d5afeac3104692acdea6e97d 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A16.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.4_Function.prototype.call/S15.3.4.4_A16.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4.4_A16;
-* @section: 15.3.4.4;
-* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
-* @description: A RegExp is not a function, but it may be callable. Iff it is, it's typeof should be 'function', in which case call should accept it as a valid this value.
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4.4_A16;
+* @section: 15.3.4.4;
+* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
+* @description: A RegExp is not a function, but it may be callable. Iff it is, it's typeof should be 'function', in which case call should accept it as a valid this value.
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,20 +21,20 @@ assertion: "If IsCallable(func) is false, then throw a TypeError exception.",
 description: "A RegExp is not a function, but it may be callable. Iff it is, it\'s typeof should be \'function\', in which case call should accept it as a valid this value.",
 
 test: function testcase() {
-   var re = (/x/);
-if (typeof re === 'function') {
-  Function.prototype.call.call(re, undefined, 'x');
-} else {
-  try {
-    Function.prototype.bind.call(re, undefined);
-    $FAIL('#1: If IsCallable(func) is false, ' +
-          'then (bind should) throw a TypeError exception');
-  } catch (e) {
-    if (!(e instanceof TypeError)) {
-      $ERROR('#1: TypeError expected. Actual: ' + e);
-    }
-  }
-}
+   var re = (/x/);
+if (typeof re === 'function') {
+  Function.prototype.call.call(re, undefined, 'x');
+} else {
+  try {
+    Function.prototype.bind.call(re, undefined);
+    $FAIL('#1: If IsCallable(func) is false, ' +
+          'then (bind should) throw a TypeError exception');
+  } catch (e) {
+    if (!(e instanceof TypeError)) {
+      $ERROR('#1: TypeError expected. Actual: ' + e);
+    }
+  }
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A1.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A1.js
index bdf52353ba19b107bf205be62337349a44bc89ab..2ebdf14fefca66deb9e847275cbd2054f3c0b0ba 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A1.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A1.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- function foo() { return bar.caller; }
-var bar = foo.bind({});
-function baz() { return bar(); }
-baz();
+ function foo() { return bar.caller; }
+var bar = foo.bind({});
+function baz() { return bar(); }
+baz();
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A13.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A13.js
index 1e211cd92d739d158f5c66984bfa4604e4163214..fd961109e38207253c70d023251e598209aa4d77 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A13.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A13.js
@@ -1,10 +1,10 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.bind.call(undefined, {});
-
+ Function.prototype.bind.call(undefined, {});
+
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A14.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A14.js
index 39b2d6536b90813f5f05a144bf2b68f211c9b07a..b31e976e05db5531243a3318b659849e07da5a50 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A14.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A14.js
@@ -1,10 +1,10 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.bind.call(null, {});
-
+ Function.prototype.bind.call(null, {});
+
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A15.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A15.js
index d5efb60072c0f9a00afe0a6daff718a1590bb19a..32af6006413c1679b65f5e9131cfb769893401c4 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A15.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A15.js
@@ -1,10 +1,10 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- Function.prototype.bind.call({}, {});
-
+ Function.prototype.bind.call({}, {});
+
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js
index a8fc9f1a7b33685d9e4a979a8562904ee9e1cc5d..7ea0f95ea166fc05f318ecc0b02b6da585937e2e 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A16.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4.5_A16;
-* @section: 15.3.4.5;
-* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
-* @description: A RegExp is not a function, but it may be callable. Iff it is, it's typeof should be 'function', in which case bind should accept it as a valid this value.
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4.5_A16;
+* @section: 15.3.4.5;
+* @assertion: If IsCallable(func) is false, then throw a TypeError exception.
+* @description: A RegExp is not a function, but it may be callable. Iff it is, it's typeof should be 'function', in which case bind should accept it as a valid this value.
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,20 +21,20 @@ assertion: "If IsCallable(func) is false, then throw a TypeError exception.",
 description: "A RegExp is not a function, but it may be callable. Iff it is, it\'s typeof should be \'function\', in which case bind should accept it as a valid this value.",
 
 test: function testcase() {
-   var re = (/x/);
-if (typeof re === 'function') {
-  Function.prototype.bind.call(re, undefined);
-} else {
-  try {
-    Function.prototype.bind.call(re, undefined);
-    $FAIL('#1: If IsCallable(func) is false, ' +
-          'then (bind should) throw a TypeError exception');
-  } catch (e) {
-    if (!(e instanceof TypeError)) {
-      $ERROR('#1: TypeError expected. Actual: ' + e);
-    }
-  }
-}
+   var re = (/x/);
+if (typeof re === 'function') {
+  Function.prototype.bind.call(re, undefined);
+} else {
+  try {
+    Function.prototype.bind.call(re, undefined);
+    $FAIL('#1: If IsCallable(func) is false, ' +
+          'then (bind should) throw a TypeError exception');
+  } catch (e) {
+    if (!(e instanceof TypeError)) {
+      $ERROR('#1: TypeError expected. Actual: ' + e);
+    }
+  }
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A2.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A2.js
index a0b81118dc565d16b0ee079063e3c3ba4de5e152..9dc071efa84b6602d5c2a72cbee7c44415c5027d 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A2.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A2.js
@@ -1,12 +1,12 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
 
 // Converted for Test262 from original Sputnik source
 
- function foo() { return bar.arguments; }
-var bar = foo.bind({});
-function baz() { return bar(); }
-baz();
+ function foo() { return bar.arguments; }
+var bar = foo.bind({});
+function baz() { return bar(); }
+baz();
  
 
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js
index 4fe5f3e2266967004bd2d61b8ea02e9fcbef949f..bc709e6c39b2a74ba1eb7764e8433ba36ef03c80 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4_A1;
-* @section: 15.3.4;
-* @assertion: The Function prototype object is itself a Function object (its [[Class]] is "Function");
-* @description: Object.prototype.toString returns [object+[[Class]]+];
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4_A1;
+* @section: 15.3.4;
+* @assertion: The Function prototype object is itself a Function object (its [[Class]] is "Function");
+* @description: Object.prototype.toString returns [object+[[Class]]+];
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,10 +21,10 @@ assertion: "The Function prototype object is itself a Function object (its [[Cla
 description: "Object.prototype.toString returns [object+[[Class]]+]",
 
 test: function testcase() {
-   if (Object.prototype.toString.call(Function.prototype) !== "[object Function]") {
-  $ERROR('#2: The Function prototype object is itself a Function ' +
-         'object (its [[Class]] is "Function") (15.3.4)');
-}
+   if (Object.prototype.toString.call(Function.prototype) !== "[object Function]") {
+  $ERROR('#2: The Function prototype object is itself a Function ' +
+         'object (its [[Class]] is "Function") (15.3.4)');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js
index e46333a10df0ef1e77096438dcf3d63f5781a685..b1ac05b1a03bc3b6bf6ef3695931f6284184176b 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.4_A3_T1;
-* @section: 15.3.4;
-* @assertion: The value of the internal [[Prototype]] property of the Function prototype object is the Object prototype object (15.3.4);
-* @description: Checking prototype of Function.prototype;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.4_A3_T1;
+* @section: 15.3.4;
+* @assertion: The value of the internal [[Prototype]] property of the Function prototype object is the Object prototype object (15.3.4);
+* @description: Checking prototype of Function.prototype;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,11 +21,11 @@ assertion: "The value of the internal [[Prototype]] property of the Function pro
 description: "Checking prototype of Function.prototype",
 
 test: function testcase() {
-   if (Object.getPrototypeOf(Function.prototype) !== Object.prototype) {
-  $ERROR('#1: The value of the internal [[Prototype]] property of ' +
-         'the Function prototype object is the Object prototype ' +
-         'object (15.3.4)');
-}
+   if (Object.getPrototypeOf(Function.prototype) !== Object.prototype) {
+  $ERROR('#1: The value of the internal [[Prototype]] property of ' +
+         'the Function prototype object is the Object prototype ' +
+         'object (15.3.4)');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js
index 39fc28a31d73f48b89bfc2859a063830527023b1..fcf124ca83b43b09be30bb6542ef6e9734560166 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.5.1_A1_T1;
-* @section: 15.3.5.1;
-* @assertion: The value of the length property is usually an integer that indicates the 'typical' number of arguments expected by the function;
-* @description: Checking length property of Function("arg1,arg2,arg3", null);
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.5.1_A1_T1;
+* @section: 15.3.5.1;
+* @assertion: The value of the length property is usually an integer that indicates the 'typical' number of arguments expected by the function;
+* @description: Checking length property of Function("arg1,arg2,arg3", null);
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,17 +21,17 @@ assertion: "The value of the length property is usually an integer that indicate
 description: "Checking length property of Function(\"arg1,arg2,arg3\", null)",
 
 test: function testcase() {
-   f = new Function("arg1,arg2,arg3", null);
-
-//CHECK#1
-if (!(f.hasOwnProperty('length'))) {
-  $FAIL('#1: the function has length property.');
-}
-
-//CHECK#2
-if (f.length !== 3) {
-  $ERROR('#2: The value of the length property is usually an integer that indicates the "typical" number of arguments expected by the function');
-}
+   f = new Function("arg1,arg2,arg3", null);
+
+//CHECK#1
+if (!(f.hasOwnProperty('length'))) {
+  $FAIL('#1: the function has length property.');
+}
+
+//CHECK#2
+if (f.length !== 3) {
+  $ERROR('#2: The value of the length property is usually an integer that indicates the "typical" number of arguments expected by the function');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js
index 30aef2b93db6dad1db1684ef9c4955a71e80c78a..9f1097cc6a4107fab9367bd61ea9a39b06e7f222 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.5_A1_T1;
-* @section: 15.3.5;
-* @assertion: The value of the [[Class]] property is "Function";
-* @description: For testing use variable f = new Function;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.5_A1_T1;
+* @section: 15.3.5;
+* @assertion: The value of the [[Class]] property is "Function";
+* @description: For testing use variable f = new Function;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,11 +21,11 @@ assertion: "The value of the [[Class]] property is \"Function\"",
 description: "For testing use variable f = new Function",
 
 test: function testcase() {
-   var f = new Function;
-
-if (Object.prototype.toString.call(f) !== "[object Function]") {
-  $ERROR('#1: The value of the [[Class]] property is "Function"');
-}
+   var f = new Function;
+
+if (Object.prototype.toString.call(f) !== "[object Function]") {
+  $ERROR('#1: The value of the [[Class]] property is "Function"');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js
index 13e8c1c4786b8086f97d403ba2dced4dfc453f06..42b5c6adfffd1d3898c0be892762910e0e7da1fe 100644
--- a/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js
+++ b/test/suite/sputnik_converted/15_Native/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.3.5_A1_T2;
-* @section: 15.3.5;
-* @assertion: The value of the [[Class]] property is "Function" ;
-* @description: For testing use variable f = Function();
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.3.5_A1_T2;
+* @section: 15.3.5;
+* @assertion: The value of the [[Class]] property is "Function" ;
+* @description: For testing use variable f = Function();
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,12 +21,12 @@ assertion: "The value of the [[Class]] property is \"Function\"",
 description: "For testing use variable f = Function()",
 
 test: function testcase() {
-   var f = Function();
-
-if (Object.prototype.toString.call(f) !== "[object Function]") {
-  $ERROR('#1: The value of the [[Class]] property is "Function"');
-}
-
+   var f = Function();
+
+if (Object.prototype.toString.call(f) !== "[object Function]") {
+  $ERROR('#1: The value of the [[Class]] property is "Function"');
+}
+
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.11_Array_prototype_sort/S15.4.4.11_A8.js b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.11_Array_prototype_sort/S15.4.4.11_A8.js
index 27874a8eee8d4825bad03167ab1d695f6241d5e5..d3a50864812c5349f127527827697873cb009fc2 100644
--- a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.11_Array_prototype_sort/S15.4.4.11_A8.js
+++ b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.11_Array_prototype_sort/S15.4.4.11_A8.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.4.4.11_A8;
-* @section: 15.4.4.11;
-* @assertion: Call the comparefn passing undefined as the this value (step 13b);
-* @description: comparefn tests that its this value is undefined;
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.4.4.11_A8;
+* @section: 15.4.4.11;
+* @assertion: Call the comparefn passing undefined as the this value (step 13b);
+* @description: comparefn tests that its this value is undefined;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,19 +21,19 @@ assertion: "Call the comparefn passing undefined as the this value (step 13b)",
 description: "comparefn tests that its this value is undefined",
 
 test: function testcase() {
-   var global = this;
-[2,3].sort(function(x,y) {
-  "use strict";
-
-  if (this === global) {
-    $FAIL('#1: Sort leaks global');
-  }
-  if (this !== undefined) {
-    $FAIL('#2: Sort comparefn should be called with this===undefined. ' +
-          'Actual: ' + this);
-  }
-  return x - y;
-});
+   var global = this;
+[2,3].sort(function(x,y) {
+  "use strict";
+
+  if (this === global) {
+    $FAIL('#1: Sort leaks global');
+  }
+  if (this !== undefined) {
+    $FAIL('#2: Sort comparefn should be called with this===undefined. ' +
+          'Actual: ' + this);
+  }
+  return x - y;
+});
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A1.js b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A1.js
index ea1355904e95a2b44e3ae7c8382ef84e61b42c65..06cfd27cafeacdfd80c7d7c3656bb424e2add860 100644
--- a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A1.js
+++ b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A1.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
- * @name: S15.4.4.18_A1;
- * @section: 15.4.4.18;
- * @assertion: array.forEach can be frozen while in progress
- * @description: Freezes array.forEach during a forEach to see if it works
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.4.4.18_A1;
+ * @section: 15.4.4.18;
+ * @assertion: array.forEach can be frozen while in progress
+ * @description: Freezes array.forEach during a forEach to see if it works
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,7 +21,7 @@ assertion: "array.forEach can be frozen while in progress",
 description: "Freezes array.forEach during a forEach to see if it works",
 
 test: function testcase() {
-   ['z'].forEach(function(){ Object.freeze(Array.prototype.forEach); });
+   ['z'].forEach(function(){ Object.freeze(Array.prototype.forEach); });
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A2.js b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A2.js
index a011d69a2a88d50639742a3217f278bf729805f0..400e59d0ca9b167fc6b7a8d1929e6c9731d2b1bb 100644
--- a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A2.js
+++ b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/15.4.4.18_Array_prototype_forEach/S15.4.4.18_A2.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
- * @name: S15.4.4.18_A2;
- * @section: 15.4.4.18;
- * @assertion: array.forEach can be frozen while in progress
- * @description: Freezes array.forEach during a forEach to see if it works
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.4.4.18_A2;
+ * @section: 15.4.4.18;
+ * @assertion: array.forEach can be frozen while in progress
+ * @description: Freezes array.forEach during a forEach to see if it works
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,10 +21,10 @@ assertion: "array.forEach can be frozen while in progress",
 description: "Freezes array.forEach during a forEach to see if it works",
 
 test: function testcase() {
-   function foo() {
-  ['z'].forEach(function(){ Object.freeze(Array.prototype.forEach); });
-}
-foo();
+   function foo() {
+  ['z'].forEach(function(){ Object.freeze(Array.prototype.forEach); });
+}
+foo();
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js
index 9380932bba232f90ff1dd56b9c01de027df2c2b4..de79b0809f29edb3fb5927e6fe0f787d1d1e95bc 100644
--- a/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js
+++ b/test/suite/sputnik_converted/15_Native/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js
@@ -1,12 +1,12 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
- * @name: S15.4.4_A1.1_T2;
- * @section: 15.4.4;
- * @assertion:The Array prototype object is itself an array; its [[Class]] is "Array",
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.4.4_A1.1_T2;
+ * @section: 15.4.4;
+ * @assertion:The Array prototype object is itself an array; its [[Class]] is "Array",
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -20,11 +20,11 @@ assertion: "The Array prototype object is itself an array; its [[Class]] is \"Ar
 description: "",
 
 test: function testcase() {
-   //CHECK#1
-if (Object.prototype.toString.call(Array.prototype) !== "[object Array]") {
-  $ERROR('The Array prototype object is itself an array; its' +
-         '[[Class]] is "Array".');
-}
+   //CHECK#1
+if (Object.prototype.toString.call(Array.prototype) !== "[object Array]") {
+  $ERROR('The Array prototype object is itself an array; its' +
+         '[[Class]] is "Array".');
+}
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.11_String.prototype.replace/S15.5.4.11_A12.js b/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.11_String.prototype.replace/S15.5.4.11_A12.js
index f7a83674edc873673d9d80658aa953110341be65..610c183f5141c2553c1e53d057804e43265bb9cb 100644
--- a/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.11_String.prototype.replace/S15.5.4.11_A12.js
+++ b/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.11_String.prototype.replace/S15.5.4.11_A12.js
@@ -1,13 +1,13 @@
-// Copyright 2011 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.5.4.11_A12;
-* @section: 15.5.4.11;
-* @assertion: Call replaceValue passing undefined as the this value;
-* @description: replaceValue tests that its this value is undefined;
-*/
-
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.4.11_A12;
+* @section: 15.5.4.11;
+* @assertion: Call replaceValue passing undefined as the this value;
+* @description: replaceValue tests that its this value is undefined;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,19 +21,19 @@ assertion: "Call replaceValue passing undefined as the this value",
 description: "replaceValue tests that its this value is undefined",
 
 test: function testcase() {
-   var global = this;
-'x'.replace(/x/, function() {
-  "use strict";
-
-  if (this === global) {
-    $FAIL('#1: String replace leaks global');
-  }
-  if (this !== undefined) {
-    $FAIL('#2: replaceValue should be called with this===undefined. ' +
-          'Actual: ' + this);
-  }
-  return 'y';
-});
+   var global = this;
+'x'.replace(/x/, function() {
+  "use strict";
+
+  if (this === global) {
+    $FAIL('#1: String replace leaks global');
+  }
+  if (this !== undefined) {
+    $FAIL('#2: replaceValue should be called with this===undefined. ' +
+          'Actual: ' + this);
+  }
+  return 'y';
+});
 
  }
 });
diff --git a/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A1_T1.js b/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A1_T1.js
index b762948af90dd9645d971966e03ea7f9d75b811b..28389874008c5411232748f24598da140145e12b 100644
--- a/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A1_T1.js
+++ b/test/suite/sputnik_converted/15_Native/15.5_String_Objects/15.5.4_Properties_of_the_String_Prototype_Object/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A1_T1.js
@@ -1,13 +1,13 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/**
-* @name: S15.5.4.8_A1_T1;
-* @section: 15.5.4.8;
-* @assertion: String.prototype.lastIndexOf(searchString, position);
-* @description: Arguments are false and true, and instance is object;
-*/
-
+// Copyright 2009 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.4.8_A1_T1;
+* @section: 15.5.4.8;
+* @assertion: String.prototype.lastIndexOf(searchString, position);
+* @description: Arguments are false and true, and instance is object;
+*/
+
 
 // Converted for Test262 from original Sputnik source
 
@@ -21,17 +21,17 @@ assertion: "String.prototype.lastIndexOf(searchString, position)",
 description: "Arguments are false and true, and instance is object",
 
 test: function testcase() {
-   var __instance = new Object(true);
-
-var __instance.lastIndexOf = String.prototype.lastIndexOf;
-
-//////////////////////////////////////////////////////////////////////////////
-//CHECK#1
-if (__instance.lastIndexOf(true, false) !== 0) {
-  $ERROR('#1: __instance = new Object(true); __instance.lastIndexOf = String.prototype.lastIndexOf;  __instance.lastIndexOf(true, false) === 0. Actual: '+__instance.lastIndexOf(true, false) );
-}
-//
-//////////////////////////////////////////////////////////////////////////////
+   var __instance = new Object(true);
+
+var __instance.lastIndexOf = String.prototype.lastIndexOf;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__instance.lastIndexOf(true, false) !== 0) {
+  $ERROR('#1: __instance = new Object(true); __instance.lastIndexOf = String.prototype.lastIndexOf;  __instance.lastIndexOf(true, false) === 0. Actual: '+__instance.lastIndexOf(true, false) );
+}
+//
+//////////////////////////////////////////////////////////////////////////////
 
  }
 });
diff --git a/website/resources/scripts/testcases/15.12_The_JSON_Object.json b/website/resources/scripts/testcases/15.12_The_JSON_Object.json
new file mode 100644
index 0000000000000000000000000000000000000000..6df185b6098a7f06efc5b7bb3783cb4e3d86cc56
--- /dev/null
+++ b/website/resources/scripts/testcases/15.12_The_JSON_Object.json
@@ -0,0 +1 @@
+{"testsCollection":{"name":"Chapter - 15.12_The_JSON_Object","numTests":"1","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMTIuMl9BMSIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4xMl9UaGVfSlNPTl9PYmplY3QvMTUuMTIuMl9KU09OLnBhcnNlL1MxNS4xMi4yX0ExLmpzIiwKCmFzc2VydGlvbjogIkpTT04ucGFyc2UgbXVzdCBjcmVhdGUgYSBwcm9wZXJ0eSB3aXRoIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIiwKCmRlc2NyaXB0aW9uOiAiVGVzdHMgdGhhdCBKU09OLnBhcnNlIHRyZWF0cyBcIl9fcHJvdG9fX1wiIGFzIGEgcmVndWxhciBwcm9wZXJ0eSBuYW1lIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgeCA9IEpTT04ucGFyc2UoJ3siX19wcm90b19fIjpbXX0nKTsKaWYgKE9iamVjdC5nZXRQcm90b3R5cGVPZih4KSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgewogICRGQUlMKCcjMTogSlNPTi5wYXJzZSBjb25mdXNlZCBieSAiX19wcm90b19fIicpOwp9CmlmICghQXJyYXkuaXNBcnJheSh4Ll9fcHJvdG9fXykpIHsKICAkRkFJTCgnIzI6IEpTT04ucGFyc2UgZGlkIG5vdCBzZXQgIl9fcHJvdG9fXyIgYXMgYSByZWd1bGFyIHByb3BlcnR5Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.12.2_A1"}]}}
\ No newline at end of file
diff --git a/website/resources/scripts/testcases/15.3_Function_Objects.json b/website/resources/scripts/testcases/15.3_Function_Objects.json
index 7acfb80c4904a8bc5503ee7d6c47fa0299faa054..4e2c5a14fec9b28de7486bfee3436fbbf26720bc 100644
--- a/website/resources/scripts/testcases/15.3_Function_Objects.json
+++ b/website/resources/scripts/testcases/15.3_Function_Objects.json
@@ -1 +1 @@
-{"testsCollection":{"name":"Chapter - 15.3_Function_Objects","numTests":"186","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4xX0ExX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy9TMTUuMy4xX0ExX1QxLmpzIiwKCmFzc2VydGlvbjogIlRoZSBmdW5jdGlvbiBjYWxsIEZ1bmN0aW9uKOKApikgaXMgZXF1aXZhbGVudCB0byB0aGUgb2JqZWN0IGNyZWF0aW9uIGV4cHJlc3Npb24iLAoKZGVzY3JpcHRpb246ICJDcmVhdGUgc2ltcGxlIGZ1bmN0aW9ucyBhbmQgY2hlY2sgcmV0dXJuZWQgdmFsdWVzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZiA9IEZ1bmN0aW9uKCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpOwoKLy9DSEVDSyMxCmlmICghKGYgaW5zdGFuY2VvZiBGdW5jdGlvbikpewogICRFUlJPUignIzE6IGYgaW5zdGFuY2VvZiBGdW5jdGlvbicpOwp9CgovL0NIRUNLIzIKaWYgKGYoMSkgIT09IDEpIHsKICAkRVJST1IoJyMyOiBmKDEpICE9PSAxJyk7Cn0KCnZhciBnID0gbmV3IEZ1bmN0aW9uKCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpOwoKCi8vQ0hFQ0sjMwppZiAoIShnIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7CiAgJEVSUk9SKCcjMzogZyBpbnN0YW5jZW9mIEZ1bmN0aW9uJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoZygiQSIpICE9PSAiQSIpIHsKICAkRVJST1IoJyM0OiBnKCJBIikgIT09ICJBIicpOwp9CgovL0NIRUNLIzUKaWYgKGcoIkEiKSAhPT0gZigiQSIpKSB7CiAgJEVSUk9SKCcjNTogZygiQSIpICE9PSBmKCJBIiknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMSIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4zX0Z1bmN0aW9uX09iamVjdHMvUzE1LjNfQTEuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24gaXMgdGhlIHByb3BlcnR5IG9mIGdsb2JhbCIsCgpkZXNjcmlwdGlvbjogIkNvbXBhcmUgRnVuY3Rpb24gd2l0aCB0aGlzLkZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gRnVuY3Rpb247Cgp2YXIgdGhpc29iaiA9IHRoaXMuRnVuY3Rpb247CgppZiAob2JqICE9PSB0aGlzb2JqKSB7CiAgJEVSUk9SKCdGdW5jdGlvbiBpcyB0aGUgcHJvcGVydHkgb2YgZ2xvYmFsJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMl9UMSIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4zX0Z1bmN0aW9uX09iamVjdHMvUzE1LjNfQTJfVDEuanMiLAoKYXNzZXJ0aW9uOiAiU2luY2UgYXBwbHlpbmcgdGhlIFwiY2FsbFwiIG1ldGhvZCB0byBGdW5jdGlvbiBjb25zdHJ1Y3RvciB0aGVtc2VsZiBsZWFkcyB0byBjcmVhdGluZyBhIG5ldyBmdW5jdGlvbiBpbnN0YW5jZSwgdGhlIHNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGEgdmFsaWQgZnVuY3Rpb24gYm9keSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGluZyBcIkZ1bmN0aW9uLmNhbGwodGhpcywgXCJ2YXIgeCAvID0gMTtcIilcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdHJ5ewogIEZ1bmN0aW9uLmNhbGwodGhpcywgInZhciB4IC8gPSAxOyIpOwp9IGNhdGNoKGUpewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMTogZnVuY3Rpb24gYm9keSBtdXN0IGJlIHZhbGlkJyk7CiAgfQp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMl9UMiIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4zX0Z1bmN0aW9uX09iamVjdHMvUzE1LjNfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAiU2luY2UgYXBwbHlpbmcgdGhlIFwiY2FsbFwiIG1ldGhvZCB0byBGdW5jdGlvbiBjb25zdHJ1Y3RvciB0aGVtc2VsZiBsZWFkcyB0byBjcmVhdGluZyBhIG5ldyBmdW5jdGlvbiBpbnN0YW5jZSwgdGhlIHNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGEgdmFsaWQgZnVuY3Rpb24gYm9keSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGluZyBcIkZ1bmN0aW9uLmNhbGwodGhpcywgXCJ2YXIgI3ggID0gMTtcIilcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdHJ5ewogIEZ1bmN0aW9uLmNhbGwodGhpcywgInZhciAjeCAgPSAxOyIpOwp9IGNhdGNoKGUpewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMTogZnVuY3Rpb24gYm9keSBtdXN0IGJlIHZhbGlkJyk7CiAgfQp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1QxLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIGlzIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgNzt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDc7fX0KCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKGJvZHkpOwogICRGQUlMKCcjMTogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcCBhcmUgdGFrZW46IGNhbGwgVG9TdHJpbmcoYm9keSknKTsKfSBjYXRjaCAoZSkgewogIGlmIChlICE9PSA3KSB7CiAgCSRFUlJPUignIzEuMTogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcCBhcmUgdGFrZW46IGNhbGwgVG9TdHJpbmcoYm9keSknKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTAuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJudWxsXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKG51bGwpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxzIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTEuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odW5kZWZpbmVkKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTIuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJ2b2lkIDBcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odm9pZCAwKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PXVuZGVmaW5lZCkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTMuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJ7fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbih7fSk7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogSWYgYm9keSBpcyBub3QgcGFyc2FibGUgYXMgRnVuY3Rpb25Cb2R5IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1QyLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIGlzIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFwicmV0dXJuIDE7XCI7fX1cIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHk9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJyZXR1cm4gMTsiO319OwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oYm9keSk7CQp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09MSkgewogICRFUlJPUignIzM6IGhlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1QzLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIDEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKDEpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q0LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIHgsIHdoZXJlIHggaXMgc3BlY2lmaWVkIHdpdGggXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oeCk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKdmFyIHg7CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q1LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwiT2JqZWN0KFwicmV0dXJuIFxcXCdBXFxcJ1wiKVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9IE9iamVjdCgicmV0dXJuIFwnQVwnIik7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PSJcdTAwNDEiKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q2LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIHRoZSBzdHJpbmcgXCJyZXR1cm4gdHJ1ZTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiB0cnVlOyIpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoIShmKCkpKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q3LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwiT2JqZWN0KDEpXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gbmV3IE9iamVjdCgxKTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q4LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwidmFyIDE9MTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAidmFyIDE9MTsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBib2R5IGlzIG5vdCBwYXJzYWJsZSBhcyBGdW5jdGlvbkJvZHkgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IElmIGJvZHkgaXMgbm90IHBhcnNhYmxlIGFzIEZ1bmN0aW9uQm9keSB0aGVuIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q5LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwicmV0dXJuIGFyZ3VtZW50c1swXTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiBhcmd1bWVudHNbMF07Iik7CgovL0NIRUNLIzEKaWYgKCEoZiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKLy9DSEVDSyMyCmlmIChmKCJBIikgIT09ICJBIikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A1_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1QxLmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMVwiLCBcImFyZzJcIiwgXCJhcmczXCIsIFwicmV0dXJuIGFyZzErYXJnMithcmczO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKCJhcmcxIiwgImFyZzIiLCAiYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSwyLDMpICE9PSA2KSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1QyLmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMSwgYXJnMlwiLCBcImFyZzNcIiwgXCJyZXR1cm4gYXJnMSthcmcyK2FyZzM7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gRnVuY3Rpb24oImFyZzEsIGFyZzIiLCAiYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoIkFCIiwiQkEiLDEpICE9PSAiQUJCQTEiKSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1QzLmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMSwgYXJnMiwgYXJnM1wiLCBcInJldHVybiBhcmcxK2FyZzIrYXJnMztcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBGdW5jdGlvbigiYXJnMSwgYXJnMiwgYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSwxLCJBQkJBIikgIT09ICIyQUJCQSIpIHsKICAkRVJST1IoJyMzOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1Q0LmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBpPTA7Cgp2YXIgcD17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gImFyZyIrKCsraSk7fX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHAsIHAsIHAsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoNCwiMiIsIlFVRVNUSU9OIikgIT09ICI0MlFVRVNUSU9OIikgewogICRFUlJPUignIzM6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KICAKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1Q1LmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMgYW5kIGEgY29uY290ZW5hdGlvbiBvZiBzdHJpbmdzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgaT0wOwoKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhcmciKygrK2kpfX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHArIiwiK3AscCwgInJldHVybiBhcmcxK2FyZzIrYXJnMzsiKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQnKTsKfQoKLy9DSEVDSyMyCmlmICghKGYgaW5zdGFuY2VvZiBGdW5jdGlvbikpewogICRFUlJPUignIzI6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigiIiwxLDIpICE9PSAiMTIiKSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1Q2LmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMgYW5kIGEgY29uY290ZW5hdGlvbiBvZiBzdHJpbmdzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgaT0wOwoKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhcmciKygrK2kpfX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHArIiwiK3ArIiwiK3AsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoIiIsMSxwKSAhPT0gIjFhcmc0IikgewogICRFUlJPUignIzM6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1QxLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDE7fX1cIiBhbmQgXCJ7dG9TdHJpbmc6ZnVuY3Rpb24oKXt0aHJvdyBcJ2JvZHlcJzt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDE7fX07CnZhciBib2R5ID0ge3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgImJvZHkiO319OwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCxib2R5KTsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gMSkgewogIAkkRVJST1IoJyMxLjE6IGkpIExldCBSZXN1bHQoaSkgYmUgdGhlIGZpcnN0IGFyZ3VtZW50OyBpaSkgTGV0IFAgYmUgVG9TdHJpbmcoUmVzdWx0KGkpKScpOwogIH0KfQoKCgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTAuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFwiejt4XCJ9fVwiIGFuZCBcInJldHVybiB0aGlzO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdGhpczsiOwp2YXIgcD17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gIno7eCJ9fTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTEuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgXCJ2b2lkIDBcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIHAgPSAiYSxiLGMiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgdm9pZCAwKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTIuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIHAgPSAiYSxiLGMiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgdW5kZWZpbmVkKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTMuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgXCJudWxsXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0gImEsYixjIjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsIG51bGwpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PXVuZGVmaW5lZCkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDE0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTQuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgYW4gdW5kZWZpbmVkIHZhcmlhYmxlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9ICJhLGIsYyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLCBib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9Cgp2YXIgYm9keTsKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDE1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTUuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIGFyZSB0d28gZW1wdHkgc3RyaW5ncyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oIiIsICIiKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1QyLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBcJ2FcJzt9fVwiIGFuZCBcInJldHVybiBhO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAiYSI7fX07CnZhciBib2R5ID0gInJldHVybiBhOyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoNDIpIT09NDIpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1QzLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3A9MTtyZXR1cm4gXCJhXCI7fX1cIiBhbmQgXCJ7dG9TdHJpbmc6ZnVuY3Rpb24oKXt0aHJvdyBcImJvZHlcIjt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3A9MTtyZXR1cm4gImEiO319Owp2YXIgYm9keSA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93ICJib2R5Ijt9fTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCcpOwp9IGNhdGNoIChlKSB7CiAgaWYgKGUgIT09ICJib2R5IikgewogIAkkRVJST1IoJyMxLjE6IGkpIExldCBSZXN1bHQoaSkgYmUgdGhlIGZpcnN0IGFyZ3VtZW50OyBpaSkgTGV0IFAgYmUgVG9TdHJpbmcoUmVzdWx0KGkpKScpOwogIH0KfQoKLy9DSEVDSyMyCmlmIChwICE9PSAxKSB7CiAgJEVSUk9SKCcjMjogaSkgTGV0IFJlc3VsdChpKSBiZSB0aGUgZmlyc3QgYXJndW1lbnQ7IGlpKSBMZXQgUCBiZSBUb1N0cmluZyhSZXN1bHQoaSkpJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q0LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBhbiB1bmRlZmluZWQgdmFyaWFibGUgYW5kIFwicmV0dXJuIDEuMTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIDEuMTsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCxib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PTEuMSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9Cgp2YXIgcDsKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q1LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInZvaWQgMFwiIGFuZCBcInJldHVybiBcXFwiQVxcXCI7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gInJldHVybiBcIkFcIjsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odm9pZCAwLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09J1x1MDA0MScpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKCgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q2LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcIm51bGxcIiBhbmQgXCJyZXR1cm4gdHJ1ZTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIHRydWU7IjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKG51bGwsYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q3LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcIk9iamVjdChcImFcIilcIiBhbmQgXCJyZXR1cm4gYTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIGE7IjsKCnZhciBwPU9iamVjdCgiYSIpOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgYm9keSk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKDEpIT09MSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CiB9Cn0pOwoK","id":"S15.3.2.1_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q4LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInVuZGVmaW5lZFwiIGFuZCBcInJldHVybiB0aGlzO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdGhpczsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odW5kZWZpbmVkLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dGhpcykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q5LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcIjEsMVwiIGFuZCBcInJldHVybiB0aGlzO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdGhpczsiOwp2YXIgcD0iMSwxIjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yX0ExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjJfQTEuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiBGdW5jdGlvbiBpcyBjYWxsZWQgYXMgcGFydCBvZiBhIG5ldyBleHByZXNzaW9uLCBpdCBpcyBhIGNvbnN0cnVjdG9yOiBpdCBpbml0aWFsaXNlcyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB0aGUgY29uc3R1Y3RvciBvZiB0aGUgb2JqZWN0IHRoYXQgaXMgY3JlYXRlZCBhcyBhIG5ldyBGdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBuZXcgRnVuY3Rpb247CgovL0NIRUNLIzEKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMTogV2hlbiBGdW5jdGlvbiBpcyBjYWxsZWQgYXMgcGFydCBvZiBhIG5ldyBleHByZXNzaW9uLCBpdCBpcyBhIGNvbnN0cnVjdG9yOiBpdCBpbml0aWFsaXNlcyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QnKTsKfQoKLy9DSEVDSyMyCmlmIChmID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMyOiBXaGVuIEZ1bmN0aW9uIGlzIGNhbGxlZCBhcyBwYXJ0IG9mIGEgbmV3IGV4cHJlc3Npb24sIGl0IGlzIGEgY29uc3RydWN0b3I6IGl0IGluaXRpYWxpc2VzIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.2_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0ExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMS5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaGFzIHRoZSBwcm9wZXJ0eSBcInByb3RvdHlwZVwiIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZXhpc3RlbmNlIG9mIHRoZSBwcm9wZXJ0eSBcInByb3RvdHlwZVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBpZighRnVuY3Rpb24uaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpKXsKICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaGFzIHRoZSBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EyX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMl9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgcHJvdG90eXBlIG9mIEZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoRnVuY3Rpb24pKSkgewogICRFUlJPUignIzE6IHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EyX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMl9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQWRkIG5ldyBwcm9wZXJ0eSB0byBGdW5jdGlvbi5wcm90b3R5cGUgYW5kIGNoZWNrIGl0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbi5wcm90b3R5cGUuaW5kaWNhdG9yID0gMTsKCi8vQ0hFQ0sjCmlmIChGdW5jdGlvbi5pbmRpY2F0b3IgIT0gMSkgewogICRFUlJPUignIzE6IHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMy5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBoYXMgbGVuZ3RoIHByb3BlcnR5IHdob3NlIHZhbHVlIGlzIDEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBGdW5jdGlvbi5sZW5ndGggcHJvcGVydHkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIUZ1bmN0aW9uLmhhc093blByb3BlcnR5KCJsZW5ndGgiKSl7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24gY29uc3RydWN0b3IgaGFzIGxlbmd0aCBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKEZ1bmN0aW9uLmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzI6IEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGxlbmd0aCBwcm9wZXJ0eSB2YWx1ZSBpcyAxJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuM19Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Db25zdHJ1Y3Rvci8xNS4zLjMuMV9GdW5jdGlvbi5wcm90b3R5cGUvUzE1LjMuMy4xX0ExLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgUmVhZE9ubHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBGdW5jdGlvbi5wcm90b3R5cGU7CkZ1bmN0aW9uLnByb3RvdHlwZSA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUgIT09IG9iaikgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBpZihGdW5jdGlvbi5wcm90b3R5cGUoKSE9PXVuZGVmaW5lZCl7CiAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7CiAgfQp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMi4xOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seTogJytlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.3.1_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuM19Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Db25zdHJ1Y3Rvci8xNS4zLjMuMV9GdW5jdGlvbi5wcm90b3R5cGUvUzE1LjMuMy4xX0EyLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udEVudW0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm9wZXJ0eUlzRW51bWVyYWJsZSgncHJvdG90eXBlJykpIHsKICAkRVJST1IoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCnZhciBjb3VudD0wOwoKZm9yIChwIGluIEZ1bmN0aW9uKXsKICBpZiAocD09PSJwcm90b3R5cGUiKSBjb3VudCsrOwp9CgppZiAoY291bnQgIT09IDApIHsKICAkRVJST1IoJyMyOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.3.1_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuM19Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Db25zdHJ1Y3Rvci8xNS4zLjMuMV9GdW5jdGlvbi5wcm90b3R5cGUvUzE1LjMuMy4xX0EzLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udERlbGV0ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGRlbGV0ZSBGdW5jdGlvbi5wcm90b3R5cGU7CgovL0NIRUNLIzEKaWYgKCEoRnVuY3Rpb24uaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpKSkgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3.1_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjFfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0L1MxNS4zLjQuMV9BMV9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgaW5pdGlhbCB2YWx1ZSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlIGJ1aWx0LWluIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMxOiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlIGJ1aWx0LWluIEZ1bmN0aW9uIGNvbnN0cnVjdG9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0ExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0ExLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCAoaXRzIFtbQ2xhc3NdXSBpcyBcIkZ1bmN0aW9uXCIpIiwKCmRlc2NyaXB0aW9uOiAiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyByZXR1cm5zIFtvYmplY3QrW1tDbGFzc11dK10iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoRnVuY3Rpb24ucHJvdG90eXBlKSAhPT0gIltvYmplY3QgRnVuY3Rpb25dIikgewogICRFUlJPUignIzI6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uICcgKwogICAgICAgICAnb2JqZWN0IChpdHMgW1tDbGFzc11dIGlzICJGdW5jdGlvbiIpICgxNS4zLjQpJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EyX1QxLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZSgpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICBpZiAoRnVuY3Rpb24ucHJvdG90eXBlKCkgIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgaXRzZWxmIGEgRnVuY3Rpb24gb2JqZWN0IHRoYXQsIHdoZW4gaW52b2tlZCwgYWNjZXB0cyBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5zIHVuZGVmaW5lZCcpOwogIH0KfSBjYXRjaCAoZSkgewogICRFUlJPUignIzEuMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgaXRzZWxmIGEgRnVuY3Rpb24gb2JqZWN0IHRoYXQsIHdoZW4gaW52b2tlZCwgYWNjZXB0cyBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5zIHVuZGVmaW5lZDogJytlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EyX1QyLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZShudWxsLHZvaWQgMCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGlmIChGdW5jdGlvbi5wcm90b3R5cGUobnVsbCx2b2lkIDApICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQnKTsKICB9Cn0gY2F0Y2ggKGUpIHsKICAkRVJST1IoJyMxLjE6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQ6ICcrZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EyX1QzLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZSh4KSwgd2hlcmUgeCBpcyB1bmRlZmluZWQgdmFyaWFibGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGlmIChGdW5jdGlvbi5wcm90b3R5cGUoeCkgIT09IHVuZGVmaW5lZCkgewogICAgdmFyIHg7CiAgICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCwgd2hlbiBpbnZva2VkLCBhY2NlcHRzIGFueSBhcmd1bWVudHMgYW5kIHJldHVybnMgdW5kZWZpbmVkJyk7CiAgfQp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMS4xOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCwgd2hlbiBpbnZva2VkLCBhY2NlcHRzIGFueSBhcmd1bWVudHMgYW5kIHJldHVybnMgdW5kZWZpbmVkOiAnK2UpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EzX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EzX1QyLmpzIiwKCmFzc2VydGlvbjogIlRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyB0aGUgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgKDE1LjMuMi4xKSIsCgpkZXNjcmlwdGlvbjogIkFkZCBuZXcgcHJvcGVydHkgdG8gT2JqZWN0LnByb3RvdHlwZSBhbmQgY2hlY2sgaXQgYXQgRnVuY3Rpb24ucHJvdG90eXBlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBPYmplY3QucHJvdG90eXBlLmluZGljYXRvciA9IDE7CgovL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5pbmRpY2F0b3IhPT0xKSB7CiAgJEVSUk9SKCcjMTogVGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIHRoZSBPYmplY3QgcHJvdG90eXBlIG9iamVjdCAoMTUuMy4yLjEpJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0E0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0E0LmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSB2YWx1ZU9mIHByb3BlcnR5IG9mIGl0cyBvd24uIGhvd2V2ZXIsIGl0IGluaGVyaXRzIHRoZSB2YWx1ZU9mIHByb3BlcnR5IGZyb20gdGhlIE9iamVjdCBwcm90b3R5cGUgT2JqZWN0IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdmFsdWVPZiBwcm9wZXJ0eSBhdCBGdW5jdGlvbi5wcm90b3R5cGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJ2YWx1ZU9mIikgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIHZhbHVlT2YgcHJvcGVydHkgb2YgaXRzIG93bicpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUudmFsdWVPZiA9PT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBob3dldmVyLCBpdCBpbmhlcml0cyB0aGUgdmFsdWVPZiBwcm9wZXJ0eSBmcm9tIHRoZSBPYmplY3QgcHJvdG90eXBlIE9iamVjdCcpOwp9CgovL0NIRUNLIzMKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHsKICAkRVJST1IoJyMzOiBob3dldmVyLCBpdCBpbmhlcml0cyB0aGUgdmFsdWVPZiBwcm9wZXJ0eSBmcm9tIHRoZSBPYmplY3QgcHJvdG90eXBlIE9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.4_A4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0E1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0E1LmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB3aXRob3V0IFtbY3JlYXRlXV0gcHJvcGVydHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUgb2JqZWN0XCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnRyeSB7CiAgdmFyIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGU7CiAgJEZBSUwoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBbW2NyZWF0ZV1dIHByb3BlcnR5OiAnK2UpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKCIjMS4xOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBbW2NyZWF0ZV1dIHByb3BlcnR5ICIrZSk7Cgp9CgogfQp9KTsKCg==","id":"S15.3.4_A5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExMC5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZSBSZWFkT25seSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggPSBmdW5jdGlvbigpe3JldHVybiAic2hpZnRlZCI7fTsKCi8vQ0hFQ0sjMgppZiAoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExMS5qcyIsCgphc3NlcnRpb246ICJUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b1N0cmluZyBtZXRob2QgaXMgMCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGgiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgaGFzIHRoZSBsZW5ndGggcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoICE9PSAwKSB7CiAgJEVSUk9SKCcjMjogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgdG9TdHJpbmcgbWV0aG9kIGlzIDAnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.2_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExMi5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmljOyBpdCB0aHJvd3MgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlmIGl0cyB0aGlzIHZhbHVlIGlzIG5vdCBhIEZ1bmN0aW9uIG9iamVjdC4iLAoKZGVzY3JpcHRpb246ICIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHVuZGVmaW5lZCk7CgogfQp9KTsKCg==","id":"S15.3.4.2_A12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExMy5qcyIsCgphc3NlcnRpb246ICJUaGUgdG9TdHJpbmcgZnVuY3Rpb24gaXMgbm90IGdlbmVyaWM7IGl0IHRocm93cyBhIFR5cGVFcnJvciBleGNlcHRpb24gaWYgaXRzIHRoaXMgdmFsdWUgaXMgbm90IGEgRnVuY3Rpb24gb2JqZWN0LiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobnVsbCk7CgogfQp9KTsKCg==","id":"S15.3.4.2_A13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTE0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExNC5qcyIsCgphc3NlcnRpb246ICJUaGUgdG9TdHJpbmcgZnVuY3Rpb24gaXMgbm90IGdlbmVyaWM7IGl0IHRocm93cyBhIFR5cGVFcnJvciBleGNlcHRpb24gaWYgaXRzIHRoaXMgdmFsdWUgaXMgbm90IGEgRnVuY3Rpb24gb2JqZWN0LiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoe30pOwoKIH0KfSk7Cgo=","id":"S15.3.4.2_A14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTE1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExNS5qcyIsCgphc3NlcnRpb246ICJUaGUgdG9TdHJpbmcgZnVuY3Rpb24gaXMgbm90IGdlbmVyaWM7IGl0IHRocm93cyBhIFR5cGVFcnJvciBleGNlcHRpb24gaWYgaXRzIHRoaXMgdmFsdWUgaXMgbm90IGEgRnVuY3Rpb24gb2JqZWN0LiIsCgpkZXNjcmlwdGlvbjogIldoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGNhbGxhYmxlLCBSZWdFeHAgb2JqZWN0cyBhcmUgbm90IEZ1bmN0aW9uIG9iamVjdHMsIHNvIHRvU3RyaW5nIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvci4iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKC94Lyk7CgogfQp9KTsKCg==","id":"S15.3.4.2_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExNi5qcyIsCgphc3NlcnRpb246ICJUaGUgdG9TdHJpbmcgZnVuY3Rpb24gaXMgbm90IGdlbmVyaWM7IGl0IHRocm93cyBhIFR5cGVFcnJvciBleGNlcHRpb24gaWYgaXRzIHRoaXMgdmFsdWUgaXMgbm90IGEgRnVuY3Rpb24gb2JqZWN0LiIsCgpkZXNjcmlwdGlvbjogIlRoZSBTdHJpbmcgY29uc3RydWN0b3IsIGdpdmVuIGFuIG9iamVjdCwgc2hvdWxkIGludm9rZSB0aGF0IG9iamVjdFwncyB0b1N0cmluZyBtZXRob2QgYXMgYSBtZXRob2QsIGkuZS4sIHdpdGggaXRzIHRoaXMgdmFsdWUgYm91bmQgdG8gdGhhdCBvYmplY3QuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0ge3RvU3RyaW5nOiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmd9OwoKU3RyaW5nKG9iaik7CgogfQp9KTsKCg==","id":"S15.3.4.2_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTYuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGhhcyBub3QgcHJvdG90eXBlIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLnByb3RvdHlwZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTcuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGNhblwndCBiZSB1c2VkIGFzIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBGQUNUT1JZID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nOwoKdHJ5IHsKICB2YXIgaW5zdGFuY2UgPSBuZXcgRkFDVE9SWTsKICAkRkFJTCgnIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBjYW5cJ3QgYmUgdXNlZCBhcyBjb25zdHJ1Y3RvcicpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKGUpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTguanMiLAoKYXNzZXJ0aW9uOiAiVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udEVudW0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSB7CiAgJEVSUk9SKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yIChwIGluIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyl7CiAgaWYgKHA9PT0ibGVuZ3RoIikKICAgICAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTkuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udERlbGV0ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzA6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgaGFzIGxlbmd0aCBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzEKaWYgKGRlbGV0ZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUnKTsKfQoKLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMyOiBUaGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMC5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZSBSZWFkT25seSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggPSBmdW5jdGlvbigpe3JldHVybiAic2hpZnRlZCI7fTsKCi8vQ0hFQ0sjMgppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMS5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZSBEb250RW51bSIsCgpkZXNjcmlwdGlvbjogIlRDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSB7CiAgJEVSUk9SKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yICh2YXIgcCBpbiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMi5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgaGFzIG5vdCBwcm90b3R5cGUgcHJvcGVydHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBvYnRhaW5pbmcgdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGhhcyBub3QgcHJvdG90eXBlIHByb3BlcnR5JytGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkucHJvdG90eXBlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMy5qcyIsCgphc3NlcnRpb246ICJJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4iLAoKZGVzY3JpcHRpb246ICIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHVuZGVmaW5lZCwge30sIFtdKTsKCiB9Cn0pOwoK","id":"S15.3.4.3_A13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTE0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExNC5qcyIsCgphc3NlcnRpb246ICJJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4iLAoKZGVzY3JpcHRpb246ICIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKG51bGwsIHt9LCBbXSk7CgogfQp9KTsKCg==","id":"S15.3.4.3_A14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTE1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExNS5qcyIsCgphc3NlcnRpb246ICJJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4iLAoKZGVzY3JpcHRpb246ICIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHt9LCB7fSwgW10pOwoKIH0KfSk7Cgo=","id":"S15.3.4.3_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExNi5qcyIsCgphc3NlcnRpb246ICJJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4iLAoKZGVzY3JpcHRpb246ICJBIFJlZ0V4cCBpcyBub3QgYSBmdW5jdGlvbiwgYnV0IGl0IG1heSBiZSBjYWxsYWJsZS4gSWZmIGl0IGlzLCBpdFwncyB0eXBlb2Ygc2hvdWxkIGJlIFwnZnVuY3Rpb25cJywgaW4gd2hpY2ggY2FzZSBhcHBseSBzaG91bGQgYWNjZXB0IGl0IGFzIGEgdmFsaWQgdGhpcyB2YWx1ZS4iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciByZSA9ICgveC8pOwppZiAodHlwZW9mIHJlID09PSAnZnVuY3Rpb24nKSB7CiAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwocmUsIHVuZGVmaW5lZCwgWyd4J10pOwp9IGVsc2UgewogIHRyeSB7CiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKHJlLCB1bmRlZmluZWQpOwogICAgJEZBSUwoJyMxOiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCAnICsKICAgICAgICAgICd0aGVuIChiaW5kIHNob3VsZCkgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfSBjYXRjaCAoZSkgewogICAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAgICAgJEVSUk9SKCcjMTogVHlwZUVycm9yIGV4cGVjdGVkLiBBY3R1YWw6ICcgKyBlKTsKICAgIH0KICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGFwcGx5IG1ldGhvZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImFwcGx5XCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcHJvdG89RnVuY3Rpb24oKTsKCmZ1bmN0aW9uIEZBQ1RPUlkoKXt9OwoKRkFDVE9SWS5wcm90b3R5cGU9cHJvdG87Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmouYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCnRyeSB7CiAgb2JqLmFwcGx5KCk7CiAgJEZBSUwoJyMyOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMi4xOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGFwcGx5IG1ldGhvZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImFwcGx5XCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7fTsKCkZBQ1RPUlkucHJvdG90eXBlPUZ1bmN0aW9uLnByb3RvdHlwZTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai5hcHBseSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGFwcGx5IG1ldGhvZCBhY2Nlc3NlZCcpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBvYmouYXBwbHkoKTsKICAkRkFJTCgnIzI6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMyLjE6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTJfVDEuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgYXBwbHkgbWV0aG9kIGlzIDIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgZGVmaW5lZCcpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGxlbmd0aCBwcm9wZXJ0eSBvZiBhcHBseSBtZXRob2QgZGVmaW5lZCcpOwp9CgovL0NIRUNLIzMKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggIT09IDIpIHsKICAkRVJST1IoJyMzOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBhcHBseSBtZXRob2QgaXMgMicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgYXBwbHkgbWV0aG9kIGlzIDIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmLmFwcGx5Lmxlbmd0aCwgd2hlcmUgZiBpcyBuZXcgRnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmPW5ldyBGdW5jdGlvbjsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYuYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgZi5hcHBseS5sZW5ndGggPT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMjogbGVuZ3RoIHByb3BlcnR5IG9mIGFwcGx5IG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5hcHBseS5sZW5ndGggIT09IDIpIHsKICAkRVJST1IoJyMzOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBhcHBseSBtZXRob2QgaXMgMicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDEuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJOb3QgYW55IGFyZ3VtZW50cyBhdCBhcHBseSBmdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oInRoaXMuZmllbGQ9XCJzdHJhd2JlcnJ5XCIiKS5hcHBseSgpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAic3RyYXdiZXJyeSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0EzX1QxMC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGJ5IHVzaW5nIGV2YWwsIG5vIGFueSBhcmd1bWVudHMgYXQgYXBwbHkgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGV2YWwoIiAoZnVuY3Rpb24oKXt0aGlzLmZlYXQ9MX0pLmFwcGx5KCkiKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDIuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyBudWxsIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cImdyZWVuXCIiKS5hcHBseShudWxsKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gImdyZWVuIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDMuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB2b2lkIDAiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwiYmF0dGxlXCIiKS5hcHBseSh2b2lkIDApOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAiYmF0dGxlIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDQuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB1bmRlZmluZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwib2lsXCIiKS5hcHBseSh1bmRlZmluZWQpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAib2lsIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDUuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJObyBhbnkgYXJndW1lbnRzIGF0IGFwcGx5IGZ1bmN0aW9uIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oInRoaXMuZmVhdD1cImluIGRhIGhhdXNcIiIpLmFwcGx5KCk7Cn07Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gImluIGRhIGhhdXMiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDYuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyBudWxsIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PSJrYW1vbiBiZXliYSJ9KS5hcHBseShudWxsKTsKfTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDcuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB2b2lkIDAgYW5kIGl0IGNhbGxlZCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oInRoaXMuZmVhdD1cImluIGRhIGhhdXNcIiIpLmFwcGx5KHZvaWQgMCk7Cn0pKCk7CgoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJpbiBkYSBoYXVzIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDguanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB1bmRlZmluZWQgYW5kIGl0IGNhbGxlZCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiBGQUNUT1JZKCl7CiAgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PSJrYW1vbiBiZXliYSJ9KS5hcHBseSh1bmRlZmluZWQpOwp9KSgpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJrYW1vbiBiZXliYSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDkuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBieSB1c2luZyBldmFsLCBhcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB2b2lkIDAiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGV2YWwoICIgRnVuY3Rpb24oXCJ0aGlzLmZlYXQ9MVwiKS5hcHBseSh2b2lkIDApICIgKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDEuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgbnVtYmVyIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPTE7Cgp2YXIgcmV0b2JqID0gRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai50b3VjaGVkICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQogfQp9KTsKCg==","id":"S15.3.4.3_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDIuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgYm9vbGVhbiB0cnVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPXRydWU7Cgp2YXIgcmV0b2JqID0gbmV3IEZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzOyIpLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDMuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgc3RyaW5nIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPSJzb2FwIjsKCnZhciByZXRvYmogPSAoIGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9ICkuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai50b3VjaGVkICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDQuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgZnVuY3Rpb24gdmFyaWFibGUgdGhhdCByZXR1cm4gdGhpcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9OwoKcmV0b2JqID0gZi5hcHBseShvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKdmFyIG9iajsKCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDUuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgZnVuY3Rpb24gdmFyaWFibGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmID0gZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7fTsKCnZhciBvYmo9e307CgpmLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDYuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgbmV3IFN0cmluZygpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPW5ldyBTdHJpbmcoInNvYXAiKTsKCiggZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7fSkuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAoIShvYmoudG91Y2hlZCkpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDcuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgbmV3IE51bWJlcigpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPW5ldyBOdW1iZXIoMSk7CgpGdW5jdGlvbigidGhpcy50b3VjaGVkPSB0cnVlOyIpLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.3_A5_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDguanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgRnVuY3Rpb24oKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG9iaj1GdW5jdGlvbigpOwoKbmV3IEZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzOyIpLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTZfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTZfVDIuanMiLAoKYXNzZXJ0aW9uOiAiaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24iLAoKZGVzY3JpcHRpb246ICJhcmdBcnJheSBpcyAobnVsbCwxKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgRnVuY3Rpb24oKS5hcHBseShudWxsLDEpOwogICRGQUlMKCcjMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTZfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTZfVDMuanMiLAoKYXNzZXJ0aW9uOiAiaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24iLAoKZGVzY3JpcHRpb246ICJhcmdBcnJheSBpcyAob2JqZWN0LFwiMSwzLDRcIikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIG9iaj17fTsKCi8vQ0hFQ0sjMQp0cnkgewogIEZ1bmN0aW9uKCkuYXBwbHkob2JqLCIxLDMsNCIpOwogICRGQUlMKCcjMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A6_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDEuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsWzFdKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExOyIpLmFwcGx5KG51bGwsWzFdKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIHRoZSBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlLi4uJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.3_A7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDIuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsWzEsMiwzXSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIG5ldyBGdW5jdGlvbigiYTEsYTIiLCJhMyIsInRoaXMuc2hpZnRlZD1hMjsiKS5hcHBseShudWxsLFsxLDIsM10pOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJzaGlmdGVkIl0gIT09IDIpIHsKICAkRVJST1IoJyMxOiBJZiBhcmdBcnJheSBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gYXJndW1lbnRzIG9iamVjdCwgdGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUuLi4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A7_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDUuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExK2EyK2EzOyIpLmFwcGx5KG51bGwsYXJndW1lbnRzKTsKfQoKb2JqPW5ldyBGQUNUT1JZKCIiLDEsMik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouc2hpZnRlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBJZiBhcmdBcnJheSBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gYXJndW1lbnRzIG9iamVjdCwgdGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUuLi4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A7_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDcuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBjYWxsIHdpdGhvdXQgZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgKGZ1bmN0aW9uICgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMSthMithMzsiKS5hcHBseShudWxsLGFyZ3VtZW50cyk7Cn0pKCIiLDEsMik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A7_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDguanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKHRoaXMsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBjYWxsIHdpdGhvdXQgZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgKGZ1bmN0aW9uICgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMSthMithMzsiKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Cn0pKCIiLDQsMik7CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzI6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.3_A7_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDEuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICBvYmogPSBuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5OwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A8_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDIuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkoKVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkoKTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDMuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5hcHBseVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIG9iaiA9IG5ldyBGdW5jdGlvbi5hcHBseTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDQuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyAoRnVuY3Rpb24oXCJ0aGlzLnAxPTFcIikuYXBwbHkpXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHRyeSB7CiAgb2JqID0gbmV3IChGdW5jdGlvbigidGhpcy5wMT0xIikuYXBwbHkpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A8_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDUuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbihcInRoaXMucDE9MVwiKS5hcHBseVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIEZBQ1RPUlkgPSBGdW5jdGlvbigidGhpcy5wMT0xIikuYXBwbHk7CiAgb2JqID0gbmV3IEZBQ1RPUlkoKTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDYuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyAoRnVuY3Rpb24oXCJmdW5jdGlvbiBmKCl7dGhpcy5wMT0xO307cmV0dXJuIGZcIikuYXBwbHkoKSlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgb2JqID0gbmV3IChGdW5jdGlvbigiZnVuY3Rpb24gZigpe3RoaXMucDE9MTt9O3JldHVybiBmIikuYXBwbHkoKSk7Cn0gY2F0Y2ggKGUpIHsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfQoKLy9DSEVDSyMyCmlmIChvYmoucDEhPT0gMSkgewogICRFUlJPUignIzI6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTkuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udERlbGV0ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzA6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgaGFzIGxlbmd0aCBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzEKaWYgKGRlbGV0ZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUnKTsKfQoKLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMyOiBUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTEwLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgUmVhZE9ubHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKdmFyIG9iaiA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggIT09IG9iaikgewogICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTExLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udEVudW0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykpIHsKICAkRVJST1IoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCmZvciAocCBpbiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCl7CiAgaWYgKHA9PT0ibGVuZ3RoIikKICAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTEyLmpzIiwKCmFzc2VydGlvbjogIkZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGhhcyBub3QgcHJvdG90eXBlIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwucHJvdG90eXBlICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwucHJvdG90eXBlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTEzLmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuY2FsbCh1bmRlZmluZWQsIHt9KTsKCiB9Cn0pOwoK","id":"S15.3.4.4_A13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTE0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTE0LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuY2FsbChudWxsLCB7fSk7CgogfQp9KTsKCg==","id":"S15.3.4.4_A14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTE1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTE1LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuY2FsbCh7fSwge30pOwoKIH0KfSk7Cgo=","id":"S15.3.4.4_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTE2LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIkEgUmVnRXhwIGlzIG5vdCBhIGZ1bmN0aW9uLCBidXQgaXQgbWF5IGJlIGNhbGxhYmxlLiBJZmYgaXQgaXMsIGl0XCdzIHR5cGVvZiBzaG91bGQgYmUgXCdmdW5jdGlvblwnLCBpbiB3aGljaCBjYXNlIGNhbGwgc2hvdWxkIGFjY2VwdCBpdCBhcyBhIHZhbGlkIHRoaXMgdmFsdWUuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcmUgPSAoL3gvKTsKaWYgKHR5cGVvZiByZSA9PT0gJ2Z1bmN0aW9uJykgewogIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmNhbGwocmUsIHVuZGVmaW5lZCwgJ3gnKTsKfSBlbHNlIHsKICB0cnkgewogICAgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChyZSwgdW5kZWZpbmVkKTsKICAgICRGQUlMKCcjMTogSWYgSXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgJyArCiAgICAgICAgICAndGhlbiAoYmluZCBzaG91bGQpIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbicpOwogIH0gY2F0Y2ggKGUpIHsKICAgIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAgICRFUlJPUignIzE6IFR5cGVFcnJvciBleHBlY3RlZC4gQWN0dWFsOiAnICsgZSk7CiAgICB9CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMV9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0LiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93biIsCgpkZXNjcmlwdGlvbjogIkNhbGwgXCJjYWxsXCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcHJvdG89RnVuY3Rpb24oKTsKCmZ1bmN0aW9uIEZBQ1RPUlkoKXt9OwoKRkFDVE9SWS5wcm90b3R5cGU9cHJvdG87Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmouY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMgp0cnkgewogIG9iai5jYWxsKCk7CiAgJEZBSUwoJyMyOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMi4xOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwogIH0KfQogICAgCiB9Cn0pOwoK","id":"S15.3.4.4_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMV9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0LiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93biIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgXCJjYWxsXCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7fTsKCkZBQ1RPUlkucHJvdG90eXBlPUZ1bmN0aW9uLnByb3RvdHlwZTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai5jYWxsICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogY2FsbCBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCnRyeSB7CiAgb2JqLmNhbGwoKTsKICAkRkFJTCgnIzI6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMyLjE6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMl9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBjYWxsIG1ldGhvZCBpcyAxIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGxlbmd0aCBwcm9wZXJ0eSBvZiBjYWxsIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgY2FsbCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMl9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBjYWxsIG1ldGhvZCBpcyAxIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZi5jYWxsLmxlbmd0aCwgd2hlcmUgZiBpcyBuZXcgRnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmPW5ldyBGdW5jdGlvbjsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYuY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIGYuY2FsbC5sZW5ndGggPT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMjogbGVuZ3RoIHByb3BlcnR5IG9mIGNhbGwgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChmLmNhbGwubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgY2FsbCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UMS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIk5vdCBhbnkgYXJndW1lbnRzIGF0IGNhbGwgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwic3RyYXdiZXJyeVwiIikuY2FsbCgpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAic3RyYXdiZXJyeSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTNfVDEwLmpzIiwKCmFzc2VydGlvbjogIklmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYnkgdXNpbmcgZXZhbCwgbm8gYW55IGFyZ3VtZW50cyBhdCBjYWxsIGZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBldmFsKCIgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PTF9KS5jYWxsKCkiKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UMi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgbnVsbCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oInRoaXMuZmllbGQ9XCJncmVlblwiIikuY2FsbChudWxsKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gImdyZWVuIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UMy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdm9pZCAwIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cImJhdHRsZVwiIikuY2FsbCh2b2lkIDApOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAiYmF0dGxlIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdW5kZWZpbmVkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cIm9pbFwiIikuY2FsbCh1bmRlZmluZWQpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAib2lsIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIk5vIGFueSBhcmd1bWVudHMgYXQgY2FsbCBmdW5jdGlvbiBhbmQgaXQgY2FsbGVkIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJ0aGlzLmZlYXQ9XCJpbiBkYSBoYXVzXCIiKS5jYWxsKCk7Cn07Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gImluIGRhIGhhdXMiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgbnVsbCBhbmQgaXQgY2FsbGVkIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIChmdW5jdGlvbigpe3RoaXMuZmVhdD0ia2Ftb24gYmV5YmEifSkuY2FsbChudWxsKTsKfTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdm9pZCAwIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJ0aGlzLmZlYXQ9XCJpbiBkYSBoYXVzXCIiKS5jYWxsKHZvaWQgMCk7Cn0pKCk7CgoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJpbiBkYSBoYXVzIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UOC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdW5kZWZpbmVkIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gRkFDVE9SWSgpewogIChmdW5jdGlvbigpe3RoaXMuZmVhdD0ia2Ftb24gYmV5YmEifSkuY2FsbCh1bmRlZmluZWQpOwp9KSgpOwoKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UOS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGJ5IHVzaW5nIGV2YWwsIGFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdm9pZCAwIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBldmFsKCAiIEZ1bmN0aW9uKFwidGhpcy5mZWF0PTFcIikuY2FsbCh2b2lkIDApICIgKTsKCgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gMSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UMS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBudW1iZXIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9MTsKCnZhciByZXRvYmogPSBGdW5jdGlvbigidGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczsiKS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UMi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBib29sZWFuIHRydWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9dHJ1ZTsKCnZhciByZXRvYmogPSBuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqLnRvdWNoZWQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEocmV0b2JqWyJ0b3VjaGVkIl0pKSB7CiAgJEVSUk9SKCcjMjogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UMy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBzdHJpbmciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9InNvYXAiOwoKdmFyIHJldG9iaiA9ICggZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzO30gKS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSB0aGF0IHJldHVybiB0aGlzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZiA9IGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9OwoKdmFyIHJldG9iaiA9IGYuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKdmFyIG9iajsKCiB9Cn0pOwoK","id":"S15.3.4.4_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9OwoKdmFyIG9iaj17fTsKCmYuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgU3RyaW5nKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IFN0cmluZygic29hcCIpOwoKKCBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9KS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgTnVtYmVyKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IE51bWJlcigxKTsKCkZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A5_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UOC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBGdW5jdGlvbigpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPUZ1bmN0aW9uKCk7CgpuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLFsxXSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMTsiKS5jYWxsKG51bGwsWzFdKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdLmNvbnN0cnVjdG9yICE9PSBBcnJheSkgewogICRFUlJPUignIzE6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXS5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMyOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKLy9DSEVDSyMzCmlmICh0aGlzWyJzaGlmdGVkIl1bMF0gIT09IDEpIHsKICAkRVJST1IoJyMzOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLFszLDIsMV0pIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBuZXcgRnVuY3Rpb24oImExLGEyIiwiYTMiLCJ0aGlzLnNoaWZ0ZWQ9YTE7IikuY2FsbChudWxsLFszLDIsMV0pOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJzaGlmdGVkIl0ubGVuZ3RoICE9PSAzKSB7CiAgJEVSUk9SKCcjMTogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoKHRoaXNbInNoaWZ0ZWQiXVswXSAhPT0gMyl8fCh0aGlzWyJzaGlmdGVkIl1bMV0gIT09IDIpfHwodGhpc1sic2hpZnRlZCJdWzJdICE9PSAxKSkgewogICRFUlJPUignIzI6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UNS5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLCBhcmd1bWVudHMsXCJcIiwyKSwgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHVzZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGZ1bmN0aW9uIEZBQ1RPUlkoKXsKICBGdW5jdGlvbigiYTEsYTIsYTMiLCJ0aGlzLnNoaWZ0ZWQ9YTEubGVuZ3RoK2EyK2EzOyIpLmNhbGwobnVsbCxhcmd1bWVudHMsIiIsMik7Cn0KCnZhciBvYmo9bmV3IEZBQ1RPUlkoIiIsMSwyLCJBIik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzE6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouc2hpZnRlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A6_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UNy5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLCBhcmd1bWVudHMsXCJcIiwyKSwgaW5zaWRlIGZ1bmN0aW9uIGNhbGwgd2l0aG91dCBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExLmxlbmd0aCthMithMzsiKS5jYWxsKG51bGwsYXJndW1lbnRzLCIiLDIpOwp9KSgiIiwxLDIsdHJ1ZSk7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzE6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A6_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UOC5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzICh0aGlzLCBhcmd1bWVudHMsXCJcIiwyKSwgaW5zaWRlIGZ1bmN0aW9uIGNhbGwgd2l0aG91dCBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExLmxlbmd0aCthMithMzsiKS5jYWxsKHRoaXMsYXJndW1lbnRzLCIiLDIpOwp9KSgiIiw0LDIsbnVsbCk7CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzI6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A6_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UMS5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHRyeSB7CiAgdmFyIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UMi5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsKClcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgRkFDVE9SWSA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsOwogIHZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A7_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UMy5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uLmNhbGxcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgb2JqID0gbmV3IEZ1bmN0aW9uLmNhbGw7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A7_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UNC5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IChGdW5jdGlvbihcInRoaXMucDE9MVwiKS5jYWxsKVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIHZhciBvYmogPSBuZXcgKEZ1bmN0aW9uKCJ0aGlzLnAxPTEiKS5jYWxsKTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A7_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UNS5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uKFwidGhpcy5wMT0xXCIpLmNhbGxcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgRkFDVE9SWSA9IEZ1bmN0aW9uKCJ0aGlzLnAxPTEiKS5jYWxsOwogIHZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A7_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UNi5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IChGdW5jdGlvbihcImZ1bmN0aW9uIGYoKXt0aGlzLnAxPTE7fTtyZXR1cm4gZlwiKS5jYWxsKCkpXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBvYmogPSBuZXcgKEZ1bmN0aW9uKCJmdW5jdGlvbiBmKCl7dGhpcy5wMT0xO307cmV0dXJuIGYiKS5jYWxsKCkpOwp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfQoKLy9DSEVDSyMyCmlmIChvYmoucDEhPT0gMSkgewogICRFUlJPUignIzI6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A7_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BOS5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlIERvbnREZWxldGUiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGhhcyBsZW5ndGggcHJvcGVydHknKTsKfQoKLy9DSEVDSyMxCmlmIChkZWxldGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMjogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC41X0Z1bmN0aW9uLnByb3RvdHlwZS5iaW5kL1MxNS4zLjQuNV9BMS5qcyIsCgphc3NlcnRpb246ICJcImNhbGxlclwiIG9mIGJvdW5kIGZ1bmN0aW9uIGlzIHBvaXNvbmVkIChzdGVwIDIwKSIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gZm9vKCkgeyByZXR1cm4gYmFyLmNhbGxlcjsgfQp2YXIgYmFyID0gZm9vLmJpbmQoe30pOwpmdW5jdGlvbiBiYXooKSB7IHJldHVybiBiYXIoKTsgfQpiYXooKTsKCiB9Cn0pOwoK","id":"S15.3.4.5_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC9TMTUuMy40LjVfQTEzLmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbCh1bmRlZmluZWQsIHt9KTsKCgogfQp9KTsKCg==","id":"S15.3.4.5_A13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTE0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC9TMTUuMy40LjVfQTE0LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChudWxsLCB7fSk7CgoKIH0KfSk7Cgo=","id":"S15.3.4.5_A14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTE1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC9TMTUuMy40LjVfQTE1LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbCh7fSwge30pOwoKCiB9Cn0pOwoK","id":"S15.3.4.5_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC9TMTUuMy40LjVfQTE2LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIkEgUmVnRXhwIGlzIG5vdCBhIGZ1bmN0aW9uLCBidXQgaXQgbWF5IGJlIGNhbGxhYmxlLiBJZmYgaXQgaXMsIGl0XCdzIHR5cGVvZiBzaG91bGQgYmUgXCdmdW5jdGlvblwnLCBpbiB3aGljaCBjYXNlIGJpbmQgc2hvdWxkIGFjY2VwdCBpdCBhcyBhIHZhbGlkIHRoaXMgdmFsdWUuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcmUgPSAoL3gvKTsKaWYgKHR5cGVvZiByZSA9PT0gJ2Z1bmN0aW9uJykgewogIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwocmUsIHVuZGVmaW5lZCk7Cn0gZWxzZSB7CiAgdHJ5IHsKICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwocmUsIHVuZGVmaW5lZCk7CiAgICAkRkFJTCgnIzE6IElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsICcgKwogICAgICAgICAgJ3RoZW4gKGJpbmQgc2hvdWxkKSB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKICB9IGNhdGNoIChlKSB7CiAgICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogICAgICAkRVJST1IoJyMxOiBUeXBlRXJyb3IgZXhwZWN0ZWQuIEFjdHVhbDogJyArIGUpOwogICAgfQogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.5_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC41X0Z1bmN0aW9uLnByb3RvdHlwZS5iaW5kL1MxNS4zLjQuNV9BMi5qcyIsCgphc3NlcnRpb246ICJcImFyZ3VtZW50c1wiIG9mIGJvdW5kIGZ1bmN0aW9uIGlzIHBvaXNvbmVkIChzdGVwIDIxKSIsCgpkZXNjcmlwdGlvbjogIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gZm9vKCkgeyByZXR1cm4gYmFyLmFyZ3VtZW50czsgfQp2YXIgYmFyID0gZm9vLmJpbmQoe30pOwpmdW5jdGlvbiBiYXooKSB7IHJldHVybiBiYXIoKTsgfQpiYXooKTsKCiB9Cn0pOwoK","id":"S15.3.4.5_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSBcJ3R5cGljYWxcJyBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsIG51bGwpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IDMpIHsKICAkRVJST1IoJyMyOiBUaGUgdmFsdWUgb2YgdGhlIGxlbmd0aCBwcm9wZXJ0eSBpcyB1c3VhbGx5IGFuIGludGVnZXIgdGhhdCBpbmRpY2F0ZXMgdGhlICJ0eXBpY2FsIiBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSBcJ3R5cGljYWxcJyBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmc0LGFyZzVcIiwgbnVsbCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgovL0NIRUNLIzIKaWYgKGYubGVuZ3RoICE9PSA1KSB7CiAgJEVSUk9SKCcjMjogVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSAidHlwaWNhbCIgbnVtYmVyIG9mIGFyZ3VtZW50cyBleHBlY3RlZCBieSB0aGUgZnVuY3Rpb24nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTFfVDMuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSBcJ3R5cGljYWxcJyBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmcxLGFyZzJcIixcImFyZzNcIiwgbnVsbCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnMSxhcmcyIiwiYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IDYpIHsKICAkRVJST1IoJyMyOiBUaGUgdmFsdWUgb2YgdGhlIGxlbmd0aCBwcm9wZXJ0eSBpcyB1c3VhbGx5IGFuIGludGVnZXIgdGhhdCBpbmRpY2F0ZXMgdGhlICJ0eXBpY2FsIiBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTJfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKLy9DSEVDSyMyCmlmKGRlbGV0ZSBmLmxlbmd0aCl7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZS4nKTsKfQoKLy9DSEVDSyMzCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRFUlJPUignIzM6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoZi5sZW5ndGggIT09IDMpIHsKICAkRVJST1IoJyM0OiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnREZWxldGUgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzQsYXJnNVwiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9ICBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpkZWxldGUgZi5sZW5ndGg7CgovL0NIRUNLIzIKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZS4nKTsKfQoKLy9DSEVDSyMzCmlmIChmLmxlbmd0aCAhPT0gNSkgewogICRFUlJPUignIzM6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udERlbGV0ZSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTJfVDMuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzEsYXJnMlwiLFwiYXJnM1wiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmcxLGFyZzIiLCJhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZGVsZXRlIGYubGVuZ3RoOwoKLy9DSEVDSyMyCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5sZW5ndGggIT09IDYpIHsKICAkRVJST1IoJyMzOiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnREZWxldGUgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTNfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzQsYXJnNVwiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpsZW5ndGggPSBmLmxlbmd0aDsKCmYubGVuZ3RoID0gZnVuY3Rpb24oKXt9OwoKLy9DSEVDSyMyCmlmIChmLmxlbmd0aCAhPT0gbGVuZ3RoKSB7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfQoKLy9DSEVDSyMzCnRyeSB7CiAgZi5sZW5ndGgoKTsKICAkRVJST1IoJyMzOiB0aGUgZnVuY3Rpb24ubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seScpOwp9IGNhdGNoIChlKSB7CiAgOwp9CgovL0NIRUNLIzQKaWYgKGYubGVuZ3RoICE9PSA1KSB7CiAgJEVSUk9SKCcjNDogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTNfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKbGVuZ3RoID0gZi5sZW5ndGg7CgpmLmxlbmd0aCA9IGZ1bmN0aW9uKCl7fTsKCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IGxlbmd0aCkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCi8vQ0hFQ0sjMwp0cnkgewogIGYubGVuZ3RoKCk7CiAgJEVSUk9SKCcjMzogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKLy9DSEVDSyM0CmlmIChmLmxlbmd0aCAhPT0gMykgewogICRFUlJPUignIzQ6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgUmVhZE9ubHkgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTNfVDMuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzEsYXJnMlwiLFwiYXJnM1wiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmcxLGFyZzIiLCJhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKbGVuZ3RoID0gZi5sZW5ndGg7CgpmLmxlbmd0aCA9IGZ1bmN0aW9uKCl7fTsKCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IGxlbmd0aCkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCi8vQ0hFQ0sjMwp0cnkgewogIGYubGVuZ3RoKCk7CiAgJEVSUk9SKCcjMzogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKLy9DSEVDSyM0CmlmIChmLmxlbmd0aCAhPT0gNikgewogICRFUlJPUignIzQ6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgUmVhZE9ubHkgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTRfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsIG51bGwpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmZvcihrZXkgaW4gZikgICAgCiAgaWYoa2V5PT0ibGVuZ3RoIikKICAgICAgdmFyIGxlbmd0aGVudW1lZD10cnVlOwogICAgICAKLy9DSEVDSyMyCmlmIChsZW5ndGhlbnVtZWQpIHsKICAkRVJST1IoJyMyOiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnRFbnVtIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTRfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmc0LGFyZzVcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnNSxhcmc0IiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZm9yKGtleSBpbiBmKSAgICAKICBpZihrZXk9PSJsZW5ndGgiKQogICAgICB2YXIgbGVuZ3RoZW51bWVkPXRydWU7CiAgICAgIAovL0NIRUNLIzIKaWYgKGxlbmd0aGVudW1lZCkgewogICRFUlJPUignIzI6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udEVudW0gfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTRfVDMuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmcxLGFyZzJcIixcImFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnMSxhcmcyIiwiYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmZvcihrZXkgaW4gZikgICAgCiAgaWYoa2V5PT0ibGVuZ3RoIikKICAgIHZhciBsZW5ndGhlbnVtZWQ9dHJ1ZTsKICAgICAgCi8vQ0hFQ0sjMgppZiAobGVuZ3RoZW51bWVkKSB7CiAgJEVSUk9SKCcjMjogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjJfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjJfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgcHJvdG90eXBlIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiXCIsIG51bGwpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCIiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpmcHJvdG8gPSBmLnByb3RvdHlwZTsKCi8vQ0hFQ0sjMgppZiAoZGVsZXRlIGYucHJvdG90eXBlKSB7CiAgJEVSUk9SKCcjMjogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKLy9DSEVDSyMzCmlmIChmLnByb3RvdHlwZSAhPT0gZnByb3RvKSB7CiAgJEVSUk9SKCcjMzogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.2_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjJfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjJfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgcHJvdG90eXBlIHByb3BlcnR5IG9mIEZ1bmN0aW9uKHZvaWQgMCwgXCJcIikgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBGdW5jdGlvbih2b2lkIDAsICIiKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpmcHJvdG8gPSBmLnByb3RvdHlwZTsKCi8vQ0hFQ0sjMgppZiAoZGVsZXRlIGYucHJvdG90eXBlKSB7CiAgJEVSUk9SKCcjMjogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKLy9DSEVDSyMzCmlmIChmLnByb3RvdHlwZSAhPT0gZnByb3RvKSB7CiAgJEVSUk9SKCcjMzogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.2_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIG51bWJlciIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCgxIGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHN0cmluZyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCgiMSIgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDMuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIGJvb2xlYW4gdHJ1ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh0cnVlIGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDQuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIGJvb2xlYW4gZmFsc2UiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBGdW5jdGlvbigibmFtZSIsInRoaXMubmFtZT1uYW1lOyIpOwoKLy9DSEVDSyMxCmlmICgoZmFsc2UgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDUuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHZvaWQgMCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh2b2lkIDAgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDYuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIG51bGwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBGdW5jdGlvbigibmFtZSIsInRoaXMubmFtZT1uYW1lOyIpOwoKLy9DSEVDSyMxCmlmICgobnVsbCBpbnN0YW5jZW9mICBGQUNUT1JZKSE9PWZhbHNlKSB7CiAgJEVSUk9SKCcjMTogQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDcuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHVuZGVmaW5lZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh1bmRlZmluZWQgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDguanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHVuZGVmaW5lZCB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh4IGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9Cgp2YXIgeDsKCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWIGFuZCBWIGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiRi5wcm90b3R5cGUgaXMgdW5kZWZpbmVkLCBhbmQgViBpcyBlbXB0eSBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBuZXcgRnVuY3Rpb247CgpGQUNUT1JZLnByb3RvdHlwZSA9IHVuZGVmaW5lZDsKCm9iaj17fTsKCi8vQ0hFQ0sjMQp0cnkgewogIG9iaiBpbnN0YW5jZW9mICBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCgoKIH0KfSk7Cgo=","id":"S15.3.5.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTJfVDUuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyB2b2lkIDAsIGFuZCBWIGlzIG5ldyBGIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gRnVuY3Rpb24oInRoaXMucHJvcD0xOyIpOwoKRkFDVE9SWS5wcm90b3R5cGUubmFtZSA9ICJmYWlyeSI7CgppbnN0YW5jZSA9IG5ldyBGQUNUT1JZOwoKRkFDVE9SWS5wcm90b3R5cGUgPSB2b2lkIDA7CgovLyBDSEVDSyMxCnRyeSB7CiAgaW5zdGFuY2UgaW5zdGFuY2VvZiBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAkRVJST1IoJyMxLjE6IE8gaXMgbm90IGFuIG9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgovLyBDSEVDSyMyCmlmICgoaW5zdGFuY2UuY29uc3RydWN0b3IgIT09IEZBQ1RPUlkpIHx8IChpbnN0YW5jZS5uYW1lICE9PSAiZmFpcnkiKSkgewogICRFUlJPUignIzI6IGluc3RhbmNlLmNvbnN0cnVjdG9yID09PSBGQUNUT1JZJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTJfVDYuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyBzdHJpbmcsIGFuZCBWIGlzIGZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gbmV3IEZ1bmN0aW9uOwoKRkFDVE9SWS5wcm90b3R5cGUgPSAiZXJyb3IiOwoKLy8gQ0hFQ0sjMQp0cnkgewogICggZnVuY3Rpb24oKSB7CiAgfSkgaW5zdGFuY2VvZiBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAkRVJST1IoJyMxLjE6IE8gaXMgbm90IGFuIG9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTNfVDEuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWIGFuZCBWIGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiRi5wcm90b3R5cGUudHlwZSBpcyAxLCBhbmQgViBpcyBuZXcgRiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJ0aGlzLm5hbWU9XCJyb290XCIiKTsKCkZBQ1RPUlkucHJvdG90eXBlLnR5cGU9MTsKCmluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBGQUNUT1JZKSkgewogICRFUlJPUignIzE6IElmIE8gYW5kIFYgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IG9yIGlmIHRoZXkgcmVmZXIgdG8gb2JqZWN0cyBqb2luZWQgdG8gZWFjaCBvdGhlciAoMTMuMS4yKSwgcmV0dXJuIHRydWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTNfVDIuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWIGFuZCBWIGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiRi5wcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZSwgYW5kIFYgaXMgZW1wdHkgb2JqZWN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUtFRkFDVE9SWSA9IEZ1bmN0aW9uKCk7CgpmYWtlaW5zdGFuY2UgPSB7fTsKCi8vQ0hFQ0sjMQppZiAoZmFrZWluc3RhbmNlIGluc3RhbmNlb2YgRkFLRUZBQ1RPUlkpIHsKICAkRVJST1IoJyMxOiBJZiBPIGFuZCBWIHJlZmVyIHRvIHRoZSBzYW1lIG9iamVjdCBvciBpZiB0aGV5IHJlZmVyIHRvIG9iamVjdHMgam9pbmVkIHRvIGVhY2ggb3RoZXIgKDEzLjEuMiksIHJldHVybiB0cnVlJyk7Cn0KCkZBS0VGQUNUT1JZLnByb3RvdHlwZT1PYmplY3QucHJvdG90eXBlOwoKLy9DSEVDSyMyCmlmICghKGZha2VpbnN0YW5jZSBpbnN0YW5jZW9mIEZBS0VGQUNUT1JZKSkgewogICRFUlJPUignIzI6IElmIE8gYW5kIFYgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IG9yIGlmIHRoZXkgcmVmZXIgdG8gb2JqZWN0cyBqb2luZWQgdG8gZWFjaCBvdGhlciAoMTMuMS4yKSwgcmV0dXJuIHRydWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EyX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BMl9UMS5qcyIsCgphc3NlcnRpb246ICJFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eSIsCgpkZXNjcmlwdGlvbjogIkZvciB0ZXN0aW5nIGNhbGwgRnVuY3Rpb24oXCJ2YXIgeCA9MTsgdGhpcy55PTI7cmV0dXJuIFxcXCJPS1xcXCI7XCIpKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24oInZhciB4ID0xOyB0aGlzLnk9MjtyZXR1cm4gXCJPS1wiOyIpKCkgIT09ICJPSyIpIHsKICAkRVJST1IoJyMxOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiB4ICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IEV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ2FsbF1dIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoeSAhPT0gMikgewogICRFUlJPUignIzM6IEV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ2FsbF1dIHByb3BlcnR5Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EyX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BMl9UMi5qcyIsCgphc3NlcnRpb246ICJFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eSIsCgpkZXNjcmlwdGlvbjogIkZvciB0ZXN0aW5nIGNhbGwgKG5ldyBGdW5jdGlvbihcImFyZzEsYXJnMlwiLFwidmFyIHggPWFyZzE7IHRoaXMueT1hcmcyO3JldHVybiBhcmcxK2FyZzI7XCIpKShcIjFcIiwyKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICgobmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIiLCJ2YXIgeCA9YXJnMTsgdGhpcy55PWFyZzI7cmV0dXJuIGFyZzErYXJnMjsiKSkoIjEiLDIpICE9PSAiMTIiKSB7CiAgJEVSUk9SKCcjMTogRXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDYWxsXV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgeCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzMKaWYgKHkgIT09IDIpIHsKICAkRVJST1IoJyMzOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EzX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BM19UMS5qcyIsCgphc3NlcnRpb246ICJldmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQXMgY29uc3RydWN0b3IgdXNlIEZ1bmN0aW9uKFwidmFyIHggPTE7IHRoaXMueT0yO3JldHVybiBcXFwiT0tcXFwiO1wiKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJ2YXIgeCA9MTsgdGhpcy55PTI7cmV0dXJuIFwiT0tcIjsiKTsKb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMTogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gRkFDVE9SWSkgewogICRFUlJPUignIzI6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoueSAhPT0gMikgewogICRFUlJPUignIzM6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EzX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BM19UMi5qcyIsCgphc3NlcnRpb246ICJldmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQXMgY29uc3RydWN0b3IgdXNlIG5ldyBGdW5jdGlvbihcImFyZzEsYXJnMlwiLFwidmFyIHggPTE7IHRoaXMueT1hcmcxK2FyZzI7cmV0dXJuIFxcXCJPS1xcXCI7XCIpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIiLCJ2YXIgeCA9MTsgdGhpcy55PWFyZzErYXJnMjtyZXR1cm4gXCJPS1wiOyIpOwpvYmogPSBuZXcgRkFDVE9SWSgiMSIsMik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMTogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gRkFDVE9SWSkgewogICRFUlJPUignIzI6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoueSAhPT0gIjEyIikgewogICRFUlJPUignIzM6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5_A3_T2"}]}}
\ No newline at end of file
+{"testsCollection":{"name":"Chapter - 15.3_Function_Objects","numTests":"186","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4xX0ExX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy9TMTUuMy4xX0ExX1QxLmpzIiwKCmFzc2VydGlvbjogIlRoZSBmdW5jdGlvbiBjYWxsIEZ1bmN0aW9uKOKApikgaXMgZXF1aXZhbGVudCB0byB0aGUgb2JqZWN0IGNyZWF0aW9uIGV4cHJlc3Npb24iLAoKZGVzY3JpcHRpb246ICJDcmVhdGUgc2ltcGxlIGZ1bmN0aW9ucyBhbmQgY2hlY2sgcmV0dXJuZWQgdmFsdWVzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZiA9IEZ1bmN0aW9uKCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpOwoKLy9DSEVDSyMxCmlmICghKGYgaW5zdGFuY2VvZiBGdW5jdGlvbikpewogICRFUlJPUignIzE6IGYgaW5zdGFuY2VvZiBGdW5jdGlvbicpOwp9CgovL0NIRUNLIzIKaWYgKGYoMSkgIT09IDEpIHsKICAkRVJST1IoJyMyOiBmKDEpICE9PSAxJyk7Cn0KCnZhciBnID0gbmV3IEZ1bmN0aW9uKCJyZXR1cm4gYXJndW1lbnRzWzBdOyIpOwoKCi8vQ0hFQ0sjMwppZiAoIShnIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7CiAgJEVSUk9SKCcjMzogZyBpbnN0YW5jZW9mIEZ1bmN0aW9uJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoZygiQSIpICE9PSAiQSIpIHsKICAkRVJST1IoJyM0OiBnKCJBIikgIT09ICJBIicpOwp9CgovL0NIRUNLIzUKaWYgKGcoIkEiKSAhPT0gZigiQSIpKSB7CiAgJEVSUk9SKCcjNTogZygiQSIpICE9PSBmKCJBIiknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMSIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4zX0Z1bmN0aW9uX09iamVjdHMvUzE1LjNfQTEuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24gaXMgdGhlIHByb3BlcnR5IG9mIGdsb2JhbCIsCgpkZXNjcmlwdGlvbjogIkNvbXBhcmUgRnVuY3Rpb24gd2l0aCB0aGlzLkZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqID0gRnVuY3Rpb247Cgp2YXIgdGhpc29iaiA9IHRoaXMuRnVuY3Rpb247CgppZiAob2JqICE9PSB0aGlzb2JqKSB7CiAgJEVSUk9SKCdGdW5jdGlvbiBpcyB0aGUgcHJvcGVydHkgb2YgZ2xvYmFsJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMl9UMSIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4zX0Z1bmN0aW9uX09iamVjdHMvUzE1LjNfQTJfVDEuanMiLAoKYXNzZXJ0aW9uOiAiU2luY2UgYXBwbHlpbmcgdGhlIFwiY2FsbFwiIG1ldGhvZCB0byBGdW5jdGlvbiBjb25zdHJ1Y3RvciB0aGVtc2VsZiBsZWFkcyB0byBjcmVhdGluZyBhIG5ldyBmdW5jdGlvbiBpbnN0YW5jZSwgdGhlIHNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGEgdmFsaWQgZnVuY3Rpb24gYm9keSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGluZyBcIkZ1bmN0aW9uLmNhbGwodGhpcywgXCJ2YXIgeCAvID0gMTtcIilcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdHJ5ewogIEZ1bmN0aW9uLmNhbGwodGhpcywgInZhciB4IC8gPSAxOyIpOwp9IGNhdGNoKGUpewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMTogZnVuY3Rpb24gYm9keSBtdXN0IGJlIHZhbGlkJyk7CiAgfQp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuM19BMl9UMiIsCgpwYXRoOiAiVGVzdENhc2VzLzE1X05hdGl2ZS8xNS4zX0Z1bmN0aW9uX09iamVjdHMvUzE1LjNfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAiU2luY2UgYXBwbHlpbmcgdGhlIFwiY2FsbFwiIG1ldGhvZCB0byBGdW5jdGlvbiBjb25zdHJ1Y3RvciB0aGVtc2VsZiBsZWFkcyB0byBjcmVhdGluZyBhIG5ldyBmdW5jdGlvbiBpbnN0YW5jZSwgdGhlIHNlY29uZCBhcmd1bWVudCBtdXN0IGJlIGEgdmFsaWQgZnVuY3Rpb24gYm9keSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGV4ZWN1dGluZyBcIkZ1bmN0aW9uLmNhbGwodGhpcywgXCJ2YXIgI3ggID0gMTtcIilcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMKdHJ5ewogIEZ1bmN0aW9uLmNhbGwodGhpcywgInZhciAjeCAgPSAxOyIpOwp9IGNhdGNoKGUpewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMTogZnVuY3Rpb24gYm9keSBtdXN0IGJlIHZhbGlkJyk7CiAgfQp9ICAgIAoKCiB9Cn0pOwoK","id":"S15.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1QxLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIGlzIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgNzt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDc7fX0KCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKGJvZHkpOwogICRGQUlMKCcjMTogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcCBhcmUgdGFrZW46IGNhbGwgVG9TdHJpbmcoYm9keSknKTsKfSBjYXRjaCAoZSkgewogIGlmIChlICE9PSA3KSB7CiAgCSRFUlJPUignIzEuMTogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcCBhcmUgdGFrZW46IGNhbGwgVG9TdHJpbmcoYm9keSknKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTAuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJudWxsXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKG51bGwpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxzIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTEuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odW5kZWZpbmVkKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTIuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJ2b2lkIDBcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odm9pZCAwKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PXVuZGVmaW5lZCkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BMV9UMTMuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjoiLAoKZGVzY3JpcHRpb246ICJWYWx1ZSBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgaXMgXCJ7fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbih7fSk7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogSWYgYm9keSBpcyBub3QgcGFyc2FibGUgYXMgRnVuY3Rpb25Cb2R5IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1QyLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIGlzIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFwicmV0dXJuIDE7XCI7fX1cIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHk9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJyZXR1cm4gMTsiO319OwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oYm9keSk7CQp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09MSkgewogICRFUlJPUignIzM6IGhlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1QzLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIDEiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKDEpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q0LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIHgsIHdoZXJlIHggaXMgc3BlY2lmaWVkIHdpdGggXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oeCk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKdmFyIHg7CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q1LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwiT2JqZWN0KFwicmV0dXJuIFxcXCdBXFxcJ1wiKVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9IE9iamVjdCgicmV0dXJuIFwnQVwnIik7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PSJcdTAwNDEiKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q2LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIHRoZSBzdHJpbmcgXCJyZXR1cm4gdHJ1ZTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiB0cnVlOyIpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoIShmKCkpKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q3LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwiT2JqZWN0KDEpXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gbmV3IE9iamVjdCgxKTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMzogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q4LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwidmFyIDE9MTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAidmFyIDE9MTsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBib2R5IGlzIG5vdCBwYXJzYWJsZSBhcyBGdW5jdGlvbkJvZHkgdGhlbiB0aHJvdyBhIFN5bnRheEVycm9yIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IElmIGJvZHkgaXMgbm90IHBhcnNhYmxlIGFzIEZ1bmN0aW9uQm9keSB0aGVuIHRocm93IGEgU3ludGF4RXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A1_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTFfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0ExX1Q5LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGlzIFwicmV0dXJuIGFyZ3VtZW50c1swXTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiBhcmd1bWVudHNbMF07Iik7CgovL0NIRUNLIzEKaWYgKCEoZiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKLy9DSEVDSyMyCmlmIChmKCJBIikgIT09ICJBIikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A1_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1QxLmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMVwiLCBcImFyZzJcIiwgXCJhcmczXCIsIFwicmV0dXJuIGFyZzErYXJnMithcmczO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKCJhcmcxIiwgImFyZzIiLCAiYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSwyLDMpICE9PSA2KSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1QyLmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMSwgYXJnMlwiLCBcImFyZzNcIiwgXCJyZXR1cm4gYXJnMSthcmcyK2FyZzM7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gRnVuY3Rpb24oImFyZzEsIGFyZzIiLCAiYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoIkFCIiwiQkEiLDEpICE9PSAiQUJCQTEiKSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1QzLmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYXJnMSwgYXJnMiwgYXJnM1wiLCBcInJldHVybiBhcmcxK2FyZzIrYXJnMztcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBGdW5jdGlvbigiYXJnMSwgYXJnMiwgYXJnMyIsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoMSwxLCJBQkJBIikgIT09ICIyQUJCQSIpIHsKICAkRVJST1IoJyMzOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1Q0LmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBpPTA7Cgp2YXIgcD17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gImFyZyIrKCsraSk7fX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHAsIHAsIHAsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoNCwiMiIsIlFVRVNUSU9OIikgIT09ICI0MlFVRVNUSU9OIikgewogICRFUlJPUignIzM6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KICAKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1Q1LmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMgYW5kIGEgY29uY290ZW5hdGlvbiBvZiBzdHJpbmdzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgaT0wOwoKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhcmciKygrK2kpfX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHArIiwiK3AscCwgInJldHVybiBhcmcxK2FyZzIrYXJnMzsiKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQnKTsKfQoKLy9DSEVDSyMyCmlmICghKGYgaW5zdGFuY2VvZiBGdW5jdGlvbikpewogICRFUlJPUignIzI6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigiIiwxLDIpICE9PSAiMTIiKSB7CiAgJEVSUk9SKCcjMzogSXQgaXMgcGVybWlzc2libGUgYnV0IG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSBvbmUgYXJndW1lbnQgZm9yIGVhY2ggZm9ybWFsIHBhcmFtZXRlciB0byBiZSBzcGVjaWZpZWQnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.2.1_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTJfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EyX1Q2LmpzIiwKCmFzc2VydGlvbjogIkl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkIiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwicmV0dXJuXCItcyBvZiB2YXJpb3VzIHJlc3VsdHMgYW5kIGEgY29uY290ZW5hdGlvbiBvZiBzdHJpbmdzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgaT0wOwoKdmFyIHA9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICJhcmciKygrK2kpfX07CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IEZ1bmN0aW9uKHArIiwiK3ArIiwiK3AsICJyZXR1cm4gYXJnMSthcmcyK2FyZzM7Iik7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShmIGluc3RhbmNlb2YgRnVuY3Rpb24pKXsKICAkRVJST1IoJyMyOiBJdCBpcyBwZXJtaXNzaWJsZSBidXQgbm90IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBhcmd1bWVudCBmb3IgZWFjaCBmb3JtYWwgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZCcpOwp9CgovL0NIRUNLIzMKaWYgKGYoIiIsMSxwKSAhPT0gIjFhcmc0IikgewogICRFUlJPUignIzM6IEl0IGlzIHBlcm1pc3NpYmxlIGJ1dCBub3QgbmVjZXNzYXJ5IHRvIGhhdmUgb25lIGFyZ3VtZW50IGZvciBlYWNoIGZvcm1hbCBwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1QxLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDE7fX1cIiBhbmQgXCJ7dG9TdHJpbmc6ZnVuY3Rpb24oKXt0aHJvdyBcJ2JvZHlcJzt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93IDE7fX07CnZhciBib2R5ID0ge3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgImJvZHkiO319OwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCxib2R5KTsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoZSAhPT0gMSkgewogIAkkRVJST1IoJyMxLjE6IGkpIExldCBSZXN1bHQoaSkgYmUgdGhlIGZpcnN0IGFyZ3VtZW50OyBpaSkgTGV0IFAgYmUgVG9TdHJpbmcoUmVzdWx0KGkpKScpOwogIH0KfQoKCgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTAuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwie3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFwiejt4XCJ9fVwiIGFuZCBcInJldHVybiB0aGlzO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdGhpczsiOwp2YXIgcD17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gIno7eCJ9fTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTEuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgXCJ2b2lkIDBcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIHAgPSAiYSxiLGMiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgdm9pZCAwKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTIuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgXCJ1bmRlZmluZWRcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIHAgPSAiYSxiLGMiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgdW5kZWZpbmVkKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T12"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDEzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTMuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgXCJudWxsXCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBwID0gImEsYixjIjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsIG51bGwpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PXVuZGVmaW5lZCkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuLi4uJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T13"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDE0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTQuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIFwiYSxiLGNcIiBhbmQgYW4gdW5kZWZpbmVkIHZhcmlhYmxlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9ICJhLGIsYyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLCBib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9Cgp2YXIgYm9keTsKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T14"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDE1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjIuMV9BM19UMTUuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiVmFsdWVzIG9mIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIGFyZSB0d28gZW1wdHkgc3RyaW5ncyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24oIiIsICIiKTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggYXJndW1lbnRzIHAsIGJvZHkgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKCkhPT11bmRlZmluZWQpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1QyLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBcJ2FcJzt9fVwiIGFuZCBcInJldHVybiBhO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAiYSI7fX07CnZhciBib2R5ID0gInJldHVybiBhOyI7CgovL0NIRUNLIzEKdHJ5IHsKICB2YXIgZiA9IG5ldyBGdW5jdGlvbihwLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoNDIpIT09NDIpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgcCwgYm9keSBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1QzLmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInt0b1N0cmluZzpmdW5jdGlvbigpe3A9MTtyZXR1cm4gXCJhXCI7fX1cIiBhbmQgXCJ7dG9TdHJpbmc6ZnVuY3Rpb24oKXt0aHJvdyBcImJvZHlcIjt9fVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcCA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3A9MTtyZXR1cm4gImEiO319Owp2YXIgYm9keSA9IHt0b1N0cmluZzpmdW5jdGlvbigpe3Rocm93ICJib2R5Ijt9fTsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCcpOwp9IGNhdGNoIChlKSB7CiAgaWYgKGUgIT09ICJib2R5IikgewogIAkkRVJST1IoJyMxLjE6IGkpIExldCBSZXN1bHQoaSkgYmUgdGhlIGZpcnN0IGFyZ3VtZW50OyBpaSkgTGV0IFAgYmUgVG9TdHJpbmcoUmVzdWx0KGkpKScpOwogIH0KfQoKLy9DSEVDSyMyCmlmIChwICE9PSAxKSB7CiAgJEVSUk9SKCcjMjogaSkgTGV0IFJlc3VsdChpKSBiZSB0aGUgZmlyc3QgYXJndW1lbnQ7IGlpKSBMZXQgUCBiZSBUb1N0cmluZyhSZXN1bHQoaSkpJyk7Cn0KCgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q0LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBhbiB1bmRlZmluZWQgdmFyaWFibGUgYW5kIFwicmV0dXJuIDEuMTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIDEuMTsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCxib2R5KTsKfSBjYXRjaCAoZSkgewogICRGQUlMKCcjMTogdGVzdCBmYWlsZWQgd2l0aCBlcnJvciAnK2UpOwp9CgovL0NIRUNLIzIKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMjogV2hlbiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50IHRoZW4gYm9keSBiZSB0aGF0IGFyZ3VtZW50IGFuZCBjcmVhdGVzIGEgbmV3IEZ1bmN0aW9uIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTMuMicpOwp9CgovL0NIRUNLIzMKaWYgKGYoKSE9PTEuMSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9Cgp2YXIgcDsKIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q1LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInZvaWQgMFwiIGFuZCBcInJldHVybiBcXFwiQVxcXCI7XCIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBib2R5ID0gInJldHVybiBcIkFcIjsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odm9pZCAwLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09J1x1MDA0MScpIHsKICAkRVJST1IoJyMzOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW4uLi4nKTsKfQoKCgogfQp9KTsKCg==","id":"S15.3.2.1_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q2LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcIm51bGxcIiBhbmQgXCJyZXR1cm4gdHJ1ZTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIHRydWU7IjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKG51bGwsYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KIH0KfSk7Cgo=","id":"S15.3.2.1_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q3LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcIk9iamVjdChcImFcIilcIiBhbmQgXCJyZXR1cm4gYTtcIiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGJvZHkgPSAicmV0dXJuIGE7IjsKCnZhciBwPU9iamVjdCgiYSIpOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24ocCwgYm9keSk7Cn0gY2F0Y2ggKGUpIHsKICAkRkFJTCgnIzE6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3IgJytlKTsKfQoKLy9DSEVDSyMyCmlmIChmLmNvbnN0cnVjdG9yICE9PSBGdW5jdGlvbikgewogICRFUlJPUignIzI6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCBhbmQgY3JlYXRlcyBhIG5ldyBGdW5jdGlvbiBvYmplY3QgYXMgc3BlY2lmaWVkIGluIDEzLjInKTsKfQoKLy9DSEVDSyMzCmlmIChmKDEpIT09MSkgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CiB9Cn0pOwoK","id":"S15.3.2.1_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q4LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcInVuZGVmaW5lZFwiIGFuZCBcInJldHVybiB0aGlzO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdGhpczsiOwoKLy9DSEVDSyMxCnRyeSB7CiAgdmFyIGYgPSBuZXcgRnVuY3Rpb24odW5kZWZpbmVkLGJvZHkpOwp9IGNhdGNoIChlKSB7CiAgJEZBSUwoJyMxOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yICcrZSk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMyOiBXaGVuIHRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgd2l0aCBvbmUgYXJndW1lbnQgdGhlbiBib2R5IGJlIHRoYXQgYXJndW1lbnQgYW5kIGNyZWF0ZXMgYSBuZXcgRnVuY3Rpb24gb2JqZWN0IGFzIHNwZWNpZmllZCBpbiAxMy4yJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZigpIT09dGhpcykgewogICRFUlJPUignIzM6IFdoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCB0aGVuIGJvZHkgYmUgdGhhdCBhcmd1bWVudCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbi4uLicpOwp9CgoKCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yLjFfQTNfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuMl9UaGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuMi4xX0EzX1Q5LmpzIiwKCmFzc2VydGlvbjogIldoZW4gdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cyBwLCBib2R5IHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiIsCgpkZXNjcmlwdGlvbjogIlZhbHVlcyBvZiB0aGUgZnVuY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBcIjEsMVwiIGFuZCBcInJldHVybiB0aGlzO1wiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgYm9keSA9ICJyZXR1cm4gdGhpczsiOwp2YXIgcD0iMSwxIjsKCi8vQ0hFQ0sjMQp0cnkgewogIHZhciBmID0gbmV3IEZ1bmN0aW9uKHAsYm9keSk7CiAgJEZBSUwoJyMxOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBJZiBQIGlzIG5vdCBwYXJzYWJsZSBhcyBhIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0IHRoZW4gdGhyb3cgYSBTeW50YXhFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.2.1_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4yX0ExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjJfVGhlX0Z1bmN0aW9uX0NvbnN0cnVjdG9yL1MxNS4zLjJfQTEuanMiLAoKYXNzZXJ0aW9uOiAiV2hlbiBGdW5jdGlvbiBpcyBjYWxsZWQgYXMgcGFydCBvZiBhIG5ldyBleHByZXNzaW9uLCBpdCBpcyBhIGNvbnN0cnVjdG9yOiBpdCBpbml0aWFsaXNlcyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyB0aGUgY29uc3R1Y3RvciBvZiB0aGUgb2JqZWN0IHRoYXQgaXMgY3JlYXRlZCBhcyBhIG5ldyBGdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBuZXcgRnVuY3Rpb247CgovL0NIRUNLIzEKaWYgKGYuY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKSB7CiAgJEVSUk9SKCcjMTogV2hlbiBGdW5jdGlvbiBpcyBjYWxsZWQgYXMgcGFydCBvZiBhIG5ldyBleHByZXNzaW9uLCBpdCBpcyBhIGNvbnN0cnVjdG9yOiBpdCBpbml0aWFsaXNlcyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QnKTsKfQoKLy9DSEVDSyMyCmlmIChmID09PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMyOiBXaGVuIEZ1bmN0aW9uIGlzIGNhbGxlZCBhcyBwYXJ0IG9mIGEgbmV3IGV4cHJlc3Npb24sIGl0IGlzIGEgY29uc3RydWN0b3I6IGl0IGluaXRpYWxpc2VzIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.2_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0ExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMS5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaGFzIHRoZSBwcm9wZXJ0eSBcInByb3RvdHlwZVwiIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZXhpc3RlbmNlIG9mIHRoZSBwcm9wZXJ0eSBcInByb3RvdHlwZVwiIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBpZighRnVuY3Rpb24uaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpKXsKICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaGFzIHRoZSBwcm9wZXJ0eSAicHJvdG90eXBlIicpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.3_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EyX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMl9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgcHJvdG90eXBlIG9mIEZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoRnVuY3Rpb24pKSkgewogICRFUlJPUignIzE6IHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EyX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMl9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgdGhlIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQWRkIG5ldyBwcm9wZXJ0eSB0byBGdW5jdGlvbi5wcm90b3R5cGUgYW5kIGNoZWNrIGl0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbi5wcm90b3R5cGUuaW5kaWNhdG9yID0gMTsKCi8vQ0hFQ0sjCmlmIChGdW5jdGlvbi5pbmRpY2F0b3IgIT0gMSkgewogICRFUlJPUignIzE6IHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zX0EzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjNfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fQ29uc3RydWN0b3IvUzE1LjMuM19BMy5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBoYXMgbGVuZ3RoIHByb3BlcnR5IHdob3NlIHZhbHVlIGlzIDEiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBGdW5jdGlvbi5sZW5ndGggcHJvcGVydHkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIUZ1bmN0aW9uLmhhc093blByb3BlcnR5KCJsZW5ndGgiKSl7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24gY29uc3RydWN0b3IgaGFzIGxlbmd0aCBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKEZ1bmN0aW9uLmxlbmd0aCAhPT0gMSkgewogICRFUlJPUignIzI6IEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGxlbmd0aCBwcm9wZXJ0eSB2YWx1ZSBpcyAxJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuM19Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Db25zdHJ1Y3Rvci8xNS4zLjMuMV9GdW5jdGlvbi5wcm90b3R5cGUvUzE1LjMuMy4xX0ExLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgUmVhZE9ubHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmogPSBGdW5jdGlvbi5wcm90b3R5cGU7CkZ1bmN0aW9uLnByb3RvdHlwZSA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUgIT09IG9iaikgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBpZihGdW5jdGlvbi5wcm90b3R5cGUoKSE9PXVuZGVmaW5lZCl7CiAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7CiAgfQp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMi4xOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seTogJytlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.3.1_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuM19Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Db25zdHJ1Y3Rvci8xNS4zLjMuMV9GdW5jdGlvbi5wcm90b3R5cGUvUzE1LjMuMy4xX0EyLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udEVudW0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm9wZXJ0eUlzRW51bWVyYWJsZSgncHJvdG90eXBlJykpIHsKICAkRVJST1IoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCnZhciBjb3VudD0wOwoKZm9yIChwIGluIEZ1bmN0aW9uKXsKICBpZiAocD09PSJwcm90b3R5cGUiKSBjb3VudCsrOwp9CgppZiAoY291bnQgIT09IDApIHsKICAkRVJST1IoJyMyOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.3.1_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy4zLjFfQTMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuM19Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Db25zdHJ1Y3Rvci8xNS4zLjMuMV9GdW5jdGlvbi5wcm90b3R5cGUvUzE1LjMuMy4xX0EzLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udERlbGV0ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGRlbGV0ZSBGdW5jdGlvbi5wcm90b3R5cGU7CgovL0NIRUNLIzEKaWYgKCEoRnVuY3Rpb24uaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpKSkgewogICRFUlJPUignIzE6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUgcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.3.1_A3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjFfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0L1MxNS4zLjQuMV9BMV9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgaW5pdGlhbCB2YWx1ZSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlIGJ1aWx0LWluIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pIHsKICAkRVJST1IoJyMxOiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlIGJ1aWx0LWluIEZ1bmN0aW9uIGNvbnN0cnVjdG9yJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0ExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0ExLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCAoaXRzIFtbQ2xhc3NdXSBpcyBcIkZ1bmN0aW9uXCIpIiwKCmRlc2NyaXB0aW9uOiAiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyByZXR1cm5zIFtvYmplY3QrW1tDbGFzc11dK10iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoRnVuY3Rpb24ucHJvdG90eXBlKSAhPT0gIltvYmplY3QgRnVuY3Rpb25dIikgewogICRFUlJPUignIzI6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uICcgKwogICAgICAgICAnb2JqZWN0IChpdHMgW1tDbGFzc11dIGlzICJGdW5jdGlvbiIpICgxNS4zLjQpJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EyX1QxLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZSgpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKdHJ5IHsKICBpZiAoRnVuY3Rpb24ucHJvdG90eXBlKCkgIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgaXRzZWxmIGEgRnVuY3Rpb24gb2JqZWN0IHRoYXQsIHdoZW4gaW52b2tlZCwgYWNjZXB0cyBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5zIHVuZGVmaW5lZCcpOwogIH0KfSBjYXRjaCAoZSkgewogICRFUlJPUignIzEuMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgaXMgaXRzZWxmIGEgRnVuY3Rpb24gb2JqZWN0IHRoYXQsIHdoZW4gaW52b2tlZCwgYWNjZXB0cyBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5zIHVuZGVmaW5lZDogJytlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EyX1QyLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZShudWxsLHZvaWQgMCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGlmIChGdW5jdGlvbi5wcm90b3R5cGUobnVsbCx2b2lkIDApICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQnKTsKICB9Cn0gY2F0Y2ggKGUpIHsKICAkRVJST1IoJyMxLjE6IFRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQ6ICcrZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EyX1QzIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EyX1QzLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0LCB3aGVuIGludm9rZWQsIGFjY2VwdHMgYW55IGFyZ3VtZW50cyBhbmQgcmV0dXJucyB1bmRlZmluZWQiLAoKZGVzY3JpcHRpb246ICJDYWxsIEZ1bmN0aW9uLnByb3RvdHlwZSh4KSwgd2hlcmUgeCBpcyB1bmRlZmluZWQgdmFyaWFibGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIGlmIChGdW5jdGlvbi5wcm90b3R5cGUoeCkgIT09IHVuZGVmaW5lZCkgewogICAgdmFyIHg7CiAgICAkRVJST1IoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCwgd2hlbiBpbnZva2VkLCBhY2NlcHRzIGFueSBhcmd1bWVudHMgYW5kIHJldHVybnMgdW5kZWZpbmVkJyk7CiAgfQp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMS4xOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCwgd2hlbiBpbnZva2VkLCBhY2NlcHRzIGFueSBhcmd1bWVudHMgYW5kIHJldHVybnMgdW5kZWZpbmVkOiAnK2UpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0EzX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0EzX1QyLmpzIiwKCmFzc2VydGlvbjogIlRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyB0aGUgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgKDE1LjMuMi4xKSIsCgpkZXNjcmlwdGlvbjogIkFkZCBuZXcgcHJvcGVydHkgdG8gT2JqZWN0LnByb3RvdHlwZSBhbmQgY2hlY2sgaXQgYXQgRnVuY3Rpb24ucHJvdG90eXBlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBPYmplY3QucHJvdG90eXBlLmluZGljYXRvciA9IDE7CgovL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5pbmRpY2F0b3IhPT0xKSB7CiAgJEVSUk9SKCcjMTogVGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIHRoZSBPYmplY3QgcHJvdG90eXBlIG9iamVjdCAoMTUuMy4yLjEpJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0E0IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0E0LmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSB2YWx1ZU9mIHByb3BlcnR5IG9mIGl0cyBvd24uIGhvd2V2ZXIsIGl0IGluaGVyaXRzIHRoZSB2YWx1ZU9mIHByb3BlcnR5IGZyb20gdGhlIE9iamVjdCBwcm90b3R5cGUgT2JqZWN0IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgdmFsdWVPZiBwcm9wZXJ0eSBhdCBGdW5jdGlvbi5wcm90b3R5cGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJ2YWx1ZU9mIikgIT09IGZhbHNlKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIHZhbHVlT2YgcHJvcGVydHkgb2YgaXRzIG93bicpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUudmFsdWVPZiA9PT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBob3dldmVyLCBpdCBpbmhlcml0cyB0aGUgdmFsdWVPZiBwcm9wZXJ0eSBmcm9tIHRoZSBPYmplY3QgcHJvdG90eXBlIE9iamVjdCcpOwp9CgovL0NIRUNLIzMKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHsKICAkRVJST1IoJyMzOiBob3dldmVyLCBpdCBpbmhlcml0cyB0aGUgdmFsdWVPZiBwcm9wZXJ0eSBmcm9tIHRoZSBPYmplY3QgcHJvdG90eXBlIE9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.4_A4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40X0E1IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC9TMTUuMy40X0E1LmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0IGlzIGl0c2VsZiBhIEZ1bmN0aW9uIG9iamVjdCB3aXRob3V0IFtbY3JlYXRlXV0gcHJvcGVydHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUgb2JqZWN0XCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjCnRyeSB7CiAgdmFyIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGU7CiAgJEZBSUwoJyMxOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBbW2NyZWF0ZV1dIHByb3BlcnR5OiAnK2UpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKCIjMS4xOiBUaGUgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBpcyBpdHNlbGYgYSBGdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBbW2NyZWF0ZV1dIHByb3BlcnR5ICIrZSk7Cgp9CgogfQp9KTsKCg==","id":"S15.3.4_A5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExMC5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZSBSZWFkT25seSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggPSBmdW5jdGlvbigpe3JldHVybiAic2hpZnRlZCI7fTsKCi8vQ0hFQ0sjMgppZiAoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuMl9GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcvUzE1LjMuNC4yX0ExMS5qcyIsCgphc3NlcnRpb246ICJUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSB0b1N0cmluZyBtZXRob2QgaXMgMCIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGgiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuaGFzT3duUHJvcGVydHkoImxlbmd0aCIpKSkgewogICRFUlJPUignIzE6IFRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgaGFzIHRoZSBsZW5ndGggcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoICE9PSAwKSB7CiAgJEVSUk9SKCcjMjogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgdG9TdHJpbmcgbWV0aG9kIGlzIDAnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.2_A11"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHVuZGVmaW5lZCk7CiAKCg==","id":"S15.3.4.2_A12"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG51bGwpOwogCgo=","id":"S15.3.4.2_A13"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHt9KTsKIAoK","id":"S15.3.4.2_A14"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKC94Lyk7CiAKCg==","id":"S15.3.4.2_A15"},{"code":"IHZhciBvYmogPSB7dG9TdHJpbmc6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZ307CgpTdHJpbmcob2JqKTsKIAoK","id":"S15.3.4.2_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTYuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGhhcyBub3QgcHJvdG90eXBlIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkgewogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLnByb3RvdHlwZSk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTcuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGNhblwndCBiZSB1c2VkIGFzIGNvbnN0cnVjdG9yIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgY3JlYXRpbmcgXCJuZXcgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBGQUNUT1JZID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nOwoKdHJ5IHsKICB2YXIgaW5zdGFuY2UgPSBuZXcgRkFDVE9SWTsKICAkRkFJTCgnIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyBjYW5cJ3QgYmUgdXNlZCBhcyBjb25zdHJ1Y3RvcicpOwp9IGNhdGNoIChlKSB7CiAgJFBSSU5UKGUpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTguanMiLAoKYXNzZXJ0aW9uOiAiVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udEVudW0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSB7CiAgJEVSUk9SKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yIChwIGluIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyl7CiAgaWYgKHA9PT0ibGVuZ3RoIikKICAgICAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.2_A8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjJfQTkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4yX0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy9TMTUuMy40LjJfQTkuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udERlbGV0ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzA6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgaGFzIGxlbmd0aCBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzEKaWYgKGRlbGV0ZSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUnKTsKfQoKLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMyOiBUaGUgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.2_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMC5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZSBSZWFkT25seSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIHZhcnlpbmcgdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9Cgp2YXIgb2JqID0gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggPSBmdW5jdGlvbigpe3JldHVybiAic2hpZnRlZCI7fTsKCi8vQ0hFQ0sjMgppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCAhPT0gb2JqKSB7CiAgJEVSUk9SKCcjMjogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMS5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZSBEb250RW51bSIsCgpkZXNjcmlwdGlvbjogIlRDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMwCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMwOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkucHJvcGVydHlJc0VudW1lcmFibGUoJ2xlbmd0aCcpKSB7CiAgJEVSUk9SKCcjMTogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCi8vIENIRUNLIzIKZm9yICh2YXIgcCBpbiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkpewogIGlmIChwPT09Imxlbmd0aCIpCiAgICAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExMi5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgaGFzIG5vdCBwcm90b3R5cGUgcHJvcGVydHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBvYnRhaW5pbmcgdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBvZiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkKSB7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGhhcyBub3QgcHJvdG90eXBlIHByb3BlcnR5JytGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkucHJvdG90eXBlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A12"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHVuZGVmaW5lZCwge30sIFtdKTsKIAoK","id":"S15.3.4.3_A13"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKG51bGwsIHt9LCBbXSk7CiAKCg==","id":"S15.3.4.3_A14"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHt9LCB7fSwgW10pOwogCgo=","id":"S15.3.4.3_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0ExNi5qcyIsCgphc3NlcnRpb246ICJJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4iLAoKZGVzY3JpcHRpb246ICJBIFJlZ0V4cCBpcyBub3QgYSBmdW5jdGlvbiwgYnV0IGl0IG1heSBiZSBjYWxsYWJsZS4gSWZmIGl0IGlzLCBpdFwncyB0eXBlb2Ygc2hvdWxkIGJlIFwnZnVuY3Rpb25cJywgaW4gd2hpY2ggY2FzZSBhcHBseSBzaG91bGQgYWNjZXB0IGl0IGFzIGEgdmFsaWQgdGhpcyB2YWx1ZS4iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciByZSA9ICgveC8pOwppZiAodHlwZW9mIHJlID09PSAnZnVuY3Rpb24nKSB7CiAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwocmUsIHVuZGVmaW5lZCwgWyd4J10pOwp9IGVsc2UgewogIHRyeSB7CiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKHJlLCB1bmRlZmluZWQpOwogICAgJEZBSUwoJyMxOiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCAnICsKICAgICAgICAgICd0aGVuIChiaW5kIHNob3VsZCkgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfSBjYXRjaCAoZSkgewogICAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAgICAgJEVSUk9SKCcjMTogVHlwZUVycm9yIGV4cGVjdGVkLiBBY3R1YWw6ICcgKyBlKTsKICAgIH0KICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGFwcGx5IG1ldGhvZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImFwcGx5XCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcHJvdG89RnVuY3Rpb24oKTsKCmZ1bmN0aW9uIEZBQ1RPUlkoKXt9OwoKRkFDVE9SWS5wcm90b3R5cGU9cHJvdG87Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmouYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCnRyeSB7CiAgb2JqLmFwcGx5KCk7CiAgJEZBSUwoJyMyOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMi4xOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGFwcGx5IG1ldGhvZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duIiwKCmRlc2NyaXB0aW9uOiAiQ2FsbGluZyBcImFwcGx5XCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7fTsKCkZBQ1RPUlkucHJvdG90eXBlPUZ1bmN0aW9uLnByb3RvdHlwZTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai5hcHBseSAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGFwcGx5IG1ldGhvZCBhY2Nlc3NlZCcpOwp9CgovL0NIRUNLIzIKdHJ5IHsKICBvYmouYXBwbHkoKTsKICAkRkFJTCgnIzI6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMyLjE6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTJfVDEuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgYXBwbHkgbWV0aG9kIGlzIDIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgZGVmaW5lZCcpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGxlbmd0aCBwcm9wZXJ0eSBvZiBhcHBseSBtZXRob2QgZGVmaW5lZCcpOwp9CgovL0NIRUNLIzMKaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggIT09IDIpIHsKICAkRVJST1IoJyMzOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBhcHBseSBtZXRob2QgaXMgMicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgYXBwbHkgbWV0aG9kIGlzIDIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBmLmFwcGx5Lmxlbmd0aCwgd2hlcmUgZiBpcyBuZXcgRnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmPW5ldyBGdW5jdGlvbjsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYuYXBwbHkgIT09ICJmdW5jdGlvbiIpIHsKICAkRVJST1IoJyMxOiBhcHBseSBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgZi5hcHBseS5sZW5ndGggPT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMjogbGVuZ3RoIHByb3BlcnR5IG9mIGFwcGx5IG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5hcHBseS5sZW5ndGggIT09IDIpIHsKICAkRVJST1IoJyMzOiBUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBhcHBseSBtZXRob2QgaXMgMicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDEuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJOb3QgYW55IGFyZ3VtZW50cyBhdCBhcHBseSBmdW5jdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oInRoaXMuZmllbGQ9XCJzdHJhd2JlcnJ5XCIiKS5hcHBseSgpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAic3RyYXdiZXJyeSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuM19GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkvUzE1LjMuNC4zX0EzX1QxMC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGJ5IHVzaW5nIGV2YWwsIG5vIGFueSBhcmd1bWVudHMgYXQgYXBwbHkgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGV2YWwoIiAoZnVuY3Rpb24oKXt0aGlzLmZlYXQ9MX0pLmFwcGx5KCkiKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDIuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyBudWxsIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cImdyZWVuXCIiKS5hcHBseShudWxsKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gImdyZWVuIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDMuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB2b2lkIDAiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwiYmF0dGxlXCIiKS5hcHBseSh2b2lkIDApOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAiYmF0dGxlIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDQuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB1bmRlZmluZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwib2lsXCIiKS5hcHBseSh1bmRlZmluZWQpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAib2lsIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDUuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJObyBhbnkgYXJndW1lbnRzIGF0IGFwcGx5IGZ1bmN0aW9uIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oInRoaXMuZmVhdD1cImluIGRhIGhhdXNcIiIpLmFwcGx5KCk7Cn07Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gImluIGRhIGhhdXMiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDYuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyBudWxsIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PSJrYW1vbiBiZXliYSJ9KS5hcHBseShudWxsKTsKfTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDcuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB2b2lkIDAgYW5kIGl0IGNhbGxlZCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oInRoaXMuZmVhdD1cImluIGRhIGhhdXNcIiIpLmFwcGx5KHZvaWQgMCk7Cn0pKCk7CgoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJpbiBkYSBoYXVzIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDguanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJBcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB1bmRlZmluZWQgYW5kIGl0IGNhbGxlZCBpbnNpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIChmdW5jdGlvbiBGQUNUT1JZKCl7CiAgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PSJrYW1vbiBiZXliYSJ9KS5hcHBseSh1bmRlZmluZWQpOwp9KSgpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJrYW1vbiBiZXliYSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTNfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTNfVDkuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBieSB1c2luZyBldmFsLCBhcmd1bWVudCBhdCBhcHBseSBmdW5jdGlvbiBpcyB2b2lkIDAiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGV2YWwoICIgRnVuY3Rpb24oXCJ0aGlzLmZlYXQ9MVwiKS5hcHBseSh2b2lkIDApICIgKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.3_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDEuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgbnVtYmVyIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPTE7Cgp2YXIgcmV0b2JqID0gRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai50b3VjaGVkICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQogfQp9KTsKCg==","id":"S15.3.4.3_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDIuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgYm9vbGVhbiB0cnVlIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPXRydWU7Cgp2YXIgcmV0b2JqID0gbmV3IEZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzOyIpLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDMuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgc3RyaW5nIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPSJzb2FwIjsKCnZhciByZXRvYmogPSAoIGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9ICkuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai50b3VjaGVkICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDQuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgZnVuY3Rpb24gdmFyaWFibGUgdGhhdCByZXR1cm4gdGhpcyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9OwoKcmV0b2JqID0gZi5hcHBseShvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKdmFyIG9iajsKCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDUuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgZnVuY3Rpb24gdmFyaWFibGUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmID0gZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7fTsKCnZhciBvYmo9e307CgpmLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDYuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgbmV3IFN0cmluZygpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPW5ldyBTdHJpbmcoInNvYXAiKTsKCiggZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7fSkuYXBwbHkob2JqKTsKCi8vQ0hFQ0sjMQppZiAoIShvYmoudG91Y2hlZCkpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A5_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDcuanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgbmV3IE51bWJlcigpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPW5ldyBOdW1iZXIoMSk7CgpGdW5jdGlvbigidGhpcy50b3VjaGVkPSB0cnVlOyIpLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.3_A5_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTVfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTVfVDguanMiLAoKYXNzZXJ0aW9uOiAiSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogInRoaXNBcmcgaXMgRnVuY3Rpb24oKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIG9iaj1GdW5jdGlvbigpOwoKbmV3IEZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzOyIpLmFwcGx5KG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A5_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTZfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTZfVDIuanMiLAoKYXNzZXJ0aW9uOiAiaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24iLAoKZGVzY3JpcHRpb246ICJhcmdBcnJheSBpcyAobnVsbCwxKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgRnVuY3Rpb24oKS5hcHBseShudWxsLDEpOwogICRGQUlMKCcjMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTZfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTZfVDMuanMiLAoKYXNzZXJ0aW9uOiAiaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24iLAoKZGVzY3JpcHRpb246ICJhcmdBcnJheSBpcyAob2JqZWN0LFwiMSwzLDRcIikiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIG9iaj17fTsKCi8vQ0hFQ0sjMQp0cnkgewogIEZ1bmN0aW9uKCkuYXBwbHkob2JqLCIxLDMsNCIpOwogICRGQUlMKCcjMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogaWYgYXJnQXJyYXkgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gYXJndW1lbnRzIG9iamVjdCAoc2VlIDEwLjEuOCksIGEgVHlwZUVycm9yIGV4Y2VwdGlvbiBpcyB0aHJvd24nKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A6_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDEuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsWzFdKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExOyIpLmFwcGx5KG51bGwsWzFdKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIHRoZSBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlLi4uJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.3_A7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDIuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsWzEsMiwzXSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIG5ldyBGdW5jdGlvbigiYTEsYTIiLCJhMyIsInRoaXMuc2hpZnRlZD1hMjsiKS5hcHBseShudWxsLFsxLDIsM10pOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJzaGlmdGVkIl0gIT09IDIpIHsKICAkRVJST1IoJyMxOiBJZiBhcmdBcnJheSBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gYXJndW1lbnRzIG9iamVjdCwgdGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUuLi4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A7_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDUuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExK2EyK2EzOyIpLmFwcGx5KG51bGwsYXJndW1lbnRzKTsKfQoKb2JqPW5ldyBGQUNUT1JZKCIiLDEsMik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouc2hpZnRlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBJZiBhcmdBcnJheSBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gYXJndW1lbnRzIG9iamVjdCwgdGhlIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUuLi4nKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.3_A7_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDcuanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKG51bGwsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBjYWxsIHdpdGhvdXQgZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgKGZ1bmN0aW9uICgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMSthMithMzsiKS5hcHBseShudWxsLGFyZ3VtZW50cyk7Cn0pKCIiLDEsMik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjEyIikgewogICRFUlJPUignIzE6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A7_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTdfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTdfVDguanMiLAoKYXNzZXJ0aW9uOiAiSWYgYXJnQXJyYXkgaXMgZWl0aGVyIGFuIGFycmF5IG9yIGFuIGFyZ3VtZW50cyBvYmplY3QsIiwKCmRlc2NyaXB0aW9uOiAiYXJnQXJyYXkgaXMgKHRoaXMsIGFyZ3VtZW50cyksIGluc2lkZSBmdW5jdGlvbiBjYWxsIHdpdGhvdXQgZGVjbGFyYXRpb24gdXNlZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgKGZ1bmN0aW9uICgpewogIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMSthMithMzsiKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Cn0pKCIiLDQsMik7CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzI6IElmIGFyZ0FycmF5IGlzIGVpdGhlciBhbiBhcnJheSBvciBhbiBhcmd1bWVudHMgb2JqZWN0LCB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZS4uLicpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.3_A7_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDEuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICBvYmogPSBuZXcgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5OwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A8_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDIuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkoKVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkoKTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDMuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbi5hcHBseVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIG9iaiA9IG5ldyBGdW5jdGlvbi5hcHBseTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDQuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyAoRnVuY3Rpb24oXCJ0aGlzLnAxPTFcIikuYXBwbHkpXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHRyeSB7CiAgb2JqID0gbmV3IChGdW5jdGlvbigidGhpcy5wMT0xIikuYXBwbHkpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.3_A8_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDUuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyBGdW5jdGlvbihcInRoaXMucDE9MVwiKS5hcHBseVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIEZBQ1RPUlkgPSBGdW5jdGlvbigidGhpcy5wMT0xIikuYXBwbHk7CiAgb2JqID0gbmV3IEZBQ1RPUlkoKTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQThfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQThfVDYuanMiLAoKYXNzZXJ0aW9uOiAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5IGNhbmB0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXIiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBjcmVhdGluZyBcIm5ldyAoRnVuY3Rpb24oXCJmdW5jdGlvbiBmKCl7dGhpcy5wMT0xO307cmV0dXJuIGZcIikuYXBwbHkoKSlcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCnRyeSB7CiAgb2JqID0gbmV3IChGdW5jdGlvbigiZnVuY3Rpb24gZigpe3RoaXMucDE9MTt9O3JldHVybiBmIikuYXBwbHkoKSk7Cn0gY2F0Y2ggKGUpIHsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfQoKLy9DSEVDSyMyCmlmIChvYmoucDEhPT0gMSkgewogICRFUlJPUignIzI6IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A8_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjNfQTkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC4zX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS9TMTUuMy40LjNfQTkuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udERlbGV0ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzA6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkgaGFzIGxlbmd0aCBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzEKaWYgKGRlbGV0ZSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUnKTsKfQoKLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMyOiBUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Lmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.3_A9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTEwLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgUmVhZE9ubHkiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiB2YXJ5aW5nIHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKdmFyIG9iaiA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aDsKCkZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCA9IGZ1bmN0aW9uKCl7cmV0dXJuICJzaGlmdGVkIjt9OwoKLy9DSEVDSyMyCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggIT09IG9iaikgewogICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5LicpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTExIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTExLmpzIiwKCmFzc2VydGlvbjogIlRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGUgRG9udEVudW0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBlbnVtZXJhdGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCgovLyBDSEVDSyMxCmlmIChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJykpIHsKICAkRVJST1IoJyMxOiB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBEb250RW51bScpOwp9CgovLyBDSEVDSyMyCmZvciAocCBpbiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCl7CiAgaWYgKHA9PT0ibGVuZ3RoIikKICAgICRFUlJPUignIzI6IHRoZSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnRFbnVtJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A11"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTEyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTEyLmpzIiwKCmFzc2VydGlvbjogIkZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGhhcyBub3QgcHJvdG90eXBlIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgb2J0YWluaW5nIHRoZSBwcm90b3R5cGUgcHJvcGVydHkgb2YgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwucHJvdG90eXBlICE9PSB1bmRlZmluZWQpIHsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBoYXMgbm90IHByb3RvdHlwZSBwcm9wZXJ0eScrRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwucHJvdG90eXBlKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A12"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmNhbGwodW5kZWZpbmVkLCB7fSk7CiAKCg==","id":"S15.3.4.4_A13"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmNhbGwobnVsbCwge30pOwogCgo=","id":"S15.3.4.4_A14"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmNhbGwoe30sIHt9KTsKIAoK","id":"S15.3.4.4_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTE2LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIkEgUmVnRXhwIGlzIG5vdCBhIGZ1bmN0aW9uLCBidXQgaXQgbWF5IGJlIGNhbGxhYmxlLiBJZmYgaXQgaXMsIGl0XCdzIHR5cGVvZiBzaG91bGQgYmUgXCdmdW5jdGlvblwnLCBpbiB3aGljaCBjYXNlIGNhbGwgc2hvdWxkIGFjY2VwdCBpdCBhcyBhIHZhbGlkIHRoaXMgdmFsdWUuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcmUgPSAoL3gvKTsKaWYgKHR5cGVvZiByZSA9PT0gJ2Z1bmN0aW9uJykgewogIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmNhbGwocmUsIHVuZGVmaW5lZCwgJ3gnKTsKfSBlbHNlIHsKICB0cnkgewogICAgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChyZSwgdW5kZWZpbmVkKTsKICAgICRGQUlMKCcjMTogSWYgSXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgJyArCiAgICAgICAgICAndGhlbiAoYmluZCBzaG91bGQpIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbicpOwogIH0gY2F0Y2ggKGUpIHsKICAgIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAgICRFUlJPUignIzE6IFR5cGVFcnJvciBleHBlY3RlZC4gQWN0dWFsOiAnICsgZSk7CiAgICB9CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A16"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMV9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0LiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93biIsCgpkZXNjcmlwdGlvbjogIkNhbGwgXCJjYWxsXCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcHJvdG89RnVuY3Rpb24oKTsKCmZ1bmN0aW9uIEZBQ1RPUlkoKXt9OwoKRkFDVE9SWS5wcm90b3R5cGU9cHJvdG87Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmouY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMgp0cnkgewogIG9iai5jYWxsKCk7CiAgJEZBSUwoJyMyOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMi4xOiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bicpOwogIH0KfQogICAgCiB9Cn0pOwoK","id":"S15.3.4.4_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMV9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0LiBJZiB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBbW0NhbGxdXSBwcm9wZXJ0eSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93biIsCgpkZXNjcmlwdGlvbjogIkNhbGxpbmcgXCJjYWxsXCIgbWV0aG9kIG9mIHRoZSBvYmplY3QgdGhhdCBkb2VzIG5vdCBoYXZlIGEgW1tDYWxsXV0gcHJvcGVydHkuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmdW5jdGlvbiBGQUNUT1JZKCl7fTsKCkZBQ1RPUlkucHJvdG90eXBlPUZ1bmN0aW9uLnByb3RvdHlwZTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iai5jYWxsICE9PSAiZnVuY3Rpb24iKSB7CiAgJEVSUk9SKCcjMTogY2FsbCBtZXRob2QgYWNjZXNzZWQnKTsKfQoKLy9DSEVDSyMyCnRyeSB7CiAgb2JqLmNhbGwoKTsKICAkRkFJTCgnIzI6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMyLjE6IElmIHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIFtbQ2FsbF1dIHByb3BlcnR5LCBhIFR5cGVFcnJvciBleGNlcHRpb24gaXMgdGhyb3duJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMl9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBjYWxsIG1ldGhvZCBpcyAxIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzEKaWYgKHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoID09PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IGxlbmd0aCBwcm9wZXJ0eSBvZiBjYWxsIG1ldGhvZCBkZWZpbmVkJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgY2FsbCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BMl9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgbGVuZ3RoIHByb3BlcnR5IG9mIHRoZSBjYWxsIG1ldGhvZCBpcyAxIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgZi5jYWxsLmxlbmd0aCwgd2hlcmUgZiBpcyBuZXcgRnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBmPW5ldyBGdW5jdGlvbjsKCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYuY2FsbCAhPT0gImZ1bmN0aW9uIikgewogICRFUlJPUignIzE6IGNhbGwgbWV0aG9kIGFjY2Vzc2VkJyk7Cn0KCi8vQ0hFQ0sjMgppZiAodHlwZW9mIGYuY2FsbC5sZW5ndGggPT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMjogbGVuZ3RoIHByb3BlcnR5IG9mIGNhbGwgbWV0aG9kIGRlZmluZWQnKTsKfQoKLy9DSEVDSyMzCmlmIChmLmNhbGwubGVuZ3RoICE9PSAxKSB7CiAgJEVSUk9SKCcjMzogVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgY2FsbCBtZXRob2QgaXMgMScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UMS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIk5vdCBhbnkgYXJndW1lbnRzIGF0IGNhbGwgZnVuY3Rpb24iLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJ0aGlzLmZpZWxkPVwic3RyYXdiZXJyeVwiIikuY2FsbCgpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAic3RyYXdiZXJyeSIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDEwIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNF9GdW5jdGlvbi5wcm90b3R5cGUuY2FsbC9TMTUuMy40LjRfQTNfVDEwLmpzIiwKCmFzc2VydGlvbjogIklmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgYnkgdXNpbmcgZXZhbCwgbm8gYW55IGFyZ3VtZW50cyBhdCBjYWxsIGZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBldmFsKCIgKGZ1bmN0aW9uKCl7dGhpcy5mZWF0PTF9KS5jYWxsKCkiKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAxKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T10"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UMi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgbnVsbCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRnVuY3Rpb24oInRoaXMuZmllbGQ9XCJncmVlblwiIikuY2FsbChudWxsKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmllbGQiXSAhPT0gImdyZWVuIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UMy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdm9pZCAwIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cImJhdHRsZVwiIikuY2FsbCh2b2lkIDApOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAiYmF0dGxlIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdW5kZWZpbmVkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGdW5jdGlvbigidGhpcy5maWVsZD1cIm9pbFwiIikuY2FsbCh1bmRlZmluZWQpOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJmaWVsZCJdICE9PSAib2lsIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIk5vIGFueSBhcmd1bWVudHMgYXQgY2FsbCBmdW5jdGlvbiBhbmQgaXQgY2FsbGVkIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJ0aGlzLmZlYXQ9XCJpbiBkYSBoYXVzXCIiKS5jYWxsKCk7Cn07Cgp2YXIgb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gImluIGRhIGhhdXMiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgbnVsbCBhbmQgaXQgY2FsbGVkIGluc2lkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZnVuY3Rpb24gRkFDVE9SWSgpewogIChmdW5jdGlvbigpe3RoaXMuZmVhdD0ia2Ftb24gYmV5YmEifSkuY2FsbChudWxsKTsKfTsKCnZhciBvYmogPSBuZXcgRkFDVE9SWTsKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2Ygb2JqLmZlYXQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UNy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdm9pZCAwIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gRkFDVE9SWSgpewogIEZ1bmN0aW9uKCJ0aGlzLmZlYXQ9XCJpbiBkYSBoYXVzXCIiKS5jYWxsKHZvaWQgMCk7Cn0pKCk7CgoKLy9DSEVDSyMxCmlmICh0aGlzWyJmZWF0Il0gIT09ICJpbiBkYSBoYXVzIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UOC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdW5kZWZpbmVkIGFuZCBpdCBjYWxsZWQgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gRkFDVE9SWSgpewogIChmdW5jdGlvbigpe3RoaXMuZmVhdD0ia2Ftb24gYmV5YmEifSkuY2FsbCh1bmRlZmluZWQpOwp9KSgpOwoKCi8vQ0hFQ0sjMQppZiAodGhpc1siZmVhdCJdICE9PSAia2Ftb24gYmV5YmEiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIGdsb2JhbCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A3_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTNfVDkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BM19UOS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgZ2xvYmFsIG9iamVjdCBhcyB0aGUgdGhpcyB2YWx1ZSIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGJ5IHVzaW5nIGV2YWwsIGFyZ3VtZW50IGF0IGNhbGwgZnVuY3Rpb24gaXMgdm9pZCAwIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBldmFsKCAiIEZ1bmN0aW9uKFwidGhpcy5mZWF0PTFcIikuY2FsbCh2b2lkIDApICIgKTsKCgovL0NIRUNLIzEKaWYgKHRoaXNbImZlYXQiXSAhPT0gMSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbnVsbCBvciB1bmRlZmluZWQsIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBnbG9iYWwgb2JqZWN0IGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A3_T9"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UMS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBudW1iZXIiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9MTsKCnZhciByZXRvYmogPSBGdW5jdGlvbigidGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczsiKS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UMi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBib29sZWFuIHRydWUiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9dHJ1ZTsKCnZhciByZXRvYmogPSBuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqLnRvdWNoZWQgIT09ICJ1bmRlZmluZWQiKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEocmV0b2JqWyJ0b3VjaGVkIl0pKSB7CiAgJEVSUk9SKCcjMjogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UMy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBzdHJpbmciLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9InNvYXAiOwoKdmFyIHJldG9iaiA9ICggZnVuY3Rpb24oKXt0aGlzLnRvdWNoZWQ9IHRydWU7IHJldHVybiB0aGlzO30gKS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmoudG91Y2hlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMxOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoIShyZXRvYmpbInRvdWNoZWQiXSkpIHsKICAkRVJST1IoJyMyOiBJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlJyk7Cn0KCgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSB0aGF0IHJldHVybiB0aGlzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgZiA9IGZ1bmN0aW9uKCl7dGhpcy50b3VjaGVkPSB0cnVlOyByZXR1cm4gdGhpczt9OwoKdmFyIHJldG9iaiA9IGYuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKLy9DSEVDSyMyCmlmICghKHJldG9ialsidG91Y2hlZCJdKSkgewogICRFUlJPUignIzI6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKdmFyIG9iajsKCiB9Cn0pOwoK","id":"S15.3.4.4_A5_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNS5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBmdW5jdGlvbiB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdmFyIGYgPSBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9OwoKdmFyIG9iaj17fTsKCmYuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNi5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgU3RyaW5nKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IFN0cmluZygic29hcCIpOwoKKCBmdW5jdGlvbigpe3RoaXMudG91Y2hlZD0gdHJ1ZTt9KS5jYWxsKG9iaik7CgovL0NIRUNLIzEKaWYgKCEob2JqLnRvdWNoZWQpKSB7CiAgJEVSUk9SKCcjMTogSWYgdGhpc0FyZyBpcyBub3QgbnVsbChkZWZpbmVkKSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCBUb09iamVjdCh0aGlzQXJnKSBhcyB0aGUgdGhpcyB2YWx1ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A5_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UNy5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBuZXcgTnVtYmVyKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHZhciBvYmo9bmV3IE51bWJlcigxKTsKCkZ1bmN0aW9uKCJ0aGlzLnRvdWNoZWQ9IHRydWU7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A5_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTVfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNV9UOC5qcyIsCgphc3NlcnRpb246ICJJZiB0aGlzQXJnIGlzIG5vdCBudWxsKGRlZmluZWQpIHRoZSBjYWxsZWQgZnVuY3Rpb24gaXMgcGFzc2VkIFRvT2JqZWN0KHRoaXNBcmcpIGFzIHRoZSB0aGlzIHZhbHVlIiwKCmRlc2NyaXB0aW9uOiAidGhpc0FyZyBpcyBGdW5jdGlvbigpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgb2JqPUZ1bmN0aW9uKCk7CgpuZXcgRnVuY3Rpb24oInRoaXMudG91Y2hlZD0gdHJ1ZTsgcmV0dXJuIHRoaXM7IikuY2FsbChvYmopOwoKLy9DSEVDSyMxCmlmICghKG9iai50b3VjaGVkKSkgewogICRFUlJPUignIzE6IElmIHRoaXNBcmcgaXMgbm90IG51bGwoZGVmaW5lZCkgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBwYXNzZWQgVG9PYmplY3QodGhpc0FyZykgYXMgdGhlIHRoaXMgdmFsdWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A5_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UMS5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLFsxXSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZ1bmN0aW9uKCJhMSxhMixhMyIsInRoaXMuc2hpZnRlZD1hMTsiKS5jYWxsKG51bGwsWzFdKTsKCi8vQ0hFQ0sjMQppZiAodGhpc1sic2hpZnRlZCJdLmNvbnN0cnVjdG9yICE9PSBBcnJheSkgewogICRFUlJPUignIzE6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXS5sZW5ndGggIT09IDEpIHsKICAkRVJST1IoJyMyOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKLy9DSEVDSyMzCmlmICh0aGlzWyJzaGlmdGVkIl1bMF0gIT09IDEpIHsKICAkRVJST1IoJyMzOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A6_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UMi5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLFszLDIsMV0pIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBuZXcgRnVuY3Rpb24oImExLGEyIiwiYTMiLCJ0aGlzLnNoaWZ0ZWQ9YTE7IikuY2FsbChudWxsLFszLDIsMV0pOwoKLy9DSEVDSyMxCmlmICh0aGlzWyJzaGlmdGVkIl0ubGVuZ3RoICE9PSAzKSB7CiAgJEVSUk9SKCcjMTogVGhlIGNhbGwgbWV0aG9kIHRha2VzIG9uZSBvciBtb3JlIGFyZ3VtZW50cywgdGhpc0FyZyBhbmQgKG9wdGlvbmFsbHkpIGFyZzEsIGFyZzIgZXRjLCBhbmQgcGVyZm9ybXMgYSBmdW5jdGlvbiBjYWxsIHVzaW5nIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0Jyk7Cn0KCi8vQ0hFQ0sjMgppZiAoKHRoaXNbInNoaWZ0ZWQiXVswXSAhPT0gMyl8fCh0aGlzWyJzaGlmdGVkIl1bMV0gIT09IDIpfHwodGhpc1sic2hpZnRlZCJdWzJdICE9PSAxKSkgewogICRFUlJPUignIzI6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A6_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UNS5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLCBhcmd1bWVudHMsXCJcIiwyKSwgaW5zaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHVzZWQiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGZ1bmN0aW9uIEZBQ1RPUlkoKXsKICBGdW5jdGlvbigiYTEsYTIsYTMiLCJ0aGlzLnNoaWZ0ZWQ9YTEubGVuZ3RoK2EyK2EzOyIpLmNhbGwobnVsbCxhcmd1bWVudHMsIiIsMik7Cn0KCnZhciBvYmo9bmV3IEZBQ1RPUlkoIiIsMSwyLCJBIik7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzE6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiBvYmouc2hpZnRlZCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyBhIGZ1bmN0aW9uIGNhbGwgdXNpbmcgdGhlIFtbQ2FsbF1dIHByb3BlcnR5IG9mIHRoZSBvYmplY3QnKTsKfQoKCiB9Cn0pOwoK","id":"S15.3.4.4_A6_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UNy5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzIChudWxsLCBhcmd1bWVudHMsXCJcIiwyKSwgaW5zaWRlIGZ1bmN0aW9uIGNhbGwgd2l0aG91dCBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExLmxlbmd0aCthMithMzsiKS5jYWxsKG51bGwsYXJndW1lbnRzLCIiLDIpOwp9KSgiIiwxLDIsdHJ1ZSk7CgovL0NIRUNLIzEKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzE6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A6_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTZfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BNl9UOC5qcyIsCgphc3NlcnRpb246ICJUaGUgY2FsbCBtZXRob2QgdGFrZXMgb25lIG9yIG1vcmUgYXJndW1lbnRzLCB0aGlzQXJnIGFuZCAob3B0aW9uYWxseSkgYXJnMSwgYXJnMiBldGMsIGFuZCBwZXJmb3JtcyIsCgpkZXNjcmlwdGlvbjogIkFyZ3VuZW10cyBvZiBjYWxsIGZ1bmN0aW9uIGlzICh0aGlzLCBhcmd1bWVudHMsXCJcIiwyKSwgaW5zaWRlIGZ1bmN0aW9uIGNhbGwgd2l0aG91dCBkZWNsYXJhdGlvbiB1c2VkIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAoZnVuY3Rpb24gKCl7CiAgRnVuY3Rpb24oImExLGEyLGEzIiwidGhpcy5zaGlmdGVkPWExLmxlbmd0aCthMithMzsiKS5jYWxsKHRoaXMsYXJndW1lbnRzLCIiLDIpOwp9KSgiIiw0LDIsbnVsbCk7CgovL0NIRUNLIzIKaWYgKHRoaXNbInNoaWZ0ZWQiXSAhPT0gIjQyIikgewogICRFUlJPUignIzI6IFRoZSBjYWxsIG1ldGhvZCB0YWtlcyBvbmUgb3IgbW9yZSBhcmd1bWVudHMsIHRoaXNBcmcgYW5kIChvcHRpb25hbGx5KSBhcmcxLCBhcmcyIGV0YywgYW5kIHBlcmZvcm1zIGEgZnVuY3Rpb24gY2FsbCB1c2luZyB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgdGhlIG9iamVjdCcpOwp9CgoKIH0KfSk7Cgo=","id":"S15.3.4.4_A6_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UMS5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIHRyeSB7CiAgdmFyIG9iaiA9IG5ldyBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A7_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UMi5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsKClcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgRkFDVE9SWSA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsOwogIHZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A7_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UMy5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uLmNhbGxcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgb2JqID0gbmV3IEZ1bmN0aW9uLmNhbGw7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKICB9Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A7_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UNC5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IChGdW5jdGlvbihcInRoaXMucDE9MVwiKS5jYWxsKVwiIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB0cnkgewogIHZhciBvYmogPSBuZXcgKEZ1bmN0aW9uKCJ0aGlzLnAxPTEiKS5jYWxsKTsKICAkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwp9IGNhdGNoIChlKSB7CiAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAJJEVSUk9SKCcjMS4xOiBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlcicpOwogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.4_A7_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UNS5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IEZ1bmN0aW9uKFwidGhpcy5wMT0xXCIpLmNhbGxcIiBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgdHJ5IHsKICB2YXIgRkFDVE9SWSA9IEZ1bmN0aW9uKCJ0aGlzLnAxPTEiKS5jYWxsOwogIHZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwogICRFUlJPUignIzE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0gY2F0Y2ggKGUpIHsKICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogIAkkRVJST1IoJyMxLjE6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A7_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTdfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BN19UNi5qcyIsCgphc3NlcnRpb246ICJGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCBjYW5cJ3QgYmUgdXNlZCBhcyBbW2NyZWF0ZV1dIGNhbGxlciIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGlmIGNyZWF0aW5nIFwibmV3IChGdW5jdGlvbihcImZ1bmN0aW9uIGYoKXt0aGlzLnAxPTE7fTtyZXR1cm4gZlwiKS5jYWxsKCkpXCIgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQp0cnkgewogIHZhciBvYmogPSBuZXcgKEZ1bmN0aW9uKCJmdW5jdGlvbiBmKCl7dGhpcy5wMT0xO307cmV0dXJuIGYiKS5jYWxsKCkpOwp9IGNhdGNoIChlKSB7CiAgJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwgY2FuXCd0IGJlIHVzZWQgYXMgW1tjcmVhdGVdXSBjYWxsZXInKTsKfQoKLy9DSEVDSyMyCmlmIChvYmoucDEhPT0gMSkgewogICRFUlJPUignIzI6IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGNhblwndCBiZSB1c2VkIGFzIFtbY3JlYXRlXV0gY2FsbGVyJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.4.4_A7_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjRfQTkiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNF9Qcm9wZXJ0aWVzX29mX3RoZV9GdW5jdGlvbl9Qcm90b3R5cGVfT2JqZWN0LzE1LjMuNC40X0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsL1MxNS4zLjQuNF9BOS5qcyIsCgphc3NlcnRpb246ICJUaGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlIERvbnREZWxldGUiLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoIHByb3BlcnR5IGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAvL0NIRUNLIzAKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMDogdGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsIGhhcyBsZW5ndGggcHJvcGVydHknKTsKfQoKLy9DSEVDSyMxCmlmIChkZWxldGUgRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwubGVuZ3RoKSB7CiAgJEVSUk9SKCcjMTogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgovL0NIRUNLIzIKaWYgKCEoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMjogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.4.4_A9"},{"code":"IGZ1bmN0aW9uIGZvbygpIHsgcmV0dXJuIGJhci5jYWxsZXI7IH0KdmFyIGJhciA9IGZvby5iaW5kKHt9KTsKZnVuY3Rpb24gYmF6KCkgeyByZXR1cm4gYmFyKCk7IH0KYmF6KCk7CiAKCg==","id":"S15.3.4.5_A1"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwodW5kZWZpbmVkLCB7fSk7CgogCgo=","id":"S15.3.4.5_A13"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwobnVsbCwge30pOwoKIAoK","id":"S15.3.4.5_A14"},{"code":"IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwoe30sIHt9KTsKCiAKCg==","id":"S15.3.4.5_A15"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy40LjVfQTE2IiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjRfUHJvcGVydGllc19vZl90aGVfRnVuY3Rpb25fUHJvdG90eXBlX09iamVjdC8xNS4zLjQuNV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC9TMTUuMy40LjVfQTE2LmpzIiwKCmFzc2VydGlvbjogIklmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLiIsCgpkZXNjcmlwdGlvbjogIkEgUmVnRXhwIGlzIG5vdCBhIGZ1bmN0aW9uLCBidXQgaXQgbWF5IGJlIGNhbGxhYmxlLiBJZmYgaXQgaXMsIGl0XCdzIHR5cGVvZiBzaG91bGQgYmUgXCdmdW5jdGlvblwnLCBpbiB3aGljaCBjYXNlIGJpbmQgc2hvdWxkIGFjY2VwdCBpdCBhcyBhIHZhbGlkIHRoaXMgdmFsdWUuIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICB2YXIgcmUgPSAoL3gvKTsKaWYgKHR5cGVvZiByZSA9PT0gJ2Z1bmN0aW9uJykgewogIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwocmUsIHVuZGVmaW5lZCk7Cn0gZWxzZSB7CiAgdHJ5IHsKICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwocmUsIHVuZGVmaW5lZCk7CiAgICAkRkFJTCgnIzE6IElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsICcgKwogICAgICAgICAgJ3RoZW4gKGJpbmQgc2hvdWxkKSB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKICB9IGNhdGNoIChlKSB7CiAgICBpZiAoIShlIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogICAgICAkRVJST1IoJyMxOiBUeXBlRXJyb3IgZXhwZWN0ZWQuIEFjdHVhbDogJyArIGUpOwogICAgfQogIH0KfQoKIH0KfSk7Cgo=","id":"S15.3.4.5_A16"},{"code":"IGZ1bmN0aW9uIGZvbygpIHsgcmV0dXJuIGJhci5hcmd1bWVudHM7IH0KdmFyIGJhciA9IGZvby5iaW5kKHt9KTsKZnVuY3Rpb24gYmF6KCkgeyByZXR1cm4gYmFyKCk7IH0KYmF6KCk7CiAKCg==","id":"S15.3.4.5_A2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSBcJ3R5cGljYWxcJyBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsIG51bGwpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IDMpIHsKICAkRVJST1IoJyMyOiBUaGUgdmFsdWUgb2YgdGhlIGxlbmd0aCBwcm9wZXJ0eSBpcyB1c3VhbGx5IGFuIGludGVnZXIgdGhhdCBpbmRpY2F0ZXMgdGhlICJ0eXBpY2FsIiBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSBcJ3R5cGljYWxcJyBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmc0LGFyZzVcIiwgbnVsbCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgovL0NIRUNLIzIKaWYgKGYubGVuZ3RoICE9PSA1KSB7CiAgJEVSUk9SKCcjMjogVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSAidHlwaWNhbCIgbnVtYmVyIG9mIGFyZ3VtZW50cyBleHBlY3RlZCBieSB0aGUgZnVuY3Rpb24nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTFfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTFfVDMuanMiLAoKYXNzZXJ0aW9uOiAiVGhlIHZhbHVlIG9mIHRoZSBsZW5ndGggcHJvcGVydHkgaXMgdXN1YWxseSBhbiBpbnRlZ2VyIHRoYXQgaW5kaWNhdGVzIHRoZSBcJ3R5cGljYWxcJyBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbiIsCgpkZXNjcmlwdGlvbjogIkNoZWNraW5nIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmcxLGFyZzJcIixcImFyZzNcIiwgbnVsbCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnMSxhcmcyIiwiYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IDYpIHsKICAkRVJST1IoJyMyOiBUaGUgdmFsdWUgb2YgdGhlIGxlbmd0aCBwcm9wZXJ0eSBpcyB1c3VhbGx5IGFuIGludGVnZXIgdGhhdCBpbmRpY2F0ZXMgdGhlICJ0eXBpY2FsIiBudW1iZXIgb2YgYXJndW1lbnRzIGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbicpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTJfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKLy9DSEVDSyMyCmlmKGRlbGV0ZSBmLmxlbmd0aCl7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZS4nKTsKfQoKLy9DSEVDSyMzCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRFUlJPUignIzM6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCi8vQ0hFQ0sjNAppZiAoZi5sZW5ndGggIT09IDMpIHsKICAkRVJST1IoJyM0OiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnREZWxldGUgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzQsYXJnNVwiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9ICBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpkZWxldGUgZi5sZW5ndGg7CgovL0NIRUNLIzIKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgRG9udERlbGV0ZS4nKTsKfQoKLy9DSEVDSyMzCmlmIChmLmxlbmd0aCAhPT0gNSkgewogICRFUlJPUignIzM6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udERlbGV0ZSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTJfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTJfVDMuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzEsYXJnMlwiLFwiYXJnM1wiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmcxLGFyZzIiLCJhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZGVsZXRlIGYubGVuZ3RoOwoKLy9DSEVDSyMyCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIERvbnREZWxldGUuJyk7Cn0KCi8vQ0hFQ0sjMwppZiAoZi5sZW5ndGggIT09IDYpIHsKICAkRVJST1IoJyMzOiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnREZWxldGUgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A2_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTNfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzQsYXJnNVwiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmc0LGFyZzUiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdsZW5ndGgnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpsZW5ndGggPSBmLmxlbmd0aDsKCmYubGVuZ3RoID0gZnVuY3Rpb24oKXt9OwoKLy9DSEVDSyMyCmlmIChmLmxlbmd0aCAhPT0gbGVuZ3RoKSB7CiAgJEVSUk9SKCcjMjogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfQoKLy9DSEVDSyMzCnRyeSB7CiAgZi5sZW5ndGgoKTsKICAkRVJST1IoJyMzOiB0aGUgZnVuY3Rpb24ubGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyBSZWFkT25seScpOwp9IGNhdGNoIChlKSB7CiAgOwp9CgovL0NIRUNLIzQKaWYgKGYubGVuZ3RoICE9PSA1KSB7CiAgJEVSUk9SKCcjNDogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTNfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKbGVuZ3RoID0gZi5sZW5ndGg7CgpmLmxlbmd0aCA9IGZ1bmN0aW9uKCl7fTsKCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IGxlbmd0aCkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCi8vQ0hFQ0sjMwp0cnkgewogIGYubGVuZ3RoKCk7CiAgJEVSUk9SKCcjMzogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKLy9DSEVDSyM0CmlmIChmLmxlbmd0aCAhPT0gMykgewogICRFUlJPUignIzQ6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgUmVhZE9ubHkgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTNfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTNfVDMuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBSZWFkT25seSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgdmFyeWluZyB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiYXJnMSxhcmcyLGFyZzNcIixcImFyZzEsYXJnMlwiLFwiYXJnM1wiLCBudWxsKSBmYWlscyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgZiA9IG5ldyBGdW5jdGlvbigiYXJnMSxhcmcyLGFyZzMiLCJhcmcxLGFyZzIiLCJhcmczIiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKbGVuZ3RoID0gZi5sZW5ndGg7CgpmLmxlbmd0aCA9IGZ1bmN0aW9uKCl7fTsKCi8vQ0hFQ0sjMgppZiAoZi5sZW5ndGggIT09IGxlbmd0aCkgewogICRFUlJPUignIzI6IHRoZSBmdW5jdGlvbi5sZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIFJlYWRPbmx5Jyk7Cn0KCi8vQ0hFQ0sjMwp0cnkgewogIGYubGVuZ3RoKCk7CiAgJEVSUk9SKCcjMzogdGhlIGZ1bmN0aW9uLmxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgUmVhZE9ubHknKTsKfSBjYXRjaCAoZSkgewogIDsKfQoKLy9DSEVDSyM0CmlmIChmLmxlbmd0aCAhPT0gNikgewogICRFUlJPUignIzQ6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgUmVhZE9ubHkgfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A3_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTRfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsIG51bGwpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIsYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmZvcihrZXkgaW4gZikgICAgCiAgaWYoa2V5PT0ibGVuZ3RoIikKICAgICAgdmFyIGxlbmd0aGVudW1lZD10cnVlOwogICAgICAKLy9DSEVDSyMyCmlmIChsZW5ndGhlbnVtZWQpIHsKICAkRVJST1IoJyMyOiB0aGUgbGVuZ3RoIHByb3BlcnR5IGhhcyB0aGUgYXR0cmlidXRlcyB7IERvbnRFbnVtIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.1_A4_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTRfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmc0LGFyZzVcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSAgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnNSxhcmc0IiwgbnVsbCk7CgovL0NIRUNLIzEKaWYgKCEoZi5oYXNPd25Qcm9wZXJ0eSgnbGVuZ3RoJykpKSB7CiAgJEZBSUwoJyMxOiB0aGUgZnVuY3Rpb24gaGFzIGxlbmd0aCBwcm9wZXJ0eS4nKTsKfQoKZm9yKGtleSBpbiBmKSAgICAKICBpZihrZXk9PSJsZW5ndGgiKQogICAgICB2YXIgbGVuZ3RoZW51bWVkPXRydWU7CiAgICAgIAovL0NIRUNLIzIKaWYgKGxlbmd0aGVudW1lZCkgewogICRFUlJPUignIzI6IHRoZSBsZW5ndGggcHJvcGVydHkgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgRG9udEVudW0gfScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.1_A4_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjFfQTRfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjFfQTRfVDMuanMiLAoKYXNzZXJ0aW9uOiAidGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9IiwKCmRlc2NyaXB0aW9uOiAiQ2hlY2tpbmcgaWYgZW51bWVyYXRpbmcgdGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBGdW5jdGlvbihcImFyZzEsYXJnMixhcmczXCIsXCJhcmcxLGFyZzJcIixcImFyZzNcIiwgbnVsbCkgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBuZXcgRnVuY3Rpb24oImFyZzEsYXJnMixhcmczIiwiYXJnMSxhcmcyIiwiYXJnMyIsIG51bGwpOwoKLy9DSEVDSyMxCmlmICghKGYuaGFzT3duUHJvcGVydHkoJ2xlbmd0aCcpKSkgewogICRGQUlMKCcjMTogdGhlIGZ1bmN0aW9uIGhhcyBsZW5ndGggcHJvcGVydHkuJyk7Cn0KCmZvcihrZXkgaW4gZikgICAgCiAgaWYoa2V5PT0ibGVuZ3RoIikKICAgIHZhciBsZW5ndGhlbnVtZWQ9dHJ1ZTsKICAgICAgCi8vQ0hFQ0sjMgppZiAobGVuZ3RoZW51bWVkKSB7CiAgJEVSUk9SKCcjMjogdGhlIGxlbmd0aCBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.1_A4_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjJfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjJfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAidGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgcHJvdG90eXBlIHByb3BlcnR5IG9mIEZ1bmN0aW9uKFwiXCIsIG51bGwpIGZhaWxzIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBmID0gbmV3IEZ1bmN0aW9uKCIiLCBudWxsKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpmcHJvdG8gPSBmLnByb3RvdHlwZTsKCi8vQ0hFQ0sjMgppZiAoZGVsZXRlIGYucHJvdG90eXBlKSB7CiAgJEVSUk9SKCcjMjogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKLy9DSEVDSyMzCmlmIChmLnByb3RvdHlwZSAhPT0gZnByb3RvKSB7CiAgJEVSUk9SKCcjMzogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.2_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjJfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjJfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAidGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0iLAoKZGVzY3JpcHRpb246ICJDaGVja2luZyBpZiBkZWxldGluZyB0aGUgcHJvdG90eXBlIHByb3BlcnR5IG9mIEZ1bmN0aW9uKHZvaWQgMCwgXCJcIikgZmFpbHMiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIGYgPSBGdW5jdGlvbih2b2lkIDAsICIiKTsKCi8vQ0hFQ0sjMQppZiAoIShmLmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKSkpIHsKICAkRkFJTCgnIzE6IHRoZSBmdW5jdGlvbiBoYXMgbGVuZ3RoIHByb3BlcnR5LicpOwp9CgpmcHJvdG8gPSBmLnByb3RvdHlwZTsKCi8vQ0hFQ0sjMgppZiAoZGVsZXRlIGYucHJvdG90eXBlKSB7CiAgJEVSUk9SKCcjMjogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKLy9DSEVDSyMzCmlmIChmLnByb3RvdHlwZSAhPT0gZnByb3RvKSB7CiAgJEVSUk9SKCcjMzogdGhlIHByb3RvdHlwZSBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBEb250RGVsZXRlIH0nKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.2_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDEuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIG51bWJlciIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCgxIGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A1_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDIuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHN0cmluZyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCgiMSIgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDMiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDMuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIGJvb2xlYW4gdHJ1ZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh0cnVlIGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A1_T3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDQiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDQuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIGJvb2xlYW4gZmFsc2UiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBGdW5jdGlvbigibmFtZSIsInRoaXMubmFtZT1uYW1lOyIpOwoKLy9DSEVDSyMxCmlmICgoZmFsc2UgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T4"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDUuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHZvaWQgMCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh2b2lkIDAgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDYuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIG51bGwiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBGdW5jdGlvbigibmFtZSIsInRoaXMubmFtZT1uYW1lOyIpOwoKLy9DSEVDSyMxCmlmICgobnVsbCBpbnN0YW5jZW9mICBGQUNUT1JZKSE9PWZhbHNlKSB7CiAgJEVSUk9SKCcjMTogQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A1_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDciLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDcuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHVuZGVmaW5lZCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh1bmRlZmluZWQgaW5zdGFuY2VvZiAgRkFDVE9SWSkhPT1mYWxzZSkgewogICRFUlJPUignIzE6IEFzc3VtZSBGIGlzIGEgRnVuY3Rpb24gb2JqZWN0LiBXaGVuIHRoZSBbW0hhc0luc3RhbmNlXV0gbWV0aG9kIG9mIEYgaXMgY2FsbGVkIHdpdGggdmFsdWUgViwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IGkpIElmIFYgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGZhbHNlJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T7"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTFfVDgiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTFfVDguanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSB0YWtlbjogaSkgSWYgViBpcyBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UiLAoKZGVzY3JpcHRpb246ICJWIGlzIHVuZGVmaW5lZCB2YXJpYWJsZSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJuYW1lIiwidGhpcy5uYW1lPW5hbWU7Iik7CgovL0NIRUNLIzEKaWYgKCh4IGluc3RhbmNlb2YgIEZBQ1RPUlkpIT09ZmFsc2UpIHsKICAkRVJST1IoJyMxOiBBc3N1bWUgRiBpcyBhIEZ1bmN0aW9uIG9iamVjdC4gV2hlbiB0aGUgW1tIYXNJbnN0YW5jZV1dIG1ldGhvZCBvZiBGIGlzIGNhbGxlZCB3aXRoIHZhbHVlIFYsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOiBpKSBJZiBWIGlzIG5vdCBhbiBvYmplY3QsIHJldHVybiBmYWxzZScpOwp9Cgp2YXIgeDsKCiB9Cn0pOwoK","id":"S15.3.5.3_A1_T8"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTJfVDIuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWIGFuZCBWIGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiRi5wcm90b3R5cGUgaXMgdW5kZWZpbmVkLCBhbmQgViBpcyBlbXB0eSBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIEZBQ1RPUlkgPSBuZXcgRnVuY3Rpb247CgpGQUNUT1JZLnByb3RvdHlwZSA9IHVuZGVmaW5lZDsKCm9iaj17fTsKCi8vQ0hFQ0sjMQp0cnkgewogIG9iaiBpbnN0YW5jZW9mICBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgCSRFUlJPUignIzEuMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKICB9Cn0KCgoKIH0KfSk7Cgo=","id":"S15.3.5.3_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDUiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTJfVDUuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyB2b2lkIDAsIGFuZCBWIGlzIG5ldyBGIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gRnVuY3Rpb24oInRoaXMucHJvcD0xOyIpOwoKRkFDVE9SWS5wcm90b3R5cGUubmFtZSA9ICJmYWlyeSI7CgppbnN0YW5jZSA9IG5ldyBGQUNUT1JZOwoKRkFDVE9SWS5wcm90b3R5cGUgPSB2b2lkIDA7CgovLyBDSEVDSyMxCnRyeSB7CiAgaW5zdGFuY2UgaW5zdGFuY2VvZiBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAkRVJST1IoJyMxLjE6IE8gaXMgbm90IGFuIG9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgovLyBDSEVDSyMyCmlmICgoaW5zdGFuY2UuY29uc3RydWN0b3IgIT09IEZBQ1RPUlkpIHx8IChpbnN0YW5jZS5uYW1lICE9PSAiZmFpcnkiKSkgewogICRFUlJPUignIzI6IGluc3RhbmNlLmNvbnN0cnVjdG9yID09PSBGQUNUT1JZJyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5.3_A2_T5"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTJfVDYiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTJfVDYuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YiLAoKZGVzY3JpcHRpb246ICJGLnByb3RvdHlwZSBpcyBzdHJpbmcsIGFuZCBWIGlzIGZ1bmN0aW9uIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gbmV3IEZ1bmN0aW9uOwoKRkFDVE9SWS5wcm90b3R5cGUgPSAiZXJyb3IiOwoKLy8gQ0hFQ0sjMQp0cnkgewogICggZnVuY3Rpb24oKSB7CiAgfSkgaW5zdGFuY2VvZiBGQUNUT1JZOwogICRGQUlMKCcjMTogTyBpcyBub3QgYW4gb2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogIGlmICghKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKSB7CiAgICAkRVJST1IoJyMxLjE6IE8gaXMgbm90IGFuIG9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uJyk7CiAgfQp9CgogfQp9KTsKCg==","id":"S15.3.5.3_A2_T6"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTNfVDEiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTNfVDEuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWIGFuZCBWIGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiRi5wcm90b3R5cGUudHlwZSBpcyAxLCBhbmQgViBpcyBuZXcgRiIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJ0aGlzLm5hbWU9XCJyb290XCIiKTsKCkZBQ1RPUlkucHJvdG90eXBlLnR5cGU9MTsKCmluc3RhbmNlID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBGQUNUT1JZKSkgewogICRFUlJPUignIzE6IElmIE8gYW5kIFYgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IG9yIGlmIHRoZXkgcmVmZXIgdG8gb2JqZWN0cyBqb2luZWQgdG8gZWFjaCBvdGhlciAoMTMuMS4yKSwgcmV0dXJuIHRydWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41LjNfQTNfVDIiLAoKcGF0aDogIlRlc3RDYXNlcy8xNV9OYXRpdmUvMTUuM19GdW5jdGlvbl9PYmplY3RzLzE1LjMuNV9Qcm9wZXJ0aWVzX29mX0Z1bmN0aW9uX0luc3RhbmNlcy9TMTUuMy41LjNfQTNfVDIuanMiLAoKYXNzZXJ0aW9uOiAiQXNzdW1lIEYgaXMgYSBGdW5jdGlvbiBvYmplY3QuIFdoZW4gdGhlIFtbSGFzSW5zdGFuY2VdXSBtZXRob2Qgb2YgRiBpcyBjYWxsZWQgd2l0aCB2YWx1ZSBWIGFuZCBWIGlzIGFuIG9iamVjdCwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgdGFrZW46IiwKCmRlc2NyaXB0aW9uOiAiRi5wcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZSwgYW5kIFYgaXMgZW1wdHkgb2JqZWN0IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUtFRkFDVE9SWSA9IEZ1bmN0aW9uKCk7CgpmYWtlaW5zdGFuY2UgPSB7fTsKCi8vQ0hFQ0sjMQppZiAoZmFrZWluc3RhbmNlIGluc3RhbmNlb2YgRkFLRUZBQ1RPUlkpIHsKICAkRVJST1IoJyMxOiBJZiBPIGFuZCBWIHJlZmVyIHRvIHRoZSBzYW1lIG9iamVjdCBvciBpZiB0aGV5IHJlZmVyIHRvIG9iamVjdHMgam9pbmVkIHRvIGVhY2ggb3RoZXIgKDEzLjEuMiksIHJldHVybiB0cnVlJyk7Cn0KCkZBS0VGQUNUT1JZLnByb3RvdHlwZT1PYmplY3QucHJvdG90eXBlOwoKLy9DSEVDSyMyCmlmICghKGZha2VpbnN0YW5jZSBpbnN0YW5jZW9mIEZBS0VGQUNUT1JZKSkgewogICRFUlJPUignIzI6IElmIE8gYW5kIFYgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IG9yIGlmIHRoZXkgcmVmZXIgdG8gb2JqZWN0cyBqb2luZWQgdG8gZWFjaCBvdGhlciAoMTMuMS4yKSwgcmV0dXJuIHRydWUnKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5.3_A3_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EyX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BMl9UMS5qcyIsCgphc3NlcnRpb246ICJFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eSIsCgpkZXNjcmlwdGlvbjogIkZvciB0ZXN0aW5nIGNhbGwgRnVuY3Rpb24oXCJ2YXIgeCA9MTsgdGhpcy55PTI7cmV0dXJuIFxcXCJPS1xcXCI7XCIpKCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgIC8vQ0hFQ0sjMQppZiAoRnVuY3Rpb24oInZhciB4ID0xOyB0aGlzLnk9MjtyZXR1cm4gXCJPS1wiOyIpKCkgIT09ICJPSyIpIHsKICAkRVJST1IoJyMxOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKHR5cGVvZiB4ICE9PSAidW5kZWZpbmVkIikgewogICRFUlJPUignIzI6IEV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ2FsbF1dIHByb3BlcnR5Jyk7Cn0KCi8vQ0hFQ0sjMwppZiAoeSAhPT0gMikgewogICRFUlJPUignIzM6IEV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ2FsbF1dIHByb3BlcnR5Jyk7Cn0KCiB9Cn0pOwoK","id":"S15.3.5_A2_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EyX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BMl9UMi5qcyIsCgphc3NlcnRpb246ICJFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eSIsCgpkZXNjcmlwdGlvbjogIkZvciB0ZXN0aW5nIGNhbGwgKG5ldyBGdW5jdGlvbihcImFyZzEsYXJnMlwiLFwidmFyIHggPWFyZzE7IHRoaXMueT1hcmcyO3JldHVybiBhcmcxK2FyZzI7XCIpKShcIjFcIiwyKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgLy9DSEVDSyMxCmlmICgobmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIiLCJ2YXIgeCA9YXJnMTsgdGhpcy55PWFyZzI7cmV0dXJuIGFyZzErYXJnMjsiKSkoIjEiLDIpICE9PSAiMTIiKSB7CiAgJEVSUk9SKCcjMTogRXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDYWxsXV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMyCmlmICh0eXBlb2YgeCAhPT0gInVuZGVmaW5lZCIpIHsKICAkRVJST1IoJyMyOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzMKaWYgKHkgIT09IDIpIHsKICAkRVJST1IoJyMzOiBFdmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NhbGxdXSBwcm9wZXJ0eScpOwp9CgogfQp9KTsKCg==","id":"S15.3.5_A2_T2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EzX1QxIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BM19UMS5qcyIsCgphc3NlcnRpb246ICJldmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQXMgY29uc3RydWN0b3IgdXNlIEZ1bmN0aW9uKFwidmFyIHggPTE7IHRoaXMueT0yO3JldHVybiBcXFwiT0tcXFwiO1wiKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgRkFDVE9SWSA9IEZ1bmN0aW9uKCJ2YXIgeCA9MTsgdGhpcy55PTI7cmV0dXJuIFwiT0tcIjsiKTsKb2JqID0gbmV3IEZBQ1RPUlk7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMTogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gRkFDVE9SWSkgewogICRFUlJPUignIzI6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoueSAhPT0gMikgewogICRFUlJPUignIzM6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5_A3_T1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICJTMTUuMy41X0EzX1QyIiwKCnBhdGg6ICJUZXN0Q2FzZXMvMTVfTmF0aXZlLzE1LjNfRnVuY3Rpb25fT2JqZWN0cy8xNS4zLjVfUHJvcGVydGllc19vZl9GdW5jdGlvbl9JbnN0YW5jZXMvUzE1LjMuNV9BM19UMi5qcyIsCgphc3NlcnRpb246ICJldmVyeSBmdW5jdGlvbiBpbnN0YW5jZSBoYXMgYSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IiwKCmRlc2NyaXB0aW9uOiAiQXMgY29uc3RydWN0b3IgdXNlIG5ldyBGdW5jdGlvbihcImFyZzEsYXJnMlwiLFwidmFyIHggPTE7IHRoaXMueT1hcmcxK2FyZzI7cmV0dXJuIFxcXCJPS1xcXCI7XCIpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICBGQUNUT1JZID0gbmV3IEZ1bmN0aW9uKCJhcmcxLGFyZzIiLCJ2YXIgeCA9MTsgdGhpcy55PWFyZzErYXJnMjtyZXR1cm4gXCJPS1wiOyIpOwpvYmogPSBuZXcgRkFDVE9SWSgiMSIsMik7CgovL0NIRUNLIzEKaWYgKHR5cGVvZiBvYmogIT09ICJvYmplY3QiKSB7CiAgJEVSUk9SKCcjMTogZXZlcnkgZnVuY3Rpb24gaW5zdGFuY2UgaGFzIGEgW1tDb25zdHJ1Y3RdXSBwcm9wZXJ0eScpOwp9CgovL0NIRUNLIzIKaWYgKG9iai5jb25zdHJ1Y3RvciAhPT0gRkFDVE9SWSkgewogICRFUlJPUignIzI6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKLy9DSEVDSyMzCmlmIChvYmoueSAhPT0gIjEyIikgewogICRFUlJPUignIzM6IGV2ZXJ5IGZ1bmN0aW9uIGluc3RhbmNlIGhhcyBhIFtbQ29uc3RydWN0XV0gcHJvcGVydHknKTsKfQoKIH0KfSk7Cgo=","id":"S15.3.5_A3_T2"}]}}
\ No newline at end of file
diff --git a/website/resources/scripts/testcases/SputnikGlobalScope.js b/website/resources/scripts/testcases/SputnikGlobalScope.js
index 2d7dc03833f96342214a643b8cf54f42efd80aa8..dfc6f1f6f35453a8c026cd48450471bb4925f571 100644
--- a/website/resources/scripts/testcases/SputnikGlobalScope.js
+++ b/website/resources/scripts/testcases/SputnikGlobalScope.js
@@ -238,6 +238,7 @@ GlobalScopeTests["S12.14_A16_T6"]={"assertion":"TryStatement: \"try Block Catch\
 GlobalScopeTests["S12.14_A16_T7"]={"assertion":"TryStatement: \"try Block Catch\" or \"try Block Finally\" or \"try Block Catch Finally\"","description":"Block: \"{ StatementList }\". Checking if execution of \"try{} catch(){\" fails","id":"S12.14_A16_T7","path":"12_Statement\\12.14_The_try_Statement\\S12.14_A16_T7.js","negative":"."};
 GlobalScopeTests["S12.14_A16_T8"]={"assertion":"TryStatement: \"try Block Catch\" or \"try Block Finally\" or \"try Block Catch Finally\"","description":"Block: \"{ StatementList }\". Catch: \"catch (Identifier ) Block\". Checking if execution of \"try{} catch(){finally{}\" fails","id":"S12.14_A16_T8","path":"12_Statement\\12.14_The_try_Statement\\S12.14_A16_T8.js","negative":"."};
 GlobalScopeTests["S12.14_A16_T9"]={"assertion":"TryStatement: \"try Block Catch\" or \"try Block Finally\" or \"try Block Catch Finally\"","description":"Checking if execution of \"catch(){} finally{}\" fails","id":"S12.14_A16_T9","path":"12_Statement\\12.14_The_try_Statement\\S12.14_A16_T9.js","negative":"."};
+GlobalScopeTests["S12.1_A1"]={"assertion":"The production Block { } in strict code can't contain function declaration","description":"Trying to declare function at the Block statement","id":"S12.1_A1","path":"12_Statement\\12.1_Block\\S12.1_A1.js","negative":"."};
 GlobalScopeTests["S12.1_A4_T1"]={"assertion":"The production Block can't be inside of expression","description":"Checking if execution of \"y={__func}()\" fails","id":"S12.1_A4_T1","path":"12_Statement\\12.1_Block\\S12.1_A4_T1.js","negative":"."};
 GlobalScopeTests["S12.1_A4_T2"]={"assertion":"The production Block can't be inside of expression","description":"Checking if execution of \"y={x}\" fails","id":"S12.1_A4_T2","path":"12_Statement\\12.1_Block\\S12.1_A4_T2.js","negative":"."};
 GlobalScopeTests["S12.2_A8_T1"]={"assertion":"Only AssignmentExpression is admitted when variable is initialized","description":"Checking if execution of \"var x += 1\" fails","id":"S12.2_A8_T1","path":"12_Statement\\12.2_Variable_Statement\\S12.2_A8_T1.js","negative":"."};
@@ -254,8 +255,12 @@ GlobalScopeTests["S12.5_A2"]={"assertion":"In the \"if\" Statement eval in Expre
 GlobalScopeTests["S12.5_A6_T1"]={"assertion":"In the If statement expression must be enclosed in braces","description":"Checking if execution of \"if true\" fails","id":"S12.5_A6_T1","path":"12_Statement\\12.5_The_if_Statement\\S12.5_A6_T1.js","negative":"."};
 GlobalScopeTests["S12.5_A6_T2"]={"assertion":"In the If statement expression must be enclosed in braces","description":"Checking if execution of \"if false\" fails","id":"S12.5_A6_T2","path":"12_Statement\\12.5_The_if_Statement\\S12.5_A6_T2.js","negative":"."};
 GlobalScopeTests["S12.5_A8"]={"assertion":"In the \"if\" Statement empty expression is not allowed","description":"Checking if execution of \"if()\" fails","id":"S12.5_A8","path":"12_Statement\\12.5_The_if_Statement\\S12.5_A8.js","negative":"."};
+GlobalScopeTests["S12.5_A9_T1"]={"assertion":"Function declaration within an \"if\" statement in strict code is not allowed","description":"Declaring function within an \"if\" statement","id":"S12.5_A9_T1","path":"12_Statement\\12.5_The_if_Statement\\S12.5_A9_T1.js","negative":"."};
+GlobalScopeTests["S12.5_A9_T2"]={"assertion":"Function declaration within an \"if\" statement in strict code is not allowed","description":"Declaring function within an \"if\" that is declared within the strict function","id":"S12.5_A9_T2","path":"12_Statement\\12.5_The_if_Statement\\S12.5_A9_T2.js","negative":"."};
 GlobalScopeTests["S12.5_A9_T3"]={"assertion":"Function declaration within an \"if\" statement is not allowed","description":"Declaring function within an \"if\" statement that is declared within the function declaration","id":"S12.5_A9_T3","path":"12_Statement\\12.5_The_if_Statement\\S12.5_A9_T3.js","negative":"."};
 GlobalScopeTests["S12.6.1_A12"]={"assertion":"Any statement within \"do-while\" construction must be a compound","description":"Checking if execution of \"do var x=1; var y =2; while (0)\" fails","id":"S12.6.1_A12","path":"12_Statement\\12.6_Iteration_Statements\\12.6.1_The_do_while_Statement\\S12.6.1_A12.js","negative":"."};
+GlobalScopeTests["S12.6.1_A13_T1"]={"assertion":"FunctionDeclaration within a \"do-while\" Block in strict code is not allowed","description":"Declaring function within a \"do-while\" loop","id":"S12.6.1_A13_T1","path":"12_Statement\\12.6_Iteration_Statements\\12.6.1_The_do_while_Statement\\S12.6.1_A13_T1.js","negative":"."};
+GlobalScopeTests["S12.6.1_A13_T2"]={"assertion":"FunctionDeclaration within a \"do-while\" Block in strict code is not allowed","description":"Declaring a function within a \"do-while\" loop that is within a strict function","id":"S12.6.1_A13_T2","path":"12_Statement\\12.6_Iteration_Statements\\12.6.1_The_do_while_Statement\\S12.6.1_A13_T2.js","negative":"."};
 GlobalScopeTests["S12.6.1_A13_T3"]={"assertion":"FunctionDeclaration within a \"do-while\" Block is not allowed","description":"Declaring a function within a \"do-while\" loop that is within a function declaration itself","id":"S12.6.1_A13_T3","path":"12_Statement\\12.6_Iteration_Statements\\12.6.1_The_do_while_Statement\\S12.6.1_A13_T3.js","negative":"."};
 GlobalScopeTests["S12.6.1_A15"]={"assertion":"Block within a \"do-while\" Expression is not allowed","description":"Using \"{0}\" Block as an Expression","id":"S12.6.1_A15","path":"12_Statement\\12.6_Iteration_Statements\\12.6.1_The_do_while_Statement\\S12.6.1_A15.js","negative":"."};
 GlobalScopeTests["S12.6.1_A6_T1"]={"assertion":"Expression in \"do-while\" IterationStatement is bracketed with braces","description":"Checking if execution of \"do{} while 1\" fails","id":"S12.6.1_A6_T1","path":"12_Statement\\12.6_Iteration_Statements\\12.6.1_The_do_while_Statement\\S12.6.1_A6_T1.js","negative":"."};
@@ -342,4 +347,20 @@ GlobalScopeTests["S15.2.4.5_A13"]={"assertion":"Let O be the result of calling T
 GlobalScopeTests["S15.2.4.6_A12"]={"assertion":"Let O be the result of calling ToObject passing the this value as the argument.","description":"","id":"S15.2.4.6_A12","path":"15_Native\\15.2_Object_Objects\\15.2.4_Properties_of_the_Object_Prototype_Object\\15.2.4.6_Object.prototype.isPrototypeOf\\S15.2.4.6_A12.js","negative":"."};
 GlobalScopeTests["S15.2.4.6_A13"]={"assertion":"Let O be the result of calling ToObject passing the this value as the argument.","description":"","id":"S15.2.4.6_A13","path":"15_Native\\15.2_Object_Objects\\15.2.4_Properties_of_the_Object_Prototype_Object\\15.2.4.6_Object.prototype.isPrototypeOf\\S15.2.4.6_A13.js","negative":"."};
 GlobalScopeTests["S15.2.4.7_A12"]={"assertion":"Let O be the result of calling ToObject passing the this value as the argument.","description":"","id":"S15.2.4.7_A12","path":"15_Native\\15.2_Object_Objects\\15.2.4_Properties_of_the_Object_Prototype_Object\\15.2.4.7_Object.prototype.propertyIsEnumerable\\S15.2.4.7_A12.js","negative":"."};
-GlobalScopeTests["S15.2.4.7_A13"]={"assertion":"Let O be the result of calling ToObject passing the this value as the argument.","description":"","id":"S15.2.4.7_A13","path":"15_Native\\15.2_Object_Objects\\15.2.4_Properties_of_the_Object_Prototype_Object\\15.2.4.7_Object.prototype.propertyIsEnumerable\\S15.2.4.7_A13.js","negative":"."};
\ No newline at end of file
+GlobalScopeTests["S15.2.4.7_A13"]={"assertion":"Let O be the result of calling ToObject passing the this value as the argument.","description":"","id":"S15.2.4.7_A13","path":"15_Native\\15.2_Object_Objects\\15.2.4_Properties_of_the_Object_Prototype_Object\\15.2.4.7_Object.prototype.propertyIsEnumerable\\S15.2.4.7_A13.js","negative":"."};
+GlobalScopeTests["S15.3.4.2_A12"]={"assertion":"The Function.prototype.toString function is not generic; it throws a TypeError exception if its this value is not a Function object.","description":"","id":"S15.3.4.2_A12","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.2_Function.prototype.toString\\S15.3.4.2_A12.js","negative":"."};
+GlobalScopeTests["S15.3.4.2_A13"]={"assertion":"The toString function is not generic; it throws a TypeError exception if its this value is not a Function object.","description":"","id":"S15.3.4.2_A13","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.2_Function.prototype.toString\\S15.3.4.2_A13.js","negative":"."};
+GlobalScopeTests["S15.3.4.2_A14"]={"assertion":"The toString function is not generic; it throws a TypeError exception if its this value is not a Function object.","description":"","id":"S15.3.4.2_A14","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.2_Function.prototype.toString\\S15.3.4.2_A14.js","negative":"."};
+GlobalScopeTests["S15.3.4.2_A15"]={"assertion":"The toString function is not generic; it throws a TypeError exception if its this value is not a Function object.","description":"Whether or not they are callable, RegExp objects are not Function objects, so toString should throw a TypeError.","id":"S15.3.4.2_A15","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.2_Function.prototype.toString\\S15.3.4.2_A15.js","negative":"."};
+GlobalScopeTests["S15.3.4.2_A16"]={"assertion":"The toString function is not generic; it throws a TypeError exception if its this value is not a Function object.","description":"The String constructor, given an object, should invoke that object's toString method as a method, i.e., with its this value bound to that object.","id":"S15.3.4.2_A16","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.2_Function.prototype.toString\\S15.3.4.2_A16.js","negative":"."};
+GlobalScopeTests["S15.3.4.3_A13"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.3_A13","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.3_Function.prototype.apply\\S15.3.4.3_A13.js","negative":"."};
+GlobalScopeTests["S15.3.4.3_A14"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.3_A14","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.3_Function.prototype.apply\\S15.3.4.3_A14.js","negative":"."};
+GlobalScopeTests["S15.3.4.3_A15"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.3_A15","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.3_Function.prototype.apply\\S15.3.4.3_A15.js","negative":"."};
+GlobalScopeTests["S15.3.4.4_A13"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.4_A13","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.4_Function.prototype.call\\S15.3.4.4_A13.js","negative":"."};
+GlobalScopeTests["S15.3.4.4_A14"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.4_A14","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.4_Function.prototype.call\\S15.3.4.4_A14.js","negative":"."};
+GlobalScopeTests["S15.3.4.4_A15"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.4_A15","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.4_Function.prototype.call\\S15.3.4.4_A15.js","negative":"."};
+GlobalScopeTests["S15.3.4.5_A1"]={"assertion":"\"caller\" of bound function is poisoned (step 20)","description":"","id":"S15.3.4.5_A1","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.5_Function.prototype.bind\\S15.3.4.5_A1.js","negative":"."};
+GlobalScopeTests["S15.3.4.5_A13"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.5_A13","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.5_Function.prototype.bind\\S15.3.4.5_A13.js","negative":"."};
+GlobalScopeTests["S15.3.4.5_A14"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.5_A14","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.5_Function.prototype.bind\\S15.3.4.5_A14.js","negative":"."};
+GlobalScopeTests["S15.3.4.5_A15"]={"assertion":"If IsCallable(func) is false, then throw a TypeError exception.","description":"","id":"S15.3.4.5_A15","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.5_Function.prototype.bind\\S15.3.4.5_A15.js","negative":"."};
+GlobalScopeTests["S15.3.4.5_A2"]={"assertion":"\"arguments\" of bound function is poisoned (step 21)","description":"","id":"S15.3.4.5_A2","path":"15_Native\\15.3_Function_Objects\\15.3.4_Properties_of_the_Function_Prototype_Object\\15.3.4.5_Function.prototype.bind\\S15.3.4.5_A2.js","negative":"."};
\ No newline at end of file