<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>39936</bug_id>
          
          <creation_ts>2010-05-30 12:51:52 -0700</creation_ts>
          <short_desc>Implement additional DOM attribute reflection for bindings</short_desc>
          <delta_ts>2010-06-18 10:55:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40758</dependson>
    
    <dependson>40813</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>232210</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-30 12:51:52 -0700</bug_when>
    <thetext>Implement additional DOM attribute reflection for bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232211</commentid>
    <comment_count>1</comment_count>
      <attachid>57425</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-30 13:09:57 -0700</bug_when>
    <thetext>Created attachment 57425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232212</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-30 13:12:10 -0700</bug_when>
    <thetext>Attachment 57425 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:

WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:529:  _g_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:535:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:537:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:545:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:547:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:549:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:550:  _g_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:556:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:558:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:560:  Extra space before )  [whitespace/parens] [2]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:566:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:568:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:575:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:577:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:579:  Extra space before )  [whitespace/parens] [2]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:585:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:587:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:594:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:596:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:604:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:606:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:608:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:609:  _g_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 60 in 72 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232215</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-30 13:46:34 -0700</bug_when>
    <thetext>Attachment 57425 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2687049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232219</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-30 14:31:12 -0700</bug_when>
    <thetext>Attachment 57425 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/2739037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237478</commentid>
    <comment_count>5</comment_count>
      <attachid>58579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-12 21:59:32 -0700</bug_when>
    <thetext>Created attachment 58579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237480</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-12 22:00:23 -0700</bug_when>
    <thetext>Attachment 58579 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
er names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:90:  converted_obj_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:113:  converted_str_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:114:  converted_obj_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:116:  g_res is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:128:  converted_str_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:129:  converted_obj_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:131:  g_res is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:143:  converted_str_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:144:  converted_obj_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:147:  g_res is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:163:  converted_serialized_arg is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:402:  converted_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:422:  converted_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:442:  converted_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:495:  converted_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:514:  converted_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:567:  converted_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 24 in 76 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237503</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-12 22:53:22 -0700</bug_when>
    <thetext>Attachment 58579 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3337025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237638</commentid>
    <comment_count>8</comment_count>
      <attachid>58579</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-13 17:46:34 -0700</bug_when>
    <thetext>Comment on attachment 58579
Patch

r=me. My only concern is with the change to boolean reflected attributes. Is the change to not set the name as the value detectable in anyway (eg. doing a getAttribute())? If so, we should add tests for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238938</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-16 10:18:50 -0700</bug_when>
    <thetext>I need to change the boolean attributes first and add a test, then land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238939</commentid>
    <comment_count>10</comment_count>
      <attachid>58579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-16 10:19:27 -0700</bug_when>
    <thetext>Comment on attachment 58579
Patch

I’m going to clear Sam’s review flag so this doesn’t show up as a “reviewed patch”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239204</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-16 21:18:19 -0700</bug_when>
    <thetext>Bug 40758 separates out the fix for boolean reflected attributes and includes a test for the behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239768</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-17 22:58:06 -0700</bug_when>
    <thetext>Committed r61379: &lt;http://trac.webkit.org/changeset/61379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239773</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-17 23:19:57 -0700</bug_when>
    <thetext>This change broke the followings on Chromium Linux (maybe all platforms)

Regressions: Unexpected text diff mismatch :
  fast/dom/element-attribute-js-null.html = TEXT
  fast/dom/image-object.html = TEXT
  fast/events/onload-after-document-close-with-subresource.html = TEXT
  fast/forms/mutation-event-recalc.html = TEXT
  fast/forms/option-value-and-label.html = TEXT
  fast/js/custom-constructors.html = TEXT
  http/tests/misc/image-blocked-src-change.html = TEXT
  http/tests/misc/image-checks-for-accept.html = TEXT
  http/tests/misc/image-error.html = TEXT
  http/tests/security/frame-loading-via-document-write.html = TEXT
  http/tests/security/local-image-from-remote-whitelisted.html = TEXT
  http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded.html = TEXT

Regressions: Unexpected image mismatch :
  fast/canvas/image-object-in-canvas.html = IMAGE
  fast/canvas/image-pattern-rotate.html = IMAGE

Regressions: Unexpected image and text mismatch : 
  editing/pasteboard/select-element-1.html = IMAGE+TEXT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239774</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 23:22:33 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61379 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239777</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-17 23:44:31 -0700</bug_when>
    <thetext>The following tests failed on Leopard Intel Release:

editing/pasteboard/select-element-1.html -&gt; failed
fast/canvas/webgl/tex-image-and-sub-image-2d-with-image.html -&gt; failed
fast/dom/element-attribute-js-null.html -&gt; failed
fast/dom/image-object.html -&gt; failed
fast/events/onload-after-document-close-with-subresource.html -&gt; failed
fast/forms/mutation-event-recalc.html -&gt; failed
fast/forms/option-value-and-label.html -&gt; failed
fast/js/custom-constructors.html -&gt; failed
http/tests/misc/acid3.html -&gt; failed
http/tests/misc/image-blocked-src-change.html -&gt; failed
http/tests/misc/image-error.html -&gt; failed
http/tests/security/local-image-from-remote-whitelisted.html -&gt; failed
http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded.html -&gt; failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239786</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-18 00:01:34 -0700</bug_when>
    <thetext>Rolled out by r61384.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239903</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-18 07:20:45 -0700</bug_when>
    <thetext>Strange, I did a lot of local testing. I wonder why this failed everywhere. I guess I’ll rework and land it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239988</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-18 09:48:20 -0700</bug_when>
    <thetext>Committed r61413: &lt;http://trac.webkit.org/changeset/61413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239996</commentid>
    <comment_count>19</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-18 10:02:20 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Committed r61413: &lt;http://trac.webkit.org/changeset/61413&gt;

This broke the GTK+ build, as predicted by EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240027</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-18 10:47:46 -0700</bug_when>
    <thetext>The GTK failure on EWS was a different one in an earlier version of the patch. I fixed that one.

I have a few minutes and I’ll try to fix the new failure now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240034</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-18 10:55:13 -0700</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/61420&gt; should fix the GTK build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57425</attachid>
            <date>2010-05-30 13:09:57 -0700</date>
            <delta_ts>2010-06-12 21:59:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39936-20100530130956.patch</filename>
            <type>text/plain</type>
            <size>158891</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDQxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQyIEBACisyMDEwLTA1LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgYWRkaXRpb25hbCBET00gYXR0cmlidXRlIHJlZmxlY3Rpb24gZm9yIGJpbmRpbmdzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkzNgorCisg
ICAgICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgW1JlZmxlY3RdIGZvciBsb25nLCB1bnNpZ25lZCBs
b25nLCBhbmQgYm9vbGVhbgorICAgICAgICAgIGF0dHJpYnV0ZXMuCisgICAgICAgIC0gRml4ZWQg
Y29kZSB0aGF0IHNldCBhdHRyaWJ1dGVzIGxpa2UgdGhpczogPHZpZGVvIGNvbnRyb2xzPSJjb250
cm9scyI+CisgICAgICAgICAgdG8gaW5zdGVhZCBzZXQgdGhlbSBsaWtlIHRoaXM6IDx2aWRlbyBj
b250cm9scz4uCisgICAgICAgIC0gQWRkZWQgbG90cyBtb3JlIHVzZXMgb2YgW1JlZmxlY3RdLgor
ICAgICAgICAtIFJlbW92ZWQgbm93LXVubmVlZGVkIFtDb252ZXJ0RnJvbVN0cmluZ10uCisgICAg
ICAgIC0gTWFkZSBbUmVmbGVjdF0gaW1wbHkgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBzbyB3
ZSBjYW4gZ2V0IHJpZAorICAgICAgICAgIG9mIG1vc3QgdXNlcyBvZiB0aGUgbGF0dGVyLgorICAg
ICAgICAtIE1hZGUgW1JlZmxlY3RdIGF1dG9tYXRpY2FsbHkgbG93ZXJjYXNlIHRoZSBuYW1lIG9m
IHRoZSByZWZsZWN0ZWQKKyAgICAgICAgICBjb250ZW50IGF0dHJpYnV0ZSB0byBtaW5pbWl6ZSB0
aGUgbmVlZCB0byBzcGVjaWZ5IGEgY3VzdG9tIGNvbnRlbnQKKyAgICAgICAgICBhdHRyaWJ1dGUg
bmFtZS4KKworICAgICAgICBPbmUgdGhpbmcgdGhpcyBwYXRjaCBkb2VzICpub3QqIGRvIGlzIHJl
bW92ZSB0aGUgdW5uZWVkZWQgZnVuY3Rpb25zCisgICAgICAgIGluIHRoZSB2YXJpb3VzIERPTSBj
bGFzc2VzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkIGJ5IHRoZSBiaW5kaW5ncy4KKyAgICAgICAg
V2Ugc2hvdWxkIGRvIHRoYXQgaW4gYSBmb2xsb3d1cC4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbTogQWRkZWQgbmV3IGZ1bmN0aW9ucyBzbyBjb2RlCisgICAg
ICAgIGNhbiBiZSBzaGFyZWQgYWNyb3NzIGJpbmRpbmdzLCBHZXR0ZXJFeHByZXNzaW9uUHJlZml4
IGFuZAorICAgICAgICBTZXR0ZXJFeHByZXNzaW9uUHJlZml4LiBXZSBjYW4gZG8gYSBsb3QgbW9y
ZSByZWZhY3RvcmluZyBsaWtlCisgICAgICAgIHRoaXMgaW4gdGhlIGZ1dHVyZS4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06IFJlbW92ZWQgdW5u
ZWVkZWQKKyAgICAgICAgQ29udmVydEZyb21TdHJpbmcgaGFuZGxpbmcsIGNoYW5nZWQgdG8gdXNl
IHRoZSBuZXcKKyAgICAgICAgR2V0dGVyRXhwcmVzc2lvblByZWZpeCBhbmQgU2V0dGVyRXhwcmVz
c2lvblByZWZpeCBmdW5jdGlvbnMKKyAgICAgICAgdG8gYmV0dGVyIGhhbmRsZSByZWZsZWN0ZWQg
RE9NIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbTogQ2hhbmdlZCB0byB1c2UgdGhlIG5ldworICAgICAgICBHZXR0ZXJFeHByZXNzaW9u
UHJlZml4IGFuZCBTZXR0ZXJFeHByZXNzaW9uUHJlZml4IGZ1bmN0aW9ucworICAgICAgICBhbmQg
cmVtb3ZlZCBhIG5vdy11bm5lZWRlZCBJc1NWR0FuaW1hdGVkVHlwZSBzcGVjaWFsIGNhc2Ugc2lu
Y2UKKyAgICAgICAgdGhlIG5ldyBmdW5jdGlvbnMgdGFrZSBjYXJlIG9mIGl0LiBNYWRlIHJlZmxl
Y3RlZCBhdHRyaWJ1dGVzCisgICAgICAgIGF1dG9tYXRpY2FsbHkgY29udmVydCBudWxsIHRvIHRo
ZSBudWxsIHN0cmluZyB3aXRob3V0IGEKKyAgICAgICAgc2VwYXJhdGUgQ29udmVydE51bGxUb051
bGxTdHJpbmcgYXR0cmlidXRlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yT2JqQy5wbTogQ2hhbmdlZCB0byB1c2UgdGhlIG5ldworICAgICAgICBHZXR0ZXJFeHBy
ZXNzaW9uUHJlZml4IGFuZCBTZXR0ZXJFeHByZXNzaW9uUHJlZml4IGZ1bmN0aW9ucworICAgICAg
ICBhbmQgcmVtb3ZlZCBhIG5vdy11bm5lZWRlZCBJc1NWR0FuaW1hdGVkVHlwZSBzcGVjaWFsIGNh
c2Ugc2luY2UKKyAgICAgICAgdGhlIG5ldyBmdW5jdGlvbnMgdGFrZSBjYXJlIG9mIGl0LiBSZWRp
ZCB0aGUgc3BlY2lhbCBjYXNlcyBmb3IKKyAgICAgICAgb3duZXJEb2N1bWVudCBhbmQgZm9yIG9w
ZXJhdG9yIHRvIGZpdCBiZXR0ZXIgd2l0aCB0aGUgbmV3IGNvZGUKKyAgICAgICAgcGF0aHMuIFJl
bW92ZWQgdW5uZWVkZWQgQ29udmVydEZyb21TdHJpbmcgaGFuZGxpbmcuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogQ2hhbmdlZCB0byB1c2UgdGhlIG5l
dworICAgICAgICBHZXR0ZXJFeHByZXNzaW9uUHJlZml4IGFuZCBTZXR0ZXJFeHByZXNzaW9uUHJl
Zml4IGZ1bmN0aW9ucworICAgICAgICBhbmQgcmVtb3ZlZCBhIG5vdy11bm5lZWRlZCBJc1NWR0Fu
aW1hdGVkVHlwZSBzcGVjaWFsIGNhc2Ugc2luY2UKKyAgICAgICAgdGhlIG5ldyBmdW5jdGlvbnMg
dGFrZSBjYXJlIG9mIGl0LiBNYWRlIHJlZmxlY3RlZCBhdHRyaWJ1dGVzCisgICAgICAgIGF1dG9t
YXRpY2FsbHkgY29udmVydCBudWxsIHRvIHRoZSBudWxsIHN0cmluZyB3aXRob3V0IGEKKyAgICAg
ICAgc2VwYXJhdGUgQ29udmVydE51bGxUb051bGxTdHJpbmcgYXR0cmlidXRlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCBzb21lIHRlc3QgY2Fz
ZXMgZm9yCisgICAgICAgIGNvbnRlbnQgYXR0cmlidXRlIHJlZmxlY3Rpb24uCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDogVXBk
YXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmouaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbTogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHA6IERpdHRvLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Qm9vbGVhbkF0dHJpYnV0ZSk6IENoYW5nZWQgdG8g
c2V0IHRoZSBhdHRyaWJ1dGUKKyAgICAgICAgd2l0aG91dCBhIHZhbHVlIHJhdGhlciB0aGFuIHdp
dGggYSB2YWx1ZSBlcXVhbCB0byB0aGUgYXR0cmlidXRlIG5hbWUuCisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpnZXRJbnRlZ3JhbEF0dHJpYnV0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2V0SW50ZWdyYWxBdHRyaWJ1dGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUpOiBBZGRl
ZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOiBBZGRlZCBuZXcgYXR0cmlidXRlIGdldC9zZXQg
ZnVuY3Rpb25zIGZvciBiaW5kaW5ncy4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTEJhc2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEJsb2NrcXVvdGVF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRExpc3RF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTEZvbnRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEhSRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSGVhZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxMSUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTWVudUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxNb2RFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxPTGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdyYXBoRWxl
bWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxQcmVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxRdW90ZUVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGw6CisgICAg
ICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxV
TGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaWRsOgorICAgICAgICBBZGRlZCBtb3JlIHVzZXMgb2Yg
W1JlZmxlY3RdLiBHb3QgcmlkIG9mIHVzZXMgb2YgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSB0
aGF0CisgICAgICAgIGFyZSBub3cgdW5uZWVkZWQgc2luY2UgW1JlZmxlY3RdIG5vdyBpbXBsaWVz
IHRoYXQuIENoYW5nZWQgZm9ybWF0dGluZyB0byBiZQorICAgICAgICBzaW1wbGVyIGFuZCBjb25z
aXN0ZW50IHdpdGhvdXQgYWxsIHRoZSBsaW5pbmcgdXAgYW5kIG11bHRpcGxlIGxpbmVzLgorCisg
ICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEF1dG9mb2N1cyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRSZXF1aXJlZCk6CisgICAgICAgIENoYW5n
ZWQgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgd2l0aG91dCBhIHZhbHVlIHJhdGhlciB0aGFuIHdpdGgg
YSB2YWx1ZSBlcXVhbAorICAgICAgICB0byB0aGUgYXR0cmlidXRlIG5hbWUuCisKIDIwMTAtMDUt
MzAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3IucG0JKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTM3OSw1ICszNzksODYgQEAgc3ViIExpbmtP
dmVybG9hZGVkRnVuY3Rpb25zCiAgICAgfQogfQogCitzdWIgQXR0cmlidXRlTmFtZUZvckdldHRl
ckFuZFNldHRlcgoreworICAgIG15ICgkZ2VuZXJhdG9yLCAkYXR0cmlidXRlKSA9IEBfOworCisg
ICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisKKyAg
ICAjIEF2b2lkIGNsYXNoIHdpdGggQysrIGtleXdvcmQuCisgICAgJGF0dHJpYnV0ZU5hbWUgPSAi
X29wZXJhdG9yIiBpZiAkYXR0cmlidXRlTmFtZSBlcSAib3BlcmF0b3IiOworCisgICAgIyBTVkcg
YW5pbWF0ZWQgdHlwZXMgbmVlZCB0byB1c2UgYSBzcGVjaWFsIGF0dHJpYnV0ZSBuYW1lLgorICAg
ICMgVGhlIHJlc3Qgb2YgdGhlIHNwZWNpYWwgY2FzaW5nIGZvciBTVkcgYW5pbWF0ZWQgdHlwZXMg
aXMgaGFuZGxlZCBpbiB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgY29kZSBnZW5lcmF0b3JzLgorICAg
ICRhdHRyaWJ1dGVOYW1lIC49ICJBbmltYXRlZCIgaWYgJGdlbmVyYXRvci0+SXNTVkdBbmltYXRl
ZFR5cGUoJGdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
KSk7CisKKyAgICByZXR1cm4gJGF0dHJpYnV0ZU5hbWU7Cit9CisKK3N1YiBDb250ZW50QXR0cmli
dXRlTmFtZQoreworICAgIG15ICgkZ2VuZXJhdG9yLCAkaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNl
TmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKKworICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifQor
ICAgICAgICB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
ZWZsZWN0VVJMIn07CisgICAgcmV0dXJuIHVuZGVmIGlmICEkY29udGVudEF0dHJpYnV0ZU5hbWU7
CisKKyAgICAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSBsYyAkZ2VuZXJhdG9yLT5BdHRyaWJ1dGVO
YW1lRm9yR2V0dGVyQW5kU2V0dGVyKCRhdHRyaWJ1dGUpIGlmICRjb250ZW50QXR0cmlidXRlTmFt
ZSBlcSAiMSI7CisKKyAgICBteSAkbmFtZXNwYWNlID0gJGdlbmVyYXRvci0+TmFtZXNwYWNlRm9y
QXR0cmlidXRlTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lKTsKKwor
ICAgICRpbXBsSW5jbHVkZXMtPnsiJHtuYW1lc3BhY2V9LmgifSA9IDE7CisgICAgcmV0dXJuICJX
ZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciI7Cit9CisK
K3N1YiBHZXR0ZXJFeHByZXNzaW9uUHJlZml4Cit7CisgICAgbXkgKCRnZW5lcmF0b3IsICRpbXBs
SW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKSA9IEBfOworCisgICAgbXkgJGNv
bnRlbnRBdHRyaWJ1dGVOYW1lID0gJGdlbmVyYXRvci0+Q29udGVudEF0dHJpYnV0ZU5hbWUoJGlt
cGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOworCisgICAgaWYgKCEkY29u
dGVudEF0dHJpYnV0ZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuICRnZW5lcmF0b3ItPldLX2xjZmly
c3QoJGdlbmVyYXRvci0+QXR0cmlidXRlTmFtZUZvckdldHRlckFuZFNldHRlcigkYXR0cmlidXRl
KSkgLiAiKCI7CisgICAgfQorCisgICAgbXkgJGZ1bmN0aW9uTmFtZTsKKyAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9KSB7Cisg
ICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2V0VVJMQXR0cmlidXRlIjsKKyAgICB9IGVsc2lmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICRmdW5j
dGlvbk5hbWUgPSAiaGFzQXR0cmlidXRlIjsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGUgZXEgImxvbmciKSB7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2V0SW50
ZWdyYWxBdHRyaWJ1dGUiOworICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZSBlcSAidW5zaWduZWQgbG9uZyIpIHsKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJnZXRVbnNp
Z25lZEludGVncmFsQXR0cmlidXRlIjsKKyAgICB9IGVsc2UgeworICAgICAgICAkZnVuY3Rpb25O
YW1lID0gImdldEF0dHJpYnV0ZSI7CisgICAgfQorCisgICAgcmV0dXJuICIkZnVuY3Rpb25OYW1l
KCRjb250ZW50QXR0cmlidXRlTmFtZSIKK30KKworc3ViIFNldHRlckV4cHJlc3Npb25QcmVmaXgK
K3sKKyAgICBteSAoJGdlbmVyYXRvciwgJGltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRh
dHRyaWJ1dGUpID0gQF87CisKKyAgICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAkZ2VuZXJh
dG9yLT5Db250ZW50QXR0cmlidXRlTmFtZSgkaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNlTmFtZSwg
JGF0dHJpYnV0ZSk7CisKKyAgICBpZiAoISRjb250ZW50QXR0cmlidXRlTmFtZSkgeworICAgICAg
ICByZXR1cm4gInNldCIgLiAkZ2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRnZW5lcmF0b3ItPkF0dHJp
YnV0ZU5hbWVGb3JHZXR0ZXJBbmRTZXR0ZXIoJGF0dHJpYnV0ZSkpIC4gIigiOworICAgIH0KKwor
ICAgIG15ICRmdW5jdGlvbk5hbWU7CisgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJzZXRCb29sZWFuQXR0
cmlidXRlIjsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgImxv
bmciKSB7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAic2V0SW50ZWdyYWxBdHRyaWJ1dGUiOwor
ICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAidW5zaWduZWQgbG9u
ZyIpIHsKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJzZXRVbnNpZ25lZEludGVncmFsQXR0cmli
dXRlIjsKKyAgICB9IGVsc2UgeworICAgICAgICAkZnVuY3Rpb25OYW1lID0gInNldEF0dHJpYnV0
ZSI7CisgICAgfQorCisgICAgcmV0dXJuICIkZnVuY3Rpb25OYW1lKCRjb250ZW50QXR0cmlidXRl
TmFtZSwgIgorfQogCiAxOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHdvcmtpbmcgY29weSkKQEAgLTM0
MSwyNSArMzQxLDEzIEBAIHN1YiBHZW5lcmF0ZVByb3BlcnR5IHsKICAgICBteSAkY29udmVydEZ1
bmN0aW9uID0gIiI7CiAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgewogICAgICAgICAkY29u
dmVydEZ1bmN0aW9uID0gIldlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgiOwotICAgIH0gZWxzaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9t
U3RyaW5nIn0pIHsKLSAgICAgICAgJGNvbnZlcnRGdW5jdGlvbiA9ICJXZWJDb3JlOjpTdHJpbmc6
Om51bWJlciI7CiAgICAgfQogCi0gICAgbXkgJHNldHRlckNvbnRlbnRIZWFkOwotICAgIG15ICRn
ZXR0ZXJDb250ZW50SGVhZDsKLSAgICBteSAkcmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKLSAgICBteSAkcmVmbGVjdFVSTCA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3RVUkwi
fTsKLSAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAgbXkgJGNvbnRl
bnRBdHRyaWJ1dGVOYW1lID0gKCgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkgZXEgIjEiKSA/ICRj
YW1lbFByb3BOYW1lIDogKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKTsKLSAgICAgICAgbXkgJG5h
bWVzcGFjZSA9ICRjb2RlR2VuZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRpbnRl
cmZhY2VOYW1lLCAkY29udGVudEF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAkaW1wbEluY2x1ZGVz
eyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAgICAgbXkgJGdldEF0dHJpYnV0ZUZ1bmN0aW9u
TmFtZSA9ICRyZWZsZWN0VVJMID8gImdldFVSTEF0dHJpYnV0ZSIgOiAiZ2V0QXR0cmlidXRlIjsK
LSAgICAgICAgJHNldHRlckNvbnRlbnRIZWFkID0gImNvcmVTZWxmLT5zZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6JHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRBdHRyaWJ1dGVOYW1lfUF0dHIsICR7Y29udmVy
dEZ1bmN0aW9ufShnX3ZhbHVlX2dldF8kZ3R5cGUodmFsdWUpKSI7Ci0gICAgICAgICRnZXR0ZXJD
b250ZW50SGVhZCA9ICJjb3JlU2VsZi0+JHtnZXRBdHRyaWJ1dGVGdW5jdGlvbk5hbWV9KFdlYkNv
cmU6OiR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1BdHRyIjsKLSAgICB9IGVs
c2UgewotICAgICAgICAkc2V0dGVyQ29udGVudEhlYWQgPSAiY29yZVNlbGYtPnNldCR7c2V0UHJv
cE5hbWVGdW5jdGlvbn0oJHtjb252ZXJ0RnVuY3Rpb259KGdfdmFsdWVfZ2V0XyRndHlwZSh2YWx1
ZSkpIjsKLSAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gImNvcmVTZWxmLT4ke2dldFByb3BO
YW1lRnVuY3Rpb259KCI7Ci0gICAgfQorICAgIG15ICRnZXR0ZXJFeHByZXNzaW9uUHJlZml4ID0g
JGNvZGVHZW5lcmF0b3ItPkdldHRlckV4cHJlc3Npb25QcmVmaXgoXCVpbXBsSW5jbHVkZXMsICRp
bnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsKKyAgICBteSAkc2V0dGVyRXhwcmVzc2lvblByZWZp
eCA9ICRjb2RlR2VuZXJhdG9yLT5TZXR0ZXJFeHByZXNzaW9uUHJlZml4KFwlaW1wbEluY2x1ZGVz
LCAkaW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSk7CisKKyAgICBteSAkZ2V0dGVyQ29udGVudEhl
YWQgPSAiY29yZVNlbGYtPiRnZXR0ZXJFeHByZXNzaW9uUHJlZml4IjsKKyAgICBteSAkc2V0dGVy
Q29udGVudEhlYWQgPSAiY29yZVNlbGYtPiRzZXR0ZXJFeHByZXNzaW9uUHJlZml4JHtjb252ZXJ0
RnVuY3Rpb259KGdfdmFsdWVfZ2V0XyRndHlwZSh2YWx1ZSkpIjsKIAogICAgIGlmIChncmVwIHsk
XyBlcSAkYXR0cmlidXRlfSBAd3JpdGVhYmxlUHJvcGVydGllcykgewogICAgICAgICBwdXNoKEB0
eHRTZXRQcm9wcywgIiAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CkBAIC0zOTIsMTcg
KzM4MCw2IEBAIEVPRgogICAgICAgICAkZG9uZSA9IDE7CiAgICAgfQogCi0gICAgaWYoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmci
fSkgewotICAgICAgICAjIFRPRE86IEFkZCBvdGhlciBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmb3Ig
ZGlmZmVyZW50IHR5cGVzLiAgQ3VycmVudAotICAgICAgICAjIElETHMgb25seSBsaXN0IGxvbmdz
LgotICAgICAgICBpZigkZ3R5cGUgZXEgImxvbmciKSB7Ci0gICAgICAgICAgICAkY29udmVydEZ1
bmN0aW9uID0gIiI7Ci0gICAgICAgICAgICAkcG9zdENvbnZlcnRGdW5jdGlvbiA9ICIudG9JbnQo
KSI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkaWUgIkNhbid0IGNvbnZlcnQgdG8g
dHlwZSAke2d0eXBlfS4iOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgIyBGSVhNRTogZ2V0IHJp
ZCBvZiB0aGlzIGdsaXRjaD8KICAgICBteSAkX2d0eXBlID0gJGd0eXBlOwogICAgIGlmICgkZ3R5
cGUgZXEgInVzaG9ydCIpIHsKQEAgLTEwMDEsNyArOTc4LDYgQEAgc3ViIEdlbmVyYXRlRnVuY3Rp
b25zIHsKICAgICAgICAgICAgICMgVGhpcyB3aWxsIGNvbmZsaWN0IHdpdGggdGhlIGdldF90eXBl
KCkgZnVuY3Rpb24gd2UgZGVmaW5lIHRvIHJldHVybiBhIEdUeXBlCiAgICAgICAgICAgICAjIGFj
Y29yZGluZyB0byBHT2JqZWN0IGNvbnZlbnRpb25zLiAgU2tpcCB0aGlzIGZvciBub3cuCiAgICAg
ICAgICAgICB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIlVSTCIgICAgICMgVE9E
TzogaGFuZGxlIHRoaXMKLSAgICAgICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5nIn0gICAgIyBUT0RPOiBoYW5kbGUg
dGhpcwogICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICBuZXh0IFRPUDsKICAgICAgICAgfQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZp
c2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBB
bmRlcnMgQ2FybHNzb24gPGFuZGVyc2NhQG1hYy5jb20+CiAjIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KICMgQ29weXJpZ2h0IChDKSAyMDA2
IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+Ci0jIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8
Y2FtQG1jYy5pZC5hdT4KICMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwpAQCAtMTU2NCwyMCArMTU2NCw5IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSByZXN1bHQgPSAgIiAuIE5hdGl2ZVRvSlNWYWx1
ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAiIiwgImltcC4kaW1w
bEdldHRlckZ1bmN0aW9uTmFtZSgpIiwgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeHByZXNzaW9uID0gImltcC0+IiAuICRjb2RlR2Vu
ZXJhdG9yLT5HZXR0ZXJFeHByZXNzaW9uUHJlZml4KFwlaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNl
TmFtZSwgJGF0dHJpYnV0ZSkgLiAiKSI7CisgICAgICAgICAgICAgICAgICAgICAgICBteSAkanNU
eXBlID0gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFz
c05hbWUsICRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uLCAkZ2V0dGVyRXhwcmVzc2lv
biwgImNhc3RlZFRoaXMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFt
ZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15
ICR2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwotICAgICAgICAg
ICAgICAgICAgICAgICAgbXkgJHJlZmxlY3RVUkwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAoKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJM
KSBlcSAiMSIpID8gJG5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkY29kZUdlbmVyYXRvci0+TmFtZXNw
YWNlRm9yQXR0cmlidXRlTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRlbnRBdHRyaWJ1dGVOYW1l
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke25hbWVzcGFj
ZX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkZ2V0QXR0cmlidXRl
RnVuY3Rpb25OYW1lID0gJHJlZmxlY3RVUkwgPyAiZ2V0VVJMQXR0cmlidXRlIiA6ICJnZXRBdHRy
aWJ1dGUiOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICJpbXAtPiRnZXRB
dHRyaWJ1dGVGdW5jdGlvbk5hbWUoJHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRBdHRyaWJ1dGVOYW1l
fUF0dHIpIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkdmFsdWUgPSAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIjsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRq
c1R5cGUgPSBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENs
YXNzTmFtZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24sICR2YWx1ZSwgImNhc3Rl
ZFRoaXMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNT
VkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCR0eXBlPiBvYmogPSAkanNUeXBlO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1
ZSByZXN1bHQgPSAgdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgb2JqLmdl
dCgpLCBpbXApO1xuIik7CkBAIC0xNzI4LDE3ICsxNzE3LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGltcC0+Y29tbWl0Q2hhbmdlKHBvZEltcCwgY2FzdGVkVGhpcyk7XG4iKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSBKU1ZhbHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkg
JHNldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhwcmVzc2lv
blByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOworCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25z
fTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRyZWZsZWN0VVJMID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9
ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkbmFtZSA6ICgkcmVmbGVjdCB8
fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAk
bmFtZXNwYWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0ZU5hbWUoJGlu
dGVyZmFjZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGltcC0+c2V0QXR0cmlidXRlKCR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1B
dHRyLCAkbmF0aXZlVmFsdWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoJG5hdGl2ZVZhbHVlIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT4kc2V0dGVyRXhwcmVzc2lv
blByZWZpeCRuYXRpdmVWYWx1ZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlv
bnN9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
Iik7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+
c2V0dGVyRXhjZXB0aW9uc307CkBAIC0yMzE0LDcgKzIyOTYsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0
aXZlCiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxTVkdQYWludDo6U1ZHUGFpbnRUeXBlPigkdmFs
dWUudG9JbnQzMihleGVjKSkiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwogCiAgICAgaWYg
KCR0eXBlIGVxICJET01TdHJpbmciKSB7Ci0gICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dp
dGhOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNvbnZlcnROdWxsVG9OdWxsU3RyaW5nIn07CisgICAgICAgIHJldHVybiAidmFsdWVU
b1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxsVG9OdWxsU3RyaW5nIn0gfHwgJHNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSB8fCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwogICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdX
aXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmcifTsK
ICAgICAgICAgcmV0dXJuICJ1c3RyaW5nVG9TdHJpbmcoJHZhbHVlLnRvU3RyaW5nKGV4ZWMpKSI7
CiAgICAgfQpAQCAtMjQwOCwxMyArMjM5MCw2IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUo
JHR5cGUpKSB7Ci0gICAgICAgICMgU29tZSBTVkdGRSpFbGVtZW50LmlkbCB1c2UgJ29wZXJhdG9y
JyBhcyBhdHRyaWJ1dGUgbmFtZSwgcmV3cml0ZSBhcyAnX29wZXJhdG9yJyB0byBhdm9pZCBjbGFz
aGVzIHdpdGggQy9DKysKLSAgICAgICAgJHZhbHVlID1+IHMvb3BlcmF0b3JcKFwpL19vcGVyYXRv
clwoXCkvIGlmICgkdmFsdWUgPX4gL29wZXJhdG9yLyk7Ci0gICAgICAgICR2YWx1ZSA9fiBzL1wo
XCkvLzsKLSAgICAgICAgJHZhbHVlIC49ICJBbmltYXRlZCgpIjsKLSAgICB9Ci0KICAgICBpZiAo
JHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7
IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDE7CiAgICAgfQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gNjAz
NzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBBbmRlcnMg
Q2FybHNzb24gPGFuZGVyc2NhQG1hYy5jb20+IAogIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcg
U2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAjIENvcHlyaWdodCAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPgotIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBt
Y2MuaWQuYXU+CiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTExNjEsMTMgKzExNjEsOSBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZU5hbWUgZXEgImZy
YW1lIikgewogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGF0dHJpYnV0ZSBmcmFtZSB0
byBiZSBmcmFtZUJvcmRlcnMuCiAgICAgICAgICAgICAgICAgJGF0dHJpYnV0ZUludGVyZmFjZU5h
bWUgLj0gIkJvcmRlcnMiOwotICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZU5hbWUgZXEg
Im93bmVyRG9jdW1lbnQiKSB7Ci0gICAgICAgICAgICAgICAgIyBGSVhNRTogZm9yIG5vdyBzcGVj
aWFsIGNhc2UgYXR0cmlidXRlIG93bmVyRG9jdW1lbnQgdG8gY2FsbCBkb2N1bWVudCwgdGhpcyBp
cyBpbmNvcnJlY3QKLSAgICAgICAgICAgICAgICAjIGxlZ2FjeSBiZWhhdmlvci4gKHNlZSBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OSkKLSAgICAgICAgICAgICAg
ICAkYXR0cmlidXRlTmFtZSA9ICJkb2N1bWVudCI7Ci0gICAgICAgICAgICB9IGVsc2lmICgkY29k
ZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGlkbFR5cGUpKSB7Ci0gICAgICAgICAgICAg
ICAgIyBTcGVjaWFsIGNhc2UgZm9yIGFuaW1hdGVkIHR5cGVzLgotICAgICAgICAgICAgICAgICRh
dHRyaWJ1dGVOYW1lIC49ICJBbmltYXRlZCI7CisgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmli
dXRlTmFtZSBlcSAib3BlcmF0b3IiKSB7CisgICAgICAgICAgICAgICAgIyBBdm9pZCBjbGFzaCB3
aXRoIEMrKyBrZXl3b3JkLgorICAgICAgICAgICAgICAgICRhdHRyaWJ1dGVJbnRlcmZhY2VOYW1l
ID0gIl9vcGVyYXRvciI7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICRhdHRyaWJ1dGVO
YW1lc3skYXR0cmlidXRlSW50ZXJmYWNlTmFtZX0gPSAxOwpAQCAtMTE3NSwyMyArMTE3MSwxNCBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgIyAtIEdFVFRFUgogICAg
ICAgICAgICAgbXkgJGdldHRlclNpZyA9ICItICgkYXR0cmlidXRlVHlwZSkkYXR0cmlidXRlSW50
ZXJmYWNlTmFtZVxuIjsKIAotICAgICAgICAgICAgIyBTb21lIFNWR0ZFKkVsZW1lbnQuaWRsIHVz
ZSAnb3BlcmF0b3InIGFzIGF0dHJpYnV0ZSBuYW1lLCByZXdyaXRlIGFzICdfb3BlcmF0b3InIHRv
IGF2b2lkIGNsYXNoZXMgd2l0aCBDL0MrKwotICAgICAgICAgICAgJGF0dHJpYnV0ZU5hbWUgPX4g
cy9vcGVyYXRvckFuaW1hdGVkL19vcGVyYXRvckFuaW1hdGVkLyBpZiAoJGF0dHJpYnV0ZU5hbWUg
PX4gL29wZXJhdG9yQW5pbWF0ZWQvKTsKLSAgICAgICAgICAgICRnZXR0ZXJTaWcgPX4gcy9vcGVy
YXRvci9fb3BlcmF0b3IvIGlmICgkZ2V0dGVyU2lnID1+IC9vcGVyYXRvci8pOworICAgICAgICAg
ICAgbXkgJGdldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+R2V0dGVyRXhw
cmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUp
OworCisgICAgICAgICAgICAjIEZJWE1FOiBTcGVjaWFsIGNhc2UgYXR0cmlidXRlIG93bmVyRG9j
dW1lbnQgdG8gY2FsbCBkb2N1bWVudC4gVGhpcyBtYWtlcyBpdCByZXR1cm4gdGhlCisgICAgICAg
ICAgICAjIGRvY3VtZW50IHdoZW4gY2FsbGVkIG9uIHRoZSBkb2N1bWVudCBpdHNlbGYuIExlZ2Fj
eSBiZWhhdmlvciwgc2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA4ODk+LgorICAgICAgICAgICAgJGdldHRlckV4cHJlc3Npb25QcmVmaXggPX4gcy9cYm93bmVy
RG9jdW1lbnRcYi9kb2N1bWVudC87CiAKICAgICAgICAgICAgIG15ICRoYXNHZXR0ZXJFeGNlcHRp
b24gPSBAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9OwotICAgICAgICAgICAgbXkgJGdl
dHRlckNvbnRlbnRIZWFkOwotICAgICAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgICAgICAgICBt
eSAkcmVmbGVjdFVSTCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlJlZmxlY3RVUkwifTsKLSAgICAgICAgICAgIGlmICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVS
TCkgewotICAgICAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICgoJHJlZmxl
Y3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkYXR0cmlidXRlTmFtZSA6ICgkcmVmbGVjdCB8
fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICAgICAgbXkgJG5hbWVzcGFjZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY29udGVu
dEF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7bmFtZXNw
YWNlfS5oIn0gPSAxOwotICAgICAgICAgICAgICAgIG15ICRnZXRBdHRyaWJ1dGVGdW5jdGlvbk5h
bWUgPSAkcmVmbGVjdFVSTCA/ICJnZXRVUkxBdHRyaWJ1dGUiIDogImdldEF0dHJpYnV0ZSI7Ci0g
ICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIklNUEwtPiR7Z2V0QXR0cmlidXRl
RnVuY3Rpb25OYW1lfShXZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5h
bWV9QXR0ciI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRnZXR0ZXJD
b250ZW50SGVhZCA9ICJJTVBMLT4iIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJp
YnV0ZU5hbWUpIC4gIigiOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgbXkgJGdldHRlckNv
bnRlbnRIZWFkID0gIklNUEwtPiRnZXR0ZXJFeHByZXNzaW9uUHJlZml4IjsKICAgICAgICAgICAg
IG15ICRnZXR0ZXJDb250ZW50VGFpbCA9ICIpIjsKIAogICAgICAgICAgICAgIyBTcGVjaWFsIGNh
c2UgZm9yIERPTVNWR051bWJlcgpAQCAtMTI0Miw4ICsxMjI5LDYgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRUb1N0cmluZyJ9KSB7CiAgICAgICAgICAgICAg
ICAgJGdldHRlckNvbnRlbnRIZWFkID0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVyKCIgLiAkZ2V0
dGVyQ29udGVudEhlYWQ7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIp
IjsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5nIn0pIHsKLSAgICAgICAgICAgICAgICAkZ2V0
dGVyQ29udGVudFRhaWwgLj0gIi50b0ludCgpIjsKICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1BvZFR5cGUoJGlkbFR5cGUpIG9yICRpZGxUeXBlIGVxICJEYXRlIikgewog
ICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoJGdldHRlckNvbnRlbnRI
ZWFkIjsKICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0gIikiOwpAQCAtMTMw
MCwxMCArMTI4NSw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgbXkgJGFyZ05hbWUgPSAibmV3IiAuIHVjZmlyc3QoJGF0dHJpYnV0ZUludGVyZmFjZU5hbWUp
OwogICAgICAgICAgICAgICAgIG15ICRhcmcgPSBHZXRPYmpDVHlwZUdldHRlcigkYXJnTmFtZSwg
JGlkbFR5cGUpOwogCi0gICAgICAgICAgICAgICAgIyBUaGUgZGVmaW5pdGlvbiBvZiBDb252ZXJ0
RnJvbVN0cmluZyBhbmQgQ29udmVydFRvU3RyaW5nIGlzIGZsaXBwZWQgZm9yIHRoZSBzZXR0ZXIK
LSAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkgewotICAgICAgICAgICAgICAgICAgICAkYXJn
ID0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVyKCRhcmcpIjsKLSAgICAgICAgICAgICAgICB9IGVs
c2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0
VG9TdHJpbmcifSkgeworICAgICAgICAgICAgICAgICMgVGhlIGRlZmluaXRpb24gb2YgQ29udmVy
dFRvU3RyaW5nIGlzIGZsaXBwZWQgZm9yIHRoZSBzZXR0ZXIKKyAgICAgICAgICAgICAgICBpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydFRvU3Ry
aW5nIn0pIHsKICAgICAgICAgICAgICAgICAgICAgJGFyZyA9ICJXZWJDb3JlOjpTdHJpbmcoJGFy
ZykudG9JbnQoKSI7CiAgICAgICAgICAgICAgICAgfQogCkBAIC0xMzI5LDE4ICsxMzEyLDEwIEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBJTVBMLT4kY29yZVNldHRlck5hbWUoJGFyZyk7XG4iKTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwotICAgICAgICAgICAgICAgICAgICBteSAkcmVmbGVjdFVS
TCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3RV
UkwifTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2Vw
dGlvbkluaXRcbiIpIGlmICRoYXNTZXR0ZXJFeGNlcHRpb247CisgICAgICAgICAgICAgICAgICAg
IG15ICRzZXR0ZXJFeHByZXNzaW9uUHJlZml4ID0gJGNvZGVHZW5lcmF0b3ItPlNldHRlckV4cHJl
c3Npb25QcmVmaXgoXCVpbXBsSW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsK
ICAgICAgICAgICAgICAgICAgICAgbXkgJGVjID0gJGhhc1NldHRlckV4Y2VwdGlvbiA/ICIsIGVj
IiA6ICIiOwotICAgICAgICAgICAgICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICgo
JHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkYXR0cmlidXRlTmFtZSA6ICgkcmVm
bGVjdCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAkbmFtZXNw
YWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0ZU5hbWUoJGludGVyZmFj
ZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjok
e25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciwgJGFyZyRlYyk7XG4iKTsK
LSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPiRjb3JlU2V0dGVyTmFtZSgkYXJnJGVjKTtcbiIp
OwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICRleGNlcHRpb25Jbml0XG4iKSBpZiAkaGFzU2V0dGVyRXhjZXB0aW9uOwor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBJTVBMLT4kc2V0dGVy
RXhwcmVzc2lvblByZWZpeCRhcmckZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICRleGNlcHRpb25SYWlzZU9uRXJyb3JcbiIpIGlmICRoYXNTZXR0
ZXJFeGNlcHRpb247CiAgICAgICAgICAgICAgICAgfQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAt
NzAwLDM0ICs3MDAsMTMgQEAgRU5ECiAgICAgICAgICRhdHRyTmFtZSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57InY4cmVmZXJlbmNlYXR0ciJ9OwogICAgIH0K
IAotICAgIG15ICRnZXR0ZXJGdW5jID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJO
YW1lKTsKLQotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT50eXBlKSkgewotICAgICAgICAjIFNvbWUgU1ZHRkUqRWxlbWVudC5p
ZGwgdXNlICdvcGVyYXRvcicgYXMgYXR0cmlidXRlIG5hbWU7IHJld3JpdGUgYXMgJ19vcGVyYXRv
cicgdG8gYXZvaWQgY2xhc2hlcyB3aXRoIEMvQysrCi0gICAgICAgICRnZXR0ZXJGdW5jID0gIl8i
IC4gJGdldHRlckZ1bmMgaWYgKCRhdHRyTmFtZSA9fiAvb3BlcmF0b3IvKTsKLSAgICAgICAgJGdl
dHRlckZ1bmMgLj0gIkFuaW1hdGVkIjsKLSAgICB9Ci0KICAgICBteSAkcmV0dXJuVHlwZSA9IEdl
dFR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAKICAgICBteSAkZ2V0
dGVyU3RyaW5nOwogICAgIGlmICgkZ2V0dGVyU3RyaW5nVXNlc0ltcCkgewotICAgICAgICBteSAk
cmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
ZmxlY3QifTsKLSAgICAgICAgbXkgJHJlZmxlY3RVUkwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn07Ci0gICAgICAgIGlmICgkcmVmbGVj
dCB8fCAkcmVmbGVjdFVSTCkgewotICAgICAgICAgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1l
ID0gKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSBlcSAiMSIgPyAkYXR0ck5hbWUgOiAoJHJlZmxl
Y3QgfHwgJHJlZmxlY3RVUkwpOwotICAgICAgICAgICAgbXkgJG5hbWVzcGFjZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY29udGVu
dEF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtuYW1lc3BhY2V9
LmgifSA9IDE7Ci0gICAgICAgICAgICBteSAkZ2V0QXR0cmlidXRlRnVuY3Rpb25OYW1lID0gJHJl
ZmxlY3RVUkwgPyAiZ2V0VVJMQXR0cmlidXRlIiA6ICJnZXRBdHRyaWJ1dGUiOwotICAgICAgICAg
ICAgJGdldHRlclN0cmluZyA9ICJpbXAtPiRnZXRBdHRyaWJ1dGVGdW5jdGlvbk5hbWUoJHtuYW1l
c3BhY2V9Ojoke2NvbnRlbnRBdHRyaWJ1dGVOYW1lfUF0dHIiOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgJGdldHRlclN0cmluZyA9ICJpbXAtPiRnZXR0ZXJGdW5jKCI7Ci0gICAgICAg
IH0KKyAgICAgICAgJGdldHRlclN0cmluZyA9ICJpbXAtPiIgLiAkY29kZUdlbmVyYXRvci0+R2V0
dGVyRXhwcmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRy
aWJ1dGUpOwogICAgICAgICAkZ2V0dGVyU3RyaW5nIC49ICJlYyIgaWYgJHVzZUV4Y2VwdGlvbnM7
CiAgICAgICAgICRnZXR0ZXJTdHJpbmcgLj0gIikiOwotICAgICAgICBpZiAoJG5hdGl2ZVR5cGUg
ZXEgImludCIgYW5kICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNvbnZlcnRGcm9tU3RyaW5nIn0pIHsKLSAgICAgICAgICAgICRnZXR0ZXJTdHJpbmcgLj0gIi50
b0ludCgpIjsKLSAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgICRnZXR0ZXJTdHJpbmcg
PSAiaW1wSW5zdGFuY2UiOwogICAgIH0KQEAgLTkwNCwxNCArODgzLDcgQEAgRU5ECiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJG5hdGl2ZVR5cGUgdiA9ICIgLiBKU1ZhbHVl
VG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKSAuICI7XG4iKTsKICAgICB9
CiAKLSAgICBteSAkcmVzdWx0ID0gIiI7Ci0gICAgaWYgKCRuYXRpdmVUeXBlIGVxICJpbnQiIGFu
ZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJv
bVN0cmluZyJ9KSB7Ci0gICAgICAgICRyZXN1bHQgLj0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVy
KCI7Ci0gICAgfQotICAgICRyZXN1bHQgLj0gInYiOwotICAgIGlmICgkbmF0aXZlVHlwZSBlcSAi
aW50IiBhbmQgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
dmVydEZyb21TdHJpbmcifSkgewotICAgICAgICAkcmVzdWx0IC49ICIpIjsKLSAgICB9CisgICAg
bXkgJHJlc3VsdCA9ICJ2IjsKICAgICBteSAkcmV0dXJuVHlwZSA9IEdldFR5cGVGcm9tU2lnbmF0
dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgaWYgKElzUmVmUHRyVHlwZSgkcmV0dXJu
VHlwZSkpIHsKICAgICAgICAgJHJlc3VsdCA9ICJXVEY6OmdldFB0cigiIC4gJHJlc3VsdCAuICIp
IjsKQEAgLTkyNywxNSArODk5LDggQEAgRU5ECiAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJm
bG9hdCIpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAqaW1wID0gJHJl
c3VsdDtcbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICRpbXBsU2V0dGVyRnVuY3Rpb25O
YW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJOYW1lKTsKLSAgICAgICAgbXkg
JHJlZmxlY3QgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
ZWZsZWN0In07Ci0gICAgICAgIG15ICRyZWZsZWN0VVJMID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwotICAgICAgICBpZiAoJHJlZmxl
Y3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFt
ZSA9ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkgZXEgIjEiID8gJGF0dHJOYW1lIDogKCRyZWZs
ZWN0IHx8ICRyZWZsZWN0VVJMKTsKLSAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkY29kZUdl
bmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRl
bnRBdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7bmFtZXNwYWNl
fS5oIn0gPSAxOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAt
PnNldEF0dHJpYnV0ZSgke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciwg
JHJlc3VsdCIpOwotICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUg
ZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgICAgICBteSAkaW1wbFNldHRlckZ1
bmN0aW9uTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyTmFtZSk7CiAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5oIn0gPSAxOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB0cmFuc2ZlckhpZGRlbkRl
cGVuZGVuY3koaW5mby5Ib2xkZXIoKSwgaW1wLT4kYXR0ck5hbWUoKSwgdmFsdWUsIFY4JHtpbnRl
cmZhY2VOYW1lfTo6ZXZlbnRMaXN0ZW5lckNhY2hlSW5kZXgpO1xuIik7CiAgICAgICAgICAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiIGFuZCAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CkBAIC05NDYsNyArOTExLDggQEAgRU5ECiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0
dGVyRnVuY3Rpb25OYW1lKFY4RE9NV3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdHJ1
ZSwgTGlzdGVuZXJGaW5kT3JDcmVhdGUpIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGlt
cGxTZXR0ZXJGdW5jdGlvbk5hbWUoJHJlc3VsdCIpOworICAgICAgICAgICAgbXkgJHNldHRlckV4
cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhwcmVzc2lvblByZWZpeChc
JWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPiRzZXR0ZXJFeHByZXNzaW9uUHJlZml4
JHJlc3VsdCIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIs
IGVjIikgaWYgJHVzZUV4Y2VwdGlvbnM7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIpO1xuIik7CkBAIC0yNjgzLDcgKzI2NDksNyBAQCBzdWIgR2V0TmF0aXZlVHlwZUZyb21TaWdu
YXR1cmUKICAgICAgICAgbXkgJG1vZGUgPSAiIjsKICAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nIn0p
IHsKICAgICAgICAgICAgICRtb2RlID0gIldpdGhVbmRlZmluZWRPck51bGxDaGVjayI7Ci0gICAg
ICAgIH0gZWxzaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZyJ9KSB7CisgICAgICAgIH0gZWxzaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyJ9IHx8ICRzaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0gfHwgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlJlZmxlY3RVUkwifSkgewogICAgICAgICAgICAgJG1vZGUgPSAiV2l0aE51bGxD
aGVjayI7CiAgICAgICAgIH0KICAgICAgICAgJHR5cGUgLj0gIjwkbW9kZT4iOwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlzaW9uIDYwMzc0KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDYgKzQwLDE2IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgVGVz
dE9iaiAgICAgICAgICAgICAgICAgIHRlc3RPYmpBdHRyOwogCisgICAgICAgIC8vIFJlZmxlY3Rl
ZCBET00gYXR0cmlidXRlcworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBy
ZWZsZWN0ZWRTdHJpbmdBdHRyOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgcmVm
bGVjdGVkSW50ZWdyYWxBdHRyOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4g
cmVmbGVjdGVkQm9vbGVhbkF0dHI7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9N
U3RyaW5nIHJlZmxlY3RlZFVSTEF0dHI7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0
b21Db250ZW50U3RyaW5nQXR0cl0gRE9NU3RyaW5nIHJlZmxlY3RlZFN0cmluZ0F0dHI7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50SW50ZWdyYWxBdHRyXSBsb25nIHJl
ZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWN1
c3RvbUNvbnRlbnRCb29sZWFuQXR0cl0gYm9vbGVhbiByZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0
cjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMPWN1c3RvbUNvbnRlbnRVUkxBdHRyXSBE
T01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cjsKKwogICAgICAgICAvLyBNZXRob2RzCiAgICAgICAg
IHZvaWQgICAgdm9pZE1ldGhvZCgpOwogICAgICAgICB2b2lkICAgIHZvaWRNZXRob2RXaXRoQXJn
cyhpbiBsb25nIGludEFyZywgaW4gRE9NU3RyaW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcp
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9N
QmluZGluZy5oIgogI2luY2x1ZGUgImdvYmplY3QvQ29udmVydFRvVVRGOFN0cmluZy5oIgpAQCAt
NDUwLDYgKzQ1MSwxNjYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdGVzdF9vYmpfYXR0ciAo
VwogCiB9CiAKK2djaGFyKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9zdHJp
bmdfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7CisgICAgZ2NoYXIqICByZXMgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyKSk7
CisgICAgcmV0dXJuIHJlczsKKworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9y
ZWZsZWN0ZWRfc3RyaW5nX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdjaGFyKiAgdmFs
dWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZik7CisgICAgV2ViQ29yZTo6VGVzdE9i
aiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodmFs
dWUpOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ192YWx1ZSA9IFdlYkNvcmU6OlN0cmluZzo6ZnJv
bVVURjgodmFsdWUpOworICAgIGl0ZW0tPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyLCBfZ192YWx1ZSk7CisKK30KKworZ2xvbmcKK3dlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9pbnRlZ3JhbF9hdHRyIChXZWJLaXRET01UZXN0
T2JqICpzZWxmKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBX
ZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnbG9uZyBy
ZXMgPSBpdGVtLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRJbnRl
Z3JhbEF0dHJBdHRyLCApOworICAgIHJldHVybiByZXM7CisKK30KKwordm9pZAord2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2ludGVncmFsX2F0dHIgKFdlYktpdERPTVRlc3RPYmog
KnNlbGYsIGdsb25nIHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAg
IFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0t
PnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZEludGVncmFsQXR0ckF0
dHIsIHZhbHVlKTsKKworfQorCitnYm9vbGVhbgord2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVm
bGVjdGVkX2Jvb2xlYW5fYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZikKK3sKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2Jvb2xlYW4gcmVzID0gaXRlbS0+c2V0QXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyLCApOworICAg
IHJldHVybiByZXM7CisKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVj
dGVkX2Jvb2xlYW5fYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2Jvb2xlYW4gdmFsdWUp
Cit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZik7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgaXRlbS0+c2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyLCB2YWx1ZSk7CisKK30KKwor
Z2NoYXIqIAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX3VybF9hdHRyIChXZWJL
aXRET01UZXN0T2JqICpzZWxmKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAw
KTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBnY2hhciogIHJlcyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+Z2V0VVJMQXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkVVJMQXR0ckF0dHIpKTsKKyAgICByZXR1cm4g
cmVzOworCit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF91cmxf
YXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2NoYXIqICB2YWx1ZSkKK3sKKyAgICBnX3Jl
dHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsICh2YWx1ZSk7CisgICAgV2ViQ29y
ZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7Cisg
ICAgaXRlbS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkVVJMQXR0
ckF0dHIsIF9nX3ZhbHVlKTsKKworfQorCitnY2hhciogCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9yZWZsZWN0ZWRfc3RyaW5nX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiAgcmVzID0gY29udmVydFRvVVRG
OFN0cmluZyhpdGVtLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250
ZW50U3RyaW5nQXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzOworCit9CisKK3ZvaWQKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF9zdHJpbmdfYXR0ciAoV2ViS2l0RE9NVGVzdE9i
aiAqc2VsZiwgZ2NoYXIqICB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsK
KyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
X3JldHVybl9pZl9mYWlsICh2YWx1ZSk7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0g
V2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgaXRlbS0+c2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJBdHRyLCBfZ192YWx1
ZSk7CisKK30KKworZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9jdXN0
b21faW50ZWdyYWxfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZikKK3sKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2xvbmcgcmVzID0gaXRlbS0+c2V0QXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEludGVncmFsQXR0ckF0dHIsICk7CisgICAg
cmV0dXJuIHJlczsKKworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0
ZWRfY3VzdG9tX2ludGVncmFsX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25nIHZh
bHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RP
YmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPnNldEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyLCB2YWx1ZSk7
CisKK30KKworZ2Jvb2xlYW4KK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9jdXN0
b21fYm9vbGVhbl9hdHRyIChXZWJLaXRET01UZXN0T2JqICpzZWxmKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKKyAgICBnYm9vbGVhbiByZXMgPSBpdGVtLT5zZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50Qm9vbGVhbkF0dHJBdHRyLCApOworICAg
IHJldHVybiByZXM7CisKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVj
dGVkX2N1c3RvbV9ib29sZWFuX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdib29sZWFu
IHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAgIFdlYkNvcmU6OlRl
c3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPnNldEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0dHIsIHZhbHVl
KTsKKworfQorCitnY2hhciogCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfdXJs
X2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwgKHNlbGYsIDApOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOworICAgIGdjaGFyKiAgcmVzID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5nZXRV
UkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIp
KTsKKyAgICByZXR1cm4gcmVzOworCit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3JlZmxlY3RlZF91cmxfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2NoYXIqICB2YWx1
ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0T2Jq
ICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsICh2YWx1
ZSk7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9t
VVRGOCh2YWx1ZSk7CisgICAgaXRlbS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyLCBfZ192YWx1ZSk7CisKK30KKwogZ2xvbmcKIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9leGNlcHRpb24gKFdlYktpdERPTVRlc3RPYmog
KnNlbGYpCiB7CkBAIC01NjEsNiArNzIyLDE0IEBAIGVudW0gewogICAgIFBST1BfVU5TSUdORURf
TE9OR19MT05HX0FUVFIsCiAgICAgUFJPUF9TVFJJTkdfQVRUUiwKICAgICBQUk9QX1RFU1RfT0JK
X0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCisgICAgUFJPUF9SRUZMRUNU
RURfSU5URUdSQUxfQVRUUiwKKyAgICBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFIsCisgICAg
UFJPUF9SRUZMRUNURURfVVJMX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIs
CisgICAgUFJPUF9SRUZMRUNURURfQ1VTVE9NX0lOVEVHUkFMX0FUVFIsCisgICAgUFJPUF9SRUZM
RUNURURfQ1VTVE9NX0JPT0xFQU5fQVRUUiwKKyAgICBQUk9QX1JFRkxFQ1RFRF9VUkxfQVRUUiwK
ICAgICBQUk9QX0FUVFJfV0lUSF9FWENFUFRJT04sCiAgICAgUFJPUF9BVFRSX1dJVEhfU0VUVEVS
X0VYQ0VQVElPTiwKICAgICBQUk9QX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OLApAQCAtNjA1
LDYgKzc3NCw0NiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wCiAg
ICAgICAgICBjb3JlU2VsZi0+c2V0U3RyaW5nQXR0cihXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4
KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpICk7CiAgICAgICAgICBicmVhazsKICAgICB9Cisg
ICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9TVFJJTkdfQVRUUjoKKyAgICB7CisgICAgICAgICBjb3Jl
U2VsZi0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0
ckF0dHIsIFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVl
KSkgKTsKKyAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0lO
VEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICAgY29yZVNlbGYtPnNldEludGVncmFsQXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwgKGdfdmFs
dWVfZ2V0X2xvbmcodmFsdWUpKSApOworICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
UFJPUF9SRUZMRUNURURfQk9PTEVBTl9BVFRSOgorICAgIHsKKyAgICAgICAgIGNvcmVTZWxmLT5z
ZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkYm9vbGVhbmF0
dHJBdHRyLCAoZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpICk7CisgICAgICAgICBicmVhazsK
KyAgICB9CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9VUkxfQVRUUjoKKyAgICB7CisgICAgICAg
ICBjb3JlU2VsZi0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJs
YXR0ckF0dHIsIFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZh
bHVlKSkgKTsKKyAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVE
X1NUUklOR19BVFRSOgorICAgIHsKKyAgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIFdlYkNvcmU6OlN0
cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkgKTsKKyAgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9JTlRFR1JBTF9BVFRS
OgorICAgIHsKKyAgICAgICAgIGNvcmVTZWxmLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyLCAoZ192YWx1ZV9nZXRf
bG9uZyh2YWx1ZSkpICk7CisgICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX1JF
RkxFQ1RFRF9DVVNUT01fQk9PTEVBTl9BVFRSOgorICAgIHsKKyAgICAgICAgIGNvcmVTZWxmLT5z
ZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xl
YW5BdHRyQXR0ciwgKGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKSApOworICAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9SRUZMRUNURURfVVJMX0FUVFI6CisgICAgeworICAg
ICAgICAgY29yZVNlbGYtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNv
bnRlbnRVUkxBdHRyQXR0ciwgV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpKSApOworICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9B
VFRSX1dJVEhfRVhDRVBUSU9OOgogICAgIHsKICAgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0
aEV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpICk7CkBAIC02NzYsNiArODg1LDQ2
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3AKICAgICAgICAgZ192
YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0KCkpKTsKICAgICAgICAg
IGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSOgorICAg
IHsKKyAgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhTdHJp
bmcoY29yZVNlbGYtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHN0
cmluZ2F0dHJBdHRyKSkpOworICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9S
RUZMRUNURURfSU5URUdSQUxfQVRUUjoKKyAgICB7CisgICAgICAgICBnX3ZhbHVlX3NldF9sb25n
KHZhbHVlLCBjb3JlU2VsZi0+cmVmbGVjdGVkSW50ZWdyYWxBdHRyKCkpOworICAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9SRUZMRUNURURfQk9PTEVBTl9BVFRSOgorICAgIHsK
KyAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIGNvcmVTZWxmLT5yZWZsZWN0ZWRC
b29sZWFuQXR0cigpKTsKKyAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVG
TEVDVEVEX1VSTF9BVFRSOgorICAgIHsKKyAgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFs
dWUsIGNvbnZlcnRUb1VURjhTdHJpbmcoY29yZVNlbGYtPmdldFVSTEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyKSkpOworICAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGNhc2UgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFI6CisgICAgeworICAgICAg
ICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2Vs
Zi0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmluZ0F0
dHJBdHRyKSkpOworICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9SRUZMRUNU
RURfQ1VTVE9NX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICAgZ192YWx1ZV9zZXRfbG9u
Zyh2YWx1ZSwgY29yZVNlbGYtPnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cigpKTsKKyAgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9CT09MRUFO
X0FUVFI6CisgICAgeworICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgY29yZVNl
bGYtPnJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKCkpOworICAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgUFJPUF9SRUZMRUNURURfVVJMX0FUVFI6CisgICAgeworICAgICAgICAgZ192
YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2VsZi0+Z2V0
VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRy
KSkpOworICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfRVhD
RVBUSU9OOgogICAgIHsKICAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxm
LT5hdHRyV2l0aEV4Y2VwdGlvbigpKTsKQEAgLTc3Niw2ICsxMDI1LDY2IEBAIEdfTUFYVUlOVDY0
LCAvKiBtaW4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfT0JKLCAvKiBnb2JqZWN0IHR5cGUg
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwogICAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygicmVmbGVjdGVkLXN0cmluZy1hdHRy
IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidGVzdF9vYmpfcmVmbGVjdGVkLXN0cmluZy1hdHRyIiwgLyogc2hv
cnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdjaGFyKiAgVGVzdE9iai5yZWZsZWN0
ZWQtc3RyaW5nLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9j
IHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURX
UklURSkpOworICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFz
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkVGTEVDVEVEX0lO
VEVHUkFMX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfbG9uZygicmVmbGVjdGVkLWludGVncmFsLWF0dHIiLCAvKiBuYW1lICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X29ial9yZWZsZWN0ZWQtaW50ZWdyYWwtYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWFkLXdyaXRlICBnbG9uZyBUZXN0T2JqLnJlZmxlY3RlZC1pbnRlZ3JhbC1hdHRyIiwgLyog
bG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf
TUlOTE9ORywgLyogbWluICovCitHX01BWExPTkcsIC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUFJPUF9SRUZMRUNURURfQk9PTEVBTl9BVFRSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInJlZmxlY3RlZC1ib29sZWFuLWF0
dHIiLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtYm9vbGVhbi1hdHRyIiwgLyog
c2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdib29sZWFuIFRlc3RPYmoucmVm
bGVjdGVkLWJvb2xlYW4tYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRy
YSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBRFdSSVRFKSk7CisgICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29i
amVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRUZM
RUNURURfVVJMX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3Bh
cmFtX3NwZWNfc3RyaW5nKCJyZWZsZWN0ZWQtdXJsLWF0dHIiLCAvKiBuYW1lICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X29ial9yZWZsZWN0ZWQtdXJsLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVh
ZC13cml0ZSAgZ2NoYXIqICBUZXN0T2JqLnJlZmxlY3RlZC11cmwtYXR0ciIsIC8qIGxvbmdlciAt
IGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgLyogZGVm
YXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJyZWZsZWN0ZWQtc3RyaW5n
LWF0dHIiLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAv
KiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2NoYXIqICBUZXN0T2JqLnJl
ZmxlY3RlZC1zdHJpbmctYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRy
YSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisgICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVj
dENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRUZMRUNU
RURfQ1VTVE9NX0lOVEVHUkFMX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfbG9uZygicmVmbGVjdGVkLWN1c3RvbS1pbnRlZ3JhbC1hdHRyIiwg
LyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidGVzdF9vYmpfcmVmbGVjdGVkLWN1c3RvbS1pbnRlZ3JhbC1hdHRyIiwg
Lyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmoucmVm
bGVjdGVkLWN1c3RvbS1pbnRlZ3JhbC1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBz
b21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICovCitHX01B
WExPTkcsIC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdS
SVRFKSk7CisgICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRUZMRUNURURfQ1VT
VE9NX0JPT0xFQU5fQVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19ib29sZWFuKCJyZWZsZWN0ZWQtY3VzdG9tLWJvb2xlYW4tYXR0ciIsIC8qIG5h
bWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRlc3Rfb2JqX3JlZmxlY3RlZC1jdXN0b20tYm9vbGVhbi1hdHRyIiwgLyogc2hv
cnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdib29sZWFuIFRlc3RPYmoucmVmbGVj
dGVkLWN1c3RvbS1ib29sZWFuLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUg
ZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURXUklURSkpOworICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Bf
UkVGTEVDVEVEX1VSTF9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX3N0cmluZygicmVmbGVjdGVkLXVybC1hdHRyIiwgLyogbmFtZSAqLworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGVzdF9vYmpfcmVmbGVjdGVkLXVybC1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlYWQtd3JpdGUgIGdjaGFyKiAgVGVzdE9iai5yZWZsZWN0ZWQtdXJsLWF0dHIiLCAvKiBsb25n
ZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8q
IGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfQVRUUl9XSVRIX0VYQ0VQVElPTiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKCJhdHRyLXdpdGgtZXhjZXB0
aW9uIiwgLyogbmFtZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYXR0ci13aXRoLWV4Y2VwdGlvbiIsIC8qIHNo
b3J0IGRlc2NyaXB0aW9uICovCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAkocmV2aXNpb24gNjAzNzQp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouaAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDYgKzE1Nyw1NCBAQCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF90ZXN0X29ial9hdHRyIChXCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3Rlc3Rfb2JqX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIFdlYktpdERP
TVRlc3RPYmoqICB2YWx1ZSk7CiAKK1dFQktJVF9BUEkgZ2NoYXIqIAord2Via2l0X2RvbV90ZXN0
X29ial9nZXRfcmVmbGVjdGVkX3N0cmluZ19hdHRyIChXZWJLaXRET01UZXN0T2JqICpzZWxmKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfc3Ry
aW5nX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdjaGFyKiAgdmFsdWUpOworCitXRUJL
SVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfaW50ZWdyYWxf
YXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2ludGVncmFsX2F0dHIgKFdlYktpdERPTVRlc3RP
YmogKnNlbGYsIGdsb25nIHZhbHVlKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX2Jvb2xlYW5fYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAq
c2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVj
dGVkX2Jvb2xlYW5fYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2Jvb2xlYW4gdmFsdWUp
OworCitXRUJLSVRfQVBJIGdjaGFyKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3Rl
ZF91cmxfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3VybF9hdHRyIChXZWJLaXRET01UZXN0
T2JqICpzZWxmLCBnY2hhciogIHZhbHVlKTsKKworV0VCS0lUX0FQSSBnY2hhciogCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfc3RyaW5nX2F0dHIgKFdlYktpdERPTVRlc3RPYmog
KnNlbGYpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3JlZmxl
Y3RlZF9zdHJpbmdfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2NoYXIqICB2YWx1ZSk7
CisKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9j
dXN0b21faW50ZWdyYWxfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZik7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2N1c3RvbV9pbnRlZ3Jh
bF9hdHRyIChXZWJLaXRET01UZXN0T2JqICpzZWxmLCBnbG9uZyB2YWx1ZSk7CisKK1dFQktJVF9B
UEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9jdXN0b21fYm9v
bGVhbl9hdHRyIChXZWJLaXRET01UZXN0T2JqICpzZWxmKTsKKworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfY3VzdG9tX2Jvb2xlYW5fYXR0ciAoV2Vi
S2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOworCitXRUJLSVRfQVBJIGdjaGFy
KiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF91cmxfYXR0ciAoV2ViS2l0RE9N
VGVzdE9iaiAqc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfcmVmbGVjdGVkX3VybF9hdHRyIChXZWJLaXRET01UZXN0T2JqICpzZWxmLCBnY2hhciogIHZh
bHVlKTsKKwogV0VCS0lUX0FQSSBnbG9uZwogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93
aXRoX2V4Y2VwdGlvbiAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZik7CiAKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gNjAz
NzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNUZXN0T2JqLmgiCiAKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJK
U0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU1Rlc3RPYmouaCIKICNpbmNsdWRlICJKU2xv
Zy5oIgpAQCAtNDYsNyArNDcsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTVGVzdE9i
aik7CiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpCiAjZW5kaWYKIAotc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzWzE1XSA9CitzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbMjNdID0KIHsKICAgICB7
ICJyZWFkT25seUludEF0dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVhZE9ubHlJbnRB
dHRyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAicmVhZE9ubHlT
dHJpbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ciks
IChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LApAQCAtNTYsNiArNTcsMTQgQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYgogICAgIHsgInVuc2lnbmVkTG9u
Z0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJf
dClzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwK
ICAgICB7ICJzdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9ialN0cmluZ0F0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAidGVz
dE9iakF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialRlc3RPYmpBdHRyKSwgKGludHB0cl90KXNldEpTVGVz
dE9ialRlc3RPYmpBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxlY3RlZFN0
cmluZ0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50cHRyX3Qp
c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyAg
ICB7ICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEludGVn
cmFsQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIgVEhV
TktfR0VORVJBVE9SKDApIH0sCisgICAgeyAicmVmbGVjdGVkQm9vbGVhbkF0dHIiLCBEb250RGVs
ZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxlY3RlZFVS
TEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyAgICB7ICJyZWZs
ZWN0ZWRTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSwgKGlu
dHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIgVEhVTktfR0VORVJBVE9SKDAp
IH0sCisgICAgeyAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxl
Y3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29s
ZWFuQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0
ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyAgICB7ICJyZWZsZWN0ZWRVUkxBdHRyIiwgRG9udERl
bGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3Rl
ZFVSTEF0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAiYXR0cldpdGhFeGNlcHRpb24i
LCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoRXhjZXB0aW9uKSwgKGludHB0cl90KXNldEpTVGVzdE9i
akF0dHJXaXRoRXhjZXB0aW9uIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgImF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiks
IChpbnRwdHJfdClzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiBUSFVOS19HRU5F
UkFUT1IoMCkgfSwKICAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24gVEhVTktfR0VORVJBVE9SKDApIH0sCkBAIC02Niw3ICs3NSw3IEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWIKIH07CiAKICN1bmRlZiBU
SFVOS19HRU5FUkFUT1IKLXN0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rl
c3RPYmpUYWJsZSA9IHsgMzQsIDMxLCBKU1Rlc3RPYmpUYWJsZVZhbHVlcywgMCB9Oworc3RhdGlj
IEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyA2OCwgNjMs
IEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1Y3Rv
ciAqLwogI2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3Ip
ICwgZ2VuZXJhdG9yCkBAIC0yNzMsNiArMjgyLDc4IEBAIEpTVmFsdWUganNUZXN0T2JqVGVzdE9i
akF0dHIoRXhlY1N0YXRlKiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGltcC0+
Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZElu
dGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50
aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVz
dE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoZXhlYywgaW1wLT5nZXRJbnRlZ3JhbEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIpKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xl
YW5BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmll
ciYpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2Jq
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVz
dE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Cisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oaW1wLT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkp
OworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2Fz
dDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
U3RyaW5nKGV4ZWMsIGltcC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkdXJsYXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGlt
cC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmluZ0F0
dHJBdHRyKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGV4ZWMsIGltcC0+
Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50
ZWdyYWxBdHRyQXR0cikpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0pTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihpbXAt
Pmhhc0F0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0
ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxl
Y3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVu
dGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rl
c3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAg
ICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGltcC0+Z2V0VVJMQXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyKSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKwogSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEV4Y2VwdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7CkBAIC0zNjEsNiArNDQyLDYyIEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVz
dE9iakF0dHIoRXhlY1N0YXRlKiAKICAgICBpbXAtPnNldFRlc3RPYmpBdHRyKHRvVGVzdE9iaih2
YWx1ZSkpOwogfQogCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0
KTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKKyAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxl
Y3RlZHN0cmluZ2F0dHJBdHRyLCB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1
ZSkpOworfQorCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3Qp
OworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOworICAgIGltcC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyLCB2YWx1ZS50b0ludDMyKGV4ZWMpKTsKK30KKwor
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RP
YmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAg
IGltcC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJv
b2xlYW5hdHRyQXR0ciwgdmFsdWUudG9Cb29sZWFuKGV4ZWMpKTsKK30KKwordm9pZCBzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGlj
X2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGlj
X2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1wLT5zZXRBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0ciwgdmFsdWVUb1N0cmlu
Z1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKK30KKwordm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8
SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIHZhbHVlVG9TdHJp
bmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7Cit9CisKK3ZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiogaW1wID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1wLT5zZXRJbnRl
Z3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0
dHJBdHRyLCB2YWx1ZS50b0ludDMyKGV4ZWMpKTsKK30KKwordm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRp
Y19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRp
Y19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0Qm9vbGVh
bkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0
dHIsIHZhbHVlLnRvQm9vbGVhbihleGVjKSk7Cit9CisKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkVVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVz
dE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RP
YmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyLCB2YWx1ZVRvU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCB2YWx1ZSkpOworfQorCiB2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc09iamVjdCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSwyMiBA
QCBKU0M6OkpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkV4CiB2b2lkIHNldEpTVGVz
dE9ialN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1Zh
bHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9i
alRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1
ZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpT
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5B
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6
OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVl
KTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUlu
dGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1Zh
bHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsK
K3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRo
RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50
aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhFeGNlcHRpb24oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RP
YmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJik7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsMjIgQEAKIC0gKHZvaWQpc2V0U3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdT
dHJpbmdBdHRyOwogLSAoRE9NVGVzdE9iaiAqKXRlc3RPYmpBdHRyOwogLSAodm9pZClzZXRUZXN0
T2JqQXR0cjooRE9NVGVzdE9iaiAqKW5ld1Rlc3RPYmpBdHRyOworLSAoTlNTdHJpbmcgKilyZWZs
ZWN0ZWRTdHJpbmdBdHRyOworLSAodm9pZClzZXRSZWZsZWN0ZWRTdHJpbmdBdHRyOihOU1N0cmlu
ZyAqKW5ld1JlZmxlY3RlZFN0cmluZ0F0dHI7CistIChpbnQpcmVmbGVjdGVkSW50ZWdyYWxBdHRy
OworLSAodm9pZClzZXRSZWZsZWN0ZWRJbnRlZ3JhbEF0dHI6KGludCluZXdSZWZsZWN0ZWRJbnRl
Z3JhbEF0dHI7CistIChCT09MKXJlZmxlY3RlZEJvb2xlYW5BdHRyOworLSAodm9pZClzZXRSZWZs
ZWN0ZWRCb29sZWFuQXR0cjooQk9PTCluZXdSZWZsZWN0ZWRCb29sZWFuQXR0cjsKKy0gKE5TU3Ry
aW5nICopcmVmbGVjdGVkVVJMQXR0cjsKKy0gKHZvaWQpc2V0UmVmbGVjdGVkVVJMQXR0cjooTlNT
dHJpbmcgKiluZXdSZWZsZWN0ZWRVUkxBdHRyOworLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRTdHJp
bmdBdHRyOworLSAodm9pZClzZXRSZWZsZWN0ZWRTdHJpbmdBdHRyOihOU1N0cmluZyAqKW5ld1Jl
ZmxlY3RlZFN0cmluZ0F0dHI7CistIChpbnQpcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyOwor
LSAodm9pZClzZXRSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHI6KGludCluZXdSZWZsZWN0ZWRD
dXN0b21JbnRlZ3JhbEF0dHI7CistIChCT09MKXJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyOwor
LSAodm9pZClzZXRSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjooQk9PTCluZXdSZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cjsKKy0gKE5TU3RyaW5nICopcmVmbGVjdGVkVVJMQXR0cjsKKy0gKHZv
aWQpc2V0UmVmbGVjdGVkVVJMQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRVUkxBdHRyOwog
LSAoaW50KWF0dHJXaXRoRXhjZXB0aW9uOwogLSAodm9pZClzZXRBdHRyV2l0aEV4Y2VwdGlvbjoo
aW50KW5ld0F0dHJXaXRoRXhjZXB0aW9uOwogLSAoaW50KWF0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbQkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bXBvcnQgIkRPTWxvZ0ludGVybmFsLmgiCiAjaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCiAjaW1w
b3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbXBvcnQgIktVUkwuaCIKICNpbXBvcnQgIk9i
akNFdmVudExpc3RlbmVyLmgiCkBAIC0xNTEsNiArMTUyLDEwMiBAQCAtICh2b2lkKXNldFRlc3RP
YmpBdHRyOihET01UZXN0T2JqICopbmV3CiAgICAgSU1QTC0+c2V0VGVzdE9iakF0dHIoY29yZShu
ZXdUZXN0T2JqQXR0cikpOwogfQogCistIChOU1N0cmluZyAqKXJlZmxlY3RlZFN0cmluZ0F0dHIK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHN0cmluZ2F0
dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWRTdHJpbmdBdHRyOihOU1N0cmluZyAq
KW5ld1JlZmxlY3RlZFN0cmluZ0F0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIsIG5ld1JlZmxlY3RlZFN0cmluZ0F0dHIpOworfQorCist
IChpbnQpcmVmbGVjdGVkSW50ZWdyYWxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIpOworfQorCistICh2
b2lkKXNldFJlZmxlY3RlZEludGVncmFsQXR0cjooaW50KW5ld1JlZmxlY3RlZEludGVncmFsQXR0
cgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBM
LT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVn
cmFsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZEludGVncmFsQXR0cik7Cit9CisKKy0gKEJPT0wpcmVm
bGVjdGVkQm9vbGVhbkF0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UmVmbGVjdGVkQm9v
bGVhbkF0dHI6KEJPT0wpbmV3UmVmbGVjdGVkQm9vbGVhbkF0dHIKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0ciwgbmV3UmVmbGVj
dGVkQm9vbGVhbkF0dHIpOworfQorCistIChOU1N0cmluZyAqKXJlZmxlY3RlZFVSTEF0dHIKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJB
dHRyKTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWRVUkxBdHRyOihOU1N0cmluZyAqKW5ld1Jl
ZmxlY3RlZFVSTEF0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVk
dXJsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZFVSTEF0dHIpOworfQorCistIChOU1N0cmluZyAqKXJl
ZmxlY3RlZFN0cmluZ0F0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UmVmbGVjdGVk
U3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRTdHJpbmdBdHRyCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgbmV3UmVm
bGVjdGVkU3RyaW5nQXR0cik7Cit9CisKKy0gKGludClyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0
dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9t
Q29udGVudEludGVncmFsQXR0ckF0dHIpOworfQorCistICh2b2lkKXNldFJlZmxlY3RlZEN1c3Rv
bUludGVncmFsQXR0cjooaW50KW5ld1JlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRJbnRl
Z3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0
dHJBdHRyLCBuZXdSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOworfQorCistIChCT09MKXJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpjdXN0b21Db250ZW50Qm9vbGVhbkF0dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjooQk9PTCluZXdSZWZsZWN0ZWRDdXN0b21Cb29sZWFu
QXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVu
dEJvb2xlYW5BdHRyQXR0ciwgbmV3UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOworfQorCist
IChOU1N0cmluZyAqKXJlZmxlY3RlZFVSTEF0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFVSTEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0cik7Cit9CisKKy0gKHZvaWQp
c2V0UmVmbGVjdGVkVVJMQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRVUkxBdHRyCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgbmV3
UmVmbGVjdGVkVVJMQXR0cik7Cit9CisKIC0gKGludClhdHRyV2l0aEV4Y2VwdGlvbgogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAkocmV2aXNpb24gNjAzNzQp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVjhUZXN0T2JqLmgiCiAKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgpAQCAtMTUxLDYgKzE1MiwxMzQg
QEAgc3RhdGljIHZvaWQgdGVzdE9iakF0dHJBdHRyU2V0dGVyKHY4OjpMbwogICAgIHJldHVybjsK
IH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRTdHJpbmdBdHRyQXR0
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZFN0cmluZ0F0
dHIuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7CisgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZvaWQg
cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZv
KQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3RyaW5nQXR0ci5fc2V0
Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7CisgICAgaW1wLT5z
ZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0ciwg
dik7CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxl
Y3RlZEludGVncmFsQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai5yZWZsZWN0ZWRJbnRlZ3JhbEF0dHIuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpO
ZXcoaW1wLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3Rl
ZGludGVncmFsYXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZvaWQgcmVmbGVjdGVkSW50ZWdyYWxB
dHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5yZWZsZWN0ZWRJbnRlZ3JhbEF0dHIuX3NldCIpOworICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaW50IHYg
PSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwgdik7CisgICAgcmV0dXJuOwor
fQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEJvb2xlYW5BdHRyQXR0
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEJvb2xlYW5B
dHRyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOworICAgIHJldHVybiB2OEJvb2xlYW4oaW1wLT5oYXNBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZv
aWQgcmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEJvb2xlYW5BdHRy
Ll9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOworICAgIGJvb2wgdiA9IHZhbHVlLT5Cb29sZWFuVmFsdWUoKTsKKyAgICBpbXAtPnNl
dEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0
ckF0dHIsIHYpOworICAgIHJldHVybjsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiByZWZsZWN0ZWRVUkxBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLnJlZmxlY3RlZFVSTEF0dHIuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+Z2V0
VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIpKTsK
K30KKworc3RhdGljIHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVk
VVJMQXR0ci5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7
CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxh
dHRyQXR0ciwgdik7CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9N
LlRlc3RPYmoucmVmbGVjdGVkU3RyaW5nQXR0ci5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjhTdHJpbmco
aW1wLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5n
QXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZvaWQgcmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmoucmVmbGVjdGVkU3RyaW5nQXR0ci5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVs
bENoZWNrPiB2ID0gdmFsdWU7CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIHYpOworICAgIHJldHVybjsKK30KKwor
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJB
dHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkQ3VzdG9t
SW50ZWdyYWxBdHRyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KGltcC0+Z2V0
SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50ZWdy
YWxBdHRyQXR0cikpOworfQorCitzdGF0aWMgdm9pZCByZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0
dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ci5fc2V0Iik7CisgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBp
bnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50ZWdyYWxBdHRyQXR0ciwgdik7CisgICAg
cmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEN1c3Rv
bUJvb2xlYW5BdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qg
djg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2OEJvb2xlYW4oaW1w
LT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50Qm9vbGVhbkF0
dHJBdHRyKSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
dmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE9iai5yZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ci5fc2V0Iik7CisgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBib29sIHYg
PSB2YWx1ZS0+Qm9vbGVhblZhbHVlKCk7CisgICAgaW1wLT5zZXRCb29sZWFuQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRyQXR0ciwgdik7CisgICAg
cmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZFVSTEF0
dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkVVJM
QXR0ci5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZv
LkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT5nZXRVUkxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKTsKK30KKworc3RhdGlj
IHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkVVJMQXR0ci5fc2V0
Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7CisgICAgaW1wLT5z
ZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIs
IHYpOworICAgIHJldHVybjsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhdHRy
V2l0aEV4Y2VwdGlvbkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5h
dHRyV2l0aEV4Y2VwdGlvbi5fZ2V0Iik7CkBAIC02MjUsNiArNzU0LDIyIEBAIHN0YXRpYyBjb25z
dCBCYXRjaGVkQXR0cmlidXRlIFRlc3RPYmpBdHQKICAgICB7InN0cmluZ0F0dHIiLCBUZXN0T2Jq
SW50ZXJuYWw6OnN0cmluZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnN0cmluZ0F0
dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Rlc3RPYmpB
dHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJ0ZXN0T2JqQXR0ciIs
IFRlc3RPYmpJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6
OnRlc3RPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6
QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRy
aWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRl
ICdyZWZsZWN0ZWRTdHJpbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxl
Y3QnKQorICAgIHsicmVmbGVjdGVkU3RyaW5nQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVj
dGVkU3RyaW5nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkU3RyaW5n
QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVj
dGVkSW50ZWdyYWxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQor
ICAgIHsicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZEludGVncmFs
QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVj
dGVkQm9vbGVhbkF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnUmVmbGVjdCcpCisg
ICAgeyJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQm9v
bGVhbkF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZEJvb2xlYW5BdHRy
QXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJv
bD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpO
b25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdyZWZsZWN0ZWRV
UkxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxlY3RVUkwnKQorICAgIHsi
cmVmbGVjdGVkVVJMQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJH
ZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIsIDAgLyog
bm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwg
c3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5z
dGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkU3RyaW5nQXR0cicgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKKyAgICB7InJlZmxlY3RlZFN0cmluZ0F0
dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyLCBUZXN0
T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEg
Ki8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19j
YXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICov
fSwKKyAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cicgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKKyAgICB7InJlZmxlY3RlZEN1c3RvbUlu
dGVncmFsQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRy
QXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZEN1
c3RvbUJvb2xlYW5BdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQor
ICAgIHsicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxl
Y3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nh
c3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0
dHJpYnV0ZSAncmVmbGVjdGVkVVJMQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdS
ZWZsZWN0VVJMJykKKyAgICB7InJlZmxlY3RlZFVSTEF0dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnJl
ZmxlY3RlZFVSTEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFVSTEF0
dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2F0dHJXaXRo
RXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJhdHRyV2l0
aEV4Y2VwdGlvbiIsIFRlc3RPYmpJbnRlcm5hbDo6YXR0cldpdGhFeGNlcHRpb25BdHRyR2V0dGVy
LCBUZXN0T2JqSW50ZXJuYWw6OmF0dHJXaXRoRXhjZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdhdHRyV2l0aFNldHRlckV4Y2VwdGlvbicgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDYwMzc0KQor
KysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw3ICsxODgs
NyBAQCB2b2lkIEVsZW1lbnQ6OnNldENTdHJpbmdBdHRyaWJ1dGUoY29uc3QgCiB2b2lkIEVsZW1l
bnQ6OnNldEJvb2xlYW5BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgYm9vbCBi
KQogewogICAgIGlmIChiKQotICAgICAgICBzZXRBdHRyaWJ1dGUobmFtZSwgbmFtZS5sb2NhbE5h
bWUoKSk7CisgICAgICAgIHNldEF0dHJpYnV0ZShuYW1lLCBlbXB0eUF0b20pOwogICAgIGVsc2Ug
ewogICAgICAgICBFeGNlcHRpb25Db2RlIGV4OwogICAgICAgICByZW1vdmVBdHRyaWJ1dGUobmFt
ZSwgZXgpOwpAQCAtMTU0Miw0ICsxNTQyLDI4IEBAIGNvbnN0IFF1YWxpZmllZE5hbWUmIEVsZW1l
bnQ6OnJhcmVJREF0dHIKICAgICByZXR1cm4gcmFyZURhdGEoKS0+bV9pZEF0dHJpYnV0ZU5hbWU7
CiB9CiAKK2ludCBFbGVtZW50OjpnZXRJbnRlZ3JhbEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoYXR0
cmlidXRlTmFtZSkuc3RyaW5nKCkudG9JbnQoKTsKK30KKwordm9pZCBFbGVtZW50OjpzZXRJbnRl
Z3JhbEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBpbnQgdmFs
dWUpCit7CisgICAgLy8gRklYTUU6IE5lZWQgYW4gQXRvbWljU3RyaW5nIHZlcnNpb24gb2YgU3Ry
aW5nOjpudW1iZXIuCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICBzZXRBdHRyaWJ1dGUoYXR0
cmlidXRlTmFtZSwgU3RyaW5nOjpudW1iZXIodmFsdWUpLCBlYyk7Cit9CisKK3Vuc2lnbmVkIEVs
ZW1lbnQ6OmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGF0dHJpYnV0
ZU5hbWUpLnN0cmluZygpLnRvVUludCgpOworfQorCit2b2lkIEVsZW1lbnQ6OnNldFVuc2lnbmVk
SW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgdW5z
aWduZWQgdmFsdWUpCit7CisgICAgLy8gRklYTUU6IE5lZWQgYW4gQXRvbWljU3RyaW5nIHZlcnNp
b24gb2YgU3RyaW5nOjpudW1iZXIuCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICBzZXRBdHRy
aWJ1dGUoYXR0cmlidXRlTmFtZSwgU3RyaW5nOjpudW1iZXIodmFsdWUpLCBlYyk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29y
ZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDEyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVtb3ZlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICAvLyBUeXBl
ZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBsYW5ndWFnZSBiaW5kaW5ncy4KKyAgICBpbnQgZ2V0
SW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgY29u
c3Q7CisgICAgdm9pZCBzZXRJbnRlZ3JhbEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBpbnQgdmFsdWUpOworICAgIHVuc2lnbmVkIGdldFVuc2lnbmVkSW50ZWdy
YWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIHVuc2lnbmVkIHZhbHVlKTsKKwogICAgIC8vIENhbGwgdGhpcyB0byBn
ZXQgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGlzIGtub3duIG5vdCB0byBiZSB0aGUg
c3R5bGUKICAgICAvLyBhdHRyaWJ1dGUgb3Igb25lIG9mIHRoZSBTVkcgYW5pbWF0YWJsZSBhdHRy
aWJ1dGVzLgogICAgIGJvb2wgZmFzdEhhc0F0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0
KQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCkBAIC0yMSwxNyArMjEsMTcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBI
VE1MQW5jaG9yRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1hY2Nlc3NrZXldIERPTVN0cmluZyBhY2Nlc3NL
ZXk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Rd
IERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29vcmRzOwotICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0VVJMXSBET01TdHJpbmcgaHJlZjsKLSAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5n
IGhyZWZsYW5nOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBS
ZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHJlbDsKLSAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHJldjsKLSAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHNo
YXBlOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0
XSBET01TdHJpbmcgdGFyZ2V0OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBjaGFyc2V0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBj
b29yZHM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIGhyZWY7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhyZWZsYW5nOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyByZWw7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHJldjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2hhcGU7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdldDsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaGFzaDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50Lmlk
bAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21h
aWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI1LDI1ICsyNSwyNSBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIERlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QsCiAgICAgICAgIEN1c3RvbUNhbGwK
ICAgICBdIEhUTUxBcHBsZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcg
YWxpZ247Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBhcmNoaXZlOwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0
XSBET01TdHJpbmcgY29kZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdD1jb2RlYmFzZV0gRE9NU3RyaW5nIGNvZGVCYXNlOwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0
XSBET01TdHJpbmcgaGVpZ2h0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBhbGlnbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWx0OworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhcmNoaXZlOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBjb2RlQmFzZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgaGVpZ2h0OwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VB
R0VfSkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgaHNwYWNlOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBoc3BhY2U7CiAjZWxzZQotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhzcGFjZTsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBsb25nIGhzcGFjZTsKICNlbmRpZgotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVj
dF0gRE9NU3RyaW5nIG9iamVjdDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgb2JqZWN0Owog
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZs
ZWN0XSBET01TdHJpbmcgdnNwYWNlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyB2c3BhY2U7CiAjZWxzZQotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRG
cm9tU3RyaW5nXSBsb25nIHZzcGFjZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25n
IHZzcGFjZTsKICNlbmRpZgotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRoOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21h
aWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDEzICsyMSwxMyBAQAogbW9kdWxlIGh0bWwgewog
CiAgICAgaW50ZXJmYWNlIEhUTUxBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1hY2Nlc3NrZXldIERP
TVN0cmluZyBhY2Nlc3NLZXk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBjb29yZHM7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RVUkxdIERPTVN0cmluZyBo
cmVmOwotICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBub0hyZWY7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBzaGFwZTsKLSAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3Ry
aW5nIHRhcmdldDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNz
S2V5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbHQ7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvb3JkczsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0VVJMXSBET01TdHJpbmcgaHJlZjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBib29sZWFuIG5vSHJlZjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
c2hhcGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdldDsKIAog
ICAgICAgICAvLyBJRSBFeHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgaGFzaDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQor
KysgV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3
ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEJSRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZywgUmVmbGVjdF0gRE9NU3RyaW5nIGNsZWFyOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBjbGVhcjsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJh
c2VFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50
LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjAsOCArMjAsOCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxCYXNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGhyZWY7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0
cmluZyB0YXJnZXQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhyZWY7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdldDsKICAgICB9Owog
CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3
NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjAsMTIgKzIwLDEyIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEJh
c2VGb250RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGNvbG9yOwotICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgZmFjZTsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29sb3I7CisgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZhY2U7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9P
QkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0VG9TdHJpbmddIERPTVN0cmluZyBzaXplOyAvLyB0aGlzIGNoYW5nZWQgdG8gYSBsb25n
LCBidXQgb3VyIGV4aXN0aW5nIEFQSSBpcyBhIHN0cmluZwogI2Vsc2UKLSAgICAgICAgYXR0cmli
dXRlIGxvbmcgc2l6ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHNpemU7CiAj
ZW5kaWYKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxCbG9ja3F1b3RlRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxCbG9ja3F1b3RlRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxCbG9ja3F1b3RlRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAog
ICAgIGludGVyZmFjZSBIVE1MQmxvY2txdW90ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmlu
ZyBjaXRlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaXRlOwogICAg
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVl
bCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDEyICsy
MSwxMiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxCb2R5RWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZywgUmVmbGVjdD1hbGlua10gRE9NU3RyaW5nIGFMaW5rOwotICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgYmFja2dyb3VuZDsKLSAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1iZ2NvbG9y
XSBET01TdHJpbmcgYmdDb2xvcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGxpbms7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyB0ZXh0OwotICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PXZsaW5rXSBET01TdHJp
bmcgdkxpbms7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFMaW5rOwor
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiYWNrZ3JvdW5kOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiZ0NvbG9yOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsaW5rOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyB0ZXh0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB2
TGluazsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0Vf
T0JKRUNUSVZFX0MKICAgICAgICAgLy8gRXZlbnQgaGFuZGxlciBhdHRyaWJ1dGVzCkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMjEsMjEgKzIxLDI2IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRl
cmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBmb3JtTm9WYWxpZGF0ZTsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlICBWYWxpZGl0eVN0YXRlICAgICAgICB2YWxpZGl0eTsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyAgICAgICAgICAgIGFjY2Vzc0tleTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29s
ZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBi
b29sZWFuICAgICAgICAgICAgICBhdXRvZm9jdXM7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBuYW1lOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7Ci0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gICAgICAgICAgICAgICB3aWxsVmFsaWRhdGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7Ci0gICAgICAgIGJvb2xl
YW4gIGNoZWNrVmFsaWRpdHkoKTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3Jt
RWxlbWVudCBmb3JtOworCisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBmb3Jt
Tm9WYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFs
aWRpdHk7CisKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdmFs
dWU7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlOwor
ICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21W
YWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGVycm9yKTsKKwogICAgICAgICB2b2lkIGNsaWNrKCk7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSAgTm9kZUxpc3QgICAgICAgICAgICAgIGxhYmVsczsKKworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MRExpc3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERM
aXN0RWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxETGlz
dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxE
TGlzdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGNv
bXBhY3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21wYWN0OwogICAg
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbAkocmV2aXNp
b24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsNyArMjAsNyBA
QAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxEaXJlY3RvcnlFbGVtZW50IDog
SFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wYWN0OworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gY29tcGFjdDsKICAgICB9OwogCiB9CkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRGl2RWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1s
L0hUTUxEaXZFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFj
ZSBIVE1MRGl2RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDExIEBAIG1vZHVsZSBodG1sIHsKICAgICBdIEhU
TUxFbGVtZW50IDogRWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIC8vIGlodC5jb20gcmVsaWVz
IG9uIGlkIHJldHVybmluZyB0aGUgZW1wdHkgc3RyaW5nIHdoZW4gbm8gaWQgaXMgcHJlc2VudC4g
CiAgICAgICAgICAgICAgICAgIC8vIE90aGVyIGJyb3dzZXJzIGRvIHRoaXMgYXMgd2VsbC4gU28g
d2UgZG9uJ3QgY29udmVydCBudWxsIHRvIEpTIG51bGwuCi0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBpZDsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVj
dF0gRE9NU3RyaW5nIHRpdGxlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgbGFuZzsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5n
IGRpcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZywgUmVmbGVjdD1jbGFzc10gRE9NU3RyaW5nIGNsYXNzTmFtZTsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaWQ7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRpdGxlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsYW5nOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBkaXI7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdD1jbGFzc10gRE9NU3RyaW5nIGNsYXNzTmFtZTsKIAogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgIHRhYkluZGV4OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIGRyYWdnYWJsZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTI1LDI1ICsyNSwyNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIERl
bGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QsCiAgICAgICAgIEN1c3RvbUNhbGwKICAgICBdIEhU
TUxFbWJlZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKICNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGhl
aWdodDsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWlnaHQ7CiAjZWxzZQot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhlaWdo
dDsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgaGVpZ2h0OwogI2VuZGlmCi0gICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERP
TVN0cmluZyBuYW1lOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgc3JjOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsK
KyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIHNyYzsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyB0eXBlOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFW
QVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgd2lkdGg7CiAjZWxzZQotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnRGcm9tU3RyaW5nXSBsb25nIHdpZHRoOworICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyB3
aWR0aDsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfU1ZHKSAmJiBFTkFCTEVfU1ZHCiAj
aWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVf
QyB8fCBkZWZpbmVkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICYmIEVOQUJMRV9TVkdf
RE9NX09CSkNfQklORElOR1MKLSAgICAgICAgW1NWR0NoZWNrU2VjdXJpdHlEb2N1bWVudF0gU1ZH
RG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKQotICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgW1NWR0NoZWNrU2VjdXJpdHlEb2N1bWVudF0gU1ZHRG9jdW1lbnQgZ2V0U1ZHRG9j
dW1lbnQoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogI2VuZGlmCiAgICAgfTsKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjAsOSArMjAsOSBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50
ZXJmYWNlIEhUTUxGb250RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvbG9yOwotICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZmFjZTsKLSAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNpemU7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvbG9yOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmYWNlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBzaXplOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsNyArMjI0LDcgQEAg
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdXRvZm9jdXMoKQogCiB2b2lkIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldEF1dG9mb2N1cyhib29sIGIpCiB7Ci0gICAgc2V0QXR0cmlidXRl
KGF1dG9mb2N1c0F0dHIsIGIgPyAiYXV0b2ZvY3VzIiA6IDApOworICAgIHNldEF0dHJpYnV0ZShh
dXRvZm9jdXNBdHRyLCBiID8gIiIgOiAwKTsKIH0KIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpyZXF1aXJlZCgpIGNvbnN0CkBAIC0yMzQsNyArMjM0LDcgQEAgYm9vbCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpyZXF1aXJlZCgpIAogCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldFJlcXVpcmVkKGJvb2wgYikKIHsKLSAgICBzZXRBdHRyaWJ1dGUocmVxdWlyZWRBdHRyLCBi
ID8gInJlcXVpcmVkIiA6IDApOworICAgIHNldEF0dHJpYnV0ZShyZXF1aXJlZEF0dHIsIGIgPyAi
IiA6IDApOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVGcm9tRWxlbWVudENhbGxiYWNrKE5vZGUq
IG5vZGUpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFp
bC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjQsMTkgKzI0LDIwIEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgSGFzSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyCiAg
ICAgXSBIVE1MRm9ybUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiAgZWxlbWVudHM7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nICAgICAgICAgICAgbGVuZ3RoOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgbmFtZTsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBub1ZhbGlkYXRlOwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAg
ICAgYWNjZXB0Q2hhcnNldDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGFjdGlvbjsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGVuY29k
aW5nOyAgLyogTmV0c2NhcGUvRmlyZWZveCBsZWdhY3kgYXR0cmlidXRlLiBTYW1lIGFzIGVuY3R5
cGUuICovCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyAgICAgICBlbmN0eXBlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgbWV0aG9kOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ICAgICAgdGFyZ2V0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24g
ZWxlbWVudHM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsKKworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9WYWxpZGF0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0PWFjY2VwdF9jaGFyc2V0XSBET01TdHJpbmcgYWNjZXB0Q2hhcnNldDsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWN0aW9uOworICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZW5jb2Rpbmc7ICAvKiBOZXRzY2FwZS9G
aXJlZm94IGxlZ2FjeSBhdHRyaWJ1dGUuIFNhbWUgYXMgZW5jdHlwZS4gKi8KKyAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVuY3R5cGU7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1ldGhvZDsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGFyZ2V0OwogICAgICAgICAKICAgICAgICAgW0NhbGxX
aXRoPUR5bmFtaWNGcmFtZV0gdm9pZCBzdWJtaXQoKTsKICAgICAgICAgdm9pZCByZXNldCgpOwot
ICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CisgICAgICAgIGJvb2xlYW4gY2hlY2tW
YWxpZGl0eSgpOwogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCkBAIC0yMiwxNyArMjIsMTcgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhU
TUxGcmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1mcmFtZWJvcmRlcl0gRE9NU3Ry
aW5nICAgICAgIGZyYW1lQm9yZGVyOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PWxvbmdkZXNjXSBET01TdHJpbmcgICAgICAgbG9u
Z0Rlc2M7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsIFJlZmxlY3Q9bWFyZ2luaGVpZ2h0XSBET01TdHJpbmcgICAgICAgbWFyZ2luSGVpZ2h0Owot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZs
ZWN0PW1hcmdpbndpZHRoXSBET01TdHJpbmcgICAgICAgbWFyZ2luV2lkdGg7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0
cmluZyAgICAgICBuYW1lOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIG5vUmVzaXplOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAgc2Nyb2xsaW5nOwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBDdXN0b21TZXR0ZXIs
IFJlZmxlY3RVUkxdIERPTVN0cmluZyAgICAgICBzcmM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIGZyYW1lQm9yZGVyOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBsb25nRGVzYzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgbWFyZ2luSGVpZ2h0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBt
YXJnaW5XaWR0aDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIG5vUmVzaXplOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzY3JvbGxpbmc7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdFVSTCwgQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgc3JjOwogCiAgICAgICAgIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q2hlY2tGcmFtZVNlY3VyaXR5XSBEb2N1bWVudCAgICAgICAgY29udGVudERvY3VtZW50OworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0gRG9jdW1lbnQgY29u
dGVudERvY3VtZW50OwogCiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVdpbmRvdyBjb250ZW50V2luZG93OwpAQCAtNDQsOSArNDQsMTAgQEAgbW9k
dWxlIGh0bWwgewogI2VuZGlmCiAjZW5kaWYKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBDdXN0b21TZXR0ZXJdIERPTVN0cmluZyAgICAgICBs
b2NhdGlvbjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB3aWR0
aDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBoZWlnaHQ7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIEN1c3RvbVNldHRlcl0g
RE9NU3RyaW5nIGxvY2F0aW9uOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHdp
ZHRoOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CiAKICAgICB9Owog
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmUKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZQogICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTIzLDggKzIzLDggQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCiAgICAgICAg
IEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyCiAgICAgXSBIVE1MRnJhbWVTZXRFbGVtZW50IDogSFRN
TEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgY29sczsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHJvd3M7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGNvbHM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJvd3M7CiAKICNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9D
CiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxIUkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSFJFbGVt
ZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwx
MCArMjAsMTAgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MSFJFbGVtZW50
IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIG5vU2hhZGU7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBz
aXplOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgd2lkdGg7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwor
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9TaGFkZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2l6ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgd2lkdGg7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxIZWFkRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxl
bWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MCw3ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEhlYWRFbGVt
ZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgcHJvZmlsZTsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgcHJvZmlsZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTEhlYWRpbmdFbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTEhlYWRpbmdFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVy
ZmFjZSBIVE1MSGVhZGluZ0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsKIAogfQpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxIdG1sRWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hU
TUxIdG1sRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMCw5ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2Ug
SFRNTEh0bWxFbGVtZW50IDogSFRNTEVsZW1lbnQgewotCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2ZXJzaW9uOwotCisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZlcnNpb247CiAgICAgfTsKIAogfQpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsMjEgKzIx
LDIwIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTElGcmFtZUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIGFsaWduOwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PWZyYW1l
Ym9yZGVyXSBET01TdHJpbmcgICAgICAgZnJhbWVCb3JkZXI7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAg
ICBoZWlnaHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmcsIFJlZmxlY3Q9bG9uZ2Rlc2NdIERPTVN0cmluZyAgICAgICBsb25nRGVzYzsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1t
YXJnaW5oZWlnaHRdIERPTVN0cmluZyAgICAgICBtYXJnaW5IZWlnaHQ7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Q9bWFyZ2lud2lk
dGhdIERPTVN0cmluZyAgICAgICBtYXJnaW5XaWR0aDsKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIG5h
bWU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcs
IFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBzYW5kYm94OwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAg
c2Nyb2xsaW5nOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBDdXN0b21TZXR0ZXIsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBzcmM7Ci0gICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Rd
IERPTVN0cmluZyAgICAgICB3aWR0aDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgYWxpZ247CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZyYW1l
Qm9yZGVyOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWlnaHQ7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGxvbmdEZXNjOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtYXJnaW5IZWlnaHQ7CisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1hcmdpbldpZHRoOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBzYW5kYm94OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBz
Y3JvbGxpbmc7CisgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyLCBSZWZsZWN0XSBET01T
dHJpbmcgc3JjOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3aWR0aDsK
IAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0gRG9jdW1lbnQgICAgICAgIGNvbnRlbnRE
b2N1bWVudDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDaGVja0ZyYW1lU2VjdXJpdHld
IERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01XaW5kb3cgY29udGVudFdpbmRvdzsKQEAgLTQ2LDcg
KzQ1LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAjZW5kaWYKICNlbmRpZgotCiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgpAQCAtMjEsMjIgKzIxLDIyIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBp
bnRlcmZhY2UgSFRNTEltYWdlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5n
IG5hbWU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0g
RE9NU3RyaW5nIGJvcmRlcjsgICAgICAgIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9u
ZyBoZWlnaHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGhzcGFjZTsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gaXNNYXA7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RVUkw9bG9uZ2Rlc2NdIERP
TVN0cmluZyBsb25nRGVzYzsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD11c2VtYXBdIERP
TVN0cmluZyB1c2VNYXA7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHZzcGFjZTsK
LSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgd2lkdGg7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBh
bHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJvcmRlcjsgICAgICAg
IAorICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgaGVpZ2h0OworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIGxvbmcgaHNwYWNlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IGJvb2xlYW4gaXNNYXA7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTD1sb25nZGVzY10g
RE9NU3RyaW5nIGxvbmdEZXNjOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RVUkxdIERPTVN0
cmluZyBzcmM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHZzcGFjZTsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBsb25nIHdpZHRoOwogICAgICAgICAKICAgICAgICAgLy8gRXh0ZW5zaW9u
cwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wbGV0ZTsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdFVSTF0g
RE9NU3RyaW5nIGxvd3NyYzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJp
bmcgbG93c3JjOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBuYXR1cmFsSGVpZ2h0
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBuYXR1cmFsV2lkdGg7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsODEgKzIx
LDc4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTElucHV0RWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgICBkZWZhdWx0Q2hlY2tlZDsKKyAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoZWNrZWRdIGJvb2xlYW4gZGVmYXVsdENoZWNrZWQ7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBmb3JtTm9WYWxpZGF0ZTsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFj
Y2VwdDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGFjY2Vzc0tleTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWx0OwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGNoZWNrZWQ7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgZGlzYWJsZWQ7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgYXV0b2ZvY3VzOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBhY2NlcHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGFjY2Vzc0tleTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxp
Z247CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKKyAgICAgICAg
YXR0cmlidXRlIGJvb2xlYW4gY2hlY2tlZDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBi
b29sZWFuIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0
b2ZvY3VzOwogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJU1QK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50ICAgICBsaXN0OwogI2VuZGlm
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJl
ZmxlY3RdIERPTVN0cmluZyBtYXg7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAg
ICAgICAgICAgbWF4TGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBtaW47Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBib29sZWFuICAgICAgICAgbXVsdGlwbGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJp
bmcgcGF0dGVybjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICBw
bGFjZWhvbGRlcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBy
ZWFkT25seTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICByZXF1
aXJlZDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OworICAgICAg
ICBhdHRyaWJ1dGUgbG9uZyBtYXhMZW5ndGggc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtaW47CisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBtdWx0aXBsZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgcGF0dGVybjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcGxhY2Vo
b2xkZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZWFkT25seTsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlcXVpcmVkOwogI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCi0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydFRvU3RyaW5nXSBET01TdHJpbmcgc2l6ZTsgLy8gRE9N
IGxldmVsIDIgY2hhbmdlZCB0aGlzIHRvIGEgbG9uZywgYnV0IG91ciBleGlzdGluZyBBUEkgaXMg
YSBzdHJpbmcKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0VG9TdHJpbmddIERPTVN0cmluZyBz
aXplOyAvLyBET00gbGV2ZWwgMiBjaGFuZ2VkIHRoaXMgdG8gYSBsb25nLCBidXQgb3VyIGV4aXN0
aW5nIEFQSSBpcyBhIHN0cmluZwogI2Vsc2UKLSAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRo
ZSBzcGVjIHNheXMgdGhpcyBzaG91bGQgYmUgYSBsb25nLCBub3QgYW4gdW5zaWduZWQgbG9uZwot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgIHNpemU7IC8vIENoYW5n
ZWQgc3RyaW5nIC0+IGxvbmcgYXMgcGFydCBvZiBET00gbGV2ZWwgMgorICAgICAgICAvLyBGSVhN
RTogVGhlIHNwZWMgc2F5cyB0aGlzIHNob3VsZCBiZSBhIGxvbmcsIG5vdCBhbiB1bnNpZ25lZCBs
b25nLgorICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzaXplOyAvLyBDaGFuZ2VkIHN0
cmluZyAtPiBsb25nIGFzIHBhcnQgb2YgRE9NIGxldmVsIDIKICNlbmRpZgotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3JjOwot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZs
ZWN0XSBET01TdHJpbmcgc3RlcDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZywgSlNDQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlwZTsgLy8gcmVh
ZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCi0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7Ci0gICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERhdGUgICAgICAgICAgICB2YWx1
ZUFzRGF0ZSBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBkb3VibGUgICAgICAgICAgdmFsdWVBc051bWJlciBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc3RlcDsKKyAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgSlNDQ3VzdG9tR2V0dGVyXSBET01TdHJp
bmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKKyAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICAgICAgICBh
dHRyaWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZSBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgdmFsdWVBc051bWJlciBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAjaWYgZGVmaW5lZChFTkFCTEVfREFUQUxJU1QpICYmIEVOQUJMRV9EQVRBTElT
VAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTE9wdGlvbkVsZW1lbnQgc2VsZWN0ZWRP
cHRpb247CiAjZW5kaWYKIAotICAgICAgICB2b2lkICAgICAgICAgICAgICAgc3RlcFVwKGluIFtP
cHRpb25hbF0gbG9uZyBuKQotICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgICAgICAgICAgICAgICBzdGVwRG93bihpbiBbT3B0aW9uYWxdIGxvbmcgbikKLSAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOwotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwotICAgICAgICBib29sZWFu
ICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgpOwotICAgICAgICB2b2lkICAgICAgICAgICAgICAg
c2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBlcnJvcik7Ci0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsK
LSAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGNsaWNrKCk7CisgICAgICAgIHZvaWQgc3RlcFVw
KGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9p
ZCBzdGVwRG93bihpbiBbT3B0aW9uYWxdIGxvbmcgbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlOworICAgICAg
ICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKKyAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0
eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9y
KTsKKyAgICAgICAgdm9pZCBzZWxlY3QoKTsKKyAgICAgICAgdm9pZCBjbGljaygpOwogCiAjaWYg
IWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdVQUdFX0pBVkFTQ1JJUFQKLSAg
ICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldFZhbHVlRm9yVXNlcihpbiBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZSk7CisgICAgICAgIHZvaWQgc2V0VmFsdWVGb3JV
c2VyKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKICNlbmRp
ZgogCiAgICAgICAgIC8vIFdpbklFIGV4dGVuc2lvbjoKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICBpbmRldGVybWluYXRlOworICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBpbmRldGVybWluYXRlOwogCiAgICAgICAgIC8vIFdpbklFICYgRmlyZUZveCBleHRlbnNp
b246CiAKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGxvbmcgc2VsZWN0aW9u
U3RhcnQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBsb25nIHNlbGVjdGlv
bkVuZDsKKyAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGxvbmcgc2VsZWN0aW9uU3RhcnQ7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBsb25nIHNlbGVjdGlvbkVuZDsKICAgICAgICAgW0N1
c3RvbV0gdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbiBsb25nIHN0YXJ0LCBpbiBsb25nIGVuZCk7
CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgICAgICAvLyBPYmplY3Rp
dmUtQyBleHRlbnNpb246Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgYWx0RGlzcGxheVN0cmluZzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVSTCAgICAg
ICAgICAgICBhYnNvbHV0ZUltYWdlVVJMOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGFsdERpc3BsYXlTdHJpbmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVUkwg
YWJzb2x1dGVJbWFnZVVSTDsKICNlbmRpZgogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBG
aWxlTGlzdCBmaWxlczsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBOb2RlTGlzdCAgICAg
ICBsYWJlbHM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7CiAg
ICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5pZGwJKHJldmlzaW9u
IDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSw3ICsyMSw3IEBAIG1v
ZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MSXNJbmRleEVsZW1lbnQgOiBIVE1MSW5w
dXRFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBm
b3JtOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgcHJvbXB0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBwcm9tcHQ7
CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRtbCB7
CiAKICAgICBpbnRlcmZhY2UgSFRNTExJRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBsb25nIHZhbHVlOyAgICAKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHZhbHVl
OyAgICAKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCShyZXZp
c2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8
c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjIsOCArMjIsOCBAQCBtb2R1
bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTExhYmVsRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWNjZXNz
S2V5OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgaHRtbEZvcjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNz
S2V5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Zm9yXSBET01TdHJpbmcgaHRtbEZvcjsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50IGNvbnRyb2w7CiAgICAgfTsK
IApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21h
aWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIyLDggKzIyLDggQEAgbW9kdWxlIGh0bWwgewogCiAg
ICAgaW50ZXJmYWNlIEhUTUxMZWdlbmRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07Ci0gICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKICAgICB9OwogCiB9CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtMjEsMTggKzIxLDE4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2Ug
SFRNTExpbmtFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgIGJvb2xl
YW4gICAgICAgICAgICAgIGRpc2FibGVkOwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgY2hhcnNldDsKLSAgICAgICAgYXR0
cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIGhy
ZWY7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgICAgICAgICAgICBocmVmbGFuZzsKLSAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIG1lZGlhOwotICAgICAgICBhdHRyaWJ1
dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgcmVsOwot
ICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAg
ICAgICAgICAgcmV2OwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nICAgICAgICAgICAgdGFyZ2V0OwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKKyAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RV
UkxdIERPTVN0cmluZyBocmVmOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBocmVmbGFuZzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWVkaWE7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJlbDsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmV2OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyB0YXJnZXQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHR5cGU7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIgU3R5bGUKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFN0eWxlU2hlZXQgICBzaGVldDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFN0eWxlU2hlZXQgc2hlZXQ7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBPYmplY3RpdmUtQyBleHRlbnNp
b246CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgpAQCAtMjIsNyArMjIsNyBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRl
cmZhY2UgSFRNTE1hcEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBhcmVhczsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIG5hbWU7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw3ICszMCw3IEBAIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9VklERU9dIEhUTUxNZWRpYUUKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFFcnJv
ciBlcnJvcjsKIAogICAgIC8vIG5ldHdvcmsgc3RhdGUKLSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHNyYzsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RVUkxdIERPTVN0cmluZyBzcmM7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjdXJyZW50U3JjOwogICAgIAogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE5FVFdPUktfRU1QVFkgPSAwOwpAQCAtNjYsOCArNjYsOCBAQCBpbnRlcmZh
Y2UgW0NvbmRpdGlvbmFsPVZJREVPXSBIVE1MTWVkaWFFCiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFRpbWVSYW5nZXMgcGxheWVkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFuZ2VzIHNl
ZWthYmxlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOwotICAgIGF0dHJp
YnV0ZSBib29sZWFuIGF1dG9wbGF5OwotICAgIGF0dHJpYnV0ZSBib29sZWFuIGxvb3A7CisgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9wbGF5OworICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gYm9vbGVhbiBsb29wOwogICAgIFtOZWVkc1VzZXJHZXN0dXJlQ2hlY2tdIHZvaWQgcGxh
eSgpOwogICAgIFtOZWVkc1VzZXJHZXN0dXJlQ2hlY2tdIHZvaWQgcGF1c2UoKTsKIApJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxNZW51RWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1s
L0hUTUxNZW51RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yMCw3ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZh
Y2UgSFRNTE1lbnVFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBjb21wYWN0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gY29tcGFj
dDsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbAkocmV2aXNpb24g
NjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDEwICsyMCwxMCBAQAogbW9k
dWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxNZXRhRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKLSAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyAgICBjb250ZW50OwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nICAgIGh0dHBFcXVpdjsKLSAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgIHNjaGVtZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29udGVudDsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0PWh0dHBfZXF1aXZdIERPTVN0cmluZyBodHRwRXF1aXY7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHNjaGVtZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1v
ZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDggKzIw
LDggQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTW9kRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGNpdGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBkYXRlVGltZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgY2l0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZGF0ZVRp
bWU7CiAgICAgfTsKICAgICAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGwJKHJl
dmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsOSArMjAsOSBA
QAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxPTGlzdEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbXBhY3Q7CisgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21wYWN0OwogICAgICAgICBhdHRyaWJ1dGUgbG9u
ZyBzdGFydDsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIHR5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7
CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCShyZXZpc2lv
biA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMjYsMzcgKzI2LDM2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ3Vz
dG9tQ2FsbAogICAgIF0gSFRNTE9iamVjdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5n
ICAgICAgIGNvZGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBhbGlnbjsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5n
ICAgICAgIGFyY2hpdmU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBib3JkZXI7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Q9Y29kZWJh
c2VdIERPTVN0cmluZyAgICAgICBjb2RlQmFzZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1jb2RldHlwZV0gRE9NU3RyaW5nICAg
ICAgIGNvZGVUeXBlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0VVJMXSBET01TdHJpbmcgICAgICAgZGF0YTsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBkZWNsYXJlOwotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcg
ICAgICAgaGVpZ2h0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAg
IGhzcGFjZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIG5hbWU7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAg
ICBzdGFuZGJ5OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAgdHlwZTsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD11c2VtYXBdIERPTVN0
cmluZyAgICAgICB1c2VNYXA7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAg
ICAgICAgdnNwYWNlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAgd2lkdGg7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYXJjaGl2ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYm9yZGVy
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlQmFzZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29kZVR5cGU7CisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIGRhdGE7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gYm9vbGVhbiBkZWNsYXJlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBoZWlnaHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyBoc3BhY2U7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHN0YW5kYnk7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHVzZU1hcDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHZzcGFjZTsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsKIAogICAgICAgICAvLyBJbnRyb2R1
Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJh
bWVTZWN1cml0eV0gRG9jdW1lbnQgICAgICAgIGNvbnRlbnREb2N1bWVudDsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtDaGVja0ZyYW1lU2VjdXJpdHldIERvY3VtZW50IGNvbnRlbnREb2N1
bWVudDsKIAogI2lmIGRlZmluZWQoRU5BQkxFX1NWRykgJiYgRU5BQkxFX1NWRwogI2lmICFkZWZp
bmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MgfHwgZGVm
aW5lZChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAmJiBFTkFCTEVfU1ZHX0RPTV9PQkpD
X0JJTkRJTkdTCi0gICAgICAgIFtTVkdDaGVja1NlY3VyaXR5RG9jdW1lbnRdIFNWR0RvY3VtZW50
IGdldFNWR0RvY3VtZW50KCkKLSAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICBbU1ZHQ2hlY2tTZWN1cml0eURvY3VtZW50XSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1bWVu
dCgpIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAjZW5kaWYKIAogI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIC8v
IE9iamVjdGl2ZS1DIGV4dGVuc2lvbjoKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVSTCAg
ICAgICAgICAgICBhYnNvbHV0ZUltYWdlVVJMOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
VVJMIGFic29sdXRlSW1hZ2VVUkw7CiAjZW5kaWYKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTIwLDggKzIwLDggQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVy
ZmFjZSBIVE1MT3B0R3JvdXBFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1
dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRpc2FibGVkOwotICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgbGFiZWw7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxlZDsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbGFiZWw7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCkBAIC0yMywxOSArMjMsMTggQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFj
ZSBbCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyCiAgICAgXSBIVE1MT3B0aW9uRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9y
bUVsZW1lbnQgICAgICBmb3JtOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4g
ICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxGb3JtRWxlbWVudCBmb3JtOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9c2VsZWN0
ZWRdIGJvb2xlYW4gZGVmYXVsdFNlbGVjdGVkOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdGV4dAotICAg
ICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGV4dCBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZWxzZQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
IERPTVN0cmluZyAgICAgICAgICAgIHRleHQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdGV4dDsKICNlbmRpZgotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIGxvbmcg
ICAgICAgICAgICAgICAgIGluZGV4OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xl
YW4gICAgICAgICAgICAgIGRpc2FibGVkOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgbGFiZWw7Ci0gICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgc2VsZWN0ZWQ7Ci0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgICAgICB2YWx1ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
aW5kZXg7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxlZDsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbGFiZWw7CisgICAgICAgIGF0dHJp
YnV0ZSBib29sZWFuIHNlbGVjdGVkOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyB2YWx1ZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFw
aEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxl
bWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MUGFy
YWdyYXBoRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTFBhcmFtRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQYXJh
bUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIwLDEwICsyMCwxMCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxQ
YXJhbUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKLSAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOwotICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWVUeXBlOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB2YWx1ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdmFs
dWVUeXBlOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmlkbAkocmV2aXNp
b24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIzLDEwICsyMywxMCBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgaW50ZXJmYWNlIEhUTUxQcmVFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAg
ICAgICAvLyBGSVhNRTogRE9NIHNwZWMgc2F5cyB0aGF0IHdpZHRoIHNob3VsZCBiZSBvZiB0eXBl
IERPTVN0cmluZwogICAgICAgICAvLyBzZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODk5MgotICAgICAgICBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBsb25nIHdpZHRoOwogICAgICAgICAKICAgICAgICAgLy8gRXh0ZW5z
aW9ucwotICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3cmFwOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGJvb2xlYW4gd3JhcDsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTFF1b3RlRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxRdW90
ZUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUXVvdGVF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIwLDYgKzIwLDYgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MUXVv
dGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY2l0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgY2l0ZTsKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaWRsCShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MSwxMSArMjEsMTEgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxTY3JpcHRF
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgdGV4dDsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGh0bWxGb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBldmVudDsKLSAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNoYXJzZXQ7Ci0gICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuIGRlZmVyOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgc3JjOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
PWZvcl0gRE9NU3RyaW5nIGh0bWxGb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGV2ZW50OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFy
c2V0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFN0eWxl
RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTIxLDkgKzIxLDkgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MU3R5bGVF
bGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAg
ICAgICAgIGRpc2FibGVkOwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgbWVkaWE7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0eXBlOworICAgICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgbWVkaWE7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IHR5cGU7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIgU3R5bGUKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFN0eWxlU2hlZXQgc2hlZXQ7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCkBAIC0yMyw5ICsyMyw3IEBAIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2Ug
WwogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlcgogICAgIF0gSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGFsaWduOwotCisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0
bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDIzICsyMSwyMSBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxUYWJsZUNlbGxFbGVtZW50IDogSFRNTEVsZW1lbnQgewotCi0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgY2VsbEluZGV4OwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAg
ICAgYWJicjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgICAgIGFsaWduOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgYXhpczsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAg
ICAgIGJnQ29sb3I7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBjaDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGNoT2ZmOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIGNvbFNwYW47Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAg
ICBoZWFkZXJzOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgICAgICAgaGVpZ2h0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIG5vV3JhcDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxv
bmcgICAgICAgICAgICByb3dTcGFuOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgc2NvcGU7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICB2
QWxpZ247Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyAgICAgICB3aWR0aDsKLQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyBjZWxsSW5kZXg7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFi
YnI7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBheGlzOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBiZ0NvbG9yOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9
Y2hhcl0gRE9NU3RyaW5nIGNoOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y2hhcm9mZl0g
RE9NU3RyaW5nIGNoT2ZmOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBjb2xTcGFuOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWFkZXJzOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWlnaHQ7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFu
IG5vV3JhcDsKKyAgICAgICAgYXR0cmlidXRlIGxvbmcgcm93U3BhbjsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2NvcGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIHZBbGlnbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgd2lkdGg7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50
LmlkbAkocmV2aXNpb24gNjAzNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
U2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEs
MTQgKzIxLDEyIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFRhYmxlQ29s
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLQotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBjaDsKLSAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGNoT2ZmOwot
ICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIHNwYW47Ci0gICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICB2QWxpZ247Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICB3
aWR0aDsKLQorICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoYXJdIERPTVN0cmluZyBjaDsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0PWNoYXJvZmZdIERPTVN0cmluZyBjaE9mZjsKKyAgICAgICAgYXR0cmli
dXRlIGxvbmcgc3BhbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdkFs
aWduOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3aWR0aDsKICAgICB9
OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MDM3NCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vpbmln
QGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSw0MyArMjEsMzMgQEAKIG1vZHVsZSBodG1s
IHsKIAogICAgIGludGVyZmFjZSBIVE1MVGFibGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewotCi0g
ICAgICAgIC8vIGNvdWxkIHJhaXNlIGV4Y2VwZXRpb25zIG9uIHNldHRpbmcuCi0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCBjYXB0aW9uCi0gICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZAotICAgICAgICAgICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEZvb3QKLSAgICAgICAgICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50IGNhcHRpb24gc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEhlYWQgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQgdEZvb3Qgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiByb3dzOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgSFRNTENvbGxlY3Rpb24gdEJvZGllczsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYmdDb2xv
cjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGJvcmRlcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNlbGxQYWRkaW5nOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY2VsbFNwYWNpbmc7
Ci0KLSAgICAgICAgLy8gRklYTUU6IHRoZSBvYmotYyBhdHRyaWJ1dGUgaXMgY2FsbGVkIGZyYW1l
Qm9yZGVycwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgZnJhbWU7Ci0KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHJ1bGVzOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3VtbWFyeTsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHdpZHRoOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYmdDb2xvcjsKKyAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYm9yZGVyOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBjZWxsUGFkZGluZzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgY2VsbFNwYWNpbmc7CisKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgZnJhbWU7CisKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgcnVsZXM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHN1bW1hcnk7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRoOwogCi0gICAgICAg
IEhUTUxFbGVtZW50ICAgICAgICBjcmVhdGVUSGVhZCgpOwotICAgICAgICB2b2lkICAgICAgICAg
ICAgICAgZGVsZXRlVEhlYWQoKTsKKyAgICAgICAgSFRNTEVsZW1lbnQgY3JlYXRlVEhlYWQoKTsK
KyAgICAgICAgdm9pZCBkZWxldGVUSGVhZCgpOwogICAgICAgICBIVE1MRWxlbWVudCAgICAgICAg
Y3JlYXRlVEZvb3QoKTsKLSAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGRlbGV0ZVRGb290KCk7
Ci0gICAgICAgIEhUTUxFbGVtZW50ICAgICAgICBjcmVhdGVDYXB0aW9uKCk7Ci0gICAgICAgIHZv
aWQgICAgICAgICAgICAgICBkZWxldGVDYXB0aW9uKCk7Ci0KLSAgICAgICAgSFRNTEVsZW1lbnQg
aW5zZXJ0Um93KGluIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLQotICAgICAgICB2b2lkIGRlbGV0ZVJvdyhpbiBsb25nIGluZGV4KQotICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgZGVsZXRlVEZvb3QoKTsKKyAgICAg
ICAgSFRNTEVsZW1lbnQgY3JlYXRlQ2FwdGlvbigpOworICAgICAgICB2b2lkIGRlbGV0ZUNhcHRp
b24oKTsKIAorICAgICAgICBIVE1MRWxlbWVudCBpbnNlcnRSb3coaW4gbG9uZyBpbmRleCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgZGVsZXRlUm93KGluIGxvbmcgaW5kZXgp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MVGFibGVSb3dFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxU
YWJsZVJvd0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBTGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKQEAgLTIxLDIxICsyMSwxNiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNl
IEhUTUxUYWJsZVJvd0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICByb3dJbmRleDsKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgICAgICAgICAgICBzZWN0aW9uUm93SW5kZXg7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiAgY2VsbHM7Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBhbGlnbjsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgIGJnQ29sb3I7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBjaDsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGNoT2ZmOwot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgdkFsaWduOwotCi0gICAgICAgIEhUTUxFbGVtZW50ICAgICAgICBpbnNlcnRD
ZWxsKGluIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAg
ICAgICAgdm9pZCAgICAgICAgICAgICAgIGRlbGV0ZUNlbGwoaW4gbG9uZyBpbmRleCkKLSAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIHJvd0luZGV4OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzZWN0aW9u
Um93SW5kZXg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBjZWxs
czsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJnQ29sb3I7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdD1jaGFyXSBET01TdHJpbmcgY2g7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dD1jaGFyb2ZmXSBET01TdHJpbmcgY2hPZmY7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHZBbGlnbjsKKyAgICAgICAgSFRNTEVsZW1lbnQgaW5zZXJ0Q2VsbChpbiBsb25n
IGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBkZWxldGVDZWxsKGlu
IGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKIH0KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIzLDE4ICsyMywxMyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIK
ICAgICBdIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewotCi0gICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAg
ICAgICBhbGlnbjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGNoOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgY2hPZmY7Ci0gICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAg
ICAgICB2QWxpZ247Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiAg
cm93czsKLQotICAgICAgICBIVE1MRWxlbWVudCAgICAgICAgaW5zZXJ0Um93KGluIGxvbmcgaW5k
ZXgpCi0gICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAg
ICAgICAgICAgIGRlbGV0ZVJvdyhpbiBsb25nIGluZGV4KQotICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0KKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxp
Z247CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyXSBET01TdHJpbmcgY2g7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyb2ZmXSBET01TdHJpbmcgY2hPZmY7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZBbGlnbjsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7CisgICAgICAgIEhUTUxFbGVtZW50IGluc2Vy
dFJvdyhpbiBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBk
ZWxldGVSb3coaW4gbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAog
fQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWlu
aWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDM2ICsyMSwzNSBAQAogbW9kdWxlIGh0
bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxUZXh0QXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgICAgICAgICAgICBkZWZhdWx0VmFsdWU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlICBWYWxpZGl0eVN0YXRlICAgICAgICB2YWxpZGl0eTsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIGFj
Y2Vzc0tleTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAgICAgICAgICAg
ICBjb2xzOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAg
IGRpc2FibGVkOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAg
ICAgIGF1dG9mb2N1czsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAgICAg
ICAgICAgICBtYXhMZW5ndGgKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIG5hbWU7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICBw
bGFjZWhvbGRlcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAg
ICAgICByZWFkT25seTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAg
ICAgICAgICByZXF1aXJlZDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAg
ICAgICAgICAgICByb3dzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAg
ICAgICAgICAgIHR5cGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlICB1bnNpZ25lZCBsb25nICAgICAgICB0ZXh0TGVuZ3RoOworICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVmYXVsdFZhbHVl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCBmb3JtOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CisgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBj
b2xzOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKKyAgICAgICAgYXR0cmli
dXRlIGJvb2xlYW4gYXV0b2ZvY3VzOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBtYXhMZW5ndGgg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgcGxhY2Vob2xkZXI7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHJl
YWRPbmx5OworICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gcmVxdWlyZWQ7CisgICAgICAgIGF0
dHJpYnV0ZSBsb25nIHJvd3M7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5n
IHR5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyB2YWx1ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICB1bnNpZ25lZCBsb25nIHRl
eHRMZW5ndGg7CiAgICAgICAgIAotICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKKyAgICAgICAg
dm9pZCBzZWxlY3QoKTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIHdpbGxWYWxpZGF0ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKLSAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgp
OwotICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlOworICAgICAgICBib29sZWFuIGNoZWNrVmFs
aWRpdHkoKTsKKyAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVm
aW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgIC8vIFdp
bklFICYgRmlyZUZveCBleHRlbnNpb246Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25n
IHNlbGVjdGlvblN0YXJ0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzZWxlY3Rp
b25FbmQ7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OworICAgICAgICBh
dHRyaWJ1dGUgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFu
Z2UoaW4gbG9uZyBzdGFydCwgaW4gbG9uZyBlbmQpOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgIE5vZGVMaXN0ICAgICAgICAgICAgICBsYWJlbHM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSAgTm9kZUxpc3QgbGFiZWxzOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MVUxpc3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5pZGwJKHJldmlzaW9uIDYwMzc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVs
ZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjEsNyArMjEsNyBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFVMaXN0
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gY29tcGFj
dDsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IHR5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7CiAgICAg
fTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmlkbAkocmV2aXNpb24gNjAzNzQp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSwyMiArMjUsMTkgQEAKIAogbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbQ29uZGl0aW9u
YWw9VklERU9dIEhUTUxWaWRlb0VsZW1lbnQgOiBIVE1MTWVkaWFFbGVtZW50IHsKLSAgICAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2lkdGg7Ci0gICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGhlaWdodDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSB1bnNpZ25lZCBsb25n
IHdpZHRoOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIHVuc2lnbmVkIGxvbmcgaGVpZ2h0
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB2aWRlb1dpZHRoOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB2aWRlb0hlaWdodDsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHBvc3RlcjsKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHBvc3RlcjsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3
ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHdlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuOwogCi0gICAgICAgIFtOZWVkc1VzZXJHZXN0
dXJlQ2hlY2tdIHZvaWQgd2Via2l0RW50ZXJGdWxsc2NyZWVuKCkKLSAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW05lZWRzVXNlckdlc3R1cmVDaGVja10gdm9pZCB3
ZWJraXRFbnRlckZ1bGxzY3JlZW4oKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgd2Via2l0RXhpdEZ1bGxzY3JlZW4oKTsKICAgICAKLSAgICAgICAgW05lZWRzVXNlckdlc3R1
cmVDaGVja10gdm9pZCB3ZWJraXRFbnRlckZ1bGxTY3JlZW4oKQotICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBbTmVlZHNVc2VyR2VzdHVyZUNoZWNrXSB2b2lkIHdl
YmtpdEVudGVyRnVsbFNjcmVlbigpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9p
ZCB3ZWJraXRFeGl0RnVsbFNjcmVlbigpOwotCiAgICAgfTsKIH0KSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRs
CShyZXZpc2lvbiA2MDM3NCkKKysrIFdlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywxMCArMjMsOCBAQAogbW9kdWxlIHN2ZyB7CiAKICAgICBpbnRlcmZhY2Ug
W0dlbmVyYXRlTmF0aXZlQ29udmVydGVyLCBDb25kaXRpb25hbD1TVkddIFNWR0VsZW1lbnQgOiBF
bGVtZW50IHsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGlkCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB4bWxiYXNlCi0gICAgICAgICAgICAgICAgICAg
ICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGlkIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHhtbGJhc2Ugc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHU1ZH
RWxlbWVudCBvd25lclNWR0VsZW1lbnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdF
bGVtZW50IHZpZXdwb3J0RWxlbWVudDsKICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58579</attachid>
            <date>2010-06-12 21:59:32 -0700</date>
            <delta_ts>2010-06-16 10:19:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39936-20100612215931.patch</filename>
            <type>text/plain</type>
            <size>198925</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQyIEBACisyMDEwLTA2LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgYWRkaXRpb25hbCBET00gYXR0cmlidXRlIHJlZmxlY3Rpb24gZm9yIGJpbmRpbmdzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkzNgorCisg
ICAgICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgW1JlZmxlY3RdIGZvciBsb25nLCB1bnNpZ25lZCBs
b25nLCBhbmQgYm9vbGVhbgorICAgICAgICAgIGF0dHJpYnV0ZXMuCisgICAgICAgIC0gRml4ZWQg
Y29kZSB0aGF0IHNldCBhdHRyaWJ1dGVzIGxpa2UgdGhpczogPHZpZGVvIGNvbnRyb2xzPSJjb250
cm9scyI+CisgICAgICAgICAgdG8gaW5zdGVhZCBzZXQgdGhlbSBsaWtlIHRoaXM6IDx2aWRlbyBj
b250cm9scz4uCisgICAgICAgIC0gQWRkZWQgbG90cyBtb3JlIHVzZXMgb2YgW1JlZmxlY3RdLgor
ICAgICAgICAtIFJlbW92ZWQgbm93LXVubmVlZGVkIFtDb252ZXJ0RnJvbVN0cmluZ10uCisgICAg
ICAgIC0gTWFkZSBbUmVmbGVjdF0gaW1wbHkgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBzbyB3
ZSBjYW4gZ2V0IHJpZAorICAgICAgICAgIG9mIG1vc3QgdXNlcyBvZiB0aGUgbGF0dGVyLgorICAg
ICAgICAtIE1hZGUgW1JlZmxlY3RdIGF1dG9tYXRpY2FsbHkgbG93ZXJjYXNlIHRoZSBuYW1lIG9m
IHRoZSByZWZsZWN0ZWQKKyAgICAgICAgICBjb250ZW50IGF0dHJpYnV0ZSB0byBtaW5pbWl6ZSB0
aGUgbmVlZCB0byBzcGVjaWZ5IGEgY3VzdG9tIGNvbnRlbnQKKyAgICAgICAgICBhdHRyaWJ1dGUg
bmFtZS4KKworICAgICAgICBPbmUgdGhpbmcgdGhpcyBwYXRjaCBkb2VzICpub3QqIGRvIGlzIHJl
bW92ZSB0aGUgdW5uZWVkZWQgZnVuY3Rpb25zCisgICAgICAgIGluIHRoZSB2YXJpb3VzIERPTSBj
bGFzc2VzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkIGJ5IHRoZSBiaW5kaW5ncy4KKyAgICAgICAg
V2Ugc2hvdWxkIGRvIHRoYXQgaW4gYSBmb2xsb3d1cC4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbTogQWRkZWQgbmV3IGZ1bmN0aW9ucyBzbyBjb2RlCisgICAg
ICAgIGNhbiBiZSBzaGFyZWQgYWNyb3NzIGJpbmRpbmdzLCBHZXR0ZXJFeHByZXNzaW9uUHJlZml4
IGFuZAorICAgICAgICBTZXR0ZXJFeHByZXNzaW9uUHJlZml4LiBXZSBjYW4gZG8gYSBsb3QgbW9y
ZSByZWZhY3RvcmluZyBsaWtlCisgICAgICAgIHRoaXMgaW4gdGhlIGZ1dHVyZS4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06IFJlbW92ZWQgdW5u
ZWVkZWQKKyAgICAgICAgQ29udmVydEZyb21TdHJpbmcgaGFuZGxpbmcsIGNoYW5nZWQgdG8gdXNl
IHRoZSBuZXcKKyAgICAgICAgR2V0dGVyRXhwcmVzc2lvblByZWZpeCBhbmQgU2V0dGVyRXhwcmVz
c2lvblByZWZpeCBmdW5jdGlvbnMKKyAgICAgICAgdG8gYmV0dGVyIGhhbmRsZSByZWZsZWN0ZWQg
RE9NIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbTogQ2hhbmdlZCB0byB1c2UgdGhlIG5ldworICAgICAgICBHZXR0ZXJFeHByZXNzaW9u
UHJlZml4IGFuZCBTZXR0ZXJFeHByZXNzaW9uUHJlZml4IGZ1bmN0aW9ucworICAgICAgICBhbmQg
cmVtb3ZlZCBhIG5vdy11bm5lZWRlZCBJc1NWR0FuaW1hdGVkVHlwZSBzcGVjaWFsIGNhc2Ugc2lu
Y2UKKyAgICAgICAgdGhlIG5ldyBmdW5jdGlvbnMgdGFrZSBjYXJlIG9mIGl0LiBNYWRlIHJlZmxl
Y3RlZCBhdHRyaWJ1dGVzCisgICAgICAgIGF1dG9tYXRpY2FsbHkgY29udmVydCBudWxsIHRvIHRo
ZSBudWxsIHN0cmluZyB3aXRob3V0IGEKKyAgICAgICAgc2VwYXJhdGUgQ29udmVydE51bGxUb051
bGxTdHJpbmcgYXR0cmlidXRlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yT2JqQy5wbTogQ2hhbmdlZCB0byB1c2UgdGhlIG5ldworICAgICAgICBHZXR0ZXJFeHBy
ZXNzaW9uUHJlZml4IGFuZCBTZXR0ZXJFeHByZXNzaW9uUHJlZml4IGZ1bmN0aW9ucworICAgICAg
ICBhbmQgcmVtb3ZlZCBhIG5vdy11bm5lZWRlZCBJc1NWR0FuaW1hdGVkVHlwZSBzcGVjaWFsIGNh
c2Ugc2luY2UKKyAgICAgICAgdGhlIG5ldyBmdW5jdGlvbnMgdGFrZSBjYXJlIG9mIGl0LiBSZWRp
ZCB0aGUgc3BlY2lhbCBjYXNlcyBmb3IKKyAgICAgICAgb3duZXJEb2N1bWVudCBhbmQgZm9yIG9w
ZXJhdG9yIHRvIGZpdCBiZXR0ZXIgd2l0aCB0aGUgbmV3IGNvZGUKKyAgICAgICAgcGF0aHMuIFJl
bW92ZWQgdW5uZWVkZWQgQ29udmVydEZyb21TdHJpbmcgaGFuZGxpbmcuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogQ2hhbmdlZCB0byB1c2UgdGhlIG5l
dworICAgICAgICBHZXR0ZXJFeHByZXNzaW9uUHJlZml4IGFuZCBTZXR0ZXJFeHByZXNzaW9uUHJl
Zml4IGZ1bmN0aW9ucworICAgICAgICBhbmQgcmVtb3ZlZCBhIG5vdy11bm5lZWRlZCBJc1NWR0Fu
aW1hdGVkVHlwZSBzcGVjaWFsIGNhc2Ugc2luY2UKKyAgICAgICAgdGhlIG5ldyBmdW5jdGlvbnMg
dGFrZSBjYXJlIG9mIGl0LiBNYWRlIHJlZmxlY3RlZCBhdHRyaWJ1dGVzCisgICAgICAgIGF1dG9t
YXRpY2FsbHkgY29udmVydCBudWxsIHRvIHRoZSBudWxsIHN0cmluZyB3aXRob3V0IGEKKyAgICAg
ICAgc2VwYXJhdGUgQ29udmVydE51bGxUb051bGxTdHJpbmcgYXR0cmlidXRlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCBzb21lIHRlc3QgY2Fz
ZXMgZm9yCisgICAgICAgIGNvbnRlbnQgYXR0cmlidXRlIHJlZmxlY3Rpb24uCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDogVXBk
YXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmouaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbTogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHA6IERpdHRvLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Qm9vbGVhbkF0dHJpYnV0ZSk6IENoYW5nZWQgdG8g
c2V0IHRoZSBhdHRyaWJ1dGUKKyAgICAgICAgd2l0aG91dCBhIHZhbHVlIHJhdGhlciB0aGFuIHdp
dGggYSB2YWx1ZSBlcXVhbCB0byB0aGUgYXR0cmlidXRlIG5hbWUuCisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpnZXRJbnRlZ3JhbEF0dHJpYnV0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2V0SW50ZWdyYWxBdHRyaWJ1dGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUpOiBBZGRl
ZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOiBBZGRlZCBuZXcgYXR0cmlidXRlIGdldC9zZXQg
ZnVuY3Rpb25zIGZvciBiaW5kaW5ncy4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTEJhc2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEJsb2NrcXVvdGVF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRExpc3RF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTEZvbnRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEhSRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSGVhZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxMSUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTWVudUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxNb2RFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxPTGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdyYXBoRWxl
bWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxQcmVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxRdW90ZUVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGw6CisgICAg
ICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxV
TGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaWRsOgorICAgICAgICBBZGRlZCBtb3JlIHVzZXMgb2Yg
W1JlZmxlY3RdLiBHb3QgcmlkIG9mIHVzZXMgb2YgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSB0
aGF0CisgICAgICAgIGFyZSBub3cgdW5uZWVkZWQgc2luY2UgW1JlZmxlY3RdIG5vdyBpbXBsaWVz
IHRoYXQuIENoYW5nZWQgZm9ybWF0dGluZyB0byBiZQorICAgICAgICBzaW1wbGVyIGFuZCBjb25z
aXN0ZW50IHdpdGhvdXQgYWxsIHRoZSBsaW5pbmcgdXAgYW5kIG11bHRpcGxlIGxpbmVzLgorCisg
ICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEF1dG9mb2N1cyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRSZXF1aXJlZCk6CisgICAgICAgIENoYW5n
ZWQgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgd2l0aG91dCBhIHZhbHVlIHJhdGhlciB0aGFuIHdpdGgg
YSB2YWx1ZSBlcXVhbAorICAgICAgICB0byB0aGUgYXR0cmlidXRlIG5hbWUuCisKIDIwMTAtMDYt
MTIgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zODEsNSArMzgxLDg2IEBAIHN1
YiBMaW5rT3ZlcmxvYWRlZEZ1bmN0aW9ucwogICAgIH0KIH0KIAorc3ViIEF0dHJpYnV0ZU5hbWVG
b3JHZXR0ZXJBbmRTZXR0ZXIKK3sKKyAgICBteSAoJGdlbmVyYXRvciwgJGF0dHJpYnV0ZSkgPSBA
XzsKKworICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1l
OworCisgICAgIyBBdm9pZCBjbGFzaCB3aXRoIEMrKyBrZXl3b3JkLgorICAgICRhdHRyaWJ1dGVO
YW1lID0gIl9vcGVyYXRvciIgaWYgJGF0dHJpYnV0ZU5hbWUgZXEgIm9wZXJhdG9yIjsKKworICAg
ICMgU1ZHIGFuaW1hdGVkIHR5cGVzIG5lZWQgdG8gdXNlIGEgc3BlY2lhbCBhdHRyaWJ1dGUgbmFt
ZS4KKyAgICAjIFRoZSByZXN0IG9mIHRoZSBzcGVjaWFsIGNhc2luZyBmb3IgU1ZHIGFuaW1hdGVk
IHR5cGVzIGlzIGhhbmRsZWQgaW4gdGhlIGxhbmd1YWdlLXNwZWNpZmljIGNvZGUgZ2VuZXJhdG9y
cy4KKyAgICAkYXR0cmlidXRlTmFtZSAuPSAiQW5pbWF0ZWQiIGlmICRnZW5lcmF0b3ItPklzU1ZH
QW5pbWF0ZWRUeXBlKCRnZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZSkpOworCisgICAgcmV0dXJuICRhdHRyaWJ1dGVOYW1lOworfQorCitzdWIgQ29udGVu
dEF0dHJpYnV0ZU5hbWUKK3sKKyAgICBteSAoJGdlbmVyYXRvciwgJGltcGxJbmNsdWRlcywgJGlu
dGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpID0gQF87CisKKyAgICBteSAkY29udGVudEF0dHJpYnV0
ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZs
ZWN0In0KKyAgICAgICAgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVmbGVjdFVSTCJ9OworICAgIHJldHVybiB1bmRlZiBpZiAhJGNvbnRlbnRBdHRyaWJ1
dGVOYW1lOworCisgICAgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gbGMgJGdlbmVyYXRvci0+QXR0
cmlidXRlTmFtZUZvckdldHRlckFuZFNldHRlcigkYXR0cmlidXRlKSBpZiAkY29udGVudEF0dHJp
YnV0ZU5hbWUgZXEgIjEiOworCisgICAgbXkgJG5hbWVzcGFjZSA9ICRnZW5lcmF0b3ItPk5hbWVz
cGFjZUZvckF0dHJpYnV0ZU5hbWUoJGludGVyZmFjZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFt
ZSk7CisKKyAgICAkaW1wbEluY2x1ZGVzLT57IiR7bmFtZXNwYWNlfS5oIn0gPSAxOworICAgIHJl
dHVybiAiV2ViQ29yZTo6JHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRBdHRyaWJ1dGVOYW1lfUF0dHIi
OworfQorCitzdWIgR2V0dGVyRXhwcmVzc2lvblByZWZpeAoreworICAgIG15ICgkZ2VuZXJhdG9y
LCAkaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKKworICAg
IG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICRnZW5lcmF0b3ItPkNvbnRlbnRBdHRyaWJ1dGVO
YW1lKCRpbXBsSW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsKKworICAgIGlm
ICghJGNvbnRlbnRBdHRyaWJ1dGVOYW1lKSB7CisgICAgICAgIHJldHVybiAkZ2VuZXJhdG9yLT5X
S19sY2ZpcnN0KCRnZW5lcmF0b3ItPkF0dHJpYnV0ZU5hbWVGb3JHZXR0ZXJBbmRTZXR0ZXIoJGF0
dHJpYnV0ZSkpIC4gIigiOworICAgIH0KKworICAgIG15ICRmdW5jdGlvbk5hbWU7CisgICAgaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3RVUkwi
fSkgeworICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdldFVSTEF0dHJpYnV0ZSI7CisgICAgfSBl
bHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikgeworICAgICAg
ICAkZnVuY3Rpb25OYW1lID0gImhhc0F0dHJpYnV0ZSI7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJsb25nIikgeworICAgICAgICAkZnVuY3Rpb25OYW1lID0g
ImdldEludGVncmFsQXR0cmlidXRlIjsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPnR5cGUgZXEgInVuc2lnbmVkIGxvbmciKSB7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAi
Z2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGZ1
bmN0aW9uTmFtZSA9ICJnZXRBdHRyaWJ1dGUiOworICAgIH0KKworICAgIHJldHVybiAiJGZ1bmN0
aW9uTmFtZSgkY29udGVudEF0dHJpYnV0ZU5hbWUiCit9CisKK3N1YiBTZXR0ZXJFeHByZXNzaW9u
UHJlZml4Cit7CisgICAgbXkgKCRnZW5lcmF0b3IsICRpbXBsSW5jbHVkZXMsICRpbnRlcmZhY2VO
YW1lLCAkYXR0cmlidXRlKSA9IEBfOworCisgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0g
JGdlbmVyYXRvci0+Q29udGVudEF0dHJpYnV0ZU5hbWUoJGltcGxJbmNsdWRlcywgJGludGVyZmFj
ZU5hbWUsICRhdHRyaWJ1dGUpOworCisgICAgaWYgKCEkY29udGVudEF0dHJpYnV0ZU5hbWUpIHsK
KyAgICAgICAgcmV0dXJuICJzZXQiIC4gJGdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZ2VuZXJhdG9y
LT5BdHRyaWJ1dGVOYW1lRm9yR2V0dGVyQW5kU2V0dGVyKCRhdHRyaWJ1dGUpKSAuICIoIjsKKyAg
ICB9CisKKyAgICBteSAkZnVuY3Rpb25OYW1lOworICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAic2V0Qm9v
bGVhbkF0dHJpYnV0ZSI7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
IGVxICJsb25nIikgeworICAgICAgICAkZnVuY3Rpb25OYW1lID0gInNldEludGVncmFsQXR0cmli
dXRlIjsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgInVuc2ln
bmVkIGxvbmciKSB7CisgICAgICAgICRmdW5jdGlvbk5hbWUgPSAic2V0VW5zaWduZWRJbnRlZ3Jh
bEF0dHJpYnV0ZSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJzZXRB
dHRyaWJ1dGUiOworICAgIH0KKworICAgIHJldHVybiAiJGZ1bmN0aW9uTmFtZSgkY29udGVudEF0
dHJpYnV0ZU5hbWUsICIKK30KIAogMTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCSh3b3JraW5nIGNvcHkp
CkBAIC0zNDEsMjUgKzM0MSwxMyBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0eSB7CiAgICAgbXkgJGNv
bnZlcnRGdW5jdGlvbiA9ICIiOwogICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKICAgICAg
ICAgJGNvbnZlcnRGdW5jdGlvbiA9ICJXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4IjsKLSAgICB9
IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252
ZXJ0RnJvbVN0cmluZyJ9KSB7Ci0gICAgICAgICRjb252ZXJ0RnVuY3Rpb24gPSAiV2ViQ29yZTo6
U3RyaW5nOjpudW1iZXIiOwogICAgIH0KIAotICAgIG15ICRzZXR0ZXJDb250ZW50SGVhZDsKLSAg
ICBteSAkZ2V0dGVyQ29udGVudEhlYWQ7Ci0gICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgbXkgJHJlZmxl
Y3RVUkwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZs
ZWN0VVJMIn07Ci0gICAgaWYgKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSB7Ci0gICAgICAgIG15
ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIx
IikgPyAkY2FtZWxQcm9wTmFtZSA6ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAg
IG15ICRuYW1lc3BhY2UgPSAkY29kZUdlbmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFt
ZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgJGltcGxJ
bmNsdWRlc3siJHtuYW1lc3BhY2V9LmgifSA9IDE7Ci0gICAgICAgIG15ICRnZXRBdHRyaWJ1dGVG
dW5jdGlvbk5hbWUgPSAkcmVmbGVjdFVSTCA/ICJnZXRVUkxBdHRyaWJ1dGUiIDogImdldEF0dHJp
YnV0ZSI7Ci0gICAgICAgICRzZXR0ZXJDb250ZW50SGVhZCA9ICJjb3JlU2VsZi0+c2V0QXR0cmli
dXRlKFdlYkNvcmU6OiR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1BdHRyLCAk
e2NvbnZlcnRGdW5jdGlvbn0oZ192YWx1ZV9nZXRfJGd0eXBlKHZhbHVlKSkiOwotICAgICAgICAk
Z2V0dGVyQ29udGVudEhlYWQgPSAiY29yZVNlbGYtPiR7Z2V0QXR0cmlidXRlRnVuY3Rpb25OYW1l
fShXZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciI7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgJHNldHRlckNvbnRlbnRIZWFkID0gImNvcmVTZWxmLT5zZXQk
e3NldFByb3BOYW1lRnVuY3Rpb259KCR7Y29udmVydEZ1bmN0aW9ufShnX3ZhbHVlX2dldF8kZ3R5
cGUodmFsdWUpKSI7Ci0gICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJjb3JlU2VsZi0+JHtn
ZXRQcm9wTmFtZUZ1bmN0aW9ufSgiOwotICAgIH0KKyAgICBteSAkZ2V0dGVyRXhwcmVzc2lvblBy
ZWZpeCA9ICRjb2RlR2VuZXJhdG9yLT5HZXR0ZXJFeHByZXNzaW9uUHJlZml4KFwlaW1wbEluY2x1
ZGVzLCAkaW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgbXkgJHNldHRlckV4cHJlc3Np
b25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhwcmVzc2lvblByZWZpeChcJWltcGxJ
bmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOworCisgICAgbXkgJGdldHRlckNv
bnRlbnRIZWFkID0gImNvcmVTZWxmLT4kZ2V0dGVyRXhwcmVzc2lvblByZWZpeCI7CisgICAgbXkg
JHNldHRlckNvbnRlbnRIZWFkID0gImNvcmVTZWxmLT4kc2V0dGVyRXhwcmVzc2lvblByZWZpeCR7
Y29udmVydEZ1bmN0aW9ufShnX3ZhbHVlX2dldF8kZ3R5cGUodmFsdWUpKSI7CiAKICAgICBpZiAo
Z3JlcCB7JF8gZXEgJGF0dHJpYnV0ZX0gQHdyaXRlYWJsZVByb3BlcnRpZXMpIHsKICAgICAgICAg
cHVzaChAdHh0U2V0UHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKQEAg
LTM5MiwxNyArMzgwLDYgQEAgRU9GCiAgICAgICAgICRkb25lID0gMTsKICAgICB9CiAKLSAgICBp
ZigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJv
bVN0cmluZyJ9KSB7Ci0gICAgICAgICMgVE9ETzogQWRkIG90aGVyIGNvbnZlcnNpb24gZnVuY3Rp
b25zIGZvciBkaWZmZXJlbnQgdHlwZXMuICBDdXJyZW50Ci0gICAgICAgICMgSURMcyBvbmx5IGxp
c3QgbG9uZ3MuCi0gICAgICAgIGlmKCRndHlwZSBlcSAibG9uZyIpIHsKLSAgICAgICAgICAgICRj
b252ZXJ0RnVuY3Rpb24gPSAiIjsKLSAgICAgICAgICAgICRwb3N0Q29udmVydEZ1bmN0aW9uID0g
Ii50b0ludCgpIjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRpZSAiQ2FuJ3QgY29u
dmVydCB0byB0eXBlICR7Z3R5cGV9LiI7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICAjIEZJWE1F
OiBnZXQgcmlkIG9mIHRoaXMgZ2xpdGNoPwogICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CiAgICAg
aWYgKCRndHlwZSBlcSAidXNob3J0IikgewpAQCAtNzg4LDcgKzc2NSw3IEBAIHN1YiBHZW5lcmF0
ZUZ1bmN0aW9uIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoJHBhcmFt
SXNHRE9NVHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgfHwgKCRwYXJhbUlE
TFR5cGUgZXEgIkNvbXBhcmVIb3ciKSkgewotICAgICAgICAgICAgJHBhcmFtTmFtZSA9ICJfZ18i
IC4gJHBhcmFtTmFtZTsKKyAgICAgICAgICAgICRwYXJhbU5hbWUgPSAiY29udmVydGVkXyIgLiAk
cGFyYW1OYW1lOwogICAgICAgICB9CiAgICAgICAgIGlmICgkY2FsbEltcGxQYXJhbXMpIHsKICAg
ICAgICAgICAgICRjYWxsSW1wbFBhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsKQEAgLTgyMSw5ICs3
OTgsOSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbiB7CiAKICAgICBpZiAoJHJldHVyblR5cGUgbmUg
InZvaWQiKSB7CiAgICAgICAgICMgVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAot
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7
XG4iKTsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2Vs
ZiwgMCk7XG4iKTsKICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3Jl
dHVybl9pZl9mYWlsIChzZWxmKTtcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3Jl
dHVybl9pZl9mYWlsKHNlbGYpO1xuIik7CiAgICAgfQogCiAgICAgIyBUaGUgV2ViS2l0Ojpjb3Jl
IGltcGxlbWVudGF0aW9ucyBjaGVjayBmb3IgTlVMTCBhbHJlYWR5OyBubyBuZWVkIHRvCkBAIC04
MzgsOSArODE1LDkgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb24gewogICAgICAgICBpZiAoISRwYXJh
bVR5cGVJc1ByaW1pdGl2ZSkgewogICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lk
IikgewogICAgICAgICAgICAgICAgICMgVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3Vs
dAotICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
ICgkcGFyYW1OYW1lLCAwKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCRwYXJhbU5hbWUsIDApO1xuIik7CiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2Zh
aWwgKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
Z19yZXR1cm5faWZfZmFpbCgkcGFyYW1OYW1lKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQpAQCAtODUyLDE5ICs4MjksMTkgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb24gewog
CiAgICAgICAgIG15ICRwYXJhbUlzR0RPTVR5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURM
VHlwZSk7CiAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7Ci0gICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9
ID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIGNvbnZlcnRlZF8ke3BhcmFtTmFt
ZX0gPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xuIik7CiAgICAgICAg
IH0gZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkNvbXBhcmVIb3ciKSB7Ci0gICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdyBfZ18ke3BhcmFtTmFt
ZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdz4oJHBhcmFtTmFtZSk7
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlJhbmdlOjpDb21w
YXJlSG93IGNvbnZlcnRlZF8ke3BhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSYW5n
ZTo6Q29tcGFyZUhvdz4oJHBhcmFtTmFtZSk7XG4iKTsKICAgICAgICAgfSBlbHNpZiAoJHBhcmFt
SXNHRE9NVHlwZSkgewotICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtw
YXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0gV2ViS2l0Ojpjb3JlKCRwYXJhbU5hbWUp
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURM
VHlwZX0gKiBjb252ZXJ0ZWRfJHtwYXJhbU5hbWV9ID0gV2ViS2l0Ojpjb3JlKCRwYXJhbU5hbWUp
O1xuIik7CiAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CiAgICAgICAg
ICAgICAgICAgIyBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0Ci0gICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1O
YW1lfSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb252ZXJ0ZWRfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9p
Zl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRfJHtwYXJhbU5hbWV9KTtcbiIpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiX2df
Ii4kcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVybiJ9Owor
ICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gImNvbnZlcnRlZF8iLiRwYXJhbU5hbWUgaWYgJHBh
cmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07CiAgICAgfQogCiAgICAgbXkgJGFz
c2lnbiA9ICIiOwpAQCAtOTIzLDM1ICs5MDAsMjUgQEAgRU9GCiAgICAgICAgIHJldHVybjsKICAg
ICB9IGVsc2lmICgkZnVuY3Rpb25TaWdUeXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgIG15
ICRnZXR0ZXJDb250ZW50SGVhZDsKLSAgICAgICAgbXkgJHJlZmxlY3QgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKLSAgICAgICAgbXkgJHJl
ZmxlY3RVUkwgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
ZmxlY3RVUkwifTsKLSAgICAgICAgaWYgKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSB7Ci0gICAg
ICAgICAgICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAoKCRyZWZsZWN0IHx8ICRyZWZsZWN0
VVJMKSBlcSAiMSIpID8gJGZ1bmN0aW9uU2lnTmFtZSA6ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVS
TCk7Ci0gICAgICAgICAgICBteSAkbmFtZXNwYWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFj
ZUZvckF0dHJpYnV0ZU5hbWUoJGludGVyZmFjZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7
Ci0gICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAg
ICAgICAgIG15ICRnZXRBdHRyaWJ1dGVGdW5jdGlvbk5hbWUgPSAkcmVmbGVjdFVSTCA/ICJnZXRV
UkxBdHRyaWJ1dGUiIDogImdldEF0dHJpYnV0ZSI7Ci0gICAgICAgICAgICAkZ2V0dGVyQ29udGVu
dEhlYWQgPSAiJHthc3NpZ259Y29udmVydFRvVVRGOFN0cmluZyhpdGVtLT4ke2dldEF0dHJpYnV0
ZUZ1bmN0aW9uTmFtZX0oV2ViQ29yZTo6JHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRBdHRyaWJ1dGVO
YW1lfUF0dHIpKTtcbiI7CisgICAgICAgIGlmICgkcHJlZml4KSB7CisgICAgICAgICAgICBteSAk
Z2V0dGVyRXhwcmVzc2lvblByZWZpeCA9ICRjb2RlR2VuZXJhdG9yLT5HZXR0ZXJFeHByZXNzaW9u
UHJlZml4KFwlaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9uKTsKKyAgICAg
ICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIke2Fzc2lnbn1jb252ZXJ0VG9VVEY4U3RyaW5n
KGl0ZW0tPiRnZXR0ZXJFeHByZXNzaW9uUHJlZml4KSk7XG4iOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIiR7YXNzaWdufWNvbnZlcnRUb1VURjhT
dHJpbmcoaXRlbS0+JHtmdW5jdGlvblNpZ05hbWV9KCR7Y2FsbEltcGxQYXJhbXN9JHtleGNlcHRp
b25zfSkpO1xuIjsKICAgICAgICAgfQotCiAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7Z2V0
dGVyQ29udGVudEhlYWR9Iik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJHNldHRlckNvbnRl
bnRIZWFkOwotICAgICAgICBteSAkcmVmbGVjdCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwotICAgICAgICBteSAkcmVmbGVjdFVSTCA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9Owot
ICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAgICAgIG15ICRj
b250ZW50QXR0cmlidXRlTmFtZSA9ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikg
PyAkZnVuY3Rpb25TaWdOYW1lIDogKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKTsKLSAgICAgICAg
ICAgICRjb250ZW50QXR0cmlidXRlTmFtZSA9fiBzL3NldC8vOwotICAgICAgICAgICAgJGNvbnRl
bnRBdHRyaWJ1dGVOYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNvbnRlbnRBdHRy
aWJ1dGVOYW1lKTsKLSAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkY29kZUdlbmVyYXRvci0+
TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRlbnRBdHRyaWJ1
dGVOYW1lKTsKLSAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7bmFtZXNwYWNlfS5oIn0gPSAx
OwotICAgICAgICAgICAgJHNldHRlckNvbnRlbnRIZWFkID0gIiR7YXNzaWdufSR7YXNzaWduUHJl
fWl0ZW0tPnNldEF0dHJpYnV0ZShXZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJp
YnV0ZU5hbWV9QXR0ciwgJHtjYWxsSW1wbFBhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25Qb3N0
fSk7XG4iOworICAgICAgICBteSAkY29udGVudEhlYWQ7CisgICAgICAgIGlmICgkcHJlZml4IGVx
ICJnZXRfIikgeworICAgICAgICAgICAgbXkgJGdldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29k
ZUdlbmVyYXRvci0+R2V0dGVyRXhwcmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVy
ZmFjZU5hbWUsICRmdW5jdGlvbik7CisgICAgICAgICAgICAkY29udGVudEhlYWQgPSAiJHthc3Np
Z259JHthc3NpZ25QcmV9aXRlbS0+JGdldHRlckV4cHJlc3Npb25QcmVmaXgke2NhbGxJbXBsUGFy
YW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnblBvc3R9KTtcbiI7CisgICAgICAgIH0gZWxzaWYgKCRw
cmVmaXggZXEgInNldF8iKSB7CisgICAgICAgICAgICBteSAkc2V0dGVyRXhwcmVzc2lvblByZWZp
eCA9ICRjb2RlR2VuZXJhdG9yLT5TZXR0ZXJFeHByZXNzaW9uUHJlZml4KFwlaW1wbEluY2x1ZGVz
LCAkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9uKTsKKyAgICAgICAgICAgICRjb250ZW50SGVhZCA9
ICIke2Fzc2lnbn0ke2Fzc2lnblByZX1pdGVtLT4kc2V0dGVyRXhwcmVzc2lvblByZWZpeCR7Y2Fs
bEltcGxQYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduUG9zdH0pO1xuIjsKICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICRzZXR0ZXJDb250ZW50SGVhZCA9ICIke2Fzc2lnbn0ke2Fzc2ln
blByZX1pdGVtLT4ke2Z1bmN0aW9uU2lnTmFtZX0oJHtjYWxsSW1wbFBhcmFtc30ke2V4Y2VwdGlv
bnN9JHthc3NpZ25Qb3N0fSk7XG4iOworICAgICAgICAgICAgJGNvbnRlbnRIZWFkID0gIiR7YXNz
aWdufSR7YXNzaWduUHJlfWl0ZW0tPiR7ZnVuY3Rpb25TaWdOYW1lfSgke2NhbGxJbXBsUGFyYW1z
fSR7ZXhjZXB0aW9uc30ke2Fzc2lnblBvc3R9KTtcbiI7CiAgICAgICAgIH0KLQotICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICAke3NldHRlckNvbnRlbnRIZWFkfSIpOworICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICAke2NvbnRlbnRIZWFkfSIpOwogICAgICAgICAKICAgICAgICAgaWYoQHskZnVu
Y3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CiAgICAgICAgICAgICBteSAkZXhjZXB0aW9uSGFu
ZGxpbmcgPSA8PCAiRU9GIjsKQEAgLTEwMTQsNyArOTgxLDYgQEAgc3ViIEdlbmVyYXRlRnVuY3Rp
b25zIHsKICAgICAgICAgICAgICMgVGhpcyB3aWxsIGNvbmZsaWN0IHdpdGggdGhlIGdldF90eXBl
KCkgZnVuY3Rpb24gd2UgZGVmaW5lIHRvIHJldHVybiBhIEdUeXBlCiAgICAgICAgICAgICAjIGFj
Y29yZGluZyB0byBHT2JqZWN0IGNvbnZlbnRpb25zLiAgU2tpcCB0aGlzIGZvciBub3cuCiAgICAg
ICAgICAgICB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIlVSTCIgICAgICMgVE9E
TzogaGFuZGxlIHRoaXMKLSAgICAgICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5nIn0gICAgIyBUT0RPOiBoYW5kbGUg
dGhpcwogICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICBuZXh0IFRPUDsKICAgICAgICAgfQpA
QCAtMTA0NCw3ICsxMDEwLDcgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25zIHsKICAgICAgICAgJGZ1
bmN0aW9uID0gbmV3IGRvbUZ1bmN0aW9uKCk7CiAgICAgICAgIAogICAgICAgICAkZnVuY3Rpb24t
PnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+bmFtZSgkc2V0bmFtZSk7CisgICAgICAgICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CiAgICAgICAgICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlKCJ2b2lkIik7CiAgICAgICAgICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOwog
ICAgICAgICAKQEAgLTEwNTgsNyArMTAyNCw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9ucyB7CiAg
ICAgICAgIAogICAgICAgICAkZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnMoJGF0dHJpYnV0ZS0+
c2V0dGVyRXhjZXB0aW9ucyk7CiAgICAgICAgIAotICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUZ1
bmN0aW9uKCRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb24sICIiKTsKKyAgICAgICAgJG9iamVjdC0+
R2VuZXJhdGVGdW5jdGlvbigkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9uLCAic2V0XyIpOwogICAg
IH0KIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAjIENvcHlyaWdodCAo
QykgMjAwNiBBbmRlcnMgQ2FybHNzb24gPGFuZGVyc2NhQG1hYy5jb20+CiAjIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KICMgQ29weXJpZ2h0
IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+Ci0jIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1j
Q29ybWFjayA8Y2FtQG1jYy5pZC5hdT4KICMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwpAQCAtMTU2NCwyMCArMTU2
NCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSByZXN1bHQgPSAgIiAuIE5hdGl2
ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAiIiwg
ImltcC4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeHByZXNzaW9uID0gImltcC0+IiAu
ICRjb2RlR2VuZXJhdG9yLT5HZXR0ZXJFeHByZXNzaW9uUHJlZml4KFwlaW1wbEluY2x1ZGVzLCAk
aW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSkgLiAiKSI7CisgICAgICAgICAgICAgICAgICAgICAg
ICBteSAkanNUeXBlID0gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwg
JGltcGxDbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uLCAkZ2V0dGVy
RXhwcmVzc2lvbiwgImNhc3RlZFRoaXMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG15ICR2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRyZWZsZWN0ID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9Owot
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHJlZmxlY3RVUkwgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn07Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAoKCRyZWZsZWN0IHx8ICRy
ZWZsZWN0VVJMKSBlcSAiMSIpID8gJG5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkY29kZUdlbmVyYXRv
ci0+TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRlbnRBdHRy
aWJ1dGVOYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
e25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkZ2V0
QXR0cmlidXRlRnVuY3Rpb25OYW1lID0gJHJlZmxlY3RVUkwgPyAiZ2V0VVJMQXR0cmlidXRlIiA6
ICJnZXRBdHRyaWJ1dGUiOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICJp
bXAtPiRnZXRBdHRyaWJ1dGVGdW5jdGlvbk5hbWUoJHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRBdHRy
aWJ1dGVOYW1lfUF0dHIpIgotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9u
TmFtZSgpIjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICRqc1R5cGUgPSBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAw
LCAkaW1wbENsYXNzTmFtZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24sICR2YWx1
ZSwgImNhc3RlZFRoaXMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVy
YXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCR0eXBlPiBvYmogPSAkanNUeXBl
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSlNWYWx1ZSByZXN1bHQgPSAgdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgb2JqLmdldCgpLCBpbXApO1xuIik7CkBAIC0xNzI4LDE3ICsxNzE3LDEwIEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGltcC0+Y29tbWl0Q2hhbmdlKHBvZEltcCwgY2FzdGVkVGhpcyk7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSBKU1ZhbHVlVG9OYXRpdmUoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXkgJHNldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVy
RXhwcmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1
dGUpOworCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJF
eGNlcHRpb25zfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHJlZmxlY3Qg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRyZWZsZWN0VVJMID0gJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmli
dXRlTmFtZSA9ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkbmFtZSA6ICgk
cmVmbGVjdCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkbmFtZXNwYWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0
ZU5hbWUoJGludGVyZmFjZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9
ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGltcC0+c2V0QXR0cmlidXRlKCR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmli
dXRlTmFtZX1BdHRyLCAkbmF0aXZlVmFsdWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoJG5hdGl2
ZVZhbHVlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT4kc2V0dGVy
RXhwcmVzc2lvblByZWZpeCRuYXRpdmVWYWx1ZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRl
ckV4Y2VwdGlvbnN9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIik7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGF0
dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CkBAIC0yMzI0LDcgKzIzMDYsNyBAQCBzdWIgSlNW
YWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxTVkdQYWludDo6U1ZHUGFpbnRU
eXBlPigkdmFsdWUudG9JbnQzMihleGVjKSkiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwog
CiAgICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciKSB7Ci0gICAgICAgIHJldHVybiAidmFsdWVU
b1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxsVG9OdWxsU3RyaW5nIn07CisgICAgICAgIHJldHVy
biAidmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxsVG9OdWxsU3RyaW5nIn0gfHwgJHNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSB8fCAkc2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwogICAgICAgICByZXR1cm4gInZhbHVl
VG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxT
dHJpbmcifTsKICAgICAgICAgcmV0dXJuICJ1c3RyaW5nVG9TdHJpbmcoJHZhbHVlLnRvU3RyaW5n
KGV4ZWMpKSI7CiAgICAgfQpAQCAtMjQxOCwxMyArMjQwMCw2IEBAIHN1YiBOYXRpdmVUb0pTVmFs
dWUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmlt
YXRlZFR5cGUoJHR5cGUpKSB7Ci0gICAgICAgICMgU29tZSBTVkdGRSpFbGVtZW50LmlkbCB1c2Ug
J29wZXJhdG9yJyBhcyBhdHRyaWJ1dGUgbmFtZSwgcmV3cml0ZSBhcyAnX29wZXJhdG9yJyB0byBh
dm9pZCBjbGFzaGVzIHdpdGggQy9DKysKLSAgICAgICAgJHZhbHVlID1+IHMvb3BlcmF0b3JcKFwp
L19vcGVyYXRvclwoXCkvIGlmICgkdmFsdWUgPX4gL29wZXJhdG9yLyk7Ci0gICAgICAgICR2YWx1
ZSA9fiBzL1woXCkvLzsKLSAgICAgICAgJHZhbHVlIC49ICJBbmltYXRlZCgpIjsKLSAgICB9Ci0K
ICAgICBpZiAoJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CiAgICAgICAgICRpbXBs
SW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDE7CiAgICAgfQpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2
aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9i
akMucG0JKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAjIENvcHlyaWdodCAoQykgMjAw
NiBBbmRlcnMgQ2FybHNzb24gPGFuZGVyc2NhQG1hYy5jb20+IAogIyBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAjIENvcHlyaWdodCAoQykg
MjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPgotIyBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1h
Y2sgPGNhbUBtY2MuaWQuYXU+CiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTExNjMsMTMgKzExNjMsOSBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZU5h
bWUgZXEgImZyYW1lIikgewogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGF0dHJpYnV0
ZSBmcmFtZSB0byBiZSBmcmFtZUJvcmRlcnMuCiAgICAgICAgICAgICAgICAgJGF0dHJpYnV0ZUlu
dGVyZmFjZU5hbWUgLj0gIkJvcmRlcnMiOwotICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0
ZU5hbWUgZXEgIm93bmVyRG9jdW1lbnQiKSB7Ci0gICAgICAgICAgICAgICAgIyBGSVhNRTogZm9y
IG5vdyBzcGVjaWFsIGNhc2UgYXR0cmlidXRlIG93bmVyRG9jdW1lbnQgdG8gY2FsbCBkb2N1bWVu
dCwgdGhpcyBpcyBpbmNvcnJlY3QKLSAgICAgICAgICAgICAgICAjIGxlZ2FjeSBiZWhhdmlvci4g
KHNlZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OSkKLSAgICAg
ICAgICAgICAgICAkYXR0cmlidXRlTmFtZSA9ICJkb2N1bWVudCI7Ci0gICAgICAgICAgICB9IGVs
c2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGlkbFR5cGUpKSB7Ci0gICAg
ICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgZm9yIGFuaW1hdGVkIHR5cGVzLgotICAgICAgICAg
ICAgICAgICRhdHRyaWJ1dGVOYW1lIC49ICJBbmltYXRlZCI7CisgICAgICAgICAgICB9IGVsc2lm
ICgkYXR0cmlidXRlTmFtZSBlcSAib3BlcmF0b3IiKSB7CisgICAgICAgICAgICAgICAgIyBBdm9p
ZCBjbGFzaCB3aXRoIEMrKyBrZXl3b3JkLgorICAgICAgICAgICAgICAgICRhdHRyaWJ1dGVJbnRl
cmZhY2VOYW1lID0gIl9vcGVyYXRvciI7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICRh
dHRyaWJ1dGVOYW1lc3skYXR0cmlidXRlSW50ZXJmYWNlTmFtZX0gPSAxOwpAQCAtMTE3NywyMyAr
MTE3MywxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgIyAtIEdF
VFRFUgogICAgICAgICAgICAgbXkgJGdldHRlclNpZyA9ICItICgkYXR0cmlidXRlVHlwZSkkYXR0
cmlidXRlSW50ZXJmYWNlTmFtZVxuIjsKIAotICAgICAgICAgICAgIyBTb21lIFNWR0ZFKkVsZW1l
bnQuaWRsIHVzZSAnb3BlcmF0b3InIGFzIGF0dHJpYnV0ZSBuYW1lLCByZXdyaXRlIGFzICdfb3Bl
cmF0b3InIHRvIGF2b2lkIGNsYXNoZXMgd2l0aCBDL0MrKwotICAgICAgICAgICAgJGF0dHJpYnV0
ZU5hbWUgPX4gcy9vcGVyYXRvckFuaW1hdGVkL19vcGVyYXRvckFuaW1hdGVkLyBpZiAoJGF0dHJp
YnV0ZU5hbWUgPX4gL29wZXJhdG9yQW5pbWF0ZWQvKTsKLSAgICAgICAgICAgICRnZXR0ZXJTaWcg
PX4gcy9vcGVyYXRvci9fb3BlcmF0b3IvIGlmICgkZ2V0dGVyU2lnID1+IC9vcGVyYXRvci8pOwor
ICAgICAgICAgICAgbXkgJGdldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+
R2V0dGVyRXhwcmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRh
dHRyaWJ1dGUpOworCisgICAgICAgICAgICAjIEZJWE1FOiBTcGVjaWFsIGNhc2UgYXR0cmlidXRl
IG93bmVyRG9jdW1lbnQgdG8gY2FsbCBkb2N1bWVudC4gVGhpcyBtYWtlcyBpdCByZXR1cm4gdGhl
CisgICAgICAgICAgICAjIGRvY3VtZW50IHdoZW4gY2FsbGVkIG9uIHRoZSBkb2N1bWVudCBpdHNl
bGYuIExlZ2FjeSBiZWhhdmlvciwgc2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4ODk+LgorICAgICAgICAgICAgJGdldHRlckV4cHJlc3Npb25QcmVmaXggPX4g
cy9cYm93bmVyRG9jdW1lbnRcYi9kb2N1bWVudC87CiAKICAgICAgICAgICAgIG15ICRoYXNHZXR0
ZXJFeGNlcHRpb24gPSBAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9OwotICAgICAgICAg
ICAgbXkgJGdldHRlckNvbnRlbnRIZWFkOwotICAgICAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAg
ICAgICAgICBteSAkcmVmbGVjdFVSTCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlJlZmxlY3RVUkwifTsKLSAgICAgICAgICAgIGlmICgkcmVmbGVjdCB8fCAk
cmVmbGVjdFVSTCkgewotICAgICAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9
ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkYXR0cmlidXRlTmFtZSA6ICgk
cmVmbGVjdCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICAgICAgbXkgJG5hbWVzcGFjZSA9
ICRjb2RlR2VuZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRpbnRlcmZhY2VOYW1l
LCAkY29udGVudEF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7bmFtZXNwYWNlfS5oIn0gPSAxOwotICAgICAgICAgICAgICAgIG15ICRnZXRBdHRyaWJ1dGVG
dW5jdGlvbk5hbWUgPSAkcmVmbGVjdFVSTCA/ICJnZXRVUkxBdHRyaWJ1dGUiIDogImdldEF0dHJp
YnV0ZSI7Ci0gICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIklNUEwtPiR7Z2V0
QXR0cmlidXRlRnVuY3Rpb25OYW1lfShXZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0
dHJpYnV0ZU5hbWV9QXR0ciI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICRnZXR0ZXJDb250ZW50SGVhZCA9ICJJTVBMLT4iIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmly
c3QoJGF0dHJpYnV0ZU5hbWUpIC4gIigiOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgbXkg
JGdldHRlckNvbnRlbnRIZWFkID0gIklNUEwtPiRnZXR0ZXJFeHByZXNzaW9uUHJlZml4IjsKICAg
ICAgICAgICAgIG15ICRnZXR0ZXJDb250ZW50VGFpbCA9ICIpIjsKIAogICAgICAgICAgICAgIyBT
cGVjaWFsIGNhc2UgZm9yIERPTVNWR051bWJlcgpAQCAtMTI0NCw4ICsxMjMxLDYgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRUb1N0cmluZyJ9KSB7CiAgICAg
ICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVy
KCIgLiAkZ2V0dGVyQ29udGVudEhlYWQ7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRU
YWlsIC49ICIpIjsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5nIn0pIHsKLSAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0gIi50b0ludCgpIjsKICAgICAgICAgICAgIH0gZWxz
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJGlkbFR5cGUpIG9yICRpZGxUeXBlIGVxICJE
YXRlIikgewogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoJGdldHRl
ckNvbnRlbnRIZWFkIjsKICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0gIiki
OwpAQCAtMTMwMiwxMCArMTI4Nyw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgbXkgJGFyZ05hbWUgPSAibmV3IiAuIHVjZmlyc3QoJGF0dHJpYnV0ZUludGVy
ZmFjZU5hbWUpOwogICAgICAgICAgICAgICAgIG15ICRhcmcgPSBHZXRPYmpDVHlwZUdldHRlcigk
YXJnTmFtZSwgJGlkbFR5cGUpOwogCi0gICAgICAgICAgICAgICAgIyBUaGUgZGVmaW5pdGlvbiBv
ZiBDb252ZXJ0RnJvbVN0cmluZyBhbmQgQ29udmVydFRvU3RyaW5nIGlzIGZsaXBwZWQgZm9yIHRo
ZSBzZXR0ZXIKLSAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkgewotICAgICAgICAgICAgICAg
ICAgICAkYXJnID0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVyKCRhcmcpIjsKLSAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDb252ZXJ0VG9TdHJpbmcifSkgeworICAgICAgICAgICAgICAgICMgVGhlIGRlZmluaXRpb24g
b2YgQ29udmVydFRvU3RyaW5nIGlzIGZsaXBwZWQgZm9yIHRoZSBzZXR0ZXIKKyAgICAgICAgICAg
ICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
dmVydFRvU3RyaW5nIn0pIHsKICAgICAgICAgICAgICAgICAgICAgJGFyZyA9ICJXZWJDb3JlOjpT
dHJpbmcoJGFyZykudG9JbnQoKSI7CiAgICAgICAgICAgICAgICAgfQogCkBAIC0xMzMxLDE4ICsx
MzE0LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBJTVBMLT4kY29yZVNldHRlck5hbWUoJGFyZyk7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwotICAgICAgICAgICAgICAgICAgICBteSAk
cmVmbGVjdFVSTCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlJlZmxlY3RVUkwifTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJGV4Y2VwdGlvbkluaXRcbiIpIGlmICRoYXNTZXR0ZXJFeGNlcHRpb247CisgICAgICAgICAg
ICAgICAgICAgIG15ICRzZXR0ZXJFeHByZXNzaW9uUHJlZml4ID0gJGNvZGVHZW5lcmF0b3ItPlNl
dHRlckV4cHJlc3Npb25QcmVmaXgoXCVpbXBsSW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0
cmlidXRlKTsKICAgICAgICAgICAgICAgICAgICAgbXkgJGVjID0gJGhhc1NldHRlckV4Y2VwdGlv
biA/ICIsIGVjIiA6ICIiOwotICAgICAgICAgICAgICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJl
ZmxlY3RVUkwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRjb250ZW50QXR0cmlidXRl
TmFtZSA9ICgoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIGVxICIxIikgPyAkYXR0cmlidXRlTmFt
ZSA6ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
eSAkbmFtZXNwYWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0ZU5hbWUo
JGludGVyZmFjZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyIke25hbWVzcGFjZX0uaCJ9ID0gMTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPnNldEF0dHJpYnV0ZShX
ZWJDb3JlOjoke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciwgJGFyZyRl
Yyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPiRjb3JlU2V0dGVyTmFtZSgkYXJn
JGVjKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICRleGNlcHRpb25Jbml0XG4iKSBpZiAkaGFzU2V0dGVyRXhj
ZXB0aW9uOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBJTVBM
LT4kc2V0dGVyRXhwcmVzc2lvblByZWZpeCRhcmckZWMpO1xuIik7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRleGNlcHRpb25SYWlzZU9uRXJyb3JcbiIpIGlm
ICRoYXNTZXR0ZXJFeGNlcHRpb247CiAgICAgICAgICAgICAgICAgfQogCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDYxMDc0KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBj
b3B5KQpAQCAtNjc3LDcgKzY3Nyw3IEBAIEVORAogICAgICAgICBteSAkcmVmbGVjdCA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKICAgICAg
ICAgaWYgKCRnZXR0ZXJTdHJpbmdVc2VzSW1wICYmICRyZWZsZWN0ICYmIElzTm9kZVN1YlR5cGUo
JGRhdGFOb2RlKSAmJiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhdHRyVHlwZSkpIHsK
ICAgICAgICAgICAgICMgR2VuZXJhdGUgc3VwZXItY29tcGFjdCBjYWxsIGZvciByZWd1bGFyIGF0
dHJpYnV0ZSBnZXR0ZXI6Ci0gICAgICAgICAgICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAk
cmVmbGVjdCBlcSAiMSIgPyAkYXR0ck5hbWUgOiAkcmVmbGVjdDsKKyAgICAgICAgICAgIG15ICRj
b250ZW50QXR0cmlidXRlTmFtZSA9ICRyZWZsZWN0IGVxICIxIiA/IGxjICRhdHRyTmFtZSA6ICRy
ZWZsZWN0OwogICAgICAgICAgICAgbXkgJG5hbWVzcGFjZSA9ICRjb2RlR2VuZXJhdG9yLT5OYW1l
c3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY29udGVudEF0dHJpYnV0ZU5h
bWUpOwogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtuYW1lc3BhY2V9LmgifSA9IDE7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiBnZXRFbGVtZW50
U3RyaW5nQXR0cihpbmZvLCAke25hbWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0
cik7XG4iKTsKQEAgLTcwOCwzNCArNzA4LDEzIEBAIEVORAogICAgICAgICAkYXR0ck5hbWUgPSAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJ2OHJlZmVyZW5jZWF0
dHIifTsKICAgICB9CiAKLSAgICBteSAkZ2V0dGVyRnVuYyA9ICRjb2RlR2VuZXJhdG9yLT5XS19s
Y2ZpcnN0KCRhdHRyTmFtZSk7Ci0KLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0
ZWRUeXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkpIHsKLSAgICAgICAgIyBTb21lIFNW
R0ZFKkVsZW1lbnQuaWRsIHVzZSAnb3BlcmF0b3InIGFzIGF0dHJpYnV0ZSBuYW1lOyByZXdyaXRl
IGFzICdfb3BlcmF0b3InIHRvIGF2b2lkIGNsYXNoZXMgd2l0aCBDL0MrKwotICAgICAgICAkZ2V0
dGVyRnVuYyA9ICJfIiAuICRnZXR0ZXJGdW5jIGlmICgkYXR0ck5hbWUgPX4gL29wZXJhdG9yLyk7
Ci0gICAgICAgICRnZXR0ZXJGdW5jIC49ICJBbmltYXRlZCI7Ci0gICAgfQotCiAgICAgbXkgJHJl
dHVyblR5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWduYXR1cmUpOwog
CiAgICAgbXkgJGdldHRlclN0cmluZzsKICAgICBpZiAoJGdldHRlclN0cmluZ1VzZXNJbXApIHsK
LSAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgICAgIG15ICRyZWZsZWN0VVJMID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwotICAgICAg
ICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAgICAgIG15ICRjb250ZW50
QXR0cmlidXRlTmFtZSA9ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkgZXEgIjEiID8gJGF0dHJO
YW1lIDogKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKTsKLSAgICAgICAgICAgIG15ICRuYW1lc3Bh
Y2UgPSAkY29kZUdlbmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFtZSgkaW50ZXJmYWNl
TmFtZSwgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7bmFtZXNwYWNlfS5oIn0gPSAxOwotICAgICAgICAgICAgbXkgJGdldEF0dHJpYnV0ZUZ1bmN0
aW9uTmFtZSA9ICRyZWZsZWN0VVJMID8gImdldFVSTEF0dHJpYnV0ZSIgOiAiZ2V0QXR0cmlidXRl
IjsKLSAgICAgICAgICAgICRnZXR0ZXJTdHJpbmcgPSAiaW1wLT4kZ2V0QXR0cmlidXRlRnVuY3Rp
b25OYW1lKCR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1BdHRyIjsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRnZXR0ZXJTdHJpbmcgPSAiaW1wLT4kZ2V0dGVyRnVu
YygiOwotICAgICAgICB9CisgICAgICAgICRnZXR0ZXJTdHJpbmcgPSAiaW1wLT4iIC4gJGNvZGVH
ZW5lcmF0b3ItPkdldHRlckV4cHJlc3Npb25QcmVmaXgoXCVpbXBsSW5jbHVkZXMsICRpbnRlcmZh
Y2VOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgJGdldHRlclN0cmluZyAuPSAiZWMiIGlmICR1
c2VFeGNlcHRpb25zOwogICAgICAgICAkZ2V0dGVyU3RyaW5nIC49ICIpIjsKLSAgICAgICAgaWYg
KCRuYXRpdmVUeXBlIGVxICJpbnQiIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9KSB7Ci0gICAgICAgICAgICAkZ2V0dGVy
U3RyaW5nIC49ICIudG9JbnQoKSI7Ci0gICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAk
Z2V0dGVyU3RyaW5nID0gImltcEluc3RhbmNlIjsKICAgICB9CkBAIC04ODcsNyArODY2LDcgQEAg
RU5ECiAgICAgICAgIG15ICRyZWZsZWN0VVJMID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OwogICAgICAgICBpZiAoKCRyZWZsZWN0IHx8
ICRyZWZsZWN0VVJMKSAmJiBJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgJiYgJGNvZGVHZW5lcmF0
b3ItPklzU3RyaW5nVHlwZSgkYXR0clR5cGUpKSB7CiAgICAgICAgICAgICAjIEdlbmVyYXRlIHN1
cGVyLWNvbXBhY3QgY2FsbCBmb3IgcmVndWxhciBhdHRyaWJ1dGUgc2V0dGVyOgotICAgICAgICAg
ICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSBl
cSAiMSIgPyAkYXR0ck5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpOworICAgICAgICAg
ICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSBl
cSAiMSIgPyBsYyAkYXR0ck5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpOwogICAgICAg
ICAgICAgbXkgJG5hbWVzcGFjZSA9ICRjb2RlR2VuZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1
dGVOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY29udGVudEF0dHJpYnV0ZU5hbWUpOwogICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siJHtuYW1lc3BhY2V9LmgifSA9IDE7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgIHNldEVsZW1lbnRTdHJpbmdBdHRyKGluZm8sICR7bmFt
ZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1BdHRyLCB2YWx1ZSk7XG4iKTsKQEAgLTkx
MiwxNCArODkxLDcgQEAgRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAg
JG5hdGl2ZVR5cGUgdiA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LCAidmFsdWUiKSAuICI7XG4iKTsKICAgICB9CiAKLSAgICBteSAkcmVzdWx0ID0gIiI7Ci0gICAg
aWYgKCRuYXRpdmVUeXBlIGVxICJpbnQiIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9KSB7Ci0gICAgICAgICRyZXN1bHQg
Lj0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVyKCI7Ci0gICAgfQotICAgICRyZXN1bHQgLj0gInYi
OwotICAgIGlmICgkbmF0aXZlVHlwZSBlcSAiaW50IiBhbmQgJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkgewotICAgICAgICAk
cmVzdWx0IC49ICIpIjsKLSAgICB9CisgICAgbXkgJHJlc3VsdCA9ICJ2IjsKICAgICBteSAkcmV0
dXJuVHlwZSA9IEdldFR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAg
ICAgaWYgKElzUmVmUHRyVHlwZSgkcmV0dXJuVHlwZSkpIHsKICAgICAgICAgJHJlc3VsdCA9ICJX
VEY6OmdldFB0cigiIC4gJHJlc3VsdCAuICIpIjsKQEAgLTkzNSwxNSArOTA3LDggQEAgRU5ECiAg
ICAgaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJmbG9hdCIpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICAqaW1wID0gJHJlc3VsdDtcbiIpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIG15ICRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGF0dHJOYW1lKTsKLSAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgICAgIG15ICRyZWZsZWN0
VVJMID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVj
dFVSTCJ9OwotICAgICAgICBpZiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKLSAgICAgICAg
ICAgIG15ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICgkcmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkg
ZXEgIjEiID8gJGF0dHJOYW1lIDogKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKTsKLSAgICAgICAg
ICAgIG15ICRuYW1lc3BhY2UgPSAkY29kZUdlbmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRl
TmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IiR7bmFtZXNwYWNlfS5oIn0gPSAxOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldEF0dHJpYnV0ZSgke25hbWVzcGFjZX06OiR7
Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciwgJHJlc3VsdCIpOwotICAgICAgICB9IGVsc2lmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAg
IGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7Cisg
ICAgICAgICAgICBteSAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRhdHRyTmFtZSk7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEFic3Ry
YWN0RXZlbnRMaXN0ZW5lci5oIn0gPSAxOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICB0cmFuc2ZlckhpZGRlbkRlcGVuZGVuY3koaW5mby5Ib2xkZXIoKSwgaW1wLT4k
YXR0ck5hbWUoKSwgdmFsdWUsIFY4JHtpbnRlcmZhY2VOYW1lfTo6ZXZlbnRMaXN0ZW5lckNhY2hl
SW5kZXgpO1xuIik7CiAgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNv
bnRleHQiIGFuZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CkBA
IC05NTQsNyArOTE5LDggQEAgRU5ECiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKFY4RE9NV3JhcHBlcjo6
Z2V0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdHJ1ZSwgTGlzdGVuZXJGaW5kT3JDcmVhdGUpIik7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoJHJlc3VsdCIp
OworICAgICAgICAgICAgbXkgJHNldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRv
ci0+U2V0dGVyRXhwcmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUs
ICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBp
bXAtPiRzZXR0ZXJFeHByZXNzaW9uUHJlZml4JHJlc3VsdCIpOwogICAgICAgICB9CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIsIGVjIikgaWYgJHVzZUV4Y2VwdGlvbnM7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIpO1xuIik7CkBAIC0yNzEyLDcgKzI2NzgsNyBA
QCBzdWIgR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUKICAgICAgICAgbXkgJG1vZGUgPSAiIjsK
ICAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0VW5k
ZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nIn0pIHsKICAgICAgICAgICAgICRtb2RlID0gIldpdGhV
bmRlZmluZWRPck51bGxDaGVjayI7Ci0gICAgICAgIH0gZWxzaWYgKCRzaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyJ9KSB7CisgICAgICAgIH0g
ZWxzaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZyJ9IHx8ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0g
fHwgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3RVUkwifSkgewogICAg
ICAgICAgICAgJG1vZGUgPSAiV2l0aE51bGxDaGVjayI7CiAgICAgICAgIH0KICAgICAgICAgJHR5
cGUgLj0gIjwkbW9kZT4iOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDE2IEBAIG1vZHVsZSB0
ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdB
dHRyOwogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIHRlc3RPYmpB
dHRyOwogCisgICAgICAgIC8vIFJlZmxlY3RlZCBET00gYXR0cmlidXRlcworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyByZWZsZWN0ZWRTdHJpbmdBdHRyOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgcmVmbGVjdGVkSW50ZWdyYWxBdHRyOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVmbGVjdGVkQm9vbGVhbkF0dHI7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZFVSTEF0dHI7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50U3RyaW5nQXR0cl0gRE9NU3RyaW5n
IHJlZmxlY3RlZFN0cmluZ0F0dHI7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21D
b250ZW50SW50ZWdyYWxBdHRyXSBsb25nIHJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cjsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWN1c3RvbUNvbnRlbnRCb29sZWFuQXR0cl0gYm9vbGVh
biByZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
VVJMPWN1c3RvbUNvbnRlbnRVUkxBdHRyXSBET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cjsKKwog
ICAgICAgICAvLyBNZXRob2RzCiAgICAgICAgIHZvaWQgICAgdm9pZE1ldGhvZCgpOwogICAgICAg
ICB2b2lkICAgIHZvaWRNZXRob2RXaXRoQXJncyhpbiBsb25nIGludEFyZywgaW4gRE9NU3RyaW5n
IHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAkocmV2aXNpb24gNjEwNzQp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJXZWJET01UZXN0T2Jq
LmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAj
aW5jbHVkZSAiVGVzdE9iai5oIgpAQCAtMTczLDYgKzE3NCwxMzQgQEAgdm9pZCBXZWJET01UZXN0
T2JqOjpzZXRUZXN0T2JqQXR0cihjb25zdAogICAgIGltcGwoKS0+c2V0VGVzdE9iakF0dHIodG9X
ZWJDb3JlKG5ld1Rlc3RPYmpBdHRyKSk7CiB9CiAKK1dlYkRPTVN0cmluZyBXZWJET01UZXN0T2Jq
OjpyZWZsZWN0ZWRTdHJpbmdBdHRyKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAg
ICAgcmV0dXJuIFdlYkRPTVN0cmluZygpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IFdlYkNvcmU6OlN0cmluZyY+KGltcGwoKS0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHIpKTsKK30KKwordm9pZCBXZWJET01UZXN0T2JqOjpz
ZXRSZWZsZWN0ZWRTdHJpbmdBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYgbmV3UmVmbGVjdGVkU3Ry
aW5nQXR0cikKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1w
bCgpLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRTdHJpbmdBdHRy
QXR0ciwgbmV3UmVmbGVjdGVkU3RyaW5nQXR0cik7Cit9CisKK2ludCBXZWJET01UZXN0T2JqOjpy
ZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiBpbXBsKCktPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnJlZmxlY3RlZEludGVncmFsQXR0ckF0dHIpOworfQorCit2b2lkIFdlYkRPTVRl
c3RPYmo6OnNldFJlZmxlY3RlZEludGVncmFsQXR0cihpbnQgbmV3UmVmbGVjdGVkSW50ZWdyYWxB
dHRyKQoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbXBsKCkt
PnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZEludGVncmFsQXR0ckF0
dHIsIG5ld1JlZmxlY3RlZEludGVncmFsQXR0cik7Cit9CisKK2Jvb2wgV2ViRE9NVGVzdE9iajo6
cmVmbGVjdGVkQm9vbGVhbkF0dHIoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gaW1wbCgpLT5nZXRBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHIpOworfQorCit2b2lkIFdlYkRP
TVRlc3RPYmo6OnNldFJlZmxlY3RlZEJvb2xlYW5BdHRyKGJvb2wgbmV3UmVmbGVjdGVkQm9vbGVh
bkF0dHIpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGltcGwo
KS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkQm9vbGVhbkF0dHJB
dHRyLCBuZXdSZWZsZWN0ZWRCb29sZWFuQXR0cik7Cit9CisKK1dlYkRPTVN0cmluZyBXZWJET01U
ZXN0T2JqOjpyZWZsZWN0ZWRVUkxBdHRyKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAg
ICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZygpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFdlYkNvcmU6OlN0cmluZyY+KGltcGwoKS0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6cmVmbGVjdGVkVVJMQXR0ckF0dHIpKTsKK30KKwordm9pZCBXZWJET01UZXN0T2Jq
OjpzZXRSZWZsZWN0ZWRVUkxBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYgbmV3UmVmbGVjdGVkVVJM
QXR0cikKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1wbCgp
LT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRVUkxBdHRyQXR0ciwg
bmV3UmVmbGVjdGVkVVJMQXR0cik7Cit9CisKK1dlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpy
ZWZsZWN0ZWRTdHJpbmdBdHRyKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAg
cmV0dXJuIFdlYkRPTVN0cmluZygpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdl
YkNvcmU6OlN0cmluZyY+KGltcGwoKS0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJBdHRyKSk7Cit9CisKK3ZvaWQgV2ViRE9NVGVzdE9iajo6
c2V0UmVmbGVjdGVkU3RyaW5nQXR0cihjb25zdCBXZWJET01TdHJpbmcmIG5ld1JlZmxlY3RlZFN0
cmluZ0F0dHIpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlt
cGwoKS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmlu
Z0F0dHJBdHRyLCBuZXdSZWZsZWN0ZWRTdHJpbmdBdHRyKTsKK30KKworaW50IFdlYkRPTVRlc3RP
Ymo6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cigpIGNvbnN0Cit7CisgICAgaWYgKCFpbXBs
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGltcGwoKS0+Z2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEludGVncmFsQXR0ckF0dHIpOworfQor
Cit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldFJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihpbnQg
bmV3UmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKQoreworICAgIGlmICghaW1wbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpbXBsKCktPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyLCBuZXdSZWZsZWN0ZWRDdXN0b21JbnRl
Z3JhbEF0dHIpOworfQorCitib29sIFdlYkRPTVRlc3RPYmo6OnJlZmxlY3RlZEN1c3RvbUJvb2xl
YW5BdHRyKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIGltcGwoKS0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRyQXR0cik7Cit9CisKK3ZvaWQgV2ViRE9NVGVzdE9iajo6
c2V0UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoYm9vbCBuZXdSZWZsZWN0ZWRDdXN0b21Cb29s
ZWFuQXR0cikKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1w
bCgpLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50Qm9vbGVh
bkF0dHJBdHRyLCBuZXdSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik7Cit9CisKK1dlYkRPTVN0
cmluZyBXZWJET01UZXN0T2JqOjpyZWZsZWN0ZWRVUkxBdHRyKCkgY29uc3QKK3sKKyAgICBpZiAo
IWltcGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZygpOworCisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OlN0cmluZyY+KGltcGwoKS0+Z2V0VVJMQXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyKSk7Cit9CisKK3Zv
aWQgV2ViRE9NVGVzdE9iajo6c2V0UmVmbGVjdGVkVVJMQXR0cihjb25zdCBXZWJET01TdHJpbmcm
IG5ld1JlZmxlY3RlZFVSTEF0dHIpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGltcGwoKS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9t
Q29udGVudFVSTEF0dHJBdHRyLCBuZXdSZWZsZWN0ZWRVUkxBdHRyKTsKK30KKwogaW50IFdlYkRP
TVRlc3RPYmo6OmF0dHJXaXRoRXhjZXB0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIWltcGwoKSkK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRl
c3RPYmouaAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwyMiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTdHJpbmdBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYpOwogICAg
IFdlYkRPTVRlc3RPYmogdGVzdE9iakF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFRlc3RPYmpB
dHRyKGNvbnN0IFdlYkRPTVRlc3RPYmomKTsKKyAgICBXZWJET01TdHJpbmcgcmVmbGVjdGVkU3Ry
aW5nQXR0cigpIGNvbnN0OworICAgIHZvaWQgc2V0UmVmbGVjdGVkU3RyaW5nQXR0cihjb25zdCBX
ZWJET01TdHJpbmcmKTsKKyAgICBpbnQgcmVmbGVjdGVkSW50ZWdyYWxBdHRyKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoaW50KTsKKyAgICBib29sIHJlZmxlY3Rl
ZEJvb2xlYW5BdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSZWZsZWN0ZWRCb29sZWFuQXR0cihi
b29sKTsKKyAgICBXZWJET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cigpIGNvbnN0OworICAgIHZv
aWQgc2V0UmVmbGVjdGVkVVJMQXR0cihjb25zdCBXZWJET01TdHJpbmcmKTsKKyAgICBXZWJET01T
dHJpbmcgcmVmbGVjdGVkU3RyaW5nQXR0cigpIGNvbnN0OworICAgIHZvaWQgc2V0UmVmbGVjdGVk
U3RyaW5nQXR0cihjb25zdCBXZWJET01TdHJpbmcmKTsKKyAgICBpbnQgcmVmbGVjdGVkQ3VzdG9t
SW50ZWdyYWxBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSZWZsZWN0ZWRDdXN0b21JbnRlZ3Jh
bEF0dHIoaW50KTsKKyAgICBib29sIHJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihib29sKTsKKyAgICBXZWJE
T01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cigpIGNvbnN0OworICAgIHZvaWQgc2V0UmVmbGVjdGVk
VVJMQXR0cihjb25zdCBXZWJET01TdHJpbmcmKTsKICAgICBpbnQgYXR0cldpdGhFeGNlcHRpb24o
KSBjb25zdDsKICAgICB2b2lkIHNldEF0dHJXaXRoRXhjZXB0aW9uKGludCk7CiAgICAgaW50IGF0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2Fs
bGJhY2suY3BwCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsMzggKzU1LDM4IEBAIGdwb2ludGVyIGtpdChXZWJDb3JlOjpUZXN0Q2FsbGJhY2sqIG9iaikK
IGdib29sZWFuCiB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfY2FsbGJhY2tfd2l0aF9jbGFzczFw
YXJhbShXZWJLaXRET01UZXN0Q2FsbGJhY2sqIHNlbGYsIFdlYktpdERPTUNsYXNzMSogIGNsYXNz
MXBhcmFtKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpUZXN0Q2FsbGJhY2sgKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChjbGFz
czFwYXJhbSwgMCk7Ci0gICAgV2ViQ29yZTo6Q2xhc3MxICogX2dfY2xhc3MxcGFyYW0gPSBXZWJL
aXQ6OmNvcmUoY2xhc3MxcGFyYW0pOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ19jbGFz
czFwYXJhbSwgMCk7Ci0gICAgZ2Jvb2xlYW4gcmVzID0gaXRlbS0+Y2FsbGJhY2tXaXRoQ2xhc3Mx
UGFyYW0oX2dfY2xhc3MxcGFyYW0pOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNsYXNzMXBh
cmFtLCAwKTsKKyAgICBXZWJDb3JlOjpDbGFzczEgKiBjb252ZXJ0ZWRfY2xhc3MxcGFyYW0gPSBX
ZWJLaXQ6OmNvcmUoY2xhc3MxcGFyYW0pOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZl
cnRlZF9jbGFzczFwYXJhbSwgMCk7CisgICAgZ2Jvb2xlYW4gcmVzID0gaXRlbS0+Y2FsbGJhY2tX
aXRoQ2xhc3MxUGFyYW0oY29udmVydGVkX2NsYXNzMXBhcmFtKTsKICAgICByZXR1cm4gcmVzOwog
fQogCiBnYm9vbGVhbgogd2Via2l0X2RvbV90ZXN0X2NhbGxiYWNrX2NhbGxiYWNrX3dpdGhfY2xh
c3MycGFyYW0oV2ViS2l0RE9NVGVzdENhbGxiYWNrKiBzZWxmLCBXZWJLaXRET01DbGFzczIqICBj
bGFzczJwYXJhbSwgZ2NoYXIqICBzdHJfYXJnKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
IChzZWxmLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJD
b3JlOjpUZXN0Q2FsbGJhY2sgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsIChjbGFzczJwYXJhbSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwgKHN0cl9hcmcsIDApOwotICAgIFdlYkNvcmU6OkNsYXNzMiAqIF9nX2NsYXNzMnBhcmFtID0g
V2ViS2l0Ojpjb3JlKGNsYXNzMnBhcmFtKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2df
Y2xhc3MycGFyYW0sIDApOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2ViQ29y
ZTo6U3RyaW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBnYm9vbGVhbiByZXMgPSBpdGVtLT5j
YWxsYmFja1dpdGhDbGFzczJQYXJhbShfZ19jbGFzczJwYXJhbSwgX2dfc3RyX2FyZyk7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoY2xhc3MycGFyYW0sIDApOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKHN0cl9hcmcsIDApOworICAgIFdlYkNvcmU6OkNsYXNzMiAqIGNvbnZlcnRlZF9jbGFz
czJwYXJhbSA9IFdlYktpdDo6Y29yZShjbGFzczJwYXJhbSk7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoY29udmVydGVkX2NsYXNzMnBhcmFtLCAwKTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgY29u
dmVydGVkX3N0cl9hcmcgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHN0cl9hcmcpOworICAg
IGdib29sZWFuIHJlcyA9IGl0ZW0tPmNhbGxiYWNrV2l0aENsYXNzMlBhcmFtKGNvbnZlcnRlZF9j
bGFzczJwYXJhbSwgY29udmVydGVkX3N0cl9hcmcpOwogICAgIHJldHVybiByZXM7CiB9CiAKIGds
b25nCiB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfY2FsbGJhY2tfd2l0aF9ub25fYm9vbF9yZXR1
cm5fdHlwZShXZWJLaXRET01UZXN0Q2FsbGJhY2sqIHNlbGYsIFdlYktpdERPTUNsYXNzMyogIGNs
YXNzM3BhcmFtKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpUZXN0Q2FsbGJhY2sg
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChj
bGFzczNwYXJhbSwgMCk7Ci0gICAgV2ViQ29yZTo6Q2xhc3MzICogX2dfY2xhc3MzcGFyYW0gPSBX
ZWJLaXQ6OmNvcmUoY2xhc3MzcGFyYW0pOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ19j
bGFzczNwYXJhbSwgMCk7Ci0gICAgZ2xvbmcgcmVzID0gaXRlbS0+Y2FsbGJhY2tXaXRoTm9uQm9v
bFJldHVyblR5cGUoX2dfY2xhc3MzcGFyYW0pOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNs
YXNzM3BhcmFtLCAwKTsKKyAgICBXZWJDb3JlOjpDbGFzczMgKiBjb252ZXJ0ZWRfY2xhc3MzcGFy
YW0gPSBXZWJLaXQ6OmNvcmUoY2xhc3MzcGFyYW0pOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KGNvbnZlcnRlZF9jbGFzczNwYXJhbSwgMCk7CisgICAgZ2xvbmcgcmVzID0gaXRlbS0+Y2FsbGJh
Y2tXaXRoTm9uQm9vbFJldHVyblR5cGUoY29udmVydGVkX2NsYXNzM3BhcmFtKTsKICAgICByZXR1
cm4gcmVzOwogfQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAJKHJldmlzaW9uIDYxMDc0KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlRlc3RPYmouaCIKICNpbmNsdWRl
ICJXZWJLaXRET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiZ29iamVjdC9Db252ZXJ0VG9VVEY4U3Ry
aW5nLmgiCkBAIC01MSw3ICs1Miw3IEBAIGdwb2ludGVyIGtpdChXZWJDb3JlOjpUZXN0T2JqKiBv
YmopCiB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZik7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKICAgICBpdGVtLT52b2lkTWV0aG9kKCk7CiB9CkBAIC01OSwyMCArNjAsMjAgQEAg
d2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJLaXRETwogdm9pZAogd2Via2l0X2Rv
bV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z2xvbmcgaW50X2FyZywgZ2NoYXIqICBzdHJfYXJnLCBXZWJLaXRET01UZXN0T2JqKiAgb2JqX2Fy
ZykKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KHNlbGYpOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwotICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHN0cl9hcmcpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KG9ial9hcmcpOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2ViQ29yZTo6U3Ry
aW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogX2dfb2JqX2Fy
ZyA9IFdlYktpdDo6Y29yZShvYmpfYXJnKTsKLSAgICBnX3JldHVybl9pZl9mYWlsIChfZ19vYmpf
YXJnKTsKLSAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MoaW50X2FyZywgX2dfc3RyX2FyZywg
X2dfb2JqX2FyZyk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzdHJfYXJnKTsKKyAgICBnX3JldHVy
bl9pZl9mYWlsKG9ial9hcmcpOworICAgIFdlYkNvcmU6OlN0cmluZyBjb252ZXJ0ZWRfc3RyX2Fy
ZyA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7CisgICAgV2ViQ29yZTo6VGVz
dE9iaiAqIGNvbnZlcnRlZF9vYmpfYXJnID0gV2ViS2l0Ojpjb3JlKG9ial9hcmcpOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwoY29udmVydGVkX29ial9hcmcpOworICAgIGl0ZW0tPnZvaWRNZXRob2RX
aXRoQXJncyhpbnRfYXJnLCBjb252ZXJ0ZWRfc3RyX2FyZywgY29udmVydGVkX29ial9hcmcpOwog
fQogCiBnbG9uZwogd2Via2l0X2RvbV90ZXN0X29ial9pbnRfbWV0aG9kKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGdsb25nIHJlcyA9IGl0ZW0tPmludE1ldGhvZCgp
OwogICAgIHJldHVybiByZXM7CkBAIC04MSwyMSArODIsMjEgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9pbnRfbWV0aG9kKFdlYktpdERPTQogZ2xvbmcKIHdlYmtpdF9kb21fdGVzdF9vYmpfaW50X21l
dGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZywgZ2No
YXIqICBzdHJfYXJnLCBXZWJLaXRET01UZXN0T2JqKiAgb2JqX2FyZykKIHsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwg
MCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cl9hcmcsIDApOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChvYmpfYXJnLCAwKTsKLSAgICBXZWJDb3JlOjpTdHJpbmcgX2dfc3RyX2FyZyA9IFdl
YkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAq
IF9nX29ial9hcmcgPSBXZWJLaXQ6OmNvcmUob2JqX2FyZyk7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwgKF9nX29ial9hcmcsIDApOwotICAgIGdsb25nIHJlcyA9IGl0ZW0tPmludE1ldGhvZFdp
dGhBcmdzKGludF9hcmcsIF9nX3N0cl9hcmcsIF9nX29ial9hcmcpOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKHN0cl9hcmcsIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG9ial9hcmcs
IDApOworICAgIFdlYkNvcmU6OlN0cmluZyBjb252ZXJ0ZWRfc3RyX2FyZyA9IFdlYkNvcmU6OlN0
cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGNvbnZlcnRl
ZF9vYmpfYXJnID0gV2ViS2l0Ojpjb3JlKG9ial9hcmcpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKGNvbnZlcnRlZF9vYmpfYXJnLCAwKTsKKyAgICBnbG9uZyByZXMgPSBpdGVtLT5pbnRNZXRo
b2RXaXRoQXJncyhpbnRfYXJnLCBjb252ZXJ0ZWRfc3RyX2FyZywgY29udmVydGVkX29ial9hcmcp
OwogICAgIHJldHVybiByZXM7CiB9CiAKIFdlYktpdERPTVRlc3RPYmoqIAogd2Via2l0X2RvbV90
ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYs
IDApOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwog
ICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ19yZXMgPSBXVEY6OmdldFB0cihpdGVt
LT5vYmpNZXRob2QoKSk7CiAgICAgV2ViS2l0RE9NVGVzdE9iaiogIHJlcyA9IHN0YXRpY19jYXN0
PFdlYktpdERPTVRlc3RPYmoqID4oV2ViS2l0OjpraXQoZ19yZXMuZ2V0KCkpKTsKQEAgLTEwNSwx
NCArMTA2LDE0IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZChXZWJLaXRET00KIFdl
YktpdERPTVRlc3RPYmoqIAogd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJn
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBpbnRfYXJnLCBnY2hhciogIHN0cl9hcmcs
IFdlYktpdERPTVRlc3RPYmoqICBvYmpfYXJnKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
IChzZWxmLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJD
b3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbCAoc3RyX2FyZywgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKG9ial9h
cmcsIDApOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2ViQ29yZTo6U3RyaW5n
Ojpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogX2dfb2JqX2FyZyA9
IFdlYktpdDo6Y29yZShvYmpfYXJnKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfb2Jq
X2FyZywgMCk7Ci0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9IFdURjo6
Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKGludF9hcmcsIF9nX3N0cl9hcmcsIF9nX29i
al9hcmcpKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJfYXJnLCAwKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChvYmpfYXJnLCAwKTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgY29udmVy
dGVkX3N0cl9hcmcgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHN0cl9hcmcpOworICAgIFdl
YkNvcmU6OlRlc3RPYmogKiBjb252ZXJ0ZWRfb2JqX2FyZyA9IFdlYktpdDo6Y29yZShvYmpfYXJn
KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRfb2JqX2FyZywgMCk7CisgICAg
UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9i
ak1ldGhvZFdpdGhBcmdzKGludF9hcmcsIGNvbnZlcnRlZF9zdHJfYXJnLCBjb252ZXJ0ZWRfb2Jq
X2FyZykpOwogICAgIFdlYktpdERPTVRlc3RPYmoqICByZXMgPSBzdGF0aWNfY2FzdDxXZWJLaXRE
T01UZXN0T2JqKiA+KFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKSk7CiAgICAgcmV0dXJuIHJlczsK
IH0KQEAgLTEyMCwxNCArMTIxLDE0IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93
aXRoX2FyZ3MKIFdlYktpdERPTVRlc3RPYmoqIAogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rf
dGhhdF9yZXF1aXJlc19hbGxfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnY2hhciogIHN0
cl9hcmcsIFdlYktpdERPTVRlc3RPYmoqICBvYmpfYXJnKQogewotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChzZWxmLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAg
ICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAoc3RyX2FyZywgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KG9ial9hcmcsIDApOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2ViQ29yZTo6
U3RyaW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogX2dfb2Jq
X2FyZyA9IFdlYktpdDo6Y29yZShvYmpfYXJnKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAo
X2dfb2JqX2FyZywgMCk7Ci0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9
IFdURjo6Z2V0UHRyKGl0ZW0tPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3MoX2dfc3RyX2FyZywg
X2dfb2JqX2FyZykpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cl9hcmcsIDApOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG9ial9hcmcsIDApOworICAgIFdlYkNvcmU6OlN0cmluZyBj
b252ZXJ0ZWRfc3RyX2FyZyA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7Cisg
ICAgV2ViQ29yZTo6VGVzdE9iaiAqIGNvbnZlcnRlZF9vYmpfYXJnID0gV2ViS2l0Ojpjb3JlKG9i
al9hcmcpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZlcnRlZF9vYmpfYXJnLCAwKTsK
KyAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdfcmVzID0gV1RGOjpnZXRQdHIoaXRl
bS0+bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncyhjb252ZXJ0ZWRfc3RyX2FyZywgY29udmVydGVk
X29ial9hcmcpKTsKICAgICBXZWJLaXRET01UZXN0T2JqKiAgcmVzID0gc3RhdGljX2Nhc3Q8V2Vi
S2l0RE9NVGVzdE9iaiogPihXZWJLaXQ6OmtpdChnX3Jlcy5nZXQoKSkpOwogICAgIHJldHVybiBy
ZXM7CiB9CkBAIC0xMzUsMTUgKzEzNiwxNSBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90
aGF0X3JlcXVpcmVzCiBXZWJLaXRET01UZXN0T2JqKiAKIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0
aG9kX3RoYXRfcmVxdWlyZXNfYWxsX2FyZ3NfYW5kX3Rocm93cyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnY2hhciogIHN0cl9hcmcsIFdlYktpdERPTVRlc3RPYmoqICBvYmpfYXJnLCBHRXJyb3Ig
KiplcnJvcikKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cl9hcmcs
IDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChvYmpfYXJnLCAwKTsKLSAgICBXZWJDb3Jl
OjpTdHJpbmcgX2dfc3RyX2FyZyA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7
Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAqIF9nX29ial9hcmcgPSBXZWJLaXQ6OmNvcmUob2JqX2Fy
Zyk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nX29ial9hcmcsIDApOworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKHN0cl9hcmcsIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG9i
al9hcmcsIDApOworICAgIFdlYkNvcmU6OlN0cmluZyBjb252ZXJ0ZWRfc3RyX2FyZyA9IFdlYkNv
cmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGNv
bnZlcnRlZF9vYmpfYXJnID0gV2ViS2l0Ojpjb3JlKG9ial9hcmcpOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKGNvbnZlcnRlZF9vYmpfYXJnLCAwKTsKICAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdfcmVzID0gV1RG
OjpnZXRQdHIoaXRlbS0+bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhfZ19zdHJf
YXJnLCBfZ19vYmpfYXJnLCBlYykpOworICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4g
Z19yZXMgPSBXVEY6OmdldFB0cihpdGVtLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhy
b3dzKGNvbnZlcnRlZF9zdHJfYXJnLCBjb252ZXJ0ZWRfb2JqX2FyZywgZWMpKTsKICAgICBpZiAo
ZWMpIHsKICAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYzsK
ICAgICAgICAgV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKGVjLCBlY2Rlc2Mp
OwpAQCAtMTU2LDE4ICsxNTcsMTggQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2RfdGhhdF9y
ZXF1aXJlcwogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXJpYWxpemVkX3ZhbHVlKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogIHNlcmlh
bGl6ZWRfYXJnKQogewotICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAgIGdfcmV0dXJu
X2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCAoc2VyaWFsaXplZF9hcmcpOwotICAgIFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSAqIF9nX3NlcmlhbGl6ZWRfYXJnID0gV2ViS2l0
Ojpjb3JlKHNlcmlhbGl6ZWRfYXJnKTsKLSAgICBnX3JldHVybl9pZl9mYWlsIChfZ19zZXJpYWxp
emVkX2FyZyk7Ci0gICAgaXRlbS0+c2VyaWFsaXplZFZhbHVlKF9nX3NlcmlhbGl6ZWRfYXJnKTsK
KyAgICBnX3JldHVybl9pZl9mYWlsKHNlcmlhbGl6ZWRfYXJnKTsKKyAgICBXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUgKiBjb252ZXJ0ZWRfc2VyaWFsaXplZF9hcmcgPSBXZWJLaXQ6OmNv
cmUoc2VyaWFsaXplZF9hcmcpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkX3Nlcmlh
bGl6ZWRfYXJnKTsKKyAgICBpdGVtLT5zZXJpYWxpemVkVmFsdWUoY29udmVydGVkX3NlcmlhbGl6
ZWRfYXJnKTsKIH0KIAogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9leGNl
cHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm9yICoqZXJyb3IpCiB7Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbCAoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBX
ZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpdGVtLT5tZXRob2RXaXRoRXhjZXB0aW9uKGVj
KTsKQEAgLTE4Nyw3ICsxODgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2V4
Y2VwdGlvCiB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZShXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQogewotICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgaXRlbS0+d2l0aER5bmFtaWNGcmFtZSgpOwogfQpAQCAt
MTk1LDcgKzE5Niw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lKFcK
IHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lX2FuZF9hcmcoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZykKIHsKLSAgICBnX3JldHVybl9pZl9m
YWlsIChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OlRl
c3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGl0ZW0tPndpdGhEeW5hbWlj
RnJhbWVBbmRBcmcoaW50X2FyZyk7CiB9CkBAIC0yMDMsNyArMjA0LDcgQEAgd2Via2l0X2RvbV90
ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYQogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial93
aXRoX2R5bmFtaWNfZnJhbWVfYW5kX29wdGlvbmFsX2FyZyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBpbnRfYXJnLCBnbG9uZyBvcHRpb25hbF9hcmcpCiB7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCAoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpU
ZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBpdGVtLT53aXRoRHluYW1p
Y0ZyYW1lQW5kT3B0aW9uYWxBcmcoaW50X2FyZywgb3B0aW9uYWxfYXJnKTsKIH0KQEAgLTIxMSw3
ICsyMTIsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZV9hCiB2b2lk
CiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19mcmFtZV9hbmRfdXNlcl9nZXN0dXJl
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGludF9hcmcpCiB7Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbCAoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3Jl
OjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBpdGVtLT53aXRoRHlu
YW1pY0ZyYW1lQW5kVXNlckdlc3R1cmUoaW50X2FyZyk7CiB9CkBAIC0yMTksNyArMjIwLDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYQogdm9pZAogd2Via2l0X2Rv
bV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYW5kX3VzZXJfZ2VzdHVyZV9hc2FkKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGludF9hcmcsIGdsb25nIG9wdGlvbmFsX2FyZykKIHsK
LSAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYp
OwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAg
IGl0ZW0tPndpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQoaW50X2FyZywgb3B0aW9u
YWxfYXJnKTsKIH0KQEAgLTIyNyw3ICsyMjgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhf
ZHluYW1pY19mcmFtZV9hCiB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0
YXRlX3ZvaWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKLSAgICBnX3JldHVybl9pZl9mYWls
IChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OlRlc3RP
YmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGl0ZW0tPndpdGhTY3JpcHRTdGF0
ZVZvaWQoKTsKIH0KQEAgLTIzNSw3ICsyMzYsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhf
c2NyaXB0X3N0YXRlX3ZvCiBXZWJLaXRET01UZXN0T2JqKiAKIHdlYmtpdF9kb21fdGVzdF9vYmpf
d2l0aF9zY3JpcHRfc3RhdGVfb2JqKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNl
bGYsIDApOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ19yZXMgPSBXVEY6OmdldFB0cihp
dGVtLT53aXRoU2NyaXB0U3RhdGVPYmooKSk7CiAgICAgV2ViS2l0RE9NVGVzdE9iaiogIHJlcyA9
IHN0YXRpY19jYXN0PFdlYktpdERPTVRlc3RPYmoqID4oV2ViS2l0OjpraXQoZ19yZXMuZ2V0KCkp
KTsKQEAgLTI0NSw3ICsyNDYsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0
YXRlX29iCiB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0YXRlX3ZvaWRf
ZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvciAqKmVycm9yKQogewotICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAg
ICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaXRlbS0+d2l0aFNjcmlwdFN0YXRlVm9p
ZEV4Y2VwdGlvbihlYyk7CkBAIC0yNTksNyArMjYwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial93
aXRoX3NjcmlwdF9zdGF0ZV92bwogV2ViS2l0RE9NVGVzdE9iaiogCiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3dpdGhfc2NyaXB0X3N0YXRlX29ial9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgR0Vycm9yICoqZXJyb3IpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDAp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OlRlc3RP
YmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ19yZXMgPSBXVEY6
OmdldFB0cihpdGVtLT53aXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24oZWMpKTsKQEAgLTI3NSw3
ICsyNzYsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0YXRlX29iCiB2b2lk
CiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0KFdlYktp
dERPTVRlc3RPYmoqIHNlbGYpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZik7CisgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKICAgICBpdGVtLT53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwogfQpAQCAtMjgzLDcgKzI4NCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9zY3JpcHRf
ZXhlY3V0aW8KIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfb3B0aW9uYWxf
YXJnKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIG9wdCkKIHsKLSAgICBnX3JldHVybl9p
Zl9mYWlsIChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6
OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGl0ZW0tPm1ldGhvZFdp
dGhPcHRpb25hbEFyZyhvcHQpOwogfQpAQCAtMjkxLDcgKzI5Miw3IEBAIHdlYmtpdF9kb21fdGVz
dF9vYmpfbWV0aG9kX3dpdGhfb3B0aW9uYWwKIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0
aG9kX3dpdGhfbm9uX29wdGlvbmFsX2FyZ19hbmRfb3B0aW9uYWxfYXJnKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdsb25nIG5vbl9vcHQsIGdsb25nIG9wdCkKIHsKLSAgICBnX3JldHVybl9pZl9m
YWlsIChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OlRl
c3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGl0ZW0tPm1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKG5vbl9vcHQsIG9wdCk7CiB9CkBAIC0yOTksNyAr
MzAwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9ub25fb3B0aQogdm9pZAog
d2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9ub25fb3B0aW9uYWxfYXJnX2FuZF90d29f
b3B0aW9uYWxfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBub25fb3B0LCBnbG9u
ZyBvcHQxLCBnbG9uZyBvcHQyKQogewotICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgaXRlbS0+bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5k
VHdvT3B0aW9uYWxBcmdzKG5vbl9vcHQsIG9wdDEsIG9wdDIpOwogfQpAQCAtMzA3LDcgKzMwOCw3
IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfbm9uX29wdGkKIGdsb25nCiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWFkX29ubHlfaW50X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZikKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgZ2xvbmcgcmVzID0gaXRlbS0+cmVhZE9ubHlJbnRBdHRy
KCk7CiAgICAgcmV0dXJuIHJlczsKQEAgLTMxNiw3ICszMTcsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9yZWFkX29ubHlfaW50X2F0CiBnY2hhciogCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9yZWFkX29ubHlfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
c2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CiAgICAgZ2NoYXIqICByZXMgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPnJlYWRPbmx5
U3RyaW5nQXR0cigpKTsKICAgICByZXR1cm4gcmVzOwpAQCAtMzI1LDcgKzMyNiw3IEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3JlYWRfb25seV9zdHJpbmcKIFdlYktpdERPTVRlc3RPYmoqIAog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVhZF9vbmx5X3Rlc3Rfb2JqX2F0dHIoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZikKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0
T2JqPiBnX3JlcyA9IFdURjo6Z2V0UHRyKGl0ZW0tPnJlYWRPbmx5VGVzdE9iakF0dHIoKSk7CiAg
ICAgV2ViS2l0RE9NVGVzdE9iaiogIHJlcyA9IHN0YXRpY19jYXN0PFdlYktpdERPTVRlc3RPYmoq
ID4oV2ViS2l0OjpraXQoZ19yZXMuZ2V0KCkpKTsKQEAgLTMzNSw3ICszMzYsNyBAQCB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9yZWFkX29ubHlfdGVzdF9vCiBnbG9uZwogd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfaW50X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwg
MCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAg
ICAgZ2xvbmcgcmVzID0gaXRlbS0+aW50QXR0cigpOwogICAgIHJldHVybiByZXM7CkBAIC0zNDQs
NyArMzQ1LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfaW50X2F0dHIoV2ViS2l0RAogdm9p
ZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfaW50X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2xvbmcgdmFsdWUpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZik7CisgICAgZ19y
ZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKICAgICBpdGVtLT5zZXRJbnRBdHRyKHZhbHVlKTsKIH0KQEAgLTM1Miw3
ICszNTMsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9pbnRfYXR0cihXZWJLaXRECiBnaW50
NjQKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGdpbnQ2NCByZXMgPSBpdGVtLT5sb25nTG9uZ0F0
dHIoKTsKICAgICByZXR1cm4gcmVzOwpAQCAtMzYxLDcgKzM2Miw3IEBAIHdlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X2xvbmdfbG9uZ19hdHRyKFcKIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X2xvbmdfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2YWx1ZSkKIHsK
LSAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYp
OwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAg
IGl0ZW0tPnNldExvbmdMb25nQXR0cih2YWx1ZSk7CiB9CkBAIC0zNjksNyArMzcwLDcgQEAgd2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19sb25nX2F0dHIoVwogZ3VpbnQ2NAogd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfdW5zaWduZWRfbG9uZ19sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZikKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgZ3VpbnQ2NCByZXMgPSBpdGVtLT51bnNpZ25lZExvbmdM
b25nQXR0cigpOwogICAgIHJldHVybiByZXM7CkBAIC0zNzgsNyArMzc5LDcgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfdW5zaWduZWRfbG9uZ19sbwogdm9pZAogd2Via2l0X2RvbV90ZXN0X29i
al9zZXRfdW5zaWduZWRfbG9uZ19sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3Vp
bnQ2NCB2YWx1ZSkKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBnX3JldHVy
bl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwogICAgIGl0ZW0tPnNldFVuc2lnbmVkTG9uZ0xvbmdBdHRyKHZhbHVlKTsKIH0K
QEAgLTM4Niw3ICszODcsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9sb25n
X2xvCiBnY2hhciogCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdfYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
ICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBnY2hhciogIHJlcyA9IGNvbnZlcnRU
b1VURjhTdHJpbmcoaXRlbS0+c3RyaW5nQXR0cigpKTsKICAgICByZXR1cm4gcmVzOwpAQCAtMzk1
LDE3ICszOTYsMTcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHIoV2ViSwog
dm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2NoYXIqICB2YWx1ZSkKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsK
KyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHZhbHVlKTsKLSAg
ICBXZWJDb3JlOjpTdHJpbmcgX2dfdmFsdWUgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHZh
bHVlKTsKLSAgICBpdGVtLT5zZXRTdHJpbmdBdHRyKF9nX3ZhbHVlKTsKKyAgICBnX3JldHVybl9p
Zl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgY29udmVydGVkX3ZhbHVlID0gV2Vi
Q29yZTo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgaXRlbS0+c2V0U3RyaW5nQXR0cihj
b252ZXJ0ZWRfdmFsdWUpOwogfQogCiBXZWJLaXRET01UZXN0T2JqKiAKIHdlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X3Rlc3Rfb2JqX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
c2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9IFdURjo6Z2V0UHRy
KGl0ZW0tPnRlc3RPYmpBdHRyKCkpOwogICAgIFdlYktpdERPTVRlc3RPYmoqICByZXMgPSBzdGF0
aWNfY2FzdDxXZWJLaXRET01UZXN0T2JqKiA+KFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKSk7CkBA
IC00MTUsMTggKzQxNiwxNjIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfdGVzdF9vYmpfYXR0
cihXZQogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdGVzdF9vYmpfYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiAgdmFsdWUpCiB7Ci0gICAgZ19yZXR1
cm5faWZfZmFpbCAoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJD
b3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9p
Zl9mYWlsICh2YWx1ZSk7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAqIF9nX3ZhbHVlID0gV2ViS2l0
Ojpjb3JlKHZhbHVlKTsKLSAgICBnX3JldHVybl9pZl9mYWlsIChfZ192YWx1ZSk7Ci0gICAgaXRl
bS0+c2V0VGVzdE9iakF0dHIoX2dfdmFsdWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUp
OworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBjb252ZXJ0ZWRfdmFsdWUgPSBXZWJLaXQ6OmNvcmUo
dmFsdWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkX3ZhbHVlKTsKKyAgICBpdGVt
LT5zZXRUZXN0T2JqQXR0cihjb252ZXJ0ZWRfdmFsdWUpOworfQorCitnY2hhciogCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAgICBXZWJDb3Jl
OjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnY2hhciogIHJlcyA9
IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzOworfQorCit2b2lk
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfc3RyaW5nX2F0dHIoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2NoYXIqICB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKHNl
bGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OlN0cmluZyBjb252ZXJ0
ZWRfdmFsdWUgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBpdGVtLT5z
ZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0ciwg
Y29udmVydGVkX3ZhbHVlKTsKK30KKworZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Jl
ZmxlY3RlZF9pbnRlZ3JhbF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2xvbmcgcmVzID0gaXRlbS0+Z2V0SW50ZWdyYWxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyKTsK
KyAgICByZXR1cm4gcmVzOworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZs
ZWN0ZWRfaW50ZWdyYWxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPnNldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIsIHZhbHVlKTsKK30KKworZ2Jv
b2xlYW4KK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9ib29sZWFuX2F0dHIoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAw
KTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBnYm9vbGVhbiByZXMgPSBpdGVtLT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpy
ZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF9ib29sZWFuX2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxm
KTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBpdGVtLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFu
YXR0ckF0dHIsIHZhbHVlKTsKK30KKworZ2NoYXIqIAord2Via2l0X2RvbV90ZXN0X29ial9nZXRf
cmVmbGVjdGVkX3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqICByZXMgPSBjb252ZXJ0VG9VVEY4U3RyaW5n
KGl0ZW0tPmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0
dHJBdHRyKSk7CisgICAgcmV0dXJuIHJlczsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29i
al9zZXRfcmVmbGVjdGVkX3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdjaGFyKiAg
dmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0
T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZh
bHVlKTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgY29udmVydGVkX3ZhbHVlID0gV2ViQ29yZTo6U3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgaXRlbS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIGNvbnZlcnRlZF92YWx1ZSk7Cit9CisKK2dj
aGFyKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9zdHJpbmdfYXR0cihXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDAp
OworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IGdjaGFyKiAgcmVzID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5nZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIpKTsKKyAgICByZXR1
cm4gcmVzOworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfc3Ry
aW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2NoYXIqICB2YWx1ZSkKK3sKKyAgICBn
X3JldHVybl9pZl9mYWlsKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNv
cmU6OlN0cmluZyBjb252ZXJ0ZWRfdmFsdWUgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHZh
bHVlKTsKKyAgICBpdGVtLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21D
b250ZW50U3RyaW5nQXR0ckF0dHIsIGNvbnZlcnRlZF92YWx1ZSk7Cit9CisKK2dsb25nCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfY3VzdG9tX2ludGVncmFsX2F0dHIoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsK
KyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
bG9uZyByZXMgPSBpdGVtLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyKTsKKyAgICByZXR1cm4gcmVzOworfQorCit2
b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfY3VzdG9tX2ludGVncmFsX2F0
dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpCit7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKKyAgICBpdGVtLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0
b21Db250ZW50SW50ZWdyYWxBdHRyQXR0ciwgdmFsdWUpOworfQorCitnYm9vbGVhbgord2Via2l0
X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX2N1c3RvbV9ib29sZWFuX2F0dHIoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAg
ICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnYm9v
bGVhbiByZXMgPSBpdGVtLT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21D
b250ZW50Qm9vbGVhbkF0dHJBdHRyKTsKKyAgICByZXR1cm4gcmVzOworfQorCit2b2lkCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfY3VzdG9tX2Jvb2xlYW5fYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWls
KHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OworICAgIGl0ZW0tPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRl
bnRCb29sZWFuQXR0ckF0dHIsIHZhbHVlKTsKK30KKworZ2NoYXIqIAord2Via2l0X2RvbV90ZXN0
X29ial9nZXRfcmVmbGVjdGVkX3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqICByZXMgPSBjb252ZXJ0VG9V
VEY4U3RyaW5nKGl0ZW0tPmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3Rv
bUNvbnRlbnRVUkxBdHRyQXR0cikpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnY2hhciogIHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAg
V2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ19yZXR1
cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6U3RyaW5nIGNvbnZlcnRlZF92YWx1ZSA9
IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOworICAgIGl0ZW0tPnNldEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgY29udmVydGVk
X3ZhbHVlKTsKIH0KIAogZ2xvbmcKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9l
eGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAg
V2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgZ2xvbmcg
cmVzID0gaXRlbS0+YXR0cldpdGhFeGNlcHRpb24oKTsKICAgICByZXR1cm4gcmVzOwpAQCAtNDM1
LDcgKzU4MCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9leGNlcHQKIHZv
aWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9leGNlcHRpb24oV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCAoc2Vs
Zik7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqICog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBpdGVtLT5zZXRBdHRyV2l0aEV4Y2VwdGlv
bih2YWx1ZSk7CiB9CkBAIC00NDMsNyArNTg4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
YXR0cl93aXRoX2V4Y2VwdAogZ2xvbmcKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0
aF9zZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvciAqKmVycm9y
KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBn
bG9uZyByZXMgPSBpdGVtLT5hdHRyV2l0aFNldHRlckV4Y2VwdGlvbihlYyk7CkBAIC00NTgsNyAr
NjAzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX3NldHRlcgogdm9pZAog
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX3NldHRlcl9leGNlcHRpb24oV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvciAqKmVycm9yKQogewotICAgIGdf
cmV0dXJuX2lmX2ZhaWwgKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAg
V2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaXRlbS0+c2V0QXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24odmFsdWUsIGVjKTsKQEAgLTQ3Miw3ICs2MTcsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfc2V0dGVyCiBnbG9uZwogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0
cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
c2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CiAgICAgZ2xvbmcgcmVzID0gaXRlbS0+YXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oKTsKICAg
ICByZXR1cm4gcmVzOwpAQCAtNDgxLDcgKzYyNiw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X2F0dHJfd2l0aF9nZXR0ZXIKIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0
aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlLCBH
RXJyb3IgKiplcnJvcikKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGl0
ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLCBlYyk7CkBAIC00OTUsNyArNjQw
LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcgogZ2NoYXIqIAog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfc2NyaXB0X3N0cmluZ19hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGdjaGFyKiAgcmVzID0gY29udmVydFRvVVRGOFN0
cmluZyhpdGVtLT5zY3JpcHRTdHJpbmdBdHRyKCkpOwogICAgIHJldHVybiByZXM7CkBAIC01Mjcs
NiArNjcyLDE0IEBAIGVudW0gewogICAgIFBST1BfVU5TSUdORURfTE9OR19MT05HX0FUVFIsCiAg
ICAgUFJPUF9TVFJJTkdfQVRUUiwKICAgICBQUk9QX1RFU1RfT0JKX0FUVFIsCisgICAgUFJPUF9S
RUZMRUNURURfU1RSSU5HX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfSU5URUdSQUxfQVRUUiwK
KyAgICBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfVVJM
X0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCisgICAgUFJPUF9SRUZMRUNU
RURfQ1VTVE9NX0lOVEVHUkFMX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfQ1VTVE9NX0JPT0xF
QU5fQVRUUiwKKyAgICBQUk9QX1JFRkxFQ1RFRF9VUkxfQVRUUiwKICAgICBQUk9QX0FUVFJfV0lU
SF9FWENFUFRJT04sCiAgICAgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTiwKICAgICBQ
Uk9QX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OLApAQCAtNTcxLDYgKzcyNCw0NiBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wCiAgICAgICAgIGNvcmVTZWxmLT5z
ZXRTdHJpbmdBdHRyKFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5n
KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RF
RF9TVFJJTkdfQVRUUjoKKyAgICB7CisgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0ciwgV2ViQ29yZTo6U3RyaW5n
Ojpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAg
ICAgICBjb3JlU2VsZi0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpy
ZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyLCAoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9SRUZMRUNURURfQk9PTEVBTl9BVFRS
OgorICAgIHsKKyAgICAgICAgY29yZVNlbGYtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIsIChnX3ZhbHVlX2dldF9ib29sZWFu
KHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RF
RF9VUkxfQVRUUjoKKyAgICB7CisgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0ciwgV2ViQ29yZTo6U3RyaW5nOjpmcm9t
VVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSOgorICAgIHsKKyAgICAgICAgY29y
ZVNlbGYtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRTdHJp
bmdBdHRyQXR0ciwgV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmco
dmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVE
X0NVU1RPTV9JTlRFR1JBTF9BVFRSOgorICAgIHsKKyAgICAgICAgY29yZVNlbGYtPnNldEludGVn
cmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEludGVncmFsQXR0
ckF0dHIsIChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fQk9PTEVBTl9BVFRSOgorICAgIHsKKyAg
ICAgICAgY29yZVNlbGYtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpj
dXN0b21Db250ZW50Qm9vbGVhbkF0dHJBdHRyLCAoZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9SRUZMRUNURURfVVJMX0FU
VFI6CisgICAgeworICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxO
YW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyLCBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4
KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAg
IGNhc2UgUFJPUF9BVFRSX1dJVEhfRVhDRVBUSU9OOgogICAgIHsKICAgICAgICAgY29yZVNlbGYt
PnNldEF0dHJXaXRoRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOwpAQCAtNjQy
LDYgKzgzNSw0NiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wCiAg
ICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX1NUUklOR19B
VFRSOgorICAgIHsKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRv
VVRGOFN0cmluZyhjb3JlU2VsZi0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkc3RyaW5nYXR0ckF0dHIpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IFBST1BfUkVGTEVDVEVEX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICBnX3ZhbHVlX3Nl
dF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+cmVmbGVjdGVkSW50ZWdyYWxBdHRyKCkpOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFI6Cisg
ICAgeworICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBjb3JlU2VsZi0+cmVmbGVj
dGVkQm9vbGVhbkF0dHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1Bf
UkVGTEVDVEVEX1VSTF9BVFRSOgorICAgIHsKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2
YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2VsZi0+Z2V0VVJMQXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIpKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSOgorICAgIHsKKyAgICAg
ICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2Vs
Zi0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmluZ0F0
dHJBdHRyKSkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RF
RF9DVVNUT01fSU5URUdSQUxfQVRUUjoKKyAgICB7CisgICAgICAgIGdfdmFsdWVfc2V0X2xvbmco
dmFsdWUsIGNvcmVTZWxmLT5yZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoKSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9CT09MRUFOX0FU
VFI6CisgICAgeworICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBjb3JlU2VsZi0+
cmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBjYXNlIFBST1BfUkVGTEVDVEVEX1VSTF9BVFRSOgorICAgIHsKKyAgICAgICAgZ192YWx1ZV90
YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2VsZi0+Z2V0VVJMQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyKSkpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9FWENFUFRJT046
CiAgICAgewogICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+YXR0cldp
dGhFeGNlcHRpb24oKSk7CkBAIC03NDIsNiArOTc1LDY2IEBAIEdfTUFYVUlOVDY0LCAvKiBtaW4g
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfT0JKLCAvKiBnb2JqZWN0IHR5cGUgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURXUklURSkpOwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJP
UF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJyZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAvKiBuYW1l
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlw
dGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVhZC13cml0ZSAgZ2NoYXIqICBUZXN0T2JqLnJlZmxlY3RlZC1zdHJpbmct
YXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVy
ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Cisg
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JFRkxFQ1RFRF9JTlRFR1JBTF9BVFRS
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmco
InJlZmxlY3RlZC1pbnRlZ3JhbC1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfcmVmbGVj
dGVkLWludGVncmFsLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0
ZSAgZ2xvbmcgVGVzdE9iai5yZWZsZWN0ZWQtaW50ZWdyYWwtYXR0ciIsIC8qIGxvbmdlciAtIGNv
dWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTkxPTkcsIC8q
IG1pbiAqLworR19NQVhMT05HLCAvKiBtYXggKi8KKzAsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Z29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9S
RUZMRUNURURfQk9PTEVBTl9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInJlZmxlY3RlZC1ib29sZWFuLWF0dHIiLCAvKiBuYW1l
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtYm9vbGVhbi1hdHRyIiwgLyogc2hvcnQgZGVzY3Jp
cHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdib29sZWFuIFRlc3RPYmoucmVmbGVjdGVkLWJvb2xl
YW4tYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYg
aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRF
KSk7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JFRkxFQ1RFRF9VUkxfQVRU
UiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJp
bmcoInJlZmxlY3RlZC11cmwtYXR0ciIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX3JlZmxlY3Rl
ZC11cmwtYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnY2hh
ciogIFRlc3RPYmoucmVmbGVjdGVkLXVybC1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0
aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfUkVGTEVDVEVEX1NUUklOR19BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygicmVmbGVjdGVkLXN0cmluZy1hdHRyIiwgLyogbmFt
ZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidGVzdF9vYmpfcmVmbGVjdGVkLXN0cmluZy1hdHRyIiwgLyogc2hvcnQgZGVzY3Jp
cHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdjaGFyKiAgVGVzdE9iai5yZWZsZWN0ZWQtc3RyaW5n
LWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhl
cmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRUZMRUNURURfQ1VTVE9NX0lOVEVH
UkFMX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfbG9uZygicmVmbGVjdGVkLWN1c3RvbS1pbnRlZ3JhbC1hdHRyIiwgLyogbmFtZSAqLworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGVzdF9vYmpfcmVmbGVjdGVkLWN1c3RvbS1pbnRlZ3JhbC1hdHRyIiwgLyogc2hvcnQgZGVzY3Jp
cHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmoucmVmbGVjdGVkLWN1c3RvbS1p
bnRlZ3JhbC1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBz
dHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICovCitHX01BWExPTkcsIC8qIG1heCAq
LworMCwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fQk9PTEVBTl9BVFRS
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oInJlZmxlY3RlZC1jdXN0b20tYm9vbGVhbi1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9v
YmpfcmVmbGVjdGVkLWN1c3RvbS1ib29sZWFuLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVhZC13cml0ZSAgZ2Jvb2xlYW4gVGVzdE9iai5yZWZsZWN0ZWQtY3VzdG9tLWJvb2xl
YW4tYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYg
aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRF
KSk7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JFRkxFQ1RFRF9VUkxfQVRU
UiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJp
bmcoInJlZmxlY3RlZC11cmwtYXR0ciIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX3JlZmxlY3Rl
ZC11cmwtYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnY2hh
ciogIFRlc3RPYmoucmVmbGVjdGVkLXVybC1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0
aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfQVRUUl9XSVRIX0VYQ0VQVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19sb25nKCJhdHRyLXdpdGgtZXhjZXB0aW9uIiwgLyogbmFtZSAqLwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGVzdF9vYmpfYXR0ci13aXRoLWV4Y2VwdGlvbiIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICov
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouaAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAkod29ya2luZyBjb3B5
KQpAQCAtMTYwLDYgKzE2MCw1NCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF90ZXN0X29ial9h
dHRyKFdlCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Rlc3Rfb2Jq
X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogIHZhbHVlKTsK
IAorV0VCS0lUX0FQSSBnY2hhciogCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRf
c3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3N0cmluZ19hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdjaGFyKiAgdmFsdWUpOworCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfaW50ZWdyYWxfYXR0cihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZs
ZWN0ZWRfaW50ZWdyYWxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7
CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3Rl
ZF9ib29sZWFuX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2Jvb2xlYW5fYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CisKK1dFQktJVF9BUEkgZ2NoYXIqIAor
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX3VybF9hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Jl
ZmxlY3RlZF91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnY2hhciogIHZhbHVlKTsK
KworV0VCS0lUX0FQSSBnY2hhciogCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRf
c3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3N0cmluZ19hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdjaGFyKiAgdmFsdWUpOworCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfY3VzdG9tX2ludGVncmFsX2F0dHIoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfcmVmbGVjdGVkX2N1c3RvbV9pbnRlZ3JhbF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGdsb25nIHZhbHVlKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV90ZXN0X29i
al9nZXRfcmVmbGVjdGVkX2N1c3RvbV9ib29sZWFuX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
Zik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVk
X2N1c3RvbV9ib29sZWFuX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2Jvb2xlYW4gdmFs
dWUpOworCitXRUJLSVRfQVBJIGdjaGFyKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxl
Y3RlZF91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfdXJsX2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2NoYXIqICB2YWx1ZSk7CisKIFdFQktJVF9BUEkgZ2xvbmcKIHdlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2Vs
Zik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0T2JqLmgiCiAKKyNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU1Rlc3RP
YmouaCIKICNpbmNsdWRlICJKU2xvZy5oIgpAQCAtNDYsNyArNDcsNyBAQCBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEpTVGVzdE9iaik7CiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0
b3IpCiAjZW5kaWYKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxl
VmFsdWVzWzE1XSA9CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVW
YWx1ZXNbMjNdID0KIHsKICAgICB7ICJyZWFkT25seUludEF0dHIiLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqUmVhZE9ubHlJbnRBdHRyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDAp
IH0sCiAgICAgeyAicmVhZE9ubHlTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alJlYWRPbmx5U3RyaW5nQXR0ciksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LApA
QCAtNTYsNiArNTcsMTQgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRh
YgogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExv
bmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciBU
SFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJzdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpT
dHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialN0cmluZ0F0dHIgVEhVTktfR0VORVJB
VE9SKDApIH0sCiAgICAgeyAidGVzdE9iakF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialRlc3RPYmpBdHRy
KSwgKGludHB0cl90KXNldEpTVGVzdE9ialRlc3RPYmpBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9
LAorICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFN0
cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKKyAgICB7ICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiLCBEb250RGVs
ZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRJbnRlZ3JhbEF0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAicmVmbGVjdGVk
Qm9vbGVhbkF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGludHB0
cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9
LAorICAgIHsgInJlZmxlY3RlZFVSTEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0
dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciBUSFVOS19HRU5FUkFU
T1IoMCkgfSwKKyAgICB7ICJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0
dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxB
dHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpLCAoaW50cHRy
X3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIFRIVU5LX0dFTkVSQVRP
UigwKSB9LAorICAgIHsgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgRG9udERlbGV0ZSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyAgICB7ICJyZWZs
ZWN0ZWRVUkxBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAg
eyAiYXR0cldpdGhFeGNlcHRpb24iLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoRXhjZXB0aW9uKSwg
KGludHB0cl90KXNldEpTVGVzdE9iakF0dHJXaXRoRXhjZXB0aW9uIFRIVU5LX0dFTkVSQVRPUigw
KSB9LAogICAgIHsgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSwgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbiBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJhdHRyV2l0aEdldHRlckV4
Y2VwdGlvbiIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRy
X3Qpc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24gVEhVTktfR0VORVJBVE9SKDAp
IH0sCkBAIC02Niw3ICs3NSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RP
YmpUYWIKIH07CiAKICN1bmRlZiBUSFVOS19HRU5FUkFUT1IKLXN0YXRpYyBKU0NfQ09OU1RfSEFT
SFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsgMzQsIDMxLCBKU1Rlc3RPYmpUYWJs
ZVZhbHVlcywgMCB9Oworc3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVz
dE9ialRhYmxlID0geyA2OCwgNjMsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNo
IHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLwogI2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRIVU5L
X0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2VuZXJhdG9yCkBAIC0yNzQsNiArMjgzLDc4IEBAIEpT
VmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiAKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFz
ZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzU3RyaW5nKGV4ZWMsIGltcC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkc3RyaW5nYXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
c2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoZXhl
YywgaW1wLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3Rl
ZGludGVncmFsYXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
c3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oaW1wLT5o
YXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVy
JikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoq
Pihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0
T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIGltcC0+Z2V0VVJMQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90
QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzU3RyaW5nKGV4ZWMsIGltcC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJBdHRyKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFz
ZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGV4ZWMsIGltcC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjdXN0b21Db250ZW50SW50ZWdyYWxBdHRyQXR0cikpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK0pTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChz
bG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzQm9vbGVhbihpbXAtPmhhc0F0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1
c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4
ZWMsIGltcC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVu
dFVSTEF0dHJBdHRyKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNWYWx1ZSBqc1Rlc3RP
YmpBdHRyV2l0aEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC0zNjIsNiArNDQzLDYyIEBA
IHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiAKICAgICBpbXAtPnNldFRl
c3RPYmpBdHRyKHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCit2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHN0cmluZ2F0dHJBdHRyLCB2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOworfQorCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpT
VGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0SW50ZWdyYWxBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyLCB2YWx1ZS50
b0ludDMyKGV4ZWMpKTsKK30KKwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRo
aXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0ciwgdmFsdWUudG9Cb29sZWFuKGV4ZWMp
KTsKK30KKwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAg
VGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxh
dHRyQXR0ciwgdmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKK30KKwor
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9i
aiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAg
aW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5n
QXR0ckF0dHIsIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7Cit9CisK
K3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7Cisg
ICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CisgICAgaW1wLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1
c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyLCB2YWx1ZS50b0ludDMyKGV4ZWMpKTsKK30KKwor
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIGltcC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3Rv
bUNvbnRlbnRCb29sZWFuQXR0ckF0dHIsIHZhbHVlLnRvQm9vbGVhbihleGVjKSk7Cit9CisKK3Zv
aWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGlt
cCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+
c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRy
LCB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOworfQorCiB2b2lkIHNl
dEpTVGVzdE9iakF0dHJXaXRoRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
c3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CkBAIC04MzgsNyArOTc1LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMShFeGVjU3Rh
dGUqIGV4ZWMpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQpAQCAtODUyLDcgKzk4OSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHIKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIoRXhlY1N0
YXRlKiBleGVjKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkKQEAgLTg3Myw3ICsxMDEwLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMyhFeGVj
U3RhdGUqIGV4ZWMpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QzKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBpZiAo
IXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQpAQCAtODg2LDcgKzEwMjMs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KEV4
ZWNTdGF0ZSogZXhlYykKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDQoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlm
ICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC05MDEsMTUgKzEw
MzgsMTUgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcgogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKChleGVjLT5hcmd1bWVudENv
dW50KCkgPT0gMiAmJiAoZXhlYy0+YXJndW1lbnQoMCkuaXNOdWxsKCkgfHwgYXNPYmplY3QoZXhl
Yy0+YXJndW1lbnQoMCkpLT5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKSAmJiAoZXhlYy0+
YXJndW1lbnQoMSkuaXNOdWxsKCkgfHwgZXhlYy0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSB8
fCBleGVjLT5hcmd1bWVudCgxKS5pc1N0cmluZygpIHx8IGV4ZWMtPmFyZ3VtZW50KDEpLmlzT2Jq
ZWN0KCkpKSkKKyAgICBpZiAoKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA9PSAyICYmIChleGVjLT5h
cmd1bWVudCgwKS5pc051bGwoKSB8fCBleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDApKS0+aW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkg
JiYgKGV4ZWMtPmFyZ3VtZW50KDEpLmlzTnVsbCgpIHx8IGV4ZWMtPmFyZ3VtZW50KDEpLmlzVW5k
ZWZpbmVkKCkgfHwgZXhlYy0+YXJndW1lbnQoMSkuaXNTdHJpbmcoKSB8fCBleGVjLT5hcmd1bWVu
dCgxKS5pc09iamVjdCgpKSkpCiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QxKGV4ZWMpOwotICAgIGlmICgoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpID09IDEgJiYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzTnVsbCgpIHx8IGFzT2JqZWN0KGV4ZWMt
PmFyZ3VtZW50KDApKS0+aW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkpIHx8IChleGVjLT5h
cmd1bWVudENvdW50KCkgPT0gMiAmJiAoZXhlYy0+YXJndW1lbnQoMCkuaXNOdWxsKCkgfHwgYXNP
YmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKSkp
CisgICAgaWYgKChleGVjLT5hcmd1bWVudENvdW50KCkgPT0gMSAmJiAoZXhlYy0+YXJndW1lbnQo
MCkuaXNOdWxsKCkgfHwgZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSAmJiBhc09iamVjdChl
eGVjLT5hcmd1bWVudCgwKSktPmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpKSB8fCAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpID09IDIgJiYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzTnVsbCgpIHx8
IGV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZXhlYy0+YXJndW1lbnQo
MCkpLT5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKSkpCiAgICAgICAgIHJldHVybiBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKGV4ZWMpOwogICAgIGlmICgo
ZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEgJiYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzTnVsbCgp
IHx8IGV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkgfHwgZXhlYy0+YXJndW1lbnQoMCku
aXNTdHJpbmcoKSB8fCBleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSkpCiAgICAgICAgIHJl
dHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QzKGV4ZWMpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPT0gMSkKICAgICAgICAgcmV0dXJuIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDQoZXhlYyk7Ci0gICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dU
eXBlRXJyb3IoZXhlYykpOwogfQogCiBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE9iaiogb2JqZWN0KQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJl
dmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAsMjIgQEAgSlNDOjpKU1ZhbHVlIGpz
VGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeAogdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFs
dWUganNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRT
dHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7
CitKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVh
bkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9i
alJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0
cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsK
K0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJv
b2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7
CitKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpK
U1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEV4Y2VwdGlvbihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNl
dEpTVGVzdE9iakF0dHJXaXRoRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDIyIEBA
CiAtICh2b2lkKXNldFN0cmluZ0F0dHI6KE5TU3RyaW5nICopbmV3U3RyaW5nQXR0cjsKIC0gKERP
TVRlc3RPYmogKil0ZXN0T2JqQXR0cjsKIC0gKHZvaWQpc2V0VGVzdE9iakF0dHI6KERPTVRlc3RP
YmogKiluZXdUZXN0T2JqQXR0cjsKKy0gKE5TU3RyaW5nICopcmVmbGVjdGVkU3RyaW5nQXR0cjsK
Ky0gKHZvaWQpc2V0UmVmbGVjdGVkU3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRT
dHJpbmdBdHRyOworLSAoaW50KXJlZmxlY3RlZEludGVncmFsQXR0cjsKKy0gKHZvaWQpc2V0UmVm
bGVjdGVkSW50ZWdyYWxBdHRyOihpbnQpbmV3UmVmbGVjdGVkSW50ZWdyYWxBdHRyOworLSAoQk9P
TClyZWZsZWN0ZWRCb29sZWFuQXR0cjsKKy0gKHZvaWQpc2V0UmVmbGVjdGVkQm9vbGVhbkF0dHI6
KEJPT0wpbmV3UmVmbGVjdGVkQm9vbGVhbkF0dHI7CistIChOU1N0cmluZyAqKXJlZmxlY3RlZFVS
TEF0dHI7CistICh2b2lkKXNldFJlZmxlY3RlZFVSTEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVj
dGVkVVJMQXR0cjsKKy0gKE5TU3RyaW5nICopcmVmbGVjdGVkU3RyaW5nQXR0cjsKKy0gKHZvaWQp
c2V0UmVmbGVjdGVkU3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRTdHJpbmdBdHRy
OworLSAoaW50KXJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cjsKKy0gKHZvaWQpc2V0UmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyOihpbnQpbmV3UmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRy
OworLSAoQk9PTClyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjsKKy0gKHZvaWQpc2V0UmVmbGVj
dGVkQ3VzdG9tQm9vbGVhbkF0dHI6KEJPT0wpbmV3UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHI7
CistIChOU1N0cmluZyAqKXJlZmxlY3RlZFVSTEF0dHI7CistICh2b2lkKXNldFJlZmxlY3RlZFVS
TEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkVVJMQXR0cjsKIC0gKGludClhdHRyV2l0aEV4
Y2VwdGlvbjsKIC0gKHZvaWQpc2V0QXR0cldpdGhFeGNlcHRpb246KGludCluZXdBdHRyV2l0aEV4
Y2VwdGlvbjsKIC0gKGludClhdHRyV2l0aFNldHRlckV4Y2VwdGlvbjsKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0JKHJldmlzaW9u
IDYxMDc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJET01sb2dJbnRl
cm5hbC5oIgogI2ltcG9ydCAiRXZlbnRMaXN0ZW5lci5oIgogI2ltcG9ydCAiRXhjZXB0aW9uSGFu
ZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgiCiAjaW1wb3J0ICJLVVJMLmgiCiAjaW1wb3J0ICJPYmpDRXZlbnRMaXN0ZW5lci5o
IgpAQCAtMTUxLDYgKzE1MiwxMDIgQEAgLSAodm9pZClzZXRUZXN0T2JqQXR0cjooRE9NVGVzdE9i
aiAqKW5ldwogICAgIElNUEwtPnNldFRlc3RPYmpBdHRyKGNvcmUobmV3VGVzdE9iakF0dHIpKTsK
IH0KIAorLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRTdHJpbmdBdHRyCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0cik7Cit9CisKKy0g
KHZvaWQpc2V0UmVmbGVjdGVkU3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRTdHJp
bmdBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHN0cmluZ2F0
dHJBdHRyLCBuZXdSZWZsZWN0ZWRTdHJpbmdBdHRyKTsKK30KKworLSAoaW50KXJlZmxlY3RlZElu
dGVncmFsQXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHI6KGludCluZXdSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0SW50ZWdyYWxBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyLCBuZXdS
ZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpOworfQorCistIChCT09MKXJlZmxlY3RlZEJvb2xlYW5BdHRy
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFu
YXR0ckF0dHIpOworfQorCistICh2b2lkKXNldFJlZmxlY3RlZEJvb2xlYW5BdHRyOihCT09MKW5l
d1JlZmxlY3RlZEJvb2xlYW5BdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIsIG5ld1JlZmxlY3RlZEJvb2xlYW5BdHRyKTsK
K30KKworLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRVUkxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRVUkxBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0cik7Cit9CisKKy0gKHZv
aWQpc2V0UmVmbGVjdGVkVVJMQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRVUkxBdHRyCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyLCBuZXdS
ZWZsZWN0ZWRVUkxBdHRyKTsKK30KKworLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRTdHJpbmdBdHRy
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3Ry
aW5nQXR0ckF0dHIpOworfQorCistICh2b2lkKXNldFJlZmxlY3RlZFN0cmluZ0F0dHI6KE5TU3Ry
aW5nICopbmV3UmVmbGVjdGVkU3RyaW5nQXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIG5ld1JlZmxlY3RlZFN0cmluZ0F0dHIp
OworfQorCistIChpbnQpcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRJbnRl
Z3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0
dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHI6KGlu
dCluZXdSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50ZWdyYWxBdHRyQXR0ciwgbmV3UmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyKTsKK30KKworLSAoQk9PTClyZWZsZWN0ZWRDdXN0b21Cb29s
ZWFuQXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+aGFzQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29u
dGVudEJvb2xlYW5BdHRyQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UmVmbGVjdGVkQ3VzdG9tQm9v
bGVhbkF0dHI6KEJPT0wpbmV3UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0dHIs
IG5ld1JlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKTsKK30KKworLSAoTlNTdHJpbmcgKilyZWZs
ZWN0ZWRVUkxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpj
dXN0b21Db250ZW50VVJMQXR0ckF0dHIpOworfQorCistICh2b2lkKXNldFJlZmxlY3RlZFVSTEF0
dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkVVJMQXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIsIG5ld1JlZmxlY3RlZFVSTEF0dHIp
OworfQorCiAtIChpbnQpYXR0cldpdGhFeGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2suY3BwCShyZXZpc2lvbiA2MTA3NCkKKysrIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlY4Q2xhc3MyLmgiCiAjaW5jbHVk
ZSAiVjhDdXN0b21Wb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJWOERPTVN0cmluZy5oIgorI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKIAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAkocmV2
aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVjhUZXN0
T2JqLmgiCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgpAQCAtMTUx
LDYgKzE1MiwxMzQgQEAgc3RhdGljIHZvaWQgdGVzdE9iakF0dHJBdHRyU2V0dGVyKHY4OjpMbwog
ICAgIHJldHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRT
dHJpbmdBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxl
Y3RlZFN0cmluZ0F0dHIuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+Z2V0QXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIpKTsKK30KKwor
c3RhdGljIHZvaWQgcmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3Ry
aW5nQXR0ci5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7
CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJp
bmdhdHRyQXR0ciwgdik7CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHJlZmxlY3RlZEludGVncmFsQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5yZWZsZWN0ZWRJbnRlZ3JhbEF0dHIuX2dldCIpOworICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4
OjpJbnRlZ2VyOjpOZXcoaW1wLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZvaWQgcmVmbGVj
dGVkSW50ZWdyYWxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7
CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZsZWN0ZWRJbnRlZ3JhbEF0dHIuX3NldCIp
OworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CisgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldEludGVncmFsQXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwgdik7Cisg
ICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEJv
b2xlYW5BdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxl
Y3RlZEJvb2xlYW5BdHRyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2OEJvb2xlYW4oaW1wLT5oYXNBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIpKTsKK30K
Kworc3RhdGljIHZvaWQgcmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFj
Y2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3Rl
ZEJvb2xlYW5BdHRyLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOworICAgIGJvb2wgdiA9IHZhbHVlLT5Cb29sZWFuVmFsdWUoKTsK
KyAgICBpbXAtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0
ZWRib29sZWFuYXR0ckF0dHIsIHYpOworICAgIHJldHVybjsKK30KKworc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiByZWZsZWN0ZWRVUkxBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZFVSTEF0dHIuX2dldCIpOworICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4U3Ry
aW5nKGltcC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJs
YXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmoucmVmbGVjdGVkVVJMQXR0ci5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNr
PiB2ID0gdmFsdWU7CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpy
ZWZsZWN0ZWR1cmxhdHRyQXR0ciwgdik7CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3RyaW5nQXR0ci5fZ2V0Iik7CisgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1
cm4gdjhTdHJpbmcoaW1wLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21D
b250ZW50U3RyaW5nQXR0ckF0dHIpKTsKK30KKworc3RhdGljIHZvaWQgcmVmbGVjdGVkU3RyaW5n
QXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19T
VEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3RyaW5nQXR0ci5fc2V0Iik7CisgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBWOFBhcmFt
ZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIsIHYpOworICAgIHJl
dHVybjsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVm
bGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6
TmV3KGltcC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21D
b250ZW50SW50ZWdyYWxBdHRyQXR0cikpOworfQorCitzdGF0aWMgdm9pZCByZWZsZWN0ZWRDdXN0
b21JbnRlZ3JhbEF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sK
KyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ci5f
c2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0SW50ZWdyYWxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50ZWdyYWxBdHRyQXR0
ciwgdik7CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyLl9nZXQiKTsKKyAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2
OEJvb2xlYW4oaW1wLT5oYXNBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250
ZW50Qm9vbGVhbkF0dHJBdHRyKSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbUJv
b2xlYW5BdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ci5fc2V0Iik7
CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsK
KyAgICBib29sIHYgPSB2YWx1ZS0+Qm9vbGVhblZhbHVlKCk7CisgICAgaW1wLT5zZXRCb29sZWFu
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRyQXR0
ciwgdik7CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJl
ZmxlY3RlZFVSTEF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmou
cmVmbGVjdGVkVVJMQXR0ci5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT5nZXRVUkxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKTsK
K30KKworc3RhdGljIHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVk
VVJMQXR0ci5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKKyAgICBWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7
CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50
VVJMQXR0ckF0dHIsIHYpOworICAgIHJldHVybjsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBhdHRyV2l0aEV4Y2VwdGlvbkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE9iai5hdHRyV2l0aEV4Y2VwdGlvbi5fZ2V0Iik7CkBAIC02MzYsNiArNzY1LDIyIEBA
IHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIFRlc3RPYmpBdHQKICAgICB7InN0cmluZ0F0
dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnN0cmluZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJu
YWw6OnN0cmluZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4
OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0
dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1
dGUgJ3Rlc3RPYmpBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJ0
ZXN0T2JqQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyLCBUZXN0
T2JqSW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0
aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6
UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAg
Ly8gQXR0cmlidXRlICdyZWZsZWN0ZWRTdHJpbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJ1JlZmxlY3QnKQorICAgIHsicmVmbGVjdGVkU3RyaW5nQXR0ciIsIFRlc3RPYmpJbnRl
cm5hbDo6cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVm
bGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJp
YnV0ZSAncmVmbGVjdGVkSW50ZWdyYWxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
J1JlZmxlY3QnKQorICAgIHsicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgVGVzdE9iakludGVybmFs
OjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxl
Y3RlZEludGVncmFsQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJp
YnV0ZSAncmVmbGVjdGVkQm9vbGVhbkF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAn
UmVmbGVjdCcpCisgICAgeyJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6
cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3Rl
ZEJvb2xlYW5BdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6
QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRy
aWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRl
ICdyZWZsZWN0ZWRVUkxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxlY3RV
UkwnKQorICAgIHsicmVmbGVjdGVkVVJMQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVk
VVJMQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJT
ZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4
OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSks
IDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkU3RyaW5n
QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKKyAgICB7InJlZmxl
Y3RlZFN0cmluZ0F0dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRy
R2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9u
IGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZEN1c3RvbUludGVncmFs
QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKKyAgICB7InJlZmxl
Y3RlZEN1c3RvbUludGVncmFsQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9t
SW50ZWdyYWxBdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUg
J3JlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
J1JlZmxlY3QnKQorICAgIHsicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiLCBUZXN0T2JqSW50
ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVy
bmFsOjpyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkVVJMQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdSZWZsZWN0VVJMJykKKyAgICB7InJlZmxlY3RlZFVSTEF0dHIiLCBUZXN0T2Jq
SW50ZXJuYWw6OnJlZmxlY3RlZFVSTEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJl
ZmxlY3RlZFVSTEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4
OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0
dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1
dGUgJ2F0dHJXaXRoRXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAg
ICAgeyJhdHRyV2l0aEV4Y2VwdGlvbiIsIFRlc3RPYmpJbnRlcm5hbDo6YXR0cldpdGhFeGNlcHRp
b25BdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OmF0dHJXaXRoRXhjZXB0aW9uQXR0clNldHRl
ciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRF
RkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAv
KiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdhdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQpJbmRleDogV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlz
aW9uIDYxMDc0KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4OSw3ICsxODksNyBAQCB2b2lkIEVsZW1lbnQ6OnNldENTdHJpbmdBdHRyaWJ1dGUoY29uc3Qg
CiB2b2lkIEVsZW1lbnQ6OnNldEJvb2xlYW5BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgYm9vbCBiKQogewogICAgIGlmIChiKQotICAgICAgICBzZXRBdHRyaWJ1dGUobmFtZSwg
bmFtZS5sb2NhbE5hbWUoKSk7CisgICAgICAgIHNldEF0dHJpYnV0ZShuYW1lLCBlbXB0eUF0b20p
OwogICAgIGVsc2UgewogICAgICAgICBFeGNlcHRpb25Db2RlIGV4OwogICAgICAgICByZW1vdmVB
dHRyaWJ1dGUobmFtZSwgZXgpOwpAQCAtMTU0Nyw0ICsxNTQ3LDI4IEBAIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIEVsZW1lbnQ6OnJhcmVJREF0dHIKICAgICByZXR1cm4gcmFyZURhdGEoKS0+bV9pZEF0
dHJpYnV0ZU5hbWU7CiB9CiAKK2ludCBFbGVtZW50OjpnZXRJbnRlZ3JhbEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdAoreworICAgIHJldHVybiBnZXRB
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkuc3RyaW5nKCkudG9JbnQoKTsKK30KKwordm9pZCBFbGVt
ZW50OjpzZXRJbnRlZ3JhbEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBpbnQgdmFsdWUpCit7CisgICAgLy8gRklYTUU6IE5lZWQgYW4gQXRvbWljU3RyaW5nIHZl
cnNpb24gb2YgU3RyaW5nOjpudW1iZXIuCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICBzZXRB
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgU3RyaW5nOjpudW1iZXIodmFsdWUpLCBlYyk7Cit9CisK
K3Vuc2lnbmVkIEVsZW1lbnQ6OmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmli
dXRlKGF0dHJpYnV0ZU5hbWUpLnN0cmluZygpLnRvVUludCgpOworfQorCit2b2lkIEVsZW1lbnQ6
OnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgdW5zaWduZWQgdmFsdWUpCit7CisgICAgLy8gRklYTUU6IE5lZWQgYW4gQXRvbWlj
U3RyaW5nIHZlcnNpb24gb2YgU3RyaW5nOjpudW1iZXIuCisgICAgRXhjZXB0aW9uQ29kZSBlYzsK
KyAgICBzZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgU3RyaW5nOjpudW1iZXIodmFsdWUpLCBl
Yyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDYxMDc0
KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
cmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFeGNlcHRpb25Db2RlJik7CiAK
KyAgICAvLyBUeXBlZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBsYW5ndWFnZSBiaW5kaW5ncy4K
KyAgICBpbnQgZ2V0SW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSkgY29uc3Q7CisgICAgdm9pZCBzZXRJbnRlZ3JhbEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBpbnQgdmFsdWUpOworICAgIHVuc2lnbmVkIGdldFVu
c2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSkgY29uc3Q7CisgICAgdm9pZCBzZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIHVuc2lnbmVkIHZhbHVlKTsKKwogICAgIC8vIENh
bGwgdGhpcyB0byBnZXQgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGlzIGtub3duIG5v
dCB0byBiZSB0aGUgc3R5bGUKICAgICAvLyBhdHRyaWJ1dGUgb3Igb25lIG9mIHRoZSBTVkcgYW5p
bWF0YWJsZSBhdHRyaWJ1dGVzLgogICAgIGJvb2wgZmFzdEhhc0F0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJikgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCkBAIC0yMSwxNyArMjEsMTcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAg
IGludGVyZmFjZSBIVE1MQW5jaG9yRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1hY2Nlc3NrZXldIERPTVN0
cmluZyBhY2Nlc3NLZXk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsIFJlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29vcmRzOwotICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0VVJMXSBET01TdHJpbmcg
aHJlZjsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVj
dF0gRE9NU3RyaW5nIGhyZWZsYW5nOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHJlbDsKLSAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHJl
djsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0g
RE9NU3RyaW5nIHNoYXBlOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0XSBET01TdHJpbmcgdGFyZ2V0OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBjb29yZHM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3Ry
aW5nIGhyZWY7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhyZWZsYW5n
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyByZWw7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHJldjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgc2hhcGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdldDsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKIAogI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaGFzaDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcHBs
ZXRFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNh
bS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI1LDI1ICsyNSwyNSBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIERlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QsCiAgICAgICAg
IEN1c3RvbUNhbGwKICAgICBdIEhUTUxBcHBsZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0
XSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbHQ7Ci0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBh
cmNoaXZlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29kZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1jb2RlYmFzZV0gRE9NU3RyaW5nIGNv
ZGVCYXNlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLCBSZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYWx0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhcmNoaXZlOwor
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlQmFzZTsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgaHNwYWNlOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoc3BhY2U7CiAjZWxzZQotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhzcGFjZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIGhzcGFjZTsKICNlbmRpZgotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJp
bmcgbmFtZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIG9iamVjdDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgb2JqZWN0OwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0Vf
SkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgdnNwYWNlOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyB2c3BhY2U7CiAjZWxzZQotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHZzcGFjZTsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBsb25nIHZzcGFjZTsKICNlbmRpZgotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRoOwogICAgIH07CiAKIH0KSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNh
bS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDEzICsyMSwxMyBAQAogbW9k
dWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1h
Y2Nlc3NrZXldIERPTVN0cmluZyBhY2Nlc3NLZXk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBhbHQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBjb29yZHM7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RVUkxd
IERPTVN0cmluZyBocmVmOwotICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBub0hyZWY7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmlu
ZyBzaGFwZTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVm
bGVjdF0gRE9NU3RyaW5nIHRhcmdldDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgYWNjZXNzS2V5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBh
bHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvb3JkczsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgaHJlZjsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBib29sZWFuIG5vSHJlZjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgc2hhcGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IHRhcmdldDsKIAogICAgICAgICAvLyBJRSBFeHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaGFzaDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwJKHJldmlz
aW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCw3ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRN
TEJSRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGNsZWFyOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjbGVhcjsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTEJhc2VFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEJhc2VFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEJh
c2VFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOCArMjAsOCBAQAogbW9kdWxlIGh0
bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxCYXNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3Ry
aW5nIGhyZWY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJl
ZmxlY3RdIERPTVN0cmluZyB0YXJnZXQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGhyZWY7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdl
dDsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjAsMTIgKzIwLDEyIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRl
cmZhY2UgSFRNTEJhc2VGb250RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGNvbG9yOwot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01T
dHJpbmcgZmFjZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29sb3I7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZhY2U7CiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0VG9TdHJpbmddIERPTVN0cmluZyBzaXplOyAvLyB0aGlzIGNoYW5n
ZWQgdG8gYSBsb25nLCBidXQgb3VyIGV4aXN0aW5nIEFQSSBpcyBhIHN0cmluZwogI2Vsc2UKLSAg
ICAgICAgYXR0cmlidXRlIGxvbmcgc2l6ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBs
b25nIHNpemU7CiAjZW5kaWYKICAgICB9OwogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxCbG9j
a3F1b3RlRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxCbG9ja3F1
b3RlRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxCbG9j
a3F1b3RlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVs
ZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MQmxvY2txdW90ZUVsZW1lbnQgOiBIVE1MRWxl
bWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxl
Y3RdIERPTVN0cmluZyBjaXRlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBjaXRlOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCShyZXZp
c2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTIxLDEyICsyMSwxMiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxC
b2R5RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdD1hbGlua10gRE9NU3RyaW5nIGFMaW5rOwotICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgYmFj
a2dyb3VuZDsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVm
bGVjdD1iZ2NvbG9yXSBET01TdHJpbmcgYmdDb2xvcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGxpbms7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyB0ZXh0
OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PXZs
aW5rXSBET01TdHJpbmcgdkxpbms7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGFMaW5rOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiYWNrZ3Jv
dW5kOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiZ0NvbG9yOworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsaW5rOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0ZXh0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyB2TGluazsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8
fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gRXZlbnQgaGFuZGxlciBhdHRyaWJ1
dGVzCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQor
KysgV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsMjEgKzIxLDI2IEBACiBtb2R1bGUgaHRtbCB7
CiAKICAgICBpbnRlcmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBmb3JtTm9WYWxpZGF0
ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBWYWxpZGl0eVN0YXRlICAgICAgICB2YWxp
ZGl0eTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyAgICAgICAgICAgIGFjY2Vzc0tleTsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBhdXRvZm9jdXM7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAg
ICAgICBuYW1lOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAg
ICAgIHR5cGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICB3aWxsVmFsaWRhdGU7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7Ci0g
ICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOworCisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
Ym9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlk
aXR5U3RhdGUgdmFsaWRpdHk7CisKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYWNjZXNzS2V5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJs
ZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgdmFsdWU7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2ls
bFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlOworICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9p
ZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGVycm9yKTsKKwogICAgICAgICB2b2lkIGNsaWNrKCk7Ci0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSAgTm9kZUxpc3QgICAgICAgICAgICAgIGxhYmVsczsKKworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogICAgIH07CiAKIH0KSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTERMaXN0RWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50
ZXJmYWNlIEhUTUxETGlzdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0
ZSBib29sZWFuIGNvbXBhY3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBj
b21wYWN0OwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50
LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxEaXJlY3Rv
cnlFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb21w
YWN0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gY29tcGFjdDsKICAgICB9
OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysg
V2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAog
ICAgIGludGVyZmFjZSBIVE1MRGl2RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKICAgICB9OwogCiB9CkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDExIEBAIG1vZHVsZSBodG1s
IHsKICAgICBdIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIC8vIGlo
dC5jb20gcmVsaWVzIG9uIGlkIHJldHVybmluZyB0aGUgZW1wdHkgc3RyaW5nIHdoZW4gbm8gaWQg
aXMgcHJlc2VudC4gCiAgICAgICAgICAgICAgICAgIC8vIE90aGVyIGJyb3dzZXJzIGRvIHRoaXMg
YXMgd2VsbC4gU28gd2UgZG9uJ3QgY29udmVydCBudWxsIHRvIEpTIG51bGwuCi0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0
cmluZyBpZDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHRpdGxlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgbGFuZzsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVj
dF0gRE9NU3RyaW5nIGRpcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgUmVmbGVjdD1jbGFzc10gRE9NU3RyaW5nIGNsYXNzTmFtZTsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaWQ7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRpdGxlOworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsYW5nOworICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBkaXI7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdD1jbGFzc10gRE9NU3RyaW5nIGNsYXNzTmFtZTsKIAogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIHRhYkluZGV4OwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGRyYWdnYWJsZTsKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEVtYmVkRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdA
Z21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI1LDI1ICsyNSwyNCBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIERlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QsCiAgICAgICAgIEN1c3RvbUNh
bGwKICAgICBdIEhUTUxFbWJlZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmlu
ZyBhbGlnbjsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKICNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0g
RE9NU3RyaW5nIGhlaWdodDsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWln
aHQ7CiAjZWxzZQotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5n
XSBsb25nIGhlaWdodDsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgaGVpZ2h0OwogI2Vu
ZGlmCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcs
IFJlZmxlY3RdIERPTVN0cmluZyBuYW1lOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgc3JjOwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01T
dHJpbmcgdHlwZTsKKyAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHNyYzsKKyAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyB0eXBlOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYg
TEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CiAjZWxzZQotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHdpZHRoOworICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gbG9uZyB3aWR0aDsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfU1ZHKSAmJiBF
TkFCTEVfU1ZHCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFH
RV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICYm
IEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MKLSAgICAgICAgW1NWR0NoZWNrU2VjdXJpdHlE
b2N1bWVudF0gU1ZHRG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKQotICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgW1NWR0NoZWNrU2VjdXJpdHlEb2N1bWVudF0gU1ZHRG9jdW1l
bnQgZ2V0U1ZHRG9jdW1lbnQoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogI2VuZGlm
CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsOSArMjAsOSBAQAogbW9kdWxlIGh0bWwg
ewogCiAgICAgaW50ZXJmYWNlIEhUTUxGb250RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvbG9yOwot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZmFj
ZTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IHNpemU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvbG9yOworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmYWNlOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzaXplOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMs
NyArMjIzLDcgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdXRvZm9jdXMoKQogCiB2
b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEF1dG9mb2N1cyhib29sIGIpCiB7Ci0gICAg
c2V0QXR0cmlidXRlKGF1dG9mb2N1c0F0dHIsIGIgPyAiYXV0b2ZvY3VzIiA6IDApOworICAgIHNl
dEF0dHJpYnV0ZShhdXRvZm9jdXNBdHRyLCBiID8gIiIgOiAwKTsKIH0KIAogYm9vbCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjpyZXF1aXJlZCgpIGNvbnN0CkBAIC0yMzMsNyArMjMzLDcgQEAgYm9v
bCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZXF1aXJlZCgpIAogCiB2b2lkIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnNldFJlcXVpcmVkKGJvb2wgYikKIHsKLSAgICBzZXRBdHRyaWJ1dGUocmVx
dWlyZWRBdHRyLCBiID8gInJlcXVpcmVkIiA6IDApOworICAgIHNldEF0dHJpYnV0ZShyZXF1aXJl
ZEF0dHIsIGIgPyAiIiA6IDApOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVGcm9tRWxlbWVudENh
bGxiYWNrKE5vZGUqIG5vZGUpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAkocmV2aXNp
b24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2Ft
LndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjQsMTkgKzI0LDIwIEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgSGFzSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc092ZXJyaWRpbmdO
YW1lR2V0dGVyCiAgICAgXSBIVE1MRm9ybUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiAgZWxlbWVudHM7Ci0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgbGVuZ3RoOwotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgbmFt
ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBub1ZhbGlkYXRl
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgICAgICAgYWNjZXB0Q2hhcnNldDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGFjdGlvbjsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
ICAgICAgIGVuY29kaW5nOyAgLyogTmV0c2NhcGUvRmlyZWZveCBsZWdhY3kgYXR0cmlidXRlLiBT
YW1lIGFzIGVuY3R5cGUuICovCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBlbmN0eXBlOwotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgbWV0
aG9kOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgICAgICAgdGFyZ2V0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gZWxlbWVudHM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxl
bmd0aDsKKworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9WYWxpZGF0ZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0PWFjY2VwdF9jaGFyc2V0XSBET01TdHJpbmcgYWNjZXB0Q2hhcnNldDsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWN0aW9uOworICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZW5jb2Rpbmc7ICAv
KiBOZXRzY2FwZS9GaXJlZm94IGxlZ2FjeSBhdHRyaWJ1dGUuIFNhbWUgYXMgZW5jdHlwZS4gKi8K
KyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVu
Y3R5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1ldGhvZDsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGFyZ2V0OwogICAgICAgICAKICAg
ICAgICAgW0NhbGxXaXRoPUR5bmFtaWNGcmFtZV0gdm9pZCBzdWJtaXQoKTsKICAgICAgICAgdm9p
ZCByZXNldCgpOwotICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CisgICAgICAgIGJv
b2xlYW4gY2hlY2tWYWxpZGl0eSgpOwogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TEZyYW1lRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCkBAIC0yMiwxNyArMjIsMTcgQEAgbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxGcmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1mcmFtZWJv
cmRlcl0gRE9NU3RyaW5nICAgICAgIGZyYW1lQm9yZGVyOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PWxvbmdkZXNjXSBET01TdHJp
bmcgICAgICAgbG9uZ0Rlc2M7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmcsIFJlZmxlY3Q9bWFyZ2luaGVpZ2h0XSBET01TdHJpbmcgICAgICAgbWFy
Z2luSGVpZ2h0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBSZWZsZWN0PW1hcmdpbndpZHRoXSBET01TdHJpbmcgICAgICAgbWFyZ2luV2lkdGg7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJl
ZmxlY3RdIERPTVN0cmluZyAgICAgICBuYW1lOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIG5vUmVzaXplOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAgc2Nyb2xsaW5n
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBD
dXN0b21TZXR0ZXIsIFJlZmxlY3RVUkxdIERPTVN0cmluZyAgICAgICBzcmM7CisgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZyYW1lQm9yZGVyOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsb25nRGVzYzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgbWFyZ2luSGVpZ2h0OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBtYXJnaW5XaWR0aDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIG5vUmVzaXpl
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzY3JvbGxpbmc7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTCwgQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgc3JjOwog
CiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ2hlY2tGcmFtZVNlY3VyaXR5XSBEb2N1bWVudCAgICAgICAgY29udGVudERv
Y3VtZW50OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0g
RG9jdW1lbnQgY29udGVudERvY3VtZW50OwogCiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVdpbmRvdyBjb250ZW50V2luZG93OwpAQCAtNDQsOSAr
NDQsMTAgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAjZW5kaWYKIAotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBDdXN0b21TZXR0ZXJdIERPTVN0
cmluZyAgICAgICBsb2NhdGlvbjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAg
ICAgICAgICB3aWR0aDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAg
ICBoZWlnaHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIEN1
c3RvbVNldHRlcl0gRE9NU3RyaW5nIGxvY2F0aW9uOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHdpZHRoOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7
CiAKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCShyZXZp
c2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmUKKyAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZQogICog
Q29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTIzLDggKzIzLDggQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFj
ZSBbCiAgICAgICAgIEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyCiAgICAgXSBIVE1MRnJhbWVTZXRF
bGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgY29sczsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHJvd3M7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGNvbHM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IHJvd3M7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdF
X09CSkVDVElWRV9DCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MSFJFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEhSRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yMCwxMCArMjAsMTAgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBI
VE1MSFJFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBib29s
ZWFuIG5vU2hhZGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBzaXplOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgd2lkdGg7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9TaGFkZTsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2l6ZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CiAgICAgfTsKIAogfQpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxIZWFkRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hU
TUxIZWFkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMCw3ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2Ug
SFRNTEhlYWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgcHJvZmlsZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcHJvZmlsZTsKICAgICB9OwogCiB9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsK
IAogICAgIGludGVyZmFjZSBIVE1MSGVhZGluZ0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsKIAog
fQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw5ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7CiAKICAg
ICBpbnRlcmZhY2UgSFRNTEh0bWxFbGVtZW50IDogSFRNTEVsZW1lbnQgewotCi0gICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2ZXJzaW9uOwotCisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZlcnNpb247CiAgICAgfTsKIAog
fQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtMjEsMjEgKzIxLDIwIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTElG
cmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIGFsaWdu
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBS
ZWZsZWN0PWZyYW1lYm9yZGVyXSBET01TdHJpbmcgICAgICAgZnJhbWVCb3JkZXI7Ci0gICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERP
TVN0cmluZyAgICAgICBoZWlnaHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Q9bG9uZ2Rlc2NdIERPTVN0cmluZyAgICAgICBsb25n
RGVzYzsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZywgUmVmbGVjdD1tYXJnaW5oZWlnaHRdIERPTVN0cmluZyAgICAgICBtYXJnaW5IZWlnaHQ7Ci0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxl
Y3Q9bWFyZ2lud2lkdGhdIERPTVN0cmluZyAgICAgICBtYXJnaW5XaWR0aDsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3Ry
aW5nICAgICAgIG5hbWU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBzYW5kYm94OwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01T
dHJpbmcgICAgICAgc2Nyb2xsaW5nOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nLCBDdXN0b21TZXR0ZXIsIFJlZmxlY3RdIERPTVN0cmluZyAgICAg
ICBzcmM7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICB3aWR0aDsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGZyYW1lQm9yZGVyOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBoZWlnaHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGxvbmdEZXNj
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtYXJnaW5IZWlnaHQ7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1hcmdpbldpZHRoOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBzYW5kYm94OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBzY3JvbGxpbmc7CisgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyLCBS
ZWZsZWN0XSBET01TdHJpbmcgc3JjOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyB3aWR0aDsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0gRG9jdW1lbnQgICAg
ICAgIGNvbnRlbnREb2N1bWVudDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDaGVja0Zy
YW1lU2VjdXJpdHldIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKIAogICAgICAgICAvLyBFeHRl
bnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01XaW5kb3cgY29udGVudFdpbmRv
dzsKQEAgLTQ2LDcgKzQ1LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAjZW5kaWYKICNlbmRpZgotCiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5p
Z0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjMsMjIgKzIzLDIyIEBAIG1vZHVsZSBodG1s
IHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlcgogICAg
IF0gSFRNTEltYWdlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJl
ZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3Ry
aW5nIGJvcmRlcjsgICAgICAgIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBoZWln
aHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGhzcGFjZTsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGJvb2xlYW4gaXNNYXA7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RVUkw9bG9uZ2Rlc2NdIERPTVN0cmlu
ZyBsb25nRGVzYzsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZywgUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD11c2VtYXBdIERPTVN0cmlu
ZyB1c2VNYXA7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHZzcGFjZTsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgd2lkdGg7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbHQ7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJvcmRlcjsgICAgICAgIAorICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgaGVpZ2h0OworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGxvbmcgaHNwYWNlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xl
YW4gaXNNYXA7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTD1sb25nZGVzY10gRE9NU3Ry
aW5nIGxvbmdEZXNjOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RVUkxdIERPTVN0cmluZyBz
cmM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHZzcGFjZTsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBsb25nIHdpZHRoOwogICAgICAgICAKICAgICAgICAgLy8gRXh0ZW5zaW9ucwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wbGV0ZTsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdFVSTF0gRE9NU3Ry
aW5nIGxvd3NyYzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgbG93
c3JjOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBuYXR1cmFsSGVpZ2h0OwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBuYXR1cmFsV2lkdGg7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHg7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5p
ZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsODMgKzIxLDgwIEBA
CiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTElucHV0RWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICBkZWZhdWx0Q2hlY2tlZDsKKyAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0PWNoZWNrZWRdIGJvb2xlYW4gZGVmYXVsdENoZWNrZWQ7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBmb3JtTm9WYWxpZGF0ZTsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFjY2VwdDsK
LSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGFjY2Vzc0tleTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWx0OwotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGNoZWNrZWQ7Ci0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgZGlzYWJsZWQ7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuICAgICAgICAgYXV0b2ZvY3VzOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBhY2NlcHQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFj
Y2Vzc0tleTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKKyAgICAgICAgYXR0cmli
dXRlIGJvb2xlYW4gY2hlY2tlZDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFu
IGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3Vz
OwogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJU1QKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50ICAgICBsaXN0OwogI2VuZGlmCi0gICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3Rd
IERPTVN0cmluZyBtYXg7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAg
ICAgbWF4TGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsIFJlZmxlY3RdIERPTVN0cmluZyBtaW47Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuICAgICAgICAgbXVsdGlwbGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgcGF0
dGVybjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICBwbGFjZWhv
bGRlcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICByZWFkT25s
eTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICByZXF1aXJlZDsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OworICAgICAgICBhdHRy
aWJ1dGUgbG9uZyBtYXhMZW5ndGggc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtaW47CisgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gYm9vbGVhbiBtdWx0aXBsZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcGF0
dGVybjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcGxhY2Vob2xkZXI7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZWFkT25seTsKKyAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlcXVpcmVkOwogI2lmIGRlZmluZWQoTEFOR1VB
R0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCi0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydFRvU3RyaW5nXSBET01TdHJpbmcgc2l6ZTsgLy8gRE9NIGxldmVs
IDIgY2hhbmdlZCB0aGlzIHRvIGEgbG9uZywgYnV0IG91ciBleGlzdGluZyBBUEkgaXMgYSBzdHJp
bmcKKyAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0VG9TdHJpbmddIERPTVN0cmluZyBzaXplOyAv
LyBET00gbGV2ZWwgMiBjaGFuZ2VkIHRoaXMgdG8gYSBsb25nLCBidXQgb3VyIGV4aXN0aW5nIEFQ
SSBpcyBhIHN0cmluZwogI2Vsc2UKLSAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBzcGVj
IHNheXMgdGhpcyBzaG91bGQgYmUgYSBsb25nLCBub3QgYW4gdW5zaWduZWQgbG9uZwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgIHNpemU7IC8vIENoYW5nZWQgc3Ry
aW5nIC0+IGxvbmcgYXMgcGFydCBvZiBET00gbGV2ZWwgMgorICAgICAgICAvLyBGSVhNRTogVGhl
IHNwZWMgc2F5cyB0aGlzIHNob3VsZCBiZSBhIGxvbmcsIG5vdCBhbiB1bnNpZ25lZCBsb25nLgor
ICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzaXplOyAvLyBDaGFuZ2VkIHN0cmluZyAt
PiBsb25nIGFzIHBhcnQgb2YgRE9NIGxldmVsIDIKICNlbmRpZgotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3JjOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBE
T01TdHJpbmcgc3RlcDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZywgSlNDQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkg
ZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1
ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgc3JjOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzdGVwOworICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBKU0NDdXN0b21HZXR0ZXJdIERPTVN0cmluZyB0eXBl
OyAvLyByZWFkb25seSBkcm9wcGVkIGFzIHBhcnQgb2YgRE9NIGxldmVsIDIKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdXNlTWFwOworICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CiAjaWYgIWRlZmluZWQoTEFO
R1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBE
YXRlICAgICAgICAgICAgdmFsdWVBc0RhdGUgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBhdHRyaWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZSBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSAgICAgICAg
ICB2YWx1ZUFzTnVtYmVyIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0
cmlidXRlIGRvdWJsZSB2YWx1ZUFzTnVtYmVyIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICNpZiBkZWZpbmVkKEVOQUJMRV9EQVRBTElTVCkgJiYgRU5BQkxFX0RBVEFMSVNUCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNl
bmRpZgogCi0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBzdGVwVXAoaW4gW09wdGlvbmFsXSBs
b25nIG4pCi0gICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAg
ICAgICAgICAgICAgIHN0ZXBEb3duKGluIFtPcHRpb25hbF0gbG9uZyBuKQotICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gICAgICAgICB3aWxsVmFsaWRhdGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7Ci0gICAgICAgIGJvb2xlYW4gICAgICAgICAg
ICBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRDdXN0b21W
YWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGVycm9yKTsKLSAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVjdCgpOwotICAgICAgICB2
b2lkICAgICAgICAgICAgICAgY2xpY2soKTsKKyAgICAgICAgdm9pZCBzdGVwVXAoaW4gW09wdGlv
bmFsXSBsb25nIG4pIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHN0ZXBEb3du
KGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CisgICAgICAgIGJvb2xlYW4g
Y2hlY2tWYWxpZGl0eSgpOworICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252
ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOworICAgICAg
ICB2b2lkIHNlbGVjdCgpOworICAgICAgICB2b2lkIGNsaWNrKCk7CiAKICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICB2b2lk
ICAgICAgICAgICAgICAgc2V0VmFsdWVGb3JVc2VyKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHZhbHVlKTsKKyAgICAgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoaW4gW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWUpOwogI2VuZGlmCiAKICAgICAg
ICAgLy8gV2luSUUgZXh0ZW5zaW9uOgotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVh
biAgICAgICAgIGluZGV0ZXJtaW5hdGU7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGluZGV0
ZXJtaW5hdGU7CiAKICAgICAgICAgLy8gV2luSUUgJiBGaXJlRm94IGV4dGVuc2lvbjoKIAotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gbG9uZyBzZWxlY3Rpb25TdGFydDsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGxvbmcgc2VsZWN0aW9uRW5kOworICAg
ICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gbG9uZyBzZWxlY3Rpb25TdGFydDsKKyAgICAgICAgYXR0
cmlidXRlIFtDdXN0b21dIGxvbmcgc2VsZWN0aW9uRW5kOwogICAgICAgICBbQ3VzdG9tXSB2b2lk
IHNldFNlbGVjdGlvblJhbmdlKGluIGxvbmcgc3RhcnQsIGluIGxvbmcgZW5kKTsKIAogI2lmIGRl
ZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAgICAgICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVu
c2lvbjoKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICBhbHREaXNw
bGF5U3RyaW5nOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVJMICAgICAgICAgICAgIGFi
c29sdXRlSW1hZ2VVUkw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYWx0
RGlzcGxheVN0cmluZzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVSTCBhYnNvbHV0ZUlt
YWdlVVJMOwogI2VuZGlmCiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVMaXN0IGZp
bGVzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIE5vZGVMaXN0ICAgICAgIGxhYmVsczsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKICAgICB9OwogCiB9
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDcgKzIxLDcgQEAgbW9kdWxlIGh0bWwg
ewogCiAgICAgaW50ZXJmYWNlIEhUTUxJc0luZGV4RWxlbWVudCA6IEhUTUxJbnB1dEVsZW1lbnQg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBwcm9tcHQ7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHByb21wdDsKICAgICB9Owog
CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNv
cmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTIwLDggKzIwLDggQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGlu
dGVyZmFjZSBIVE1MTElFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKLSAgICAgICAgYXR0cmli
dXRlIGxvbmcgdmFsdWU7ICAgIAorICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyB0eXBlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgdmFsdWU7ICAgIAogICAg
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0
KQorKysgV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vpbmln
QGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMiw4ICsyMiw4IEBAIG1vZHVsZSBodG1sIHsK
IAogICAgIGludGVyZmFjZSBIVE1MTGFiZWxFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07Ci0gICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBodG1sRm9y
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1mb3JdIERPTVN0cmluZyBodG1sRm9yOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgY29udHJvbDsKICAgICB9OwogCkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMjIsOCArMjIsOCBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZh
Y2UgSFRNTExlZ2VuZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFjY2Vzc0tleTsKLSAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0y
MSwxOCArMjEsMTggQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTGlua0Vs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAg
ICAgICAgZGlzYWJsZWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgICAgICAgICAgICBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgaHJlZjsKLSAgICAg
ICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAg
ICAgIGhyZWZsYW5nOwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nICAgICAgICAgICAgbWVkaWE7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICByZWw7Ci0gICAgICAgIGF0
dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBy
ZXY7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgICAgICAgICAgICB0YXJnZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0eXBlOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGNoYXJzZXQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3Ry
aW5nIGhyZWY7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhyZWZsYW5n
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtZWRpYTsKKyAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmVsOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyByZXY7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHRhcmdldDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsK
IAogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZQotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU3R5bGVTaGVldCAgIHNoZWV0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVT
aGVldCBzaGVldDsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdV
QUdFX09CSkVDVElWRV9DCiAgICAgICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVuc2lvbjoKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxNYXBFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTE1hcEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCkBAIC0yMiw3ICsyMiw3IEBAIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1M
TWFwRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhU
TUxDb2xsZWN0aW9uIGFyZWFzOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgbmFtZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRs
CShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMwLDcgKzMwLDcgQEAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1WSURF
T10gSFRNTE1lZGlhRQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYUVycm9yIGVycm9yOwog
CiAgICAgLy8gbmV0d29yayBzdGF0ZQotICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjOworICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGN1cnJlbnRTcmM7CiAgICAgCiAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgTkVUV09SS19FTVBUWSA9IDA7CkBAIC02Niw4ICs2Niw4IEBAIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9VklERU9dIEhUTUxNZWRpYUUKICAgICByZWFkb25seSBhdHRyaWJ1dGUgVGltZVJhbmdl
cyBwbGF5ZWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRpbWVSYW5nZXMgc2Vla2FibGU7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZW5kZWQ7Ci0gICAgYXR0cmlidXRlIGJvb2xl
YW4gYXV0b3BsYXk7Ci0gICAgYXR0cmlidXRlIGJvb2xlYW4gbG9vcDsKKyAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGJvb2xlYW4gYXV0b3BsYXk7CisgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29s
ZWFuIGxvb3A7CiAgICAgW05lZWRzVXNlckdlc3R1cmVDaGVja10gdm9pZCBwbGF5KCk7CiAgICAg
W05lZWRzVXNlckdlc3R1cmVDaGVja10gdm9pZCBwYXVzZSgpOwogCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTE1lbnVFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1l
bnVFbGVtZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lbnVF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTWVu
dUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbXBh
Y3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21wYWN0OwogICAgIH07
CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTAgKzIwLDEwIEBACiBtb2R1bGUgaHRtbCB7
CiAKICAgICBpbnRlcmZhY2UgSFRNTE1ldGFFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAg
ICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgIGNvbnRl
bnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgICAgaHR0cEVxdWl2OwotICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgc2NoZW1lOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBjb250ZW50OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9aHR0
cF9lcXVpdl0gRE9NU3RyaW5nIGh0dHBFcXVpdjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
c2NoZW1lOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmlkbAkocmV2aXNp
b24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsOCArMjAsOCBAQAogbW9k
dWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxNb2RFbGVtZW50IDogSFRNTEVsZW1lbnQg
ewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
Y2l0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGRhdGVUaW1lOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaXRl
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBkYXRlVGltZTsKICAgICB9
OwogICAgIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmlkbAkocmV2aXNpb24gNjEw
NzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw5ICsyMCw5IEBACiBtb2R1bGUg
aHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTE9MaXN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
LSAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gY29tcGFjdDsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBib29sZWFuIGNvbXBhY3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHN0YXJ0Owot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlw
ZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKICAgICB9Owog
CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQor
KysgV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CkBAIC0yNiwzNyArMjYsMzYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBDdXN0b21DYWxsCiAg
ICAgXSBIVE1MT2JqZWN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAgY29k
ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywg
UmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIGFsaWduOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgICAgICAgYXJj
aGl2ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIGJvcmRlcjsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1jb2RlYmFzZV0gRE9NU3Ry
aW5nICAgICAgIGNvZGVCYXNlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PWNvZGV0eXBlXSBET01TdHJpbmcgICAgICAgY29kZVR5
cGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcs
IFJlZmxlY3RVUkxdIERPTVN0cmluZyAgICAgICBkYXRhOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgYm9vbGVhbiAgICAgICAgIGRlY2xhcmU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgICAgICBoZWln
aHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgaHNwYWNlOwot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZs
ZWN0XSBET01TdHJpbmcgICAgICAgbmFtZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nICAgICAgIHN0YW5kYnk7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJl
ZmxlY3RdIERPTVN0cmluZyAgICAgICB0eXBlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0PXVzZW1hcF0gRE9NU3RyaW5nICAgICAg
IHVzZU1hcDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB2c3Bh
Y2U7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcs
IFJlZmxlY3RdIERPTVN0cmluZyAgICAgICB3aWR0aDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIGNvZGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhcmNoaXZl
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBib3JkZXI7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvZGVCYXNlOworICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlVHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0VVJMXSBET01TdHJpbmcgZGF0YTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29s
ZWFuIGRlY2xhcmU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhlaWdo
dDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIGhzcGFjZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgc3RhbmRieTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgdHlwZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdXNlTWFw
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgdnNwYWNlOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3aWR0aDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwogCiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9N
IExldmVsIDI6Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tGcmFtZVNlY3VyaXR5
XSBEb2N1bWVudCAgICAgICAgY29udGVudERvY3VtZW50OworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0gRG9jdW1lbnQgY29udGVudERvY3VtZW50OwogCiAj
aWYgZGVmaW5lZChFTkFCTEVfU1ZHKSAmJiBFTkFCTEVfU1ZHCiAjaWYgIWRlZmluZWQoTEFOR1VB
R0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICYmIEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MK
LSAgICAgICAgW1NWR0NoZWNrU2VjdXJpdHlEb2N1bWVudF0gU1ZHRG9jdW1lbnQgZ2V0U1ZHRG9j
dW1lbnQoKQotICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTVkdD
aGVja1NlY3VyaXR5RG9jdW1lbnRdIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKICNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9P
QkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gT2JqZWN0aXZl
LUMgZXh0ZW5zaW9uOgotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVJMICAgICAgICAgICAg
IGFic29sdXRlSW1hZ2VVUkw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVUkwgYWJzb2x1
dGVJbWFnZVVSTDsKICNlbmRpZgogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3Vw
RWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjAsOCArMjAsOCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxP
cHRHcm91cEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVh
biAgICAgICAgICAgICAgZGlzYWJsZWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBsYWJlbDsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBsYWJlbDsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAxMCBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTIzLDE5ICsyMywxOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAg
ICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIKICAgICBdIEhUTUxPcHRpb25FbGVtZW50IDogSFRN
TEVsZW1lbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAg
ICAgIGZvcm07Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAg
ICAgZGVmYXVsdFNlbGVjdGVkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1F
bGVtZW50IGZvcm07CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1zZWxlY3RlZF0gYm9vbGVh
biBkZWZhdWx0U2VsZWN0ZWQ7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBM
QU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0ZXh0Ci0gICAgICAgICAgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0ZXh0IHNldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICNlbHNlCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5n
ICAgICAgICAgICAgdGV4dDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0
ZXh0OwogI2VuZGlmCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAg
ICAgICAgaW5kZXg7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAg
ICAgICAgZGlzYWJsZWQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICBsYWJlbDsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBzZWxlY3RlZDsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAg
ICAgICAgIHZhbHVlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBpbmRleDsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsYWJlbDsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xl
YW4gc2VsZWN0ZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZhbHVl
OwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmlkbAko
cmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsNyAr
MjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxQYXJhZ3JhcGhFbGVt
ZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGFsaWduOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTAg
KzIwLDEwIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFBhcmFtRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZVR5cGU7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHR5cGU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZh
bHVlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB2YWx1ZVR5cGU7CiAg
ICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFp
bC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjMsMTAgKzIzLDEwIEBAIG1vZHVsZSBodG1sIHsKICAg
ICBpbnRlcmZhY2UgSFRNTFByZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIC8vIEZJ
WE1FOiBET00gc3BlYyBzYXlzIHRoYXQgd2lkdGggc2hvdWxkIGJlIG9mIHR5cGUgRE9NU3RyaW5n
CiAgICAgICAgIC8vIHNlZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTkyCi0gICAgICAgIGF0dHJpYnV0ZSBsb25nIHdpZHRoOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIGxvbmcgd2lkdGg7CiAgICAgICAgIAogICAgICAgICAvLyBFeHRlbnNpb25zCi0gICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIHdyYXA7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
Ym9vbGVhbiB3cmFwOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUXVvdGVF
bGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsNiAr
MjAsNiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxRdW90ZUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBjaXRlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBjaXRlOwogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwJKHJl
dmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDExICsyMSwx
MSBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFNjcmlwdEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyB0ZXh0OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgaHRtbEZvcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGV2ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY2hhcnNldDsKLSAgICAgICAgYXR0cmlidXRlIGJv
b2xlYW4gZGVmZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBzcmM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyB0eXBlOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Zm9yXSBET01T
dHJpbmcgaHRtbEZvcjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZXZl
bnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNoYXJzZXQ7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkZWZlcjsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0VVJMXSBET01TdHJpbmcgc3JjOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyB0eXBlOwogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFN0eWxl
RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
aWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsOSArMjEs
OSBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlz
YWJsZWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgICAgICBtZWRpYTsKLSAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CisgICAgICAgIGF0dHJpYnV0
ZSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBtZWRpYTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKIAog
ICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U3R5bGVTaGVldCBzaGVldDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTIzLDkgKzIzLDcgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCiAgICAgICAg
IEdlbmVyYXRlTmF0aXZlQ29udmVydGVyCiAgICAgXSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKLQotICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgICAgICAgYWxpZ247Ci0KKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNlbGxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDZWxsRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtMjEsMjMgKzIxLDIxIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2Ug
SFRNTFRhYmxlQ2VsbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICBjZWxsSW5kZXg7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBhYmJyOwot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgYWxpZ247Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBheGlzOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgYmdDb2xv
cjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nICAgICAgIGNoOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgY2hPZmY7Ci0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgY29sU3BhbjsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGhlYWRlcnM7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyAgICAgICBoZWlnaHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgbm9XcmFwOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgIHJvd1NwYW47Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBzY29wZTsKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHZBbGlnbjsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgIHdpZHRoOwotCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNlbGxJ
bmRleDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWJicjsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGF4aXM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGJnQ29sb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyXSBET01T
dHJpbmcgY2g7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyb2ZmXSBET01TdHJpbmcg
Y2hPZmY7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIGNvbFNwYW47CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhlYWRlcnM7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGhlaWdodDsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gbm9XcmFwOwor
ICAgICAgICBhdHRyaWJ1dGUgbG9uZyByb3dTcGFuOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBzY29wZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgdkFsaWduOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3aWR0aDsK
ICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRsCShyZXZp
c2lvbiA2MTA3NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2Vp
bmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSwxNCArMjEsMTIg
QEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MVGFibGVDb2xFbGVtZW50IDog
SFRNTEVsZW1lbnQgewotCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyAgICAgICBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGNoOwotICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgY2hPZmY7Ci0gICAgICAgIGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgc3BhbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHZBbGlnbjsKLSAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHdpZHRoOwotCisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3Q9Y2hhcl0gRE9NU3RyaW5nIGNoOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3Q9Y2hhcm9mZl0gRE9NU3RyaW5nIGNoT2ZmOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBz
cGFuOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB2QWxpZ247CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRoOwogICAgIH07CiAKIH0KSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKQEAgLTIxLDQzICsyMSwzMyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxUYWJsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgLy8g
Y291bGQgcmFpc2UgZXhjZXBldGlvbnMgb24gc2V0dGluZy4KLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IGNhcHRpb24KLSAgICAgICAgICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IHRIZWFkCi0gICAgICAgICAgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCB0Rm9vdAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQgY2FwdGlvbiBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0
dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZCBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0Rm9v
dCBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1M
Q29sbGVjdGlvbiB0Qm9kaWVzOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBiZ0NvbG9yOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
Ym9yZGVyOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgY2VsbFBhZGRpbmc7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjZWxsU3BhY2luZzsKLQotICAgICAg
ICAvLyBGSVhNRTogdGhlIG9iai1jIGF0dHJpYnV0ZSBpcyBjYWxsZWQgZnJhbWVCb3JkZXJzCi0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBmcmFtZTsKLQotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgcnVsZXM7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzdW1tYXJ5OwotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiZ0NvbG9yOworICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBib3JkZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGNlbGxQYWRkaW5nOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBjZWxsU3BhY2luZzsKKworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBmcmFtZTsKKworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBydWxlczsK
KyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc3VtbWFyeTsKKyAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CiAKLSAgICAgICAgSFRNTEVsZW1l
bnQgICAgICAgIGNyZWF0ZVRIZWFkKCk7Ci0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBkZWxl
dGVUSGVhZCgpOworICAgICAgICBIVE1MRWxlbWVudCBjcmVhdGVUSGVhZCgpOworICAgICAgICB2
b2lkIGRlbGV0ZVRIZWFkKCk7CiAgICAgICAgIEhUTUxFbGVtZW50ICAgICAgICBjcmVhdGVURm9v
dCgpOwotICAgICAgICB2b2lkICAgICAgICAgICAgICAgZGVsZXRlVEZvb3QoKTsKLSAgICAgICAg
SFRNTEVsZW1lbnQgICAgICAgIGNyZWF0ZUNhcHRpb24oKTsKLSAgICAgICAgdm9pZCAgICAgICAg
ICAgICAgIGRlbGV0ZUNhcHRpb24oKTsKLQotICAgICAgICBIVE1MRWxlbWVudCBpbnNlcnRSb3co
aW4gbG9uZyBpbmRleCkKLSAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAg
ICAgIHZvaWQgZGVsZXRlUm93KGluIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBkZWxldGVURm9vdCgpOworICAgICAgICBIVE1MRWxl
bWVudCBjcmVhdGVDYXB0aW9uKCk7CisgICAgICAgIHZvaWQgZGVsZXRlQ2FwdGlvbigpOwogCisg
ICAgICAgIEhUTUxFbGVtZW50IGluc2VydFJvdyhpbiBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgdm9pZCBkZWxldGVSb3coaW4gbG9uZyBpbmRleCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJv
d0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVt
ZW50LmlkbAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxl
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAxMCBBcHBsZSBJbmMuIEFMbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAt
MjEsMjEgKzIxLDE2IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFRhYmxl
Um93RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyAgICAgICAgICAgIHJvd0luZGV4OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyAgICAgICAgICAgIHNlY3Rpb25Sb3dJbmRleDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxDb2xsZWN0aW9uICBjZWxsczsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGFsaWduOwotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAg
YmdDb2xvcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgICAgIGNoOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgY2hPZmY7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAg
ICB2QWxpZ247Ci0KLSAgICAgICAgSFRNTEVsZW1lbnQgICAgICAgIGluc2VydENlbGwoaW4gbG9u
ZyBpbmRleCkKLSAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lk
ICAgICAgICAgICAgICAgZGVsZXRlQ2VsbChpbiBsb25nIGluZGV4KQotICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcm93
SW5kZXg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNlY3Rpb25Sb3dJbmRleDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGNlbGxzOworICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgYmdDb2xvcjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
PWNoYXJdIERPTVN0cmluZyBjaDsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoYXJvZmZd
IERPTVN0cmluZyBjaE9mZjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
dkFsaWduOworICAgICAgICBIVE1MRWxlbWVudCBpbnNlcnRDZWxsKGluIGxvbmcgaW5kZXgpIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIGRlbGV0ZUNlbGwoaW4gbG9uZyBpbmRl
eCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFp
bC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjMsMTggKzIzLDEzIEBAIG1vZHVsZSBodG1sIHsKICAg
ICBpbnRlcmZhY2UgWwogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlcgogICAgIF0gSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0KLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGFsaWdu
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgICAgICAgY2g7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBjaE9mZjsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHZBbGln
bjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uICByb3dzOwotCi0g
ICAgICAgIEhUTUxFbGVtZW50ICAgICAgICBpbnNlcnRSb3coaW4gbG9uZyBpbmRleCkKLSAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgICAgICAg
ZGVsZXRlUm93KGluIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLQorICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoYXJdIERPTVN0cmluZyBjaDsKKyAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0PWNoYXJvZmZdIERPTVN0cmluZyBjaE9mZjsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgdkFsaWduOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
SFRNTENvbGxlY3Rpb24gcm93czsKKyAgICAgICAgSFRNTEVsZW1lbnQgaW5zZXJ0Um93KGluIGxv
bmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIGRlbGV0ZVJvdyhp
biBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCiB9CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5j
b20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgpAQCAtMjEsMzYgKzIxLDM1IEBACiBtb2R1bGUgaHRtbCB7CiAKICAg
ICBpbnRlcmZhY2UgSFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAg
ICAgICAgICAgIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1M
Rm9ybUVsZW1lbnQgICAgICBmb3JtOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIFZhbGlk
aXR5U3RhdGUgICAgICAgIHZhbGlkaXR5OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgYWNjZXNzS2V5Owot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIGNvbHM7Ci0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgYXV0b2Zv
Y3VzOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIG1h
eExlbmd0aAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nICAgICAgICAgICAgbmFtZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBb
Q29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyAgIHBsYWNlaG9sZGVy
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIHJlYWRP
bmx5OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIHJl
cXVpcmVkOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAg
IHJvd3M7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAg
dHlwZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyAgICAgICAgICAgIHZhbHVlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgIHVuc2lnbmVkIGxvbmcgICAgICAgIHRleHRMZW5ndGg7CisgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkZWZhdWx0VmFsdWU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50IGZvcm07CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSAgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKKyAgICAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIGNvbHM7CisgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVh
biBhdXRvZm9jdXM7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0aCBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBwbGFjZWhvbGRlcjsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmVhZE9ubHk7Cisg
ICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiByZXF1aXJlZDsKKyAgICAgICAgYXR0cmlidXRlIGxv
bmcgcm93czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgdHlwZTsKKyAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIHVuc2lnbmVkIGxvbmcgdGV4dExlbmd0aDsK
ICAgICAgICAgCi0gICAgICAgIHZvaWQgICAgIHNlbGVjdCgpOworICAgICAgICB2b2lkIHNlbGVj
dCgpOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZh
bGlkYXRlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlk
YXRpb25NZXNzYWdlOwotICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAg
IHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2U7CisgICAgICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0eSgpOwor
ICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgLy8gV2luSUUgJiBGaXJl
Rm94IGV4dGVuc2lvbjoKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0aW9u
U3RhcnQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvbkVuZDsKKyAg
ICAgICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0aW9uU3RhcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBs
b25nIHNlbGVjdGlvbkVuZDsKICAgICAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbiBsb25n
IHN0YXJ0LCBpbiBsb25nIGVuZCk7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgTm9kZUxp
c3QgICAgICAgICAgICAgIGxhYmVsczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBOb2Rl
TGlzdCBsYWJlbHM7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50Lmlk
bAkocmV2aXNpb24gNjEwNzQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSw3ICsy
MSw3IEBAIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MVUxpc3RFbGVtZW50IDog
SFRNTEVsZW1lbnQgewogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wYWN0OwotICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKICAgICB9OwogCiB9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCShyZXZpc2lvbiA2MTA3NCkKKysrIFdlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDIyICsyOCwx
OSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgICAgICBH
ZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlcgogICAgIF0gSFRNTFZpZGVvRWxlbWVudCA6IEhUTUxNZWRp
YUVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKLSAgICAg
ICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIHVuc2lnbmVkIGxvbmcgd2lkdGg7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
dW5zaWduZWQgbG9uZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIHZpZGVvV2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHZpZGVvSGVpZ2h0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcG9zdGVyOworICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcG9zdGVyOwogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbjsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW47CiAKLSAg
ICAgICAgW05lZWRzVXNlckdlc3R1cmVDaGVja10gdm9pZCB3ZWJraXRFbnRlckZ1bGxzY3JlZW4o
KQotICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbTmVlZHNVc2Vy
R2VzdHVyZUNoZWNrXSB2b2lkIHdlYmtpdEVudGVyRnVsbHNjcmVlbigpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdm9pZCB3ZWJraXRFeGl0RnVsbHNjcmVlbigpOwogICAgIAotICAg
ICAgICBbTmVlZHNVc2VyR2VzdHVyZUNoZWNrXSB2b2lkIHdlYmtpdEVudGVyRnVsbFNjcmVlbigp
Ci0gICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtOZWVkc1VzZXJH
ZXN0dXJlQ2hlY2tdIHZvaWQgd2Via2l0RW50ZXJGdWxsU2NyZWVuKCkgcmFpc2VzIChET01FeGNl
cHRpb24pOwogICAgICAgICB2b2lkIHdlYmtpdEV4aXRGdWxsU2NyZWVuKCk7Ci0KICAgICB9Owog
fQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5pZGwJKHJldmlzaW9uIDYxMDc0KQorKysgV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwICsyMyw4IEBACiBtb2R1bGUgc3Zn
IHsKIAogICAgIGludGVyZmFjZSBbR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsIENvbmRpdGlvbmFs
PVNWR10gU1ZHRWxlbWVudCA6IEVsZW1lbnQgewotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgaWQKLSAgICAgICAg
ICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHhtbGJhc2UK
LSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaWQgc2V0dGVyIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgeG1sYmFzZSBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50IG93bmVyU1ZHRWxlbWVudDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQgdmlld3BvcnRFbGVtZW50OwogICAgIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>