<?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>33680</bug_id>
          
          <creation_ts>2010-01-14 10:51:45 -0800</creation_ts>
          <short_desc>[V8] Generate header declaration for custom constructor callbacks</short_desc>
          <delta_ts>2010-02-12 10:29:25 -0800</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 Misc.</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>
          
          <blocked>32638</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Kavita Kanetkar">kkanetkar</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>180789</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-01-14 10:51:45 -0800</bug_when>
    <thetext>This involves vaguely the following:
1. Add an attribute in the relevant .idls to indicate that there&apos;s a custom constructor callback.
2. Update CodeGeneratorV8.pm to look for that flag and make use of a custom constructor when appropriate.
3. Remove manual calls to FunctionTemplate::SetCallHandler in V8DOMWrapper.cpp.
4. Remove manual constructor declarations in V8CustomBinding.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180809</commentid>
    <comment_count>1</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-01-14 11:15:23 -0800</bug_when>
    <thetext>Does it seem reasonable to add an attribute (e.g., CustomConstructor) to some idls for this purpose?  I don&apos;t have a good idea of what the criteria are for something being attribute-worthy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183368</commentid>
    <comment_count>2</comment_count>
      <attachid>47156</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-01-21 16:21:46 -0800</bug_when>
    <thetext>Created attachment 47156
SetCallHandler() is now in the generated bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183370</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-21 16:26:40 -0800</bug_when>
    <thetext>Attachment 47156 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:39:  &quot;V8XMLHttpRequest.h&quot; already included at WebCore/bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:32  [build/include] [4]
WebCore/bindings/v8/custom/V8XMLSerializerConstructor.cpp:36:  &quot;V8XMLSerializer.h&quot; already included at WebCore/bindings/v8/custom/V8XMLSerializerConstructor.cpp:32  [build/include] [4]
WebCore/bindings/v8/custom/V8SharedWorkerCustom.cpp:48:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebCore/bindings/v8/custom/V8SharedWorkerCustom.cpp:48:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/html/canvas/WebGLUnsignedIntArray.idl:35:  Line contains tab character.  [whitespace/tab] [5]
WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp:38:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 6


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183518</commentid>
    <comment_count>4</comment_count>
      <attachid>47156</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-21 23:42:22 -0800</bug_when>
    <thetext>Comment on attachment 47156
SetCallHandler() is now in the generated bindings.

Lots of style issues to address, see previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183882</commentid>
    <comment_count>5</comment_count>
      <attachid>47247</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-01-22 16:57:29 -0800</bug_when>
    <thetext>Created attachment 47247
Addressed webkit style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184406</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-25 12:43:52 -0800</bug_when>
    <thetext>I think this is a good start. A couple of comments:

1) it would be great to eliminate the dichotomy of OmitConstructor + CustomConstructor by modifying CodeGeneratorJS.pm. If there&apos;s [CustomConstructor], for JSC bindings it means [OmitConstructor]. No need to list both.

2) What is the overlap between CustomConstructor + CanBeConstructor? If it&apos;s 100%, it would be great to do the same as the first comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184413</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-01-25 14:28:50 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think this is a good start. A couple of comments:
&gt; 
&gt; 1) it would be great to eliminate the dichotomy of OmitConstructor +
&gt; CustomConstructor by modifying CodeGeneratorJS.pm. If there&apos;s
&gt; [CustomConstructor], for JSC bindings it means [OmitConstructor]. No need to
&gt; list both.
&gt; 
&gt; 2) What is the overlap between CustomConstructor + CanBeConstructor? If it&apos;s
&gt; 100%, it would be great to do the same as the first comment.

1) AFAICT, there is not much correlation between OmitConstructor and CustomConstructor.

2. CanBeConstructed is a strict subset of CustomConstructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184793</commentid>
    <comment_count>8</comment_count>
      <attachid>47247</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-26 15:37:47 -0800</bug_when>
    <thetext>Comment on attachment 47247
Addressed webkit style issues.

We talked offline -- new, better, cooler patch is coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185292</commentid>
    <comment_count>9</comment_count>
      <attachid>47580</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-01-27 17:20:07 -0800</bug_when>
    <thetext>Created attachment 47580
Added handling of &apos;CanBeConstructed&apos; and &apos;OmitConstructor&apos; in addition to &apos;CustomConstructor&apos;

Changed the following from the previous patch:
- Deleted implementation .cpp files for corresponding &apos;CanBeConstructed&apos; extended attributes. These are now generated via codegeneratorv8.pm
- Treating &apos;OmitConstructor&apos; and &apos;CustomConstructor&apos; to be the same in codegeneratorjs.pm
- Cleaned idls that had &apos;CustomConstructor&apos; and &apos;OmitConstructor&apos; together, and same with CustomConstructor and CanBeConstructed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185535</commentid>
    <comment_count>10</comment_count>
      <attachid>47580</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-28 10:25:25 -0800</bug_when>
    <thetext>Comment on attachment 47580
Added handling of &apos;CanBeConstructed&apos; and &apos;OmitConstructor&apos; in addition to &apos;CustomConstructor&apos;

Awesome! Now all it needs is a ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185540</commentid>
    <comment_count>11</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-28 10:41:19 -0800</bug_when>
    <thetext>.. and the patch should be re-rooted. It looks like it&apos;s being created in WebCore/ dir.

I highly recommend using webkit-patch tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185629</commentid>
    <comment_count>12</comment_count>
      <attachid>47653</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-01-28 15:41:17 -0800</bug_when>
    <thetext>Created attachment 47653
Added ChangeLog

Added ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185630</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-28 15:42:16 -0800</bug_when>
    <thetext>Attachment 47653 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Skipping input &apos;WebCore/bindings/v8/custom/V8XMLSerializerConstructor.cpp&apos;: Can&apos;t open for reading
WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Skipping input &apos;WebCore/bindings/v8/custom/V8XPathEvaluatorConstructor.cpp&apos;: Can&apos;t open for reading
Skipping input &apos;WebCore/bindings/v8/custom/V8DOMParserConstructor.cpp&apos;: Can&apos;t open for reading
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185633</commentid>
    <comment_count>14</comment_count>
      <attachid>47654</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-01-28 15:53:56 -0800</bug_when>
    <thetext>Created attachment 47654
ChangeLog had 1 tab, fixed.

Tab removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185636</commentid>
    <comment_count>15</comment_count>
      <attachid>47653</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-28 16:16:02 -0800</bug_when>
    <thetext>Comment on attachment 47653
Added ChangeLog

Please mark your previous patch as obsolete when you add one that replaces it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185641</commentid>
    <comment_count>16</comment_count>
      <attachid>47654</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-28 16:39:27 -0800</bug_when>
    <thetext>Comment on attachment 47654
ChangeLog had 1 tab, fixed.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185715</commentid>
    <comment_count>17</comment_count>
      <attachid>47654</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-28 20:49:46 -0800</bug_when>
    <thetext>Comment on attachment 47654
ChangeLog had 1 tab, fixed.

Clearing flags on attachment: 47654

Committed r54042: &lt;http://trac.webkit.org/changeset/54042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185716</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-28 20:49:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190095</commentid>
    <comment_count>19</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-02-12 10:29:25 -0800</bug_when>
    <thetext>*** Bug 33483 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47156</attachid>
            <date>2010-01-21 16:21:46 -0800</date>
            <delta_ts>2010-01-21 23:42:22 -0800</delta_ts>
            <desc>SetCallHandler() is now in the generated bindings.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>31038</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9k
b20vTWVzc2FnZUNoYW5uZWwuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAK
IG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFtDdXN0b21NYXJrRnVuY3Rpb24sIE5v
U3RhdGljVGFibGVzLCBPbWl0Q29uc3RydWN0b3JdIE1lc3NhZ2VDaGFubmVsIHsKKyAgICBpbnRl
cmZhY2UgW0N1c3RvbUNvbnN0cnVjdG9yLCBDdXN0b21NYXJrRnVuY3Rpb24sIE5vU3RhdGljVGFi
bGVzLCBPbWl0Q29uc3RydWN0b3JdIE1lc3NhZ2VDaGFubmVsIHsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBNZXNzYWdlUG9ydCBwb3J0MjsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MzY1NykKKysrIFdlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTAtMDEtMjEgIEthdml0YSBL
YW5ldGthciA8a2thbmV0a2FyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBkZWNsYXJhdGlvbnMgb2YgY29uc3Ry
dWN0b3IgY2FsbGJhY2tzIGluIHY4IGJpbmRpbmdzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzY4MAorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IEdlbmVyYXRlZCBjb25zdHJ1Y3RvciBkZWNsYXJhdGlv
bnMgYW5kIGNhbGxzIHRvIAorICAgICAgICAgICAgU2V0Q2FsbEhhbmRsZXIoKSBiYXNlZCBvbiBD
dXN0b21Db25zdHJ1Y3RvciBpZGwgYXR0cmlidXRlLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5jcHA6IFJlbW92ZWQgbWFudWFsIGNhbGxzIHRvIFNldENhbGxIYW5kbGVyKCkg
Zm9yIGNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21CaW5kaW5nLmg6IFJlbW92ZWQgbWFudWFsIGRlY2xhcmF0aW9ucyBvZiBjb25zdHJ1
Y3RvciBjYWxsYmFja3MuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2Vy
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFNo
YXJlZFdvcmtlckN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xBcnJheUJ1ZmZlckN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xCeXRlQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYkdMRmxvYXRBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xTaG9ydEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFBhdGhFdmFsdWF0b3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nl
c3NvckN1c3RvbS5jcHA6CisgICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5pZGw6IEFkZGVk
IEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBkb20vTWVzc2FnZUNoYW5u
ZWwuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xBcnJheUJ1ZmZlci5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0
dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGw6IEFkZGVk
IEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TEZsb2F0QXJyYXkuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xJbnRBcnJheS5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVj
dG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNob3J0QXJyYXkuaWRs
OiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xVbnNpZ25lZEJ5dGVBcnJheS5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0
dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkSW50QXJyYXkuaWRs
OiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xVbnNpZ25lZFNob3J0QXJyYXkuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBh
dHRyaWJ1dGUuCisgICAgICAgICogcGFnZS9XZWJLaXRQb2ludC5pZGw6IEFkZGVkIEN1c3RvbUNv
bnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGw6
IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiB3b3JrZXJzL1No
YXJlZFdvcmtlci5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0
ZS4KKyAgICAgICAgKiB4bWwvRE9NUGFyc2VyLmlkbDogQWRkZWQgQ3VzdG9tQ29uc3RydWN0b3Ig
YXR0cmlidXRlLgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IEFkZGVkIEN1c3Rv
bUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiB4bWwvWE1MU2VyaWFsaXplci5pZGw6
IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiB4bWwvWFBhdGhF
dmFsdWF0b3IuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAg
ICogeG1sL1hTTFRQcm9jZXNzb3IuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1
dGUuCisKIDIwMTAtMDEtMjEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpJbmRleDogV2ViQ29yZS9w
YWdlL1dlYktpdFBvaW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvV2ViS2l0UG9p
bnQuaWRsCShyZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvcGFnZS9XZWJLaXRQb2ludC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAg
ICBpbnRlcmZhY2UgW09taXRDb25zdHJ1Y3Rvcl0gV2ViS2l0UG9pbnQgeworICAgIGludGVyZmFj
ZSBbQ3VzdG9tQ29uc3RydWN0b3IsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViS2l0UG9pbnQgewogICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHk7CiAgICAg
fTsKSW5kZXg6IFdlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsCShyZXZpc2lvbiA1MzY1NikKKysrIFdl
YkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICsz
Miw3IEBACiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1TSEFSRURfV09S
S0VSUywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5j
dGlvbiwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIEdlbmVyYXRl
VG9KUywKSW5kZXg6IFdlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCShyZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICAgICBp
bnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1XT1JLRVJTLAorICAgICAgICBDdXN0b21D
b25zdHJ1Y3RvciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIEdl
bmVyYXRlVG9KUywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDUzNjU2KQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpA
QCAtMjk5LDYgKzI5OSwxMiBAQAogICAgICAgICAgICAgcHVzaChAZW5hYmxlZEF0UnVudGltZSwg
JGZ1bmN0aW9uKTsKICAgICAgICAgfQogICAgIH0KKworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsIDw8RU5EKTsKKyAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpOworRU5ECisgICAgfQog
ICAgIAogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9
KSB7CiAgICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwpAQCAt
MTY4NSw3ICsxNjkxLDYgQEAKICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRfc2ln
bmF0dXJlID0gY29uZmlndXJlVGVtcGxhdGUoZGVzYywgXCIke2ludGVyZmFjZU5hbWV9XCIsCiAg
ICAgICBWOENsYXNzSW5kZXg6OiRwYXJlbnRDbGFzc0luZGV4LCBWOCR7aW50ZXJmYWNlTmFtZX06
OmludGVybmFsRmllbGRDb3VudCwKIEVORAotCiAgICAgIyBTZXQgdXAgb3VyIGF0dHJpYnV0ZXMg
aWYgd2UgaGF2ZSB0aGVtCiAgICAgaWYgKCRoYXNfYXR0cmlidXRlcykgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMTcwNyw2ICsxNzEyLDEyIEBACiBFTkQKICAgICB9
CiAKKyAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3Ry
dWN0b3IifSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgZGVz
Yy0+U2V0Q2FsbEhhbmRsZXIoVjgke2ludGVyZmFjZU5hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KTsKK0VORAorICAgIH0KKwogICAgIGlmICgkYWNjZXNzX2NoZWNrIG9yIEBlbmFibGVkQXRSdW50
aW1lIG9yIEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9IG9yICRoYXNfY29uc3RhbnRzKSB7CiAgICAg
cHVzaChAaW1wbENvbnRlbnQsICA8PEVORCk7CiAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxh
dGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmNwcAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw4OSArMjUzLDYg
QEAKICAgICAvLyBOb3QgaW4gdGhlIGNhY2hlLgogICAgIEZ1bmN0aW9uVGVtcGxhdGVGYWN0b3J5
IGZhY3RvcnkgPSBWOENsYXNzSW5kZXg6OkdldEZhY3RvcnkodHlwZSk7CiAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2NyaXB0b3IgPSBmYWN0b3J5KCk7Ci0gICAg
c3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6Ok1FU1NBR0VDSEFOTkVMOiB7
Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotI2lmIEVOQUJM
RShXT1JLRVJTKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXT1JLRVI6IHsKLSAgICAgICAgZGVz
Y3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdvcmtlckNvbnN0cnVjdG9yKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSNlbmRpZiAvLyBXT1JLRVJTCi0KLSNpZiBFTkFCTEUo
U0hBUkVEX1dPUktFUlMpCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlNIQVJFRFdPUktFUjogewot
ICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soU2hhcmVkV29y
a2VyQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlmIC8vIFNIQVJF
RF9XT1JLRVJTCi0KLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQotICAgIC8vIFRoZSBmb2xsb3dpbmcg
b2JqZWN0cyBhcmUgY3JlYXRlZCBmcm9tIEphdmFTY3JpcHQuCi0gICAgY2FzZSBWOENsYXNzSW5k
ZXg6OldFQkdMQVJSQVlCVUZGRVI6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVy
KFVTRV9DQUxMQkFDSyhXZWJHTEFycmF5QnVmZmVyQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMQllURUFSUkFZOgotICAgICAgICBkZXNj
cmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xCeXRlQXJyYXlDb25zdHJ1
Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xGTE9B
VEFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0so
V2ViR0xGbG9hdEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBW
OENsYXNzSW5kZXg6OldFQkdMSU5UQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxI
YW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTEludEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMU0hPUlRBUlJBWToKLSAgICAgICAg
ZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdlYkdMU2hvcnRBcnJheUNv
bnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJH
TFVOU0lHTkVEQllURUFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihV
U0VfQ0FMTEJBQ0soV2ViR0xVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVESU5UQVJSQVk6Ci0g
ICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTFVuc2ln
bmVkSW50QXJyYXlDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xh
c3NJbmRleDo6V0VCR0xVTlNJR05FRFNIT1JUQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNl
dENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVj
dG9yKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OkRP
TVBBUlNFUjoKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNL
KERPTVBhcnNlckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFz
c0luZGV4OjpXRUJLSVRDU1NNQVRSSVg6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5k
bGVyKFVTRV9DQUxMQkFDSyhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcikpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCS0lUUE9JTlQ6Ci0gICAgICAgIGRlc2Ny
aXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJLaXRQb2ludENvbnN0cnVjdG9y
KSk7Ci0gICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICBjYXNlIFY4
Q2xhc3NJbmRleDo6V0VCU09DS0VUOiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5k
bGVyKFVTRV9DQUxMQkFDSyhXZWJTb2NrZXRDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0jZW5kaWYKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WE1MU0VSSUFMSVpFUjoKLSAg
ICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFhNTFNlcmlhbGl6
ZXJDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6
WE1MSFRUUFJFUVVFU1Q6IHsKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNF
X0NBTExCQUNLKFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotI2lmIEVOQUJMRShYUEFUSCkKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WFBBVEhFVkFM
VUFUT1I6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhY
UGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYg
RU5BQkxFKFhTTFQpCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlhTTFRQUk9DRVNTT1I6Ci0gICAg
ICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYU0xUUHJvY2Vzc29y
Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICBkZWZhdWx0OgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0KICAgICAqY2FjaGVDZWxsID0gZGVzY3JpcHRvcjsKICAgICBy
ZXR1cm4gZGVzY3JpcHRvcjsKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMRmxvYXRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDUzNjU2KQor
KysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMRmxvYXRBcnJheUNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFdlYkdMRmxvYXRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMRmxvYXRBcnJheS5D
b250cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTM2NTYp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OE1lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5NZXNzYWdlQ2hhbm5l
bC5Db25zdHJ1Y3RvciIpOwogICAgIC8vIEZJWE1FOiBUaGUgbG9naWMgaGVyZSBpcyBhbG1vc3Qg
ZXhhY3QgZHVwbGljYXRlIG9mIFY4Ojpjb25zdHJ1Y3RET01PYmplY3QuCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xBcnJheUJ1ZmZlckN1c3Rv
bS5jcHAJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTEFycmF5QnVmZmVyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3Rv
bTo6djhXZWJHTEFycmF5QnVmZmVyQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xBcnJheUJ1ZmZlcjo6Y29u
c3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19T
VEFUUygiRE9NLldlYkdMQXJyYXlCdWZmZXIuQ29uc3RydWN0b3IiKTsKIApJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Q
YXJzZXJDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxNCBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJET01QYXJzZXIuaCIKKyNpbmNs
dWRlICJWOERPTVBhcnNlci5oIgogCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAi
VjhQcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEN1c3RvbTo6djhET01QYXJzZXJDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01QYXJzZXI6OmNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5ET01QYXJzZXIuQ29udHJ1Y3RvciIpOwogICAgIHJldHVybiBWOFByb3h5Ojpjb25zdHJ1
Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4OjpET01QQVJTRVIsIERPTVBhcnNlcj4oYXJncyk7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwCShy
ZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXb3JrZXJDb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhXb3JrZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoTCJET00uV29ya2VyLkNvbnN0cnVjdG9yIik7CiAKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSwxMyArMzUsMTMgQEAKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOElu
ZGV4LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCisj
aW5jbHVkZSAiVjhXZWJLaXRQb2ludC5oIgogCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206
OnY4V2ViS2l0UG9pbnRDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRQb2ludDo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldl
YktpdFBvaW50LkNvbnN0cnVjdG9yIik7CiAgICAgZmxvYXQgeCA9IDA7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9tLmNw
cAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
Qnl0ZUFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhX
ZWJHTEJ5dGVBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQnl0ZUFycmF5Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00u
V2ViR0xCeXRlQXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3Vz
dG9tLmNwcAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEN1c3RvbTo6djhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdM
VW5zaWduZWRTaG9ydEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZFNob3J0QXJyYXku
Q29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1
c3RvbUJpbmRpbmcuaAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNDEgKzQwLDEwIEBA
CiAjZGVmaW5lIERFQ0xBUkVfQ0FMTEJBQ0soTkFNRSkgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2OCMjTkFNRSMjQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICNkZWZp
bmUgVVNFX0NBTExCQUNLKE5BTUUpIFY4Q3VzdG9tOjp2OCMjTkFNRSMjQ2FsbGJhY2sKIAotICAg
ICAgICBERUNMQVJFX0NBTExCQUNLKERPTVBhcnNlckNvbnN0cnVjdG9yKTsKICAgICAgICAgREVD
TEFSRV9DQUxMQkFDSyhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IpOwogICAgICAgICBERUNM
QVJFX0NBTExCQUNLKEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcik7CiAgICAgICAgIERFQ0xB
UkVfQ0FMTEJBQ0soSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xB
UkVfQ0FMTEJBQ0soTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVf
Q0FMTEJBQ0soV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NB
TExCQUNLKFdlYktpdFBvaW50Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNL
KFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFhN
TFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soWFBhdGhF
dmFsdWF0b3JDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soWFNMVFByb2Nl
c3NvckNvbnN0cnVjdG9yKTsKIAotI2lmIEVOQUJMRSgzRF9DQU5WQVMpCi0gICAgICAgIERFQ0xB
UkVfQ0FMTEJBQ0soV2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFS
RV9DQUxMQkFDSyhXZWJHTEJ5dGVBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9D
QUxMQkFDSyhXZWJHTEZsb2F0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FM
TEJBQ0soV2ViR0xJbnRBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFD
SyhXZWJHTFNob3J0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0so
V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxM
QkFDSyhXZWJHTFVuc2lnbmVkSW50QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVf
Q0FMTEJBQ0soV2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0jZW5kaWYKLQot
I2lmIEVOQUJMRShXT1JLRVJTKQotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdvcmtlckNvbnN0
cnVjdG9yKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQotICAgICAgICBE
RUNMQVJFX0NBTExCQUNLKFNoYXJlZFdvcmtlckNvbnN0cnVjdG9yKTsKLSNlbmRpZgotCi0jaWYg
RU5BQkxFKFdFQl9TT0NLRVRTKQotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdlYlNvY2tldENv
bnN0cnVjdG9yKTsKLSNlbmRpZgotCiAjdW5kZWYgREVDTEFSRV9DQUxMQkFDSwogICAgIH07CiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUN1c3RvbS5jcHAJKHJl
dmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2ln
bmVkQnl0ZUFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6
djhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xVbnNpZ25lZEJ5dGVB
cnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewog
ICAgIElOQ19TVEFUUygiRE9NLldlYkdMVW5zaWduZWRCeXRlQXJyYXkuQ29udHJ1Y3RvciIpOwog
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNoYXJlZFdvcmtlckN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTaGFyZWRXb3Jr
ZXJDdXN0b20uY3BwCShyZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIs
NyBAQAogCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogCi0jaW5jbHVkZSAiU2hhcmVkV29y
a2VyLmgiCisjaW5jbHVkZSAiVjhTaGFyZWRXb3JrZXIuaCIKIAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDUsNyArNDUsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhTaGFyZWRX
b3JrZXJDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCisJdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4U2hhcmVkV29ya2VyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKEwiRE9NLlNoYXJlZFdv
cmtlci5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4WFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDUzNjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYUGF0aEV2YWx1YXRvckNv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYUGF0aEV2
YWx1YXRvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhQYXRoRXZhbHVhdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uWFBhdGhF
dmFsdWF0b3IuQ29uc3RydWN0b3IiKTsKICAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9N
T2JqZWN0PFY4Q2xhc3NJbmRleDo6WFBBVEhFVkFMVUFUT1IsIFhQYXRoRXZhbHVhdG9yPihhcmdz
KTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1
c3RvbS5jcHAJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJTb2NrZXRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBACiAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
Q3VzdG9tOjp2OFdlYlNvY2tldENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYlNvY2tldDo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9N
LldlYlNvY2tldC5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAJKHJldmlzaW9uIDUzNjU2
KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYU0xUUHJvY2Vzc29yQ29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlhTTFRQcm9jZXNzb3IuQ29uc3Ry
dWN0b3IiKTsKICAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9NT2JqZWN0PFY4Q2xhc3NJ
bmRleDo6WFNMVFBST0NFU1NPUiwgWFNMVFByb2Nlc3Nvcj4oYXJncyk7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJL
aXRDU1NNYXRyaXguaCIKKyNpbmNsdWRlICJWOFdlYktpdENTU01hdHJpeC5oIgogCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBAIC00NCw3ICs0
NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
Q3VzdG9tOjp2OFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYktpdENTU01hdHJpeDo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLldlYktpdENTU01hdHJpeC5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVyQ29u
c3RydWN0b3IuY3BwCShyZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4WE1MU2VyaWFsaXplckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMs
MTEgKzMzLDExIEBACiAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5
LmgiCi0jaW5jbHVkZSAiWE1MU2VyaWFsaXplci5oIgorI2luY2x1ZGUgIlY4WE1MU2VyaWFsaXpl
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1
c3RvbTo6djhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MU2VyaWFsaXplcjo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiRE9NLlhNTFNlcmlhbGl6ZXIuQ29uc3RydWN0b3IiKTsKICAgICByZXR1cm4gVjhQcm94eTo6
Y29uc3RydWN0RE9NT2JqZWN0PFY4Q2xhc3NJbmRleDo6WE1MU0VSSUFMSVpFUiwgWE1MU2VyaWFs
aXplcj4oYXJncyk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5z
aWduZWRJbnRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1MzY1
NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEludEFycmF5
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTFVuc2ln
bmVkSW50QXJyYXlDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkSW50QXJyYXk6OmNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5XZWJHTFVuc2lnbmVkSW50QXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMSW50QXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5jcHAJ
KHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTElu
dEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJH
TEludEFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQor
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xJbnRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdM
SW50QXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMU2hvcnRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTFNob3J0QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1MzY1
NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xTaG9ydEFycmF5Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTFNob3J0QXJyYXlD
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhXZWJHTFNob3J0QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFNob3J0QXJy
YXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhN
TEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDUz
NjU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBACiAjaW5jbHVkZSAi
VjhDdXN0b21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VXRp
bGl0aWVzLmgiCi0jaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJWOFhNTEh0
dHBSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtl
ckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFhNTEh0dHBSZXF1ZXN0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uWE1MSHR0cFJlcXVlc3QuQ29uc3RydWN0b3Ii
KTsKIApJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkU2hvcnRBcnJheS5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkU2hvcnRB
cnJheS5pZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVu
c2lnbmVkU2hvcnRBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIG1v
ZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD0zRF9DQU5W
QVMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNOdW1lcmljSW5kZXhH
ZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAgICBHZW5lcmF0ZU5h
dGl2ZUNvbnZlcnRlciwKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaG9ydEFycmF5
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hvcnRBcnJheS5p
ZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNob3J0QXJy
YXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAgICAgICAgIEhhc0N1c3Rv
bUluZGV4U2V0dGVyLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAg
T21pdENvbnN0cnVjdG9yLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3Vz
dG9tVG9KUwogICAgIF0gV2ViR0xTaG9ydEFycmF5IDogV2ViR0xBcnJheSB7CiAgICAgICAgIGxv
bmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEZsb2F0QXJyYXkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xGbG9hdEFycmF5LmlkbAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRmxvYXRBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAK
ICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29u
dmVydGVyLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVj
dG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJHTEZsb2F0QXJyYXkgOiBXZWJHTEFy
cmF5IHsKICAgICAgICAgZmxvYXQgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDog
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEludEFycmF5LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMSW50QXJyYXkuaWRsCShyZXZpc2lvbiA1MzY1NikKKysrIFdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xJbnRBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDYgKzMxLDcgQEAKICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVy
YXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1
c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJHTEludEFycmF5
IDogV2ViR0xBcnJheSB7CiAgICAgICAgIGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkQnl0ZUFycmF5LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXku
aWRsCShyZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICAgICAgICAg
SGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAog
ICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAg
ICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5IDogV2ViR0xBcnJh
eSB7CiAgICAgICAgIGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsCShyZXZpc2lvbiA1MzY1NikKKysr
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBcnJheUJ1ZmZlci5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFtD
b25kaXRpb25hbD0zRF9DQU5WQVMsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViR0xBcnJheUJ1ZmZlciB7
CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD0zRF9DQU5WQVMsIEN1c3RvbUNvbnN0cnVjdG9y
LCBPbWl0Q29uc3RydWN0b3JdIFdlYkdMQXJyYXlCdWZmZXIgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgaW50IGJ5dGVMZW5ndGg7CiAgICAgfTsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xCeXRlQXJyYXkuaWRsCShyZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNv
bnZlcnRlciwKICAgICAgICAgT21pdENvbnN0cnVjdG9yLAorICAgICAgICBDdXN0b21Db25zdHJ1
Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwogICAgIF0gV2ViR0xCeXRlQXJyYXkgOiBXZWJHTEFy
cmF5IHsKICAgICAgICAgbG9uZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBX
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRJbnRBcnJheS5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkSW50QXJyYXkuaWRsCShyZXZpc2lv
biA1MzY1NikKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEludEFycmF5Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTEgKzI3LDEyIEBACiBtb2R1bGUgaHRtbCB7CiAgICAg
aW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLAorICAgICAgICBDdXN0
b21Db25zdHJ1Y3RvciwKICAgICAgICAgSGFzTnVtZXJpY0luZGV4R2V0dGVyLAogICAgICAgICBI
YXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAg
ICAgICAgIE9taXRDb25zdHJ1Y3RvciwKLSAgICAgICAgQ3VzdG9tVG9KUworCQlDdXN0b21Ub0pT
CiAgICAgXSBXZWJHTFVuc2lnbmVkSW50QXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgdW5z
aWduZWQgbG9uZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIC8vIHZvaWQg
c2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIGxvbmcgdmFsdWUpOwpJbmRleDogV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5pZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKIAogICAgIGlu
dGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9TT0NLRVRTLAorICAgICAgICBDdXN0
b21Db25zdHJ1Y3RvciwgICAgCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBOb1N0YXRp
Y1RhYmxlcywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCkluZGV4OiBXZWJDb3JlL2Nzcy9XZWJL
aXRDU1NNYXRyaXguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL1dlYktpdENTU01hdHJp
eC5pZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAv
LyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCA/OgotICAgIGludGVyZmFjZSBbT21pdENvbnN0cnVj
dG9yXSBXZWJLaXRDU1NNYXRyaXggeworICAgIGludGVyZmFjZSBbQ3VzdG9tQ29uc3RydWN0b3Is
IE9taXRDb25zdHJ1Y3Rvcl0gV2ViS2l0Q1NTTWF0cml4IHsKIAogICAgICAgICAvLyBUaGVzZSBh
dHRyaWJ1dGVzIGFyZSBzaW1wbGUgYWxpYXNlcyBmb3IgY2VydGFpbiBlbGVtZW50cyBvZiB0aGUg
NHg0IG1hdHJpeAogICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGE7IC8vIGFsaWFzIGZvciBtMTEK
SW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiBt
b2R1bGUgeG1sIHsKIAogICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9y
LAogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAg
ICAgICBOb1N0YXRpY1RhYmxlcywKSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwJKHJldmlzaW9u
IDUzNjU2KQorKysgV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xOCw3ICsxOCw3IEBACiAgKi8KIAogbW9kdWxlIHhwYXRoIHsKLSAgICBpbnRlcmZhY2Ug
W0NhbkJlQ29uc3RydWN0ZWQsIENvbmRpdGlvbmFsPVhQQVRIXSBYUGF0aEV2YWx1YXRvciB7Cisg
ICAgaW50ZXJmYWNlIFtDYW5CZUNvbnN0cnVjdGVkLCBDdXN0b21Db25zdHJ1Y3RvciwgQ29uZGl0
aW9uYWw9WFBBVEhdIFhQYXRoRXZhbHVhdG9yIHsKICAgICAgICAgWFBhdGhFeHByZXNzaW9uIGNy
ZWF0ZUV4cHJlc3Npb24oaW4gRE9NU3RyaW5nIGV4cHJlc3Npb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlcikKICAg
ICAgICAgICAgIHJhaXNlcyhjb3JlOjpET01FeGNlcHRpb24pOwpJbmRleDogV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3Nvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ci5pZGwJKHJldmlzaW9uIDUzNjU2KQorKysgV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKIAogICAgIGludGVyZmFjZSBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVhTTFQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAg
ICBPbWl0Q29uc3RydWN0b3IKICAgICBdIFhTTFRQcm9jZXNzb3IgewogICAgICAgICAKSW5kZXg6
IFdlYkNvcmUveG1sL0RPTVBhcnNlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvRE9N
UGFyc2VyLmlkbAkocmV2aXNpb24gNTM2NTYpCisrKyBXZWJDb3JlL3htbC9ET01QYXJzZXIuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xOCw3ICsxOCw3IEBACiAgKi8KIAogbW9kdWxlIHhwYXRoIHsK
LSAgICBpbnRlcmZhY2UgW0NhbkJlQ29uc3RydWN0ZWRdIERPTVBhcnNlciB7CisgICAgaW50ZXJm
YWNlIFtDYW5CZUNvbnN0cnVjdGVkLCBDdXN0b21Db25zdHJ1Y3Rvcl0gRE9NUGFyc2VyIHsKICAg
ICAgICAgRG9jdW1lbnQgcGFyc2VGcm9tU3RyaW5nKGluIERPTVN0cmluZyBzdHIsIGluIERPTVN0
cmluZyBjb250ZW50VHlwZSk7CiAgICAgfTsKIH0KSW5kZXg6IFdlYkNvcmUveG1sL1hNTFNlcmlh
bGl6ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaWRsCShy
ZXZpc2lvbiA1MzY1NikKKysrIFdlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAKIG1vZHVsZSB4cGF0aCB7CiAKLSAgICBpbnRlcmZh
Y2UgW0NhbkJlQ29uc3RydWN0ZWRdIFhNTFNlcmlhbGl6ZXIgeworICAgIGludGVyZmFjZSBbQ2Fu
QmVDb25zdHJ1Y3RlZCwgQ3VzdG9tQ29uc3RydWN0b3JdIFhNTFNlcmlhbGl6ZXIgewogICAgICAg
ICBET01TdHJpbmcgc2VyaWFsaXplVG9TdHJpbmcoaW4gTm9kZSBub2RlKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsK
</data>
<flag name="review"
          id="29556"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47247</attachid>
            <date>2010-01-22 16:57:29 -0800</date>
            <delta_ts>2010-01-26 15:37:46 -0800</delta_ts>
            <desc>Addressed webkit style issues.</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>26630</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9NZXNzYWdlQ2hhbm5lbC5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBkb20vTWVzc2Fn
ZUNoYW5uZWwuaWRsCShyZXZpc2lvbiA1MzUxMSkNCisrKyBkb20vTWVzc2FnZUNoYW5uZWwuaWRs
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjYsNyArMjYsNyBAQA0KIAogbW9kdWxlIGV2ZW50cyB7CiAK
LSAgICBpbnRlcmZhY2UgW0N1c3RvbU1hcmtGdW5jdGlvbiwgTm9TdGF0aWNUYWJsZXMsIE9taXRD
b25zdHJ1Y3Rvcl0gTWVzc2FnZUNoYW5uZWwgeworICAgIGludGVyZmFjZSBbQ3VzdG9tQ29uc3Ry
dWN0b3IsIEN1c3RvbU1hcmtGdW5jdGlvbiwgTm9TdGF0aWNUYWJsZXMsIE9taXRDb25zdHJ1Y3Rv
cl0gTWVzc2FnZUNoYW5uZWwgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdl
UG9ydCBwb3J0MTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0IHBvcnQy
OwpJbmRleDogcGFnZS9XZWJLaXRQb2ludC5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBwYWdlL1dlYktp
dFBvaW50LmlkbAkocmV2aXNpb24gNTM1MTEpDQorKysgcGFnZS9XZWJLaXRQb2ludC5pZGwJKHdv
cmtpbmcgY29weSkNCkBAIC0yNSw3ICsyNSw3IEBADQogCiBtb2R1bGUgd2luZG93IHsKIAotICAg
IGludGVyZmFjZSBbT21pdENvbnN0cnVjdG9yXSBXZWJLaXRQb2ludCB7CisgICAgaW50ZXJmYWNl
IFtDdXN0b21Db25zdHJ1Y3RvciwgT21pdENvbnN0cnVjdG9yXSBXZWJLaXRQb2ludCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBmbG9hdCB4OwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeTsKICAgICB9
OwpJbmRleDogd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gd29ya2Vy
cy9TaGFyZWRXb3JrZXIuaWRsCShyZXZpc2lvbiA1MzUxMSkNCisrKyB3b3JrZXJzL1NoYXJlZFdv
cmtlci5pZGwJKHdvcmtpbmcgY29weSkNCkBAIC0zMiw2ICszMiw3IEBADQogCiAgICAgaW50ZXJm
YWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0hBUkVEX1dPUktFUlMsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEdlbmVy
YXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBHZW5lcmF0ZVRvSlMsCkluZGV4OiB3b3JrZXJz
L1dvcmtlci5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB3b3JrZXJzL1dvcmtlci5pZGwJKHJldmlzaW9u
IDUzNTExKQ0KKysrIHdvcmtlcnMvV29ya2VyLmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTI4LDYg
KzI4LDcgQEANCiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1XT1JLRVJT
LAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252
ZXJ0ZXIsCiAgICAgICAgIEdlbmVyYXRlVG9KUywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCklu
ZGV4OiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQ0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lvbiA1MzY1NSkNCisr
KyBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQ0KQEAg
LTI5OSw2ICsyOTksMTIgQEANCiAgICAgICAgICAgICBwdXNoKEBlbmFibGVkQXRSdW50aW1lLCAk
ZnVuY3Rpb24pOwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgPDxFTkQpOworICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncyk7CitFTkQKKyAgICB9CiAg
ICAgCiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30p
IHsKICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CkBAIC0x
Njg1LDcgKzE2OTEsNiBAQA0KICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRfc2ln
bmF0dXJlID0gY29uZmlndXJlVGVtcGxhdGUoZGVzYywgXCIke2ludGVyZmFjZU5hbWV9XCIsCiAg
ICAgICBWOENsYXNzSW5kZXg6OiRwYXJlbnRDbGFzc0luZGV4LCBWOCR7aW50ZXJmYWNlTmFtZX06
OmludGVybmFsRmllbGRDb3VudCwKIEVORAotCiAgICAgIyBTZXQgdXAgb3VyIGF0dHJpYnV0ZXMg
aWYgd2UgaGF2ZSB0aGVtCiAgICAgaWYgKCRoYXNfYXR0cmlidXRlcykgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMTcwNyw2ICsxNzEyLDEyIEBADQogRU5ECiAgICAg
fQogCisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0
cnVjdG9yIn0pIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKKyAgICAgIGRl
c2MtPlNldENhbGxIYW5kbGVyKFY4JHtpbnRlcmZhY2VOYW1lfTo6Y29uc3RydWN0b3JDYWxsYmFj
ayk7CitFTkQKKyAgICB9CisKICAgICBpZiAoJGFjY2Vzc19jaGVjayBvciBAZW5hYmxlZEF0UnVu
dGltZSBvciBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSBvciAkaGFzX2NvbnN0YW50cykgewogICAg
IHB1c2goQGltcGxDb250ZW50LCAgPDxFTkQpOwogICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBs
YXRlPiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKSW5kZXg6IGJpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwCShyZXZpc2lvbiA1MzY1NSkNCisrKyBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjUzLDkwICsyNTMsOCBAQA0KICAgICAvLyBOb3QgaW4g
dGhlIGNhY2hlLgogICAgIEZ1bmN0aW9uVGVtcGxhdGVGYWN0b3J5IGZhY3RvcnkgPSBWOENsYXNz
SW5kZXg6OkdldEZhY3RvcnkodHlwZSk7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IGRlc2NyaXB0b3IgPSBmYWN0b3J5KCk7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0g
ICAgY2FzZSBWOENsYXNzSW5kZXg6Ok1FU1NBR0VDSEFOTkVMOiB7Ci0gICAgICAgIGRlc2NyaXB0
b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9y
KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIGNh
c2UgVjhDbGFzc0luZGV4OjpXT1JLRVI6IHsKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhh
bmRsZXIoVVNFX0NBTExCQUNLKFdvcmtlckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSNlbmRpZiAvLyBXT1JLRVJTCi0KLSNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCi0g
ICAgY2FzZSBWOENsYXNzSW5kZXg6OlNIQVJFRFdPUktFUjogewotICAgICAgICBkZXNjcmlwdG9y
LT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soU2hhcmVkV29ya2VyQ29uc3RydWN0b3IpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlmIC8vIFNIQVJFRF9XT1JLRVJTCi0KLSNpZiBF
TkFCTEUoM0RfQ0FOVkFTKQotICAgIC8vIFRoZSBmb2xsb3dpbmcgb2JqZWN0cyBhcmUgY3JlYXRl
ZCBmcm9tIEphdmFTY3JpcHQuCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMQVJSQVlCVUZG
RVI6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJH
TEFycmF5QnVmZmVyQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENs
YXNzSW5kZXg6OldFQkdMQllURUFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFu
ZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xCeXRlQXJyYXlDb25zdHJ1Y3RvcikpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xGTE9BVEFSUkFZOgotICAgICAgICBk
ZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xGbG9hdEFycmF5Q29u
c3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdM
SU5UQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFD
SyhXZWJHTEludEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBW
OENsYXNzSW5kZXg6OldFQkdMU0hPUlRBUlJBWToKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2Fs
bEhhbmRsZXIoVVNFX0NBTExCQUNLKFdlYkdMU2hvcnRBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVEQllURUFSUkFZ
OgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xV
bnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
VjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVESU5UQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3It
PlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTFVuc2lnbmVkSW50QXJyYXlDb25zdHJ1
Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xVTlNJ
R05FRFNIT1JUQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9D
QUxMQkFDSyhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJy
ZWFrOwotI2VuZGlmCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OkRPTVBBUlNFUjoKLSAgICAgICAg
ZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKERPTVBhcnNlckNvbnN0cnVj
dG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJLSVRDU1NN
QVRSSVg6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhX
ZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4
Q2xhc3NJbmRleDo6V0VCS0lUUE9JTlQ6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5k
bGVyKFVTRV9DQUxMQkFDSyhXZWJLaXRQb2ludENvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFr
OwotI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCU09D
S0VUOiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhX
ZWJTb2NrZXRDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYKLSAg
ICBjYXNlIFY4Q2xhc3NJbmRleDo6WE1MU0VSSUFMSVpFUjoKLSAgICAgICAgZGVzY3JpcHRvci0+
U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3RvcikpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WE1MSFRUUFJFUVVFU1Q6IHsK
LSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFhNTEh0dHBS
ZXF1ZXN0Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2lmIEVOQUJMRShY
UEFUSCkKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WFBBVEhFVkFMVUFUT1I6Ci0gICAgICAgIGRl
c2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYUGF0aEV2YWx1YXRvckNvbnN0
cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgRU5BQkxFKFhTTFQpCi0gICAg
Y2FzZSBWOENsYXNzSW5kZXg6OlhTTFRQUk9DRVNTT1I6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNl
dENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IpKTsKLSAg
ICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9
Ci0KICAgICAqY2FjaGVDZWxsID0gZGVzY3JpcHRvcjsKKwogICAgIHJldHVybiBkZXNjcmlwdG9y
OwogfQogCkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20u
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5
Q3VzdG9tLmNwcAkocmV2aXNpb24gNTM1MTEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xGbG9hdEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ0LDcgKzQ0LDcgQEAN
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9t
Ojp2OFdlYkdMRmxvYXRBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMRmxvYXRBcnJheTo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiRE9NLldlYkdMRmxvYXRBcnJheS5Db250cnVjdG9yIik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAJKHJldmlz
aW9uIDUzNTExKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3Ry
dWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4TWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdlQ2hhbm5lbDo6Y29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLk1lc3NhZ2VD
aGFubmVsLkNvbnN0cnVjdG9yIik7CiAgICAgLy8gRklYTUU6IFRoZSBsb2dpYyBoZXJlIGlzIGFs
bW9zdCBleGFjdCBkdXBsaWNhdGUgb2YgVjg6OmNvbnN0cnVjdERPTU9iamVjdC4KSW5kZXg6IGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJDdXN0b20uY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xBcnJheUJ1ZmZlckN1c3RvbS5jcHAJKHJl
dmlzaW9uIDUzNTExKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDEsNyArNDEsNyBAQA0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViR0xBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQXJyYXlCdWZmZXI6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJH
TEFycmF5QnVmZmVyLkNvbnN0cnVjdG9yIik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVBhcnNlckNvbnN0cnVjdG9yLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOERPTVBhcnNlckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTM1MTEpDQorKysgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2VyQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
DQpAQCAtMjksMTQgKzI5LDE0IEBADQogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJET01QYXJzZXIuaCIKKyNpbmNsdWRlICJWOERPTVBhcnNlci5oIgogCiAjaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhET01QYXJzZXJDb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhET01QYXJzZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5ET01QYXJzZXIuQ29udHJ1Y3RvciIpOwogICAg
IHJldHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4OjpET01QQVJT
RVIsIERPTVBhcnNlcj4oYXJncyk7CkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJD
dXN0b20uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3Vz
dG9tLmNwcAkocmV2aXNpb24gNTM2NTUpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2Vy
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ4LDcgKzQ4LDcgQEANCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdvcmtlckNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFdvcmtlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUyhMIkRPTS5Xb3JrZXIuQ29uc3RydWN0b3IiKTsK
IApJbmRleDogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVj
dG9yLmNwcAkocmV2aXNpb24gNTM1MTEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0
UG9pbnRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yOSwxOSArMjksMTkgQEAN
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4V2ViS2l0UG9pbnQuaCIK
IAogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tQmluZGluZy5oIgog
I2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4SW5kZXguaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCi0jaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKIAogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4Q3VzdG9tOjp2OFdlYktpdFBvaW50Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0UG9pbnQ6OmNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5XZWJLaXRQb2ludC5Db25zdHJ1Y3RvciIpOwogICAgIGZsb2F0IHggPSAwOwpJ
bmRleDogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlDdXN0b20uY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlDdXN0b20uY3Bw
CShyZXZpc2lvbiA1MzUxMSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEJ5dGVBcnJh
eUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00NCw3ICs0NCw3IEBADQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTEJ5
dGVBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQnl0ZUFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xC
eXRlQXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TFVuc2lnbmVkU2hvcnRBcnJheUN1c3RvbS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDUz
NTExKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ0LDcgKzQ0LDcgQEANCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMVW5zaWdu
ZWRTaG9ydEFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xVbnNpZ25lZFNob3J0QXJyYXk6OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5XZWJHTFVuc2lnbmVkU2hvcnRBcnJheS5Db250cnVjdG9yIik7CiAKSW5kZXg6IGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaAkocmV2aXNpb24gNTM1MTEpDQorKysgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNDAs
NDEgKzQwLDEwIEBADQogI2RlZmluZSBERUNMQVJFX0NBTExCQUNLKE5BTUUpIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdjgjI05BTUUjI0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiAjZGVmaW5lIFVTRV9DQUxMQkFDSyhOQU1FKSBWOEN1c3RvbTo6djgjI05BTUUjI0Nh
bGxiYWNrCiAKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhET01QYXJzZXJDb25zdHJ1Y3Rvcik7
CiAgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yKTsK
ICAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IpOwog
ICAgICAgICBERUNMQVJFX0NBTExCQUNLKEhUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IpOwot
ICAgICAgICBERUNMQVJFX0NBTExCQUNLKE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IpOwotICAg
ICAgICBERUNMQVJFX0NBTExCQUNLKFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yKTsKLSAgICAg
ICAgREVDTEFSRV9DQUxMQkFDSyhXZWJLaXRQb2ludENvbnN0cnVjdG9yKTsKLSAgICAgICAgREVD
TEFSRV9DQUxMQkFDSyhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFS
RV9DQUxMQkFDSyhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NB
TExCQUNLKFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExC
QUNLKFhTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcik7CiAKLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQot
ICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdlYkdMQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcik7Ci0g
ICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soV2ViR0xCeXRlQXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAg
ICAgIERFQ0xBUkVfQ0FMTEJBQ0soV2ViR0xGbG9hdEFycmF5Q29uc3RydWN0b3IpOwotICAgICAg
ICBERUNMQVJFX0NBTExCQUNLKFdlYkdMSW50QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERF
Q0xBUkVfQ0FMTEJBQ0soV2ViR0xTaG9ydEFycmF5Q29uc3RydWN0b3IpOwotICAgICAgICBERUNM
QVJFX0NBTExCQUNLKFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAg
IERFQ0xBUkVfQ0FMTEJBQ0soV2ViR0xVbnNpZ25lZEludEFycmF5Q29uc3RydWN0b3IpOwotICAg
ICAgICBERUNMQVJFX0NBTExCQUNLKFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q29uc3RydWN0b3Ip
OwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICAgICAgREVDTEFSRV9DQUxMQkFD
SyhXb3JrZXJDb25zdHJ1Y3Rvcik7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShTSEFSRURfV09SS0VS
UykKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvcik7Ci0j
ZW5kaWYKLQotI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICAgICAgREVDTEFSRV9DQUxMQkFD
SyhXZWJTb2NrZXRDb25zdHJ1Y3Rvcik7Ci0jZW5kaWYKLQogI3VuZGVmIERFQ0xBUkVfQ0FMTEJB
Q0sKICAgICB9OwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUN1c3RvbS5jcHANCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBi
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q3VzdG9tLmNwcAkocmV2
aXNpb24gNTM1MTEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEJ5dGVB
cnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00NCw3ICs0NCw3IEBADQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJH
TFVuc2lnbmVkQnl0ZUFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheTo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLldlYkdMVW5zaWduZWRCeXRlQXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4
OiBiaW5kaW5ncy92OC9jdXN0b20vVjhTaGFyZWRXb3JrZXJDdXN0b20uY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNwcAkocmV2aXNp
b24gNTM1MTEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQ0KQEAgLTMyLDcgKzMyLDcgQEANCiAKICNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUlMpCiAKLSNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKKyNpbmNsdWRlICJWOFNoYXJl
ZFdvcmtlci5oIgogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCkBAIC00NSw3ICs0NSw3IEBADQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTaGFy
ZWRXb3JrZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKICAgICBJTkNfU1RBVFMoTCJET00uU2hhcmVkV29ya2VyLkNvbnN0cnVjdG9yIik7CiAKSW5k
ZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IuY3BwDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFBhdGhFdmFsdWF0b3JDb25zdHJ1
Y3Rvci5jcHAJKHJldmlzaW9uIDUzNTExKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRo
RXZhbHVhdG9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzcsNyArMzcsNyBA
QA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0
b206OnY4WFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYUGF0aEV2YWx1YXRvcjo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiRE9NLlhQYXRoRXZhbHVhdG9yLkNvbnN0cnVjdG9yIik7CiAgICAgcmV0dXJuIFY4UHJveHk6
OmNvbnN0cnVjdERPTU9iamVjdDxWOENsYXNzSW5kZXg6OlhQQVRIRVZBTFVBVE9SLCBYUGF0aEV2
YWx1YXRvcj4oYXJncyk7CkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0
b20uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3Vz
dG9tLmNwcAkocmV2aXNpb24gNTM1MTEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29j
a2V0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTc2LDcgKzc2LDcgQEANCiAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9t
Ojp2OFdlYlNvY2tldENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYlNvY2tldDo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYlNv
Y2tldC5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJv
Y2Vzc29yQ3VzdG9tLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhT
TFRQcm9jZXNzb3JDdXN0b20uY3BwCShyZXZpc2lvbiA1MzUxMSkNCisrKyBiaW5kaW5ncy92OC9j
dXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ2LDcg
KzQ2LDcgQEANCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4Q3VzdG9tOjp2OFhTTFRQcm9jZXNzb3JDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYU0xUUHJvY2Vzc29yOjpj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5D
X1NUQVRTKCJET00uWFNMVFByb2Nlc3Nvci5Db25zdHJ1Y3RvciIpOwogICAgIHJldHVybiBWOFBy
b3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4OjpYU0xUUFJPQ0VTU09SLCBYU0xU
UHJvY2Vzc29yPihhcmdzKTsKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01h
dHJpeENvbnN0cnVjdG9yLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTM1MTEpDQorKysgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpDQpAQCAtMjksNyArMjksNyBAQA0KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiVjhXZWJLaXRDU1NNYXRyaXgu
aCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgpAQCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2Vi
S2l0Q1NTTWF0cml4Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViS2l0Q1NTTWF0cml4LkNvbnN0cnVjdG9yIik7
CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvci5j
cHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVyQ29u
c3RydWN0b3IuY3BwCShyZXZpc2lvbiA1MzUxMSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhY
TUxTZXJpYWxpemVyQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzMsMTEgKzMz
LDEwIEBADQogCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgot
I2luY2x1ZGUgIlhNTFNlcmlhbGl6ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4WE1MU2VyaWFsaXplckNvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFhNTFNlcmlhbGl6ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5YTUxTZXJpYWxpemVyLkNvbnN0cnVjdG9yIik7
CiAgICAgcmV0dXJuIFY4UHJveHk6OmNvbnN0cnVjdERPTU9iamVjdDxWOENsYXNzSW5kZXg6OlhN
TFNFUklBTElaRVIsIFhNTFNlcmlhbGl6ZXI+KGFyZ3MpOwpJbmRleDogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xVbnNpZ25lZEludEFycmF5Q3VzdG9tLmNwcA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHAJKHJldmlz
aW9uIDUzNTExKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRJbnRBcnJh
eUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00NCw3ICs0NCw3IEBADQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTFVu
c2lnbmVkSW50QXJyYXlDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkSW50QXJyYXk6OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5XZWJHTFVuc2lnbmVkSW50QXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBiaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTEludEFycmF5Q3VzdG9tLmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMSW50QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1
MzUxMSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEludEFycmF5Q3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQ0KQEAgLTQ0LDcgKzQ0LDcgQEANCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMSW50QXJyYXlDb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhXZWJHTEludEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xJbnRBcnJheS5Db250cnVj
dG9yIik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMU2hvcnRBcnJheUN1c3Rv
bS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFNob3J0QXJy
YXlDdXN0b20uY3BwCShyZXZpc2lvbiA1MzUxMSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFNob3J0QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDQsNyArNDQsNyBA
QA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0
b206OnY4V2ViR0xTaG9ydEFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xTaG9ydEFycmF5Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uV2ViR0xTaG9ydEFycmF5LkNvbnRydWN0b3IiKTsKIApJbmRleDogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAkocmV2
aXNpb24gNTM1MTEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zNiwxMyArMzYsMTIgQEANCiAjaW5jbHVk
ZSAiVjhDdXN0b21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4
VXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlICJXb3Jr
ZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2
OFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OmNvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5YTUxIdHRwUmVxdWVzdC5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBodG1sL2NhbnZhcy9XZWJH
TFVuc2lnbmVkU2hvcnRBcnJheS5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBodG1sL2NhbnZhcy9XZWJH
TFVuc2lnbmVkU2hvcnRBcnJheS5pZGwJKHJldmlzaW9uIDUzNTExKQ0KKysrIGh0bWwvY2FudmFz
L1dlYkdMVW5zaWduZWRTaG9ydEFycmF5LmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTI3LDYgKzI3
LDcgQEANCiBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9M0RfQ0FOVkFTLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgSGFzTnVt
ZXJpY0luZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAg
R2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCkluZGV4OiBodG1sL2NhbnZhcy9XZWJHTFNob3J0QXJy
YXkuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xTaG9ydEFycmF5LmlkbAko
cmV2aXNpb24gNTM1MTEpDQorKysgaHRtbC9jYW52YXMvV2ViR0xTaG9ydEFycmF5LmlkbAkod29y
a2luZyBjb3B5KQ0KQEAgLTMwLDYgKzMwLDcgQEANCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0
dGVyLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAgT21pdENvbnN0
cnVjdG9yLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwog
ICAgIF0gV2ViR0xTaG9ydEFycmF5IDogV2ViR0xBcnJheSB7CiAgICAgICAgIGxvbmcgZ2V0KGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogaHRtbC9jYW52YXMvV2ViR0xGbG9hdEFycmF5
LmlkbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIGh0bWwvY2FudmFzL1dlYkdMRmxvYXRBcnJheS5pZGwJKHJl
dmlzaW9uIDUzNTExKQ0KKysrIGh0bWwvY2FudmFzL1dlYkdMRmxvYXRBcnJheS5pZGwJKHdvcmtp
bmcgY29weSkNCkBAIC0zMSw2ICszMSw3IEBADQogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRl
ciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIE9taXRDb25zdHJ1
Y3RvciwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRvSlMKICAg
ICBdIFdlYkdMRmxvYXRBcnJheSA6IFdlYkdMQXJyYXkgewogICAgICAgICBmbG9hdCBnZXQoaW4g
dW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBodG1sL2NhbnZhcy9XZWJHTEludEFycmF5Lmlk
bA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIGh0bWwvY2FudmFzL1dlYkdMSW50QXJyYXkuaWRsCShyZXZpc2lv
biA1MzUxMSkNCisrKyBodG1sL2NhbnZhcy9XZWJHTEludEFycmF5LmlkbAkod29ya2luZyBjb3B5
KQ0KQEAgLTMxLDYgKzMxLDcgQEANCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAg
ICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAgT21pdENvbnN0cnVjdG9yLAor
ICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwogICAgIF0gV2Vi
R0xJbnRBcnJheSA6IFdlYkdMQXJyYXkgewogICAgICAgICBsb25nIGdldChpbiB1bnNpZ25lZCBs
b25nIGluZGV4KTsKSW5kZXg6IGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXkuaWRs
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEJ5dGVBcnJheS5pZGwJ
KHJldmlzaW9uIDUzNTExKQ0KKysrIGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXku
aWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMzEsNiArMzEsNyBAQA0KICAgICAgICAgSGFzQ3VzdG9t
SW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBP
bWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0
b21Ub0pTCiAgICAgXSBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5IDogV2ViR0xBcnJheSB7CiAgICAg
ICAgIGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogaHRtbC9jYW52YXMv
V2ViR0xBcnJheUJ1ZmZlci5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBodG1sL2NhbnZhcy9XZWJHTEFy
cmF5QnVmZmVyLmlkbAkocmV2aXNpb24gNTM1MTEpDQorKysgaHRtbC9jYW52YXMvV2ViR0xBcnJh
eUJ1ZmZlci5pZGwJKHdvcmtpbmcgY29weSkNCkBAIC0yNCw3ICsyNCw3IEBADQogICovCiAKIG1v
ZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NBTlZBUywgT21pdENv
bnN0cnVjdG9yXSBXZWJHTEFycmF5QnVmZmVyIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFs
PTNEX0NBTlZBUywgQ3VzdG9tQ29uc3RydWN0b3IsIE9taXRDb25zdHJ1Y3Rvcl0gV2ViR0xBcnJh
eUJ1ZmZlciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgYnl0ZUxlbmd0aDsKICAg
ICB9OwogfQpJbmRleDogaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsCShyZXZpc2lvbiA1MzUxMSkNCisr
KyBodG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwJKHdvcmtpbmcgY29weSkNCkBAIC0zMSw2
ICszMSw3IEBADQogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJh
dGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAgQ3Vz
dG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRvSlMKICAgICBdIFdlYkdMQnl0ZUFycmF5
IDogV2ViR0xBcnJheSB7CiAgICAgICAgIGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwpJbmRleDogaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEludEFycmF5LmlkbA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRJbnRBcnJheS5pZGwJKHJldmlzaW9uIDUz
NTExKQ0KKysrIGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRJbnRBcnJheS5pZGwJKHdvcmtpbmcg
Y29weSkNCkBAIC0yNyw2ICsyNyw3IEBADQogbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBb
CiAgICAgICAgIENvbmRpdGlvbmFsPTNEX0NBTlZBUywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0
b3IsCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAgICAgICAgSGFzQ3VzdG9tSW5k
ZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLApJbmRleDogd2Vic29j
a2V0cy9XZWJTb2NrZXQuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gd2Vic29ja2V0cy9XZWJTb2NrZXQu
aWRsCShyZXZpc2lvbiA1MzUxMSkNCisrKyB3ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwJKHdvcmtp
bmcgY29weSkNCkBAIC0zMiw2ICszMiw3IEBADQogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9V0VCX1NPQ0tFVFMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLCAgICAK
ICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAgIE5vU3RhdGljVGFibGVzLAogICAgICAgICBP
bWl0Q29uc3RydWN0b3IKSW5kZXg6IGNzcy9XZWJLaXRDU1NNYXRyaXguaWRsDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gY3NzL1dlYktpdENTU01hdHJpeC5pZGwJKHJldmlzaW9uIDUzNTExKQ0KKysrIGNzcy9X
ZWJLaXRDU1NNYXRyaXguaWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMjYsNyArMjYsNyBAQA0KIG1v
ZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgPzoKLSAgICBpbnRl
cmZhY2UgW09taXRDb25zdHJ1Y3Rvcl0gV2ViS2l0Q1NTTWF0cml4IHsKKyAgICBpbnRlcmZhY2Ug
W0N1c3RvbUNvbnN0cnVjdG9yLCBPbWl0Q29uc3RydWN0b3JdIFdlYktpdENTU01hdHJpeCB7CiAK
ICAgICAgICAgLy8gVGhlc2UgYXR0cmlidXRlcyBhcmUgc2ltcGxlIGFsaWFzZXMgZm9yIGNlcnRh
aW4gZWxlbWVudHMgb2YgdGhlIDR4NCBtYXRyaXgKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBh
OyAvLyBhbGlhcyBmb3IgbTExCkluZGV4OiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0geG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gNTM1MTEpDQorKysgeG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTI5LDYgKzI5LDcgQEANCiBt
b2R1bGUgeG1sIHsKIAogICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9y
LAogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAg
ICAgICBOb1N0YXRpY1RhYmxlcywKSW5kZXg6IHhtbC9YUGF0aEV2YWx1YXRvci5pZGwNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsCShyZXZpc2lvbiA1MzUxMSkNCisrKyB4
bWwvWFBhdGhFdmFsdWF0b3IuaWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMTgsNyArMTgsNyBAQA0K
ICAqLwogCiBtb2R1bGUgeHBhdGggewotICAgIGludGVyZmFjZSBbQ2FuQmVDb25zdHJ1Y3RlZCwg
Q29uZGl0aW9uYWw9WFBBVEhdIFhQYXRoRXZhbHVhdG9yIHsKKyAgICBpbnRlcmZhY2UgW0NhbkJl
Q29uc3RydWN0ZWQsIEN1c3RvbUNvbnN0cnVjdG9yLCBDb25kaXRpb25hbD1YUEFUSF0gWFBhdGhF
dmFsdWF0b3IgewogICAgICAgICBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihpbiBE
T01TdHJpbmcgZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKGNv
cmU6OkRPTUV4Y2VwdGlvbik7CkluZGV4OiB4bWwvWFNMVFByb2Nlc3Nvci5pZGwNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSB4bWwvWFNMVFByb2Nlc3Nvci5pZGwJKHJldmlzaW9uIDUzNTExKQ0KKysrIHhtbC9Y
U0xUUHJvY2Vzc29yLmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTM0LDYgKzM0LDcgQEANCiAKICAg
ICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1YU0xULAorICAgICAgICBDdXN0b21D
b25zdHJ1Y3RvciwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCiAgICAgXSBYU0xUUHJvY2Vzc29y
IHsKICAgICAgICAgCkluZGV4OiB4bWwvRE9NUGFyc2VyLmlkbA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHht
bC9ET01QYXJzZXIuaWRsCShyZXZpc2lvbiA1MzUxMSkNCisrKyB4bWwvRE9NUGFyc2VyLmlkbAko
d29ya2luZyBjb3B5KQ0KQEAgLTE4LDcgKzE4LDcgQEANCiAgKi8KIAogbW9kdWxlIHhwYXRoIHsK
LSAgICBpbnRlcmZhY2UgW0NhbkJlQ29uc3RydWN0ZWRdIERPTVBhcnNlciB7CisgICAgaW50ZXJm
YWNlIFtDYW5CZUNvbnN0cnVjdGVkLCBDdXN0b21Db25zdHJ1Y3Rvcl0gRE9NUGFyc2VyIHsKICAg
ICAgICAgRG9jdW1lbnQgcGFyc2VGcm9tU3RyaW5nKGluIERPTVN0cmluZyBzdHIsIGluIERPTVN0
cmluZyBjb250ZW50VHlwZSk7CiAgICAgfTsKIH0KSW5kZXg6IHhtbC9YTUxTZXJpYWxpemVyLmlk
bA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIHhtbC9YTUxTZXJpYWxpemVyLmlkbAkocmV2aXNpb24gNTM1MTEp
DQorKysgeG1sL1hNTFNlcmlhbGl6ZXIuaWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMjAsNyArMjAs
NyBAQA0KIAogbW9kdWxlIHhwYXRoIHsKIAotICAgIGludGVyZmFjZSBbQ2FuQmVDb25zdHJ1Y3Rl
ZF0gWE1MU2VyaWFsaXplciB7CisgICAgaW50ZXJmYWNlIFtDYW5CZUNvbnN0cnVjdGVkLCBDdXN0
b21Db25zdHJ1Y3Rvcl0gWE1MU2VyaWFsaXplciB7CiAgICAgICAgIERPTVN0cmluZyBzZXJpYWxp
emVUb1N0cmluZyhpbiBOb2RlIG5vZGUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICB9Owo=
</data>
<flag name="review"
          id="29779"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47580</attachid>
            <date>2010-01-27 17:20:07 -0800</date>
            <delta_ts>2010-01-28 10:46:57 -0800</delta_ts>
            <desc>Added handling of &apos;CanBeConstructed&apos; and &apos;OmitConstructor&apos; in addition to &apos;CustomConstructor&apos;</desc>
            <filename>patch-3.txt</filename>
            <type>text/plain</type>
            <size>40637</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9NZXNzYWdlQ2hhbm5lbC5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBkb20vTWVzc2Fn
ZUNoYW5uZWwuaWRsCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBkb20vTWVzc2FnZUNoYW5uZWwuaWRs
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjYsNyArMjYsNyBAQA0KIAogbW9kdWxlIGV2ZW50cyB7CiAK
LSAgICBpbnRlcmZhY2UgW0N1c3RvbU1hcmtGdW5jdGlvbiwgTm9TdGF0aWNUYWJsZXMsIE9taXRD
b25zdHJ1Y3Rvcl0gTWVzc2FnZUNoYW5uZWwgeworICAgIGludGVyZmFjZSBbQ3VzdG9tQ29uc3Ry
dWN0b3IsIEN1c3RvbU1hcmtGdW5jdGlvbiwgTm9TdGF0aWNUYWJsZXNdIE1lc3NhZ2VDaGFubmVs
IHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDE7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdlUG9ydCBwb3J0MjsKSW5kZXg6IHBhZ2UvV2Vi
S2l0UG9pbnQuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gcGFnZS9XZWJLaXRQb2ludC5pZGwJKHJldmlz
aW9uIDUzOTQxKQ0KKysrIHBhZ2UvV2ViS2l0UG9pbnQuaWRsCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjUsNyArMjUsNyBAQA0KIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgW09taXRD
b25zdHJ1Y3Rvcl0gV2ViS2l0UG9pbnQgeworICAgIGludGVyZmFjZSBbQ3VzdG9tQ29uc3RydWN0
b3JdIFdlYktpdFBvaW50IHsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHg7CiAgICAgICAgIGF0
dHJpYnV0ZSBmbG9hdCB5OwogICAgIH07CkluZGV4OiBwYWdlL0V2ZW50U291cmNlLmlkbA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIHBhZ2UvRXZlbnRTb3VyY2UuaWRsCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBw
YWdlL0V2ZW50U291cmNlLmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTMzLDggKzMzLDggQEANCiAK
ICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1FVkVOVFNPVVJDRSwKKyAgICAg
ICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEV2ZW50VGFyZ2V0LAotICAgICAgICBPbWl0
Q29uc3RydWN0b3IsCiAgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBFdmVudFNvdXJjZSB7
CiAKSW5kZXg6IHdvcmtlcnMvU2hhcmVkV29ya2VyLmlkbA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHdvcmtl
cnMvU2hhcmVkV29ya2VyLmlkbAkocmV2aXNpb24gNTM5NDEpDQorKysgd29ya2Vycy9TaGFyZWRX
b3JrZXIuaWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMzIsMTAgKzMyLDEwIEBADQogCiAgICAgaW50
ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0hBUkVEX1dPUktFUlMsCisgICAgICAgIEN1
c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEdl
bmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBHZW5lcmF0ZVRvSlMsCi0gICAgICAgIE9t
aXRDb25zdHJ1Y3RvcgorICAgICAgICBHZW5lcmF0ZVRvSlMKICAgICBdIFNoYXJlZFdvcmtlciA6
IEFic3RyYWN0V29ya2VyIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0
IHBvcnQ7CiAgICAgfTsKSW5kZXg6IHdvcmtlcnMvV29ya2VyLmlkbA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IHdvcmtlcnMvV29ya2VyLmlkbAkocmV2aXNpb24gNTM5NDEpDQorKysgd29ya2Vycy9Xb3JrZXIu
aWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMjgsOSArMjgsOSBAQA0KIAogICAgIGludGVyZmFjZSBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVdPUktFUlMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9y
LAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgR2VuZXJhdGVUb0pT
LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICAgICAgR2VuZXJhdGVUb0pTCiAgICAgXSBX
b3JrZXIgOiBBYnN0cmFjdFdvcmtlciB7CiAKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25tZXNzYWdlOwpJbmRleDogV2ViQ29yZS5neXBpDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBXZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkN
CkBAIC02ODksNyArNjg5LDYgQEANCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERvY3VtZW50TG9jYXRpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcCcsCi0gICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2VyQ29uc3RydWN0b3IuY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwJywKQEAg
LTc1Miw4ICs3NTEsNiBAQA0KICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAnLAotICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvci5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3Iu
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRGF0ZUV4dGVuc2lvbi5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RhdGVFeHRlbnNpb24uaCcsCkluZGV4OiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQ0KQEAgLTU1Miw3ICs1NTIs
OCBAQA0KICAgICAkaW1wbEluY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21IZWFkZXIifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQdXRGdW5jdGlvbiJ9OwogCiAgICAg
bXkgJGhhc0dldHRlciA9ICRudW1BdHRyaWJ1dGVzID4gMCAKLSAgICAgICAgICAgICAgICAgfHwg
ISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9CisgICAg
ICAgICAgICAgICAgIHx8ICEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENv
bnN0cnVjdG9yIn0KKyAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkKICAgICAgICAgICAgICAgICAgfHwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifQogICAgICAgICAgICAg
ICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdl
dHRlciJ9CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9CkBAIC02NTUsNyArNjU2LDcgQEANCiAgICAgfQog
CiAgICAgIyBDb25zdHJ1Y3RvciBvYmplY3QgZ2V0dGVyCi0gICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIikgaWYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKTsKIAogICAgIG15ICRudW1DdXN0b21GdW5jdGlvbnMg
PSAwOwogICAgIG15ICRudW1DdXN0b21BdHRyaWJ1dGVzID0gMDsKQEAgLTgzOCw3ICs4MzksNyBA
QA0KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDAgfHwgISRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CisgICAg
aWYgKCRudW1BdHRyaWJ1dGVzID4gMCB8fCAhKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIi8v
IEF0dHJpYnV0ZXNcblxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0
YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRp
bnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lKSAuICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVj
dG9yJC8gPyAiQ29uc3RydWN0b3IiIDogIiIpOwpAQCAtODQ5LDcgKzg1MCw3IEBADQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIGlmICghKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7CiAgICAg
ICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgJHtnZXR0
ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgY29uc3QgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICB9CkBAIC05MTgsNyArOTE5LDcgQEANCiAKICAg
ICAjIC0gQWRkIGFsbCBhdHRyaWJ1dGVzIGluIGEgaGFzaHRhYmxlIGRlZmluaXRpb24KICAgICBt
eSAkbnVtQXR0cmlidXRlcyA9IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICAkbnVtQXR0
cmlidXRlcysrIGlmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3Ry
dWN0b3IifTsKKyAgICAkbnVtQXR0cmlidXRlcysrIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKTsKIAogICAgIGlmICgkbnVtQXR0cmlidXRl
cyA+IDApIHsKICAgICAgICAgbXkgJGhhc2hTaXplID0gJG51bUF0dHJpYnV0ZXM7CkBAIC05NTks
NyArOTYwLDcgQEANCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoISRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CisgICAg
ICAgIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3Rv
ciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9y
In0pKSB7CiAgICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgImNvbnN0cnVjdG9yIik7CiAgICAg
ICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwpAQCAtOTc3LDcgKzk3
OCw3IEBADQogICAgIG15ICRudW1GdW5jdGlvbnMgPSBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfTsK
IAogICAgICMgLSBBZGQgYWxsIGNvbnN0YW50cwotICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsKKyAgICBpZiAoISgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSkgewogICAgICAgICAkaGFz
aFNpemUgPSAkbnVtQ29uc3RhbnRzOwogICAgICAgICAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4g
IkNvbnN0cnVjdG9yVGFibGUiOwogCkBAIC0xMjEzLDcgKzEyMTQsOCBAQA0KICAgICB9CiAKICAg
ICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJpYnV0ZXMgPiAwIAotICAgICAgICAgICAgICAgICB8
fCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0gCisg
ICAgICAgICAgICAgICAgIHx8ICEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21p
dENvbnN0cnVjdG9yIn0gCisgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pCiAgICAgICAgICAgICAgICAgIHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0KICAgICAgICAg
ICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5k
ZXhHZXR0ZXIifQogICAgICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifQpAQCAtMTM2NCw3ICsxMzY2LDcgQEANCiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwogICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRD
b25zdHJ1Y3RvciJ9KSB7CisgICAgICAgICAgICBpZiAoISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSkgewogICAgICAgICAgICAgICAgIG15ICRjb25z
dHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3Rv
ciI7CiAKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtjb25z
dHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwg
Y29uc3QgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CkBAIC0xNTA1LDcgKzE1MDcsNyBAQA0KICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIAotICAgIGlmICghJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsKKyAgICBp
ZiAoISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSkg
ewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtjbGFzc05hbWV9OjpnZXRD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
XG57XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldERPTUNv
bnN0cnVjdG9yPCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yPihleGVjLCBzdGF0aWNfY2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsKSW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0J
KHJldmlzaW9uIDUzOTQxKQ0KKysrIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjk5LDYgKzI5OSwxMiBAQA0KICAgICAgICAgICAgIHB1c2go
QGVuYWJsZWRBdFJ1bnRpbWUsICRmdW5jdGlvbik7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5CZUNvbnN0cnVjdGVkIn0pIHsK
KyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOworICBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cyk7CitFTkQKKyAgICB9CiAgICAgCiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRh
Tm9kZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWU7CkBAIC0xNTI5LDcgKzE1MzUsNyBAQA0KICAgICBpZiAoJGhhc0NvbnN0cnVj
dG9ycykgewogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yR2V0dGVyKCRpbXBsQ2xhc3NOYW1l
LCAkY2xhc3NJbmRleCk7CiAgICAgfQotCisgICAKICAgICBteSAkaW5kZXhlcjsKICAgICBteSAk
bmFtZWRQcm9wZXJ0eUdldHRlcjsKICAgICAjIEdlbmVyYXRlIG1ldGhvZHMgZm9yIGZ1bmN0aW9u
cy4KQEAgLTE2NDcsNiArMTY1MywxNyBAQA0KIAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICJ9IC8vIG5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9SW50ZXJuYWxcblxuIik7CiAKKyAgICAj
IEluIG5hbWVzcGFjZSBXZWJDb3JlLCBhZGQgZ2VuZXJhdGVkIGltcGxlbWVudGF0aW9uIGZvciAn
Q2FuQmVDb25zdHJ1Y3RlZCcuCisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNhbkJlQ29uc3RydWN0ZWQifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tQ29uc3RydWN0b3IifSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxF
TkQpOworIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke2NsYXNzTmFtZX06OmNvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKKyAgeworICAgIElOQ19TVEFUUygiRE9N
LiR7aW50ZXJmYWNlTmFtZX0uQ29udHJ1Y3RvciIpOworICAgIHJldHVybiBWOFByb3h5Ojpjb25z
dHJ1Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4Ojoke2NsYXNzSW5kZXh9LCAkaW50ZXJmYWNlTmFt
ZT4oYXJncyk7CisgIH0KK0VORAorICAgfQorCiAgICAgbXkgJGFjY2Vzc19jaGVjayA9ICIiOwog
ICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3Vy
aXR5In0gJiYgISgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKICAgICAgICAgJGFj
Y2Vzc19jaGVjayA9ICJpbnN0YW5jZS0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjgke2ludGVy
ZmFjZU5hbWV9OjpuYW1lZFNlY3VyaXR5Q2hlY2ssIFY4JHtpbnRlcmZhY2VOYW1lfTo6aW5kZXhl
ZFNlY3VyaXR5Q2hlY2ssIHY4OjpJbnRlZ2VyOjpOZXcoVjhDbGFzc0luZGV4OjpUb0ludChWOENs
YXNzSW5kZXg6OiR7Y2xhc3NJbmRleH0pKSk7IjsKQEAgLTE2ODYsNyArMTcwMyw2IEBADQogICB2
ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdF9zaWduYXR1cmUgPSBjb25maWd1cmVUZW1w
bGF0ZShkZXNjLCBcIiR7aW50ZXJmYWNlTmFtZX1cIiwKICAgICAgIFY4Q2xhc3NJbmRleDo6JHBh
cmVudENsYXNzSW5kZXgsIFY4JHtpbnRlcmZhY2VOYW1lfTo6aW50ZXJuYWxGaWVsZENvdW50LAog
RU5ECi0KICAgICAjIFNldCB1cCBvdXIgYXR0cmlidXRlcyBpZiB3ZSBoYXZlIHRoZW0KICAgICBp
ZiAoJGhhc19hdHRyaWJ1dGVzKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
CkBAIC0xNzA4LDYgKzE3MjQsMTIgQEANCiBFTkQKICAgICB9CiAKKyAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5CZUNvbnN0cnVjdGVkIn0pIHsKKyAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsIDw8RU5EKTsKKyAgICAgIGRlc2MtPlNldENhbGxIYW5kbGVyKFY4JHtp
bnRlcmZhY2VOYW1lfTo6Y29uc3RydWN0b3JDYWxsYmFjayk7CitFTkQKKyAgICB9CisKICAgICBp
ZiAoJGFjY2Vzc19jaGVjayBvciBAZW5hYmxlZEF0UnVudGltZSBvciBAeyRkYXRhTm9kZS0+ZnVu
Y3Rpb25zfSBvciAkaGFzX2NvbnN0YW50cykgewogICAgIHB1c2goQGltcGxDb250ZW50LCAgPDxF
TkQpOwogICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSA9IGRlc2MtPklu
c3RhbmNlVGVtcGxhdGUoKTsKSW5kZXg6IGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCShyZXZpc2lvbiA1Mzk0
MSkNCisrKyBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjUzLDk2ICsyNTMsNyBAQA0KICAgICAvLyBOb3QgaW4gdGhlIGNhY2hlLgogICAgIEZ1bmN0aW9u
VGVtcGxhdGVGYWN0b3J5IGZhY3RvcnkgPSBWOENsYXNzSW5kZXg6OkdldEZhY3RvcnkodHlwZSk7
CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2NyaXB0b3IgPSBm
YWN0b3J5KCk7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6Ok1F
U1NBR0VDSEFOTkVMOiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9D
QUxMQkFDSyhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KIAotI2lmIEVOQUJMRShFVkVOVFNPVVJDRSkKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6RVZF
TlRTT1VSQ0U6IHsKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExC
QUNLKEV2ZW50U291cmNlQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V09SS0VS
OiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXb3Jr
ZXJDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYgLy8gV09SS0VS
UwotCi0jaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpT
SEFSRURXT1JLRVI6IHsKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NB
TExCQUNLKFNoYXJlZFdvcmtlckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LSNlbmRpZiAvLyBTSEFSRURfV09SS0VSUwotCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLSAgICAv
LyBUaGUgZm9sbG93aW5nIG9iamVjdHMgYXJlIGNyZWF0ZWQgZnJvbSBKYXZhU2NyaXB0LgotICAg
IGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTEFSUkFZQlVGRkVSOgotICAgICAgICBkZXNjcmlwdG9y
LT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9y
KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTEJZVEVBUlJB
WToKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdlYkdM
Qnl0ZUFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNz
SW5kZXg6OldFQkdMRkxPQVRBUlJBWToKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRs
ZXIoVVNFX0NBTExCQUNLKFdlYkdMRmxvYXRBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTElOVEFSUkFZOgotICAgICAgICBkZXNj
cmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xJbnRBcnJheUNvbnN0cnVj
dG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFNIT1JU
QVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhX
ZWJHTFNob3J0QXJyYXlDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4
Q2xhc3NJbmRleDo6V0VCR0xVTlNJR05FREJZVEVBUlJBWToKLSAgICAgICAgZGVzY3JpcHRvci0+
U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDb25zdHJ1
Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xVTlNJ
R05FRElOVEFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FM
TEJBQ0soV2ViR0xVbnNpZ25lZEludEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMVU5TSUdORURTSE9SVEFSUkFZOgotICAgICAg
ICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xVbnNpZ25lZFNo
b3J0QXJyYXlDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSNlbmRpZgotICAgIGNhc2Ug
VjhDbGFzc0luZGV4OjpET01QQVJTRVI6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5k
bGVyKFVTRV9DQUxMQkFDSyhET01QYXJzZXJDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCS0lUQ1NTTUFUUklYOgotICAgICAgICBkZXNjcmlw
dG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0
b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQktJVFBPSU5U
OgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViS2l0
UG9pbnRDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoV0VCX1NPQ0tF
VFMpCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQlNPQ0tFVDogewotICAgICAgICBkZXNjcmlw
dG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViU29ja2V0Q29uc3RydWN0b3IpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlmCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlhN
TFNFUklBTElaRVI6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxM
QkFDSyhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBWOENsYXNzSW5kZXg6OlhNTEhUVFBSRVFVRVNUOiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNl
dENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLSNpZiBFTkFCTEUoWFBBVEgpCi0gICAgY2FzZSBWOENsYXNz
SW5kZXg6OlhQQVRIRVZBTFVBVE9SOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxl
cihVU0VfQ0FMTEJBQ0soWFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVh
azsKLSNlbmRpZgotI2lmIEVOQUJMRShYU0xUKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpYU0xU
UFJPQ0VTU09SOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJB
Q0soWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0g
ICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgKmNhY2hlQ2VsbCA9IGRl
c2NyaXB0b3I7CiAgICAgcmV0dXJuIGRlc2NyaXB0b3I7CiB9CkluZGV4OiBiaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTM5NDEp
DQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQ0KQEAgLTQ0LDcgKzQ0LDcgQEANCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMRmxvYXRBcnJheUNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFdlYkdMRmxvYXRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMRmxvYXRBcnJheS5Db250
cnVjdG9yIik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29u
c3RydWN0b3IuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDUzOTQxKQ0KKysrIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhDdXN0b206OnY4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdl
Q2hhbm5lbDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ewogICAgIElOQ19TVEFUUygiRE9NLk1lc3NhZ2VDaGFubmVsLkNvbnN0cnVjdG9yIik7CiAgICAg
Ly8gRklYTUU6IFRoZSBsb2dpYyBoZXJlIGlzIGFsbW9zdCBleGFjdCBkdXBsaWNhdGUgb2YgVjg6
OmNvbnN0cnVjdERPTU9iamVjdC4KSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJy
YXlCdWZmZXJDdXN0b20uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xBcnJheUJ1ZmZlckN1c3RvbS5jcHAJKHJldmlzaW9uIDUzOTQxKQ0KKysrIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtNDEsNyArNDEsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdM
QXJyYXlCdWZmZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEFycmF5QnVmZmVyLkNvbnN0cnVjdG9yIik7
CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVBhcnNlckNvbnN0cnVjdG9yLmNwcA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVBhcnNlckNvbnN0cnVjdG9y
LmNwcAkocmV2aXNpb24gNTM5NDEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2Vy
Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMSw0NSArMCwwIEBADQotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRE9NUGFyc2VyLmgiCi0KLSNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OERPTVBhcnNlckNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5ET01Q
YXJzZXIuQ29udHJ1Y3RvciIpOwotICAgIHJldHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmpl
Y3Q8VjhDbGFzc0luZGV4OjpET01QQVJTRVIsIERPTVBhcnNlcj4oYXJncyk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3Rv
bS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20u
Y3BwCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0
b20uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDgsNyArNDgsNyBAQA0KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V29ya2VyQ29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V29ya2VyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKEwiRE9NLldvcmtlci5Db25zdHJ1Y3RvciIpOwogCklu
ZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTI5LDE5ICsyOSwxOSBAQA0KICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVjhXZWJLaXRQb2ludC5oIgogCiAj
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiVjhET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4
UHJveHkuaCIKLSNpbmNsdWRlICJXZWJLaXRQb2ludC5oIgogCiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhDdXN0b206OnY4V2ViS2l0UG9pbnRDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRQb2ludDo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiRE9NLldlYktpdFBvaW50LkNvbnN0cnVjdG9yIik7CiAgICAgZmxvYXQgeCA9IDA7CkluZGV4
OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEJ5dGVBcnJheUN1c3RvbS5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEJ5dGVBcnJheUN1c3RvbS5jcHAJKHJl
dmlzaW9uIDUzOTQxKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ0LDcgKzQ0LDcgQEANCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMQnl0ZUFy
cmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xCeXRlQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEJ5dGVB
cnJheS5Db250cnVjdG9yIik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5z
aWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTM5NDEp
DQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViR0xVbnNpZ25lZFNo
b3J0QXJyYXlDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheTo6Y29uc3RydWN0
b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLldlYkdMVW5zaWduZWRTaG9ydEFycmF5LkNvbnRydWN0b3IiKTsKIApJbmRleDogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5n
cy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkNCkBAIC00MCw0NSAr
NDAsMTAgQEANCiAjZGVmaW5lIERFQ0xBUkVfQ0FMTEJBQ0soTkFNRSkgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2OCMjTkFNRSMjQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKICNkZWZpbmUgVVNFX0NBTExCQUNLKE5BTUUpIFY4Q3VzdG9tOjp2OCMjTkFNRSMjQ2FsbGJh
Y2sKIAotICAgICAgICBERUNMQVJFX0NBTExCQUNLKERPTVBhcnNlckNvbnN0cnVjdG9yKTsKICAg
ICAgICAgREVDTEFSRV9DQUxMQkFDSyhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IpOwogICAg
ICAgICBERUNMQVJFX0NBTExCQUNLKEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcik7CiAgICAg
ICAgIERFQ0xBUkVfQ0FMTEJBQ0soSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcik7Ci0gICAg
ICAgIERFQ0xBUkVfQ0FMTEJBQ0soTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcik7Ci0gICAgICAg
IERFQ0xBUkVfQ0FMTEJBQ0soV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IpOwotICAgICAgICBE
RUNMQVJFX0NBTExCQUNLKFdlYktpdFBvaW50Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJF
X0NBTExCQUNLKFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NB
TExCQUNLKFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJB
Q0soWFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0so
WFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKTsKIAotI2lmIEVOQUJMRSgzRF9DQU5WQVMpCi0gICAg
ICAgIERFQ0xBUkVfQ0FMTEJBQ0soV2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKTsKLSAgICAg
ICAgREVDTEFSRV9DQUxMQkFDSyhXZWJHTEJ5dGVBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAg
REVDTEFSRV9DQUxMQkFDSyhXZWJHTEZsb2F0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERF
Q0xBUkVfQ0FMTEJBQ0soV2ViR0xJbnRBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFS
RV9DQUxMQkFDSyhXZWJHTFNob3J0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVf
Q0FMTEJBQ0soV2ViR0xVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVD
TEFSRV9DQUxMQkFDSyhXZWJHTFVuc2lnbmVkSW50QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAg
IERFQ0xBUkVfQ0FMTEJBQ0soV2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0j
ZW5kaWYKLQotI2lmIEVOQUJMRShXT1JLRVJTKQotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdv
cmtlckNvbnN0cnVjdG9yKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQot
ICAgICAgICBERUNMQVJFX0NBTExCQUNLKFNoYXJlZFdvcmtlckNvbnN0cnVjdG9yKTsKLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdl
YlNvY2tldENvbnN0cnVjdG9yKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKEVWRU5UU09VUkNFKQot
ICAgICAgICBERUNMQVJFX0NBTExCQUNLKEV2ZW50U291cmNlQ29uc3RydWN0b3IpOwotI2VuZGlm
Ci0KICN1bmRlZiBERUNMQVJFX0NBTExCQUNLCiAgICAgfTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDdXN0
b20uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDUzOTQxKQ0KKysrIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFdlYkdMVW5zaWduZWRCeXRlQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFVuc2lnbmVkQnl0ZUFy
cmF5LkNvbnRydWN0b3IiKTsKIApJbmRleDogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U2hhcmVkV29y
a2VyQ3VzdG9tLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFNoYXJl
ZFdvcmtlckN1c3RvbS5jcHAJKHJldmlzaW9uIDUzOTQxKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFNoYXJlZFdvcmtlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zMiw3ICszMiw3
IEBADQogCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogCi0jaW5jbHVkZSAiU2hhcmVkV29y
a2VyLmgiCisjaW5jbHVkZSAiVjhTaGFyZWRXb3JrZXIuaCIKIAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDUsNyArNDUsNyBAQA0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4U2hhcmVk
V29ya2VyQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4U2hhcmVkV29ya2VyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKEwiRE9NLlNoYXJlZFdv
cmtlci5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudFNv
dXJjZUNvbnN0cnVjdG9yLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEV2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5n
cy92OC9jdXN0b20vVjhFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTQ0LDcgKzQ0LDcgQEANCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OEV2ZW50U291cmNlQ29uc3RydWN0b3JDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RXZlbnRTb3Vy
Y2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS5FdmVudFNvdXJjZS5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBiaW5k
aW5ncy92OC9jdXN0b20vVjhYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yLmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IuY3Bw
CShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhYUGF0aEV2YWx1YXRv
ckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTEsNDYgKzAsMCBAQA0KLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlY4WFBhdGhFdmFsdWF0b3IuaCIKLQotI2luY2x1ZGUg
IlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlICJYUGF0aEV2YWx1
YXRvci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEN1c3RvbTo6djhYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5YUGF0aEV2YWx1YXRvci5Db25z
dHJ1Y3RvciIpOwotICAgIHJldHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8VjhDbGFz
c0luZGV4OjpYUEFUSEVWQUxVQVRPUiwgWFBhdGhFdmFsdWF0b3I+KGFyZ3MpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRD
dXN0b20uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0
Q3VzdG9tLmNwcAkocmV2aXNpb24gNTM5NDEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
U29ja2V0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTc2LDcgKzc2LDcgQEANCiAgICAg
cmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3Vz
dG9tOjp2OFdlYlNvY2tldENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYlNvY2tldDo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldl
YlNvY2tldC5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xU
UHJvY2Vzc29yQ3VzdG9tLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5ncy92
OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ2
LDcgKzQ2LDcgQEANCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4Q3VzdG9tOjp2OFhTTFRQcm9jZXNzb3JDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYU0xUUHJvY2Vzc29y
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uWFNMVFByb2Nlc3Nvci5Db25zdHJ1Y3RvciIpOwogICAgIHJldHVybiBW
OFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4OjpYU0xUUFJPQ0VTU09SLCBY
U0xUUHJvY2Vzc29yPihhcmdzKTsKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTM5NDEpDQorKysg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMjksNyArMjksNyBAQA0KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiVjhXZWJLaXRDU1NNYXRy
aXguaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgpAQCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
V2ViS2l0Q1NTTWF0cml4Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViS2l0Q1NTTWF0cml4LkNvbnN0cnVjdG9y
Iik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rv
ci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVy
Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20v
VjhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMSw0NiAr
MCwwIEBADQotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVjhYTUxTZXJpYWxpemVyLmgi
Ci0KLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCi0jaW5jbHVk
ZSAiWE1MU2VyaWFsaXplci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlhNTFNlcmlh
bGl6ZXIuQ29uc3RydWN0b3IiKTsKLSAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9NT2Jq
ZWN0PFY4Q2xhc3NJbmRleDo6WE1MU0VSSUFMSVpFUiwgWE1MU2VyaWFsaXplcj4oYXJncyk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1Mzk0
MSkNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDQsNyArNDQsNyBAQA0KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViR0xVbnNpZ25lZElu
dEFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xVbnNpZ25lZEludEFycmF5Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00u
V2ViR0xVbnNpZ25lZEludEFycmF5LkNvbnRydWN0b3IiKTsKIApJbmRleDogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBiaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTEludEFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTM5NDEpDQor
KysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC00NCw3ICs0NCw3IEBADQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTEludEFycmF5Q29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
V2ViR0xJbnRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMSW50QXJyYXkuQ29udHJ1Y3RvciIpOwog
CkluZGV4OiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFNob3J0QXJyYXlDdXN0b20uY3BwDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xTaG9ydEFycmF5Q3VzdG9t
LmNwcAkocmV2aXNpb24gNTM5NDEpDQorKysgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xTaG9y
dEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ0LDcgKzQ0LDcgQEANCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdl
YkdMU2hvcnRBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMU2hvcnRBcnJheTo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9N
LldlYkdMU2hvcnRBcnJheS5Db250cnVjdG9yIik7CiAKSW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDUz
OTQxKQ0KKysrIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzYsMTMgKzM2LDEyIEBADQogI2luY2x1ZGUgIlY4Q3Vz
dG9tQmluZGluZy5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGll
cy5oIgotI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uWE1MSHR0
cFJlcXVlc3QuQ29uc3RydWN0b3IiKTsKIApJbmRleDogaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25l
ZFNob3J0QXJyYXkuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25l
ZFNob3J0QXJyYXkuaWRsCShyZXZpc2lvbiA1Mzk0MSkNCisrKyBodG1sL2NhbnZhcy9XZWJHTFVu
c2lnbmVkU2hvcnRBcnJheS5pZGwJKHdvcmtpbmcgY29weSkNCkBAIC0yNywxMCArMjcsMTAgQEAN
CiBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9M0Rf
Q0FOVkFTLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJh
dGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgQ3Vz
dG9tVG9KUwogICAgIF0gV2ViR0xVbnNpZ25lZFNob3J0QXJyYXkgOiBXZWJHTEFycmF5IHsKICAg
ICAgICAgbG9uZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBodG1sL2NhbnZh
cy9XZWJHTFNob3J0QXJyYXkuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xT
aG9ydEFycmF5LmlkbAkocmV2aXNpb24gNTM5NDEpDQorKysgaHRtbC9jYW52YXMvV2ViR0xTaG9y
dEFycmF5LmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTI5LDcgKzI5LDcgQEANCiAgICAgICAgIEhh
c051bWVyaWNJbmRleEdldHRlciwKICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAg
ICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisg
ICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJH
TFNob3J0QXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgbG9uZyBnZXQoaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CkluZGV4OiBodG1sL2NhbnZhcy9XZWJHTEZsb2F0QXJyYXkuaWRsDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xGbG9hdEFycmF5LmlkbAkocmV2aXNpb24gNTM5
NDEpDQorKysgaHRtbC9jYW52YXMvV2ViR0xGbG9hdEFycmF5LmlkbAkod29ya2luZyBjb3B5KQ0K
QEAgLTMwLDcgKzMwLDcgQEANCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAgICAg
ICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVy
LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAog
ICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJHTEZsb2F0QXJyYXkgOiBXZWJHTEFycmF5IHsK
ICAgICAgICAgZmxvYXQgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogaHRtbC9j
YW52YXMvV2ViR0xJbnRBcnJheS5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBodG1sL2NhbnZhcy9XZWJH
TEludEFycmF5LmlkbAkocmV2aXNpb24gNTM5NDEpDQorKysgaHRtbC9jYW52YXMvV2ViR0xJbnRB
cnJheS5pZGwJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw3IEBADQogICAgICAgICBIYXNO
dW1lcmljSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAg
ICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgT21pdENvbnN0cnVjdG9yLAorICAg
ICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwogICAgIF0gV2ViR0xJ
bnRBcnJheSA6IFdlYkdMQXJyYXkgewogICAgICAgICBsb25nIGdldChpbiB1bnNpZ25lZCBsb25n
IGluZGV4KTsKSW5kZXg6IGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXkuaWRsDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEJ5dGVBcnJheS5pZGwJKHJl
dmlzaW9uIDUzOTQxKQ0KKysrIGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXkuaWRs
CSh3b3JraW5nIGNvcHkpDQpAQCAtMzAsNyArMzAsNyBAQA0KICAgICAgICAgSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJh
dGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAgQ3Vz
dG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRvSlMKICAgICBdIFdlYkdMVW5zaWduZWRC
eXRlQXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgbG9uZyBnZXQoaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCk7CkluZGV4OiBodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIGh0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsCShyZXZpc2lvbiA1Mzk0
MSkNCisrKyBodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbAkod29ya2luZyBjb3B5KQ0K
QEAgLTI0LDcgKzI0LDcgQEANCiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
Q29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBPbWl0Q29uc3RydWN0b3JdIFdlYkdMQXJyYXlCdWZmZXIg
eworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBDdXN0b21Db25zdHJ1Y3Rv
ciwgT21pdENvbnN0cnVjdG9yXSBXZWJHTEFycmF5QnVmZmVyIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGludCBieXRlTGVuZ3RoOwogICAgIH07CiB9CkluZGV4OiBodG1sL2NhbnZhcy9X
ZWJHTEJ5dGVBcnJheS5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBodG1sL2NhbnZhcy9XZWJHTEJ5dGVB
cnJheS5pZGwJKHJldmlzaW9uIDUzOTQxKQ0KKysrIGh0bWwvY2FudmFzL1dlYkdMQnl0ZUFycmF5
LmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTMxLDYgKzMxLDcgQEANCiAgICAgICAgIEhhc0N1c3Rv
bUluZGV4U2V0dGVyLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAg
T21pdENvbnN0cnVjdG9yLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3Vz
dG9tVG9KUwogICAgIF0gV2ViR0xCeXRlQXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgbG9u
ZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBodG1sL2NhbnZhcy9XZWJHTFVu
c2lnbmVkSW50QXJyYXkuaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHRtbC9jYW52YXMvV2ViR0xVbnNp
Z25lZEludEFycmF5LmlkbAkocmV2aXNpb24gNTM5NDEpDQorKysgaHRtbC9jYW52YXMvV2ViR0xV
bnNpZ25lZEludEFycmF5LmlkbAkod29ya2luZyBjb3B5KQ0KQEAgLTI3LDEwICsyNywxMCBAQA0K
IG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD0zRF9D
QU5WQVMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNOdW1lcmljSW5k
ZXhHZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAgICBHZW5lcmF0
ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgT21pdENvbnN0cnVjdG9yLAogICAgICAgICBDdXN0
b21Ub0pTCiAgICAgXSBXZWJHTFVuc2lnbmVkSW50QXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAg
ICAgdW5zaWduZWQgbG9uZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiB3ZWJz
b2NrZXRzL1dlYlNvY2tldC5pZGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB3ZWJzb2NrZXRzL1dlYlNvY2tl
dC5pZGwJKHJldmlzaW9uIDUzOTQxKQ0KKysrIHdlYnNvY2tldHMvV2ViU29ja2V0LmlkbAkod29y
a2luZyBjb3B5KQ0KQEAgLTMyLDkgKzMyLDkgQEANCiAKICAgICBpbnRlcmZhY2UgWwogICAgICAg
ICBDb25kaXRpb25hbD1XRUJfU09DS0VUUywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsICAg
IAogICAgICAgICBFdmVudFRhcmdldCwKLSAgICAgICAgTm9TdGF0aWNUYWJsZXMsCi0gICAgICAg
IE9taXRDb25zdHJ1Y3RvcgorICAgICAgICBOb1N0YXRpY1RhYmxlcwogICAgIF0gV2ViU29ja2V0
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7CiAKSW5kZXg6IGNz
cy9XZWJLaXRDU1NNYXRyaXguaWRsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gY3NzL1dlYktpdENTU01hdHJp
eC5pZGwJKHJldmlzaW9uIDUzOTQxKQ0KKysrIGNzcy9XZWJLaXRDU1NNYXRyaXguaWRsCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMjYsNyArMjYsNyBAQA0KIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgPzoKLSAgICBpbnRlcmZhY2UgW09taXRDb25zdHJ1Y3Rvcl0g
V2ViS2l0Q1NTTWF0cml4IHsKKyAgICBpbnRlcmZhY2UgW0N1c3RvbUNvbnN0cnVjdG9yXSBXZWJL
aXRDU1NNYXRyaXggewogCiAgICAgICAgIC8vIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIHNpbXBsZSBh
bGlhc2VzIGZvciBjZXJ0YWluIGVsZW1lbnRzIG9mIHRoZSA0eDQgbWF0cml4CiAgICAgICAgIGF0
dHJpYnV0ZSBkb3VibGUgYTsgLy8gYWxpYXMgZm9yIG0xMQpJbmRleDogeG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9u
IDUzOTQxKQ0KKysrIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkNCkBAIC0y
OSwxMCArMjksMTAgQEANCiBtb2R1bGUgeG1sIHsKIAogICAgIGludGVyZmFjZSBbCisgICAgICAg
IEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAg
IEV2ZW50VGFyZ2V0LAotICAgICAgICBOb1N0YXRpY1RhYmxlcywKLSAgICAgICAgT21pdENvbnN0
cnVjdG9yCisgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBYTUxIdHRwUmVxdWVzdCB7CiAg
ICAgICAgIC8vIEZyb20gWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldAogICAgICAgICAvLyBldmVu
dCBoYW5kbGVyIGF0dHJpYnV0ZXMKSW5kZXg6IHhtbC9YU0xUUHJvY2Vzc29yLmlkbA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIHhtbC9YU0xUUHJvY2Vzc29yLmlkbAkocmV2aXNpb24gNTM5NDEpDQorKysgeG1s
L1hTTFRQcm9jZXNzb3IuaWRsCSh3b3JraW5nIGNvcHkpDQpAQCAtMzQsNyArMzQsNyBAQA0KIAog
ICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVhTTFQsCi0gICAgICAgIE9taXRD
b25zdHJ1Y3RvcgorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvcgogICAgIF0gWFNMVFByb2Nlc3Nv
ciB7CiAgICAgICAgIAogICAgICAgICBbQ3VzdG9tXSB2b2lkIGltcG9ydFN0eWxlc2hlZXQoaW4g
Tm9kZSBzdHlsZXNoZWV0KTsKSW5kZXg6IEFuZHJvaWQudjhiaW5kaW5ncy5taw0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIEFuZHJvaWQudjhiaW5kaW5ncy5tawkocmV2aXNpb24gNTM5NDEpDQorKysgQW5kcm9p
ZC52OGJpbmRpbmdzLm1rCSh3b3JraW5nIGNvcHkpDQpAQCAtMTAxLDcgKzEwMSw2IEBADQogCWJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAg
XAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5jcHAgXAogCWJpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwIFwKLQliaW5kaW5n
cy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1
c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFH
cmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFiYXNl
Q3VzdG9tLmNwcCBcCkBAIC0xNjMsOCArMTYyLDcgQEANCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V29ya2VyQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcCBcCi0JYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0
b20uY3BwIFwKLQliaW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3Iu
Y3BwCisJYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3Bw
CiAKIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYnJpZGdlL2puaS9KTklVdGlsaXR5LmNwcAo=
</data>
<flag name="review"
          id="30053"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47653</attachid>
            <date>2010-01-28 15:41:17 -0800</date>
            <delta_ts>2010-01-28 16:16:02 -0800</delta_ts>
            <desc>Added ChangeLog</desc>
            <filename>patch-4.txt</filename>
            <type>text/plain</type>
            <size>46175</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9k
b20vTWVzc2FnZUNoYW5uZWwuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAK
IG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFtDdXN0b21NYXJrRnVuY3Rpb24sIE5v
U3RhdGljVGFibGVzLCBPbWl0Q29uc3RydWN0b3JdIE1lc3NhZ2VDaGFubmVsIHsKKyAgICBpbnRl
cmZhY2UgW0N1c3RvbUNvbnN0cnVjdG9yLCBDdXN0b21NYXJrRnVuY3Rpb24sIE5vU3RhdGljVGFi
bGVzXSBNZXNzYWdlQ2hhbm5lbCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3Nh
Z2VQb3J0IHBvcnQxOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9y
dDI7CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTQwMjQpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDc0IEBACisyMDEwLTAxLTI4ICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRr
YXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtWOF0gR2VuZXJhdGUgaGVhZGVyIGRlY2xhcmF0aW9uIGZvciBjdXN0b20gY29u
c3RydWN0b3IgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMzY4MAorCisgICAgICAgIEFkZGVkIGhhbmRsaW5nIG9mICdDYW5CZUNvbnN0
cnVjdGVkJyBhbmQgJ09taXRDb25zdHJ1Y3RvcicgYW5kIGEgbmV3IGV4dGVuZGVkIGF0dHJpYnV0
ZQorCUN1c3RvbUNvbnN0cnVjdG9yJy4KKworICAgICAgICBEZWxldGVkIGltcGxlbWVudGF0aW9u
IC5jcHAgZmlsZXMgZm9yIGNvcnJlc3BvbmRpbmcgJ0NhbkJlQ29uc3RydWN0ZWQnCisgICAgICAg
IGV4dGVuZGVkIGF0dHJpYnV0ZXMuIFRoZXNlIGFyZSBub3cgZ2VuZXJhdGVkIHZpYSBDb2RlR2Vu
ZXJhdG9yVjgucG0KKyAgICAgICAgVHJlYXRpbmcgJ09taXRDb25zdHJ1Y3RvcicgYW5kICdDdXN0
b21Db25zdHJ1Y3RvcicgdG8gYmUgdGhlIHNhbWUgaW4KKyAgICAgICAgQ29kZUdlbmVyYXRvckpT
LnBtCisgICAgICAgIENsZWFuZWQgaWRscyB0aGF0IGhhZCAnQ3VzdG9tQ29uc3RydWN0b3InIGFu
ZCAnT21pdENvbnN0cnVjdG9yJyB0b2dldGhlciwgYW5kCisgICAgICAgIHNhbWUgd2l0aCBDdXN0
b21Db25zdHJ1Y3RvciBhbmQgQ2FuQmVDb25zdHJ1Y3RlZC4KKworICAgICAgICAqIEFuZHJvaWQu
djhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IFJlbW92ZWQgZGVwcyBmb3Ig
Y2xhc3NlcyBiZWluZyBnZW5lcmF0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06IE9taXRDb25zdHJ1Y3RvciBhbmQgQ3VzdG9tQ29uc3RydWN0b3IgaGF2
ZSB0aGUgc2FtZSBiZWhhdmlvciBpbiBnZW5lcmF0b3IuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IEdlbmVyYXRpbmcgdGhlIGNhbGxiYWNrcyBmb3IgY29u
c3RydWN0b3JzLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6IFJlbW92
ZWQgbWFudWFsIGNhbGxzIHRvIFNldENhbGxIYW5kbGVyKCkgZm9yIGNvbnN0cnVjdG9yIGNhbGxi
YWNrcy4KKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6Z2V0VGVtcGxhdGUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaDogUmVtb3ZlZCBtYW51
YWwgZGVjbGFyYXRpb25zIG9mIGNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOEV2ZW50U291cmNlOjpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFNoYXJlZFdvcmtlckN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFNoYXJlZFdvcmtlcjo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xBcnJheUJ1ZmZlckN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFdlYkdMQXJyYXlCdWZmZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xCeXRlQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMRmxvYXRBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMRmxvYXRBcnJheTo6Y29uc3RydWN0b3JD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xJbnRBcnJheUN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMSW50QXJyYXk6OmNvbnN0cnVjdG9y
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMU2hvcnRBcnJh
eUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMU2hvcnRBcnJheTo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNp
Z25lZEJ5dGVBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMVW5zaWdu
ZWRCeXRlQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOFdlYkdMVW5zaWduZWRJbnRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheTo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NT
TWF0cml4Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJLaXRDU1NNYXRy
aXg6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJLaXRQ
b2ludDo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViU29ja2V0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViU29ja2V0Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXb3Jr
ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXb3JrZXI6OmNvbnN0cnVjdG9yQ2Fs
bGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVxdWVzdDo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MU2VyaWFs
aXplckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYUGF0
aEV2YWx1YXRvckNvbnN0cnVjdG9yLmNwcDogRGVsZXRlZCB0aGUgZmlsZS4gSW1wbGVtZW50YXRp
b24gbm93IGJlaW5nIGdlbmVyYXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhY
U0xUUHJvY2Vzc29yQ3VzdG9tLmNwcDogRGVsZXRlZCB0aGUgZmlsZS4gSW1wbGVtZW50YXRpb24g
bm93IGJlaW5nIGdlbmVyYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6
Y29uc3RydWN0b3JDYWxsYmFjayk6IERlbGV0ZWQgdGhlIGZpbGUuIEltcGxlbWVudGF0aW9uIG5v
dyBiZWluZyBnZW5lcmF0ZWQuCisgICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5pZGw6IEFk
ZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBkb20vTWVzc2FnZUNo
YW5uZWwuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xBcnJheUJ1ZmZlci5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9y
IGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGw6IEFk
ZGVkIEN1c3RvbUNvbnN0cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTEZsb2F0QXJyYXkuaWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xJbnRBcnJheS5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0
cnVjdG9yIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNob3J0QXJyYXku
aWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xVbnNpZ25lZEJ5dGVBcnJheS5pZGw6IEFkZGVkIEN1c3RvbUNvbnN0cnVjdG9y
IGF0dHJpYnV0ZS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkSW50QXJyYXku
aWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisKIDIwMTAtMDEtMjggIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhbiBhc3NlcnRpb24g
YmVuZWF0aCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplIG9uIDMyLWJpdApJbmRl
eDogV2ViQ29yZS9wYWdlL1dlYktpdFBvaW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvV2ViS2l0UG9pbnQuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvcGFnZS9XZWJL
aXRQb2ludC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogbW9kdWxlIHdp
bmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgW09taXRDb25zdHJ1Y3Rvcl0gV2ViS2l0UG9pbnQgewor
ICAgIGludGVyZmFjZSBbQ3VzdG9tQ29uc3RydWN0b3JdIFdlYktpdFBvaW50IHsKICAgICAgICAg
YXR0cmlidXRlIGZsb2F0IHg7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5OwogICAgIH07Cklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9wYWdlL0V2
ZW50U291cmNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsOCBAQAogCiAgICAgaW50
ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RVZFTlRTT1VSQ0UsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAogICAgICAgICBFdmVudFRhcmdldCwKLSAgICAgICAgT21pdENvbnN0cnVj
dG9yLAogICAgICAgICBOb1N0YXRpY1RhYmxlcwogICAgIF0gRXZlbnRTb3VyY2UgewogCkluZGV4
OiBXZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL3dv
cmtlcnMvU2hhcmVkV29ya2VyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBA
CiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1TSEFSRURfV09SS0VSUywK
KyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwK
ICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIEdlbmVyYXRlVG9KUywK
LSAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgICAgIEdlbmVyYXRlVG9KUwogICAgIF0gU2hh
cmVkV29ya2VyIDogQWJzdHJhY3RXb3JrZXIgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
TWVzc2FnZVBvcnQgcG9ydDsKICAgICB9OwpJbmRleDogV2ViQ29yZS93b3JrZXJzL1dvcmtlci5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwJKHJldmlzaW9uIDU0
MDA4KQorKysgV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDkgKzI4LDkgQEAKIAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdPUktF
UlMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNv
bnZlcnRlciwKLSAgICAgICAgR2VuZXJhdGVUb0pTLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IK
KyAgICAgICAgR2VuZXJhdGVUb0pTCiAgICAgXSBXb3JrZXIgOiBBYnN0cmFjdFdvcmtlciB7CiAK
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tZXNzYWdlOwpJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlz
aW9uIDU0MDA4KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTY4
OSw3ICs2ODksNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRl
ZFdvcmtlckNvbnRleHRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0
b20vVjhEb2N1bWVudExvY2F0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NQXBwbGljYXRpb25DYWNoZUN1c3RvbS5jcHAnLAotICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVBhcnNlckNvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhFbGVtZW50Q3VzdG9tLmNwcCcsCkBAIC03NTIsOCAr
NzUxLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVz
dENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvci5jcHAnLAotICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IuY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRGF0ZUV4dGVuc2lvbi5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0RhdGVFeHRlbnNpb24uaCcsCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAt
NTUyLDcgKzU1Miw4IEBACiAgICAgJGltcGxJbmNsdWRlc3siJHtjbGFzc05hbWV9Q3VzdG9tLmgi
fSA9IDEgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSGVhZGVyIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHV0RnVuY3Rpb24ifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHV0RnVuY3Rpb24i
fTsKIAogICAgIG15ICRoYXNHZXR0ZXIgPSAkbnVtQXR0cmlidXRlcyA+IDAgCi0gICAgICAgICAg
ICAgICAgIHx8ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0
b3IifQorICAgICAgICAgICAgICAgICB8fCAhKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik9taXRDb25zdHJ1Y3RvciJ9CisgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pCiAgICAgICAgICAgICAgICAg
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0KICAg
ICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3Vz
dG9tSW5kZXhHZXR0ZXIifQogICAgICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifQpAQCAtNjU1LDcgKzY1Niw3IEBA
CiAgICAgfQogCiAgICAgIyBDb25zdHJ1Y3RvciBvYmplY3QgZ2V0dGVyCi0gICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIikgaWYgISRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9OworICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKTsKIAogICAgIG15ICRudW1DdXN0b21G
dW5jdGlvbnMgPSAwOwogICAgIG15ICRudW1DdXN0b21BdHRyaWJ1dGVzID0gMDsKQEAgLTgzOCw3
ICs4MzksNyBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCRudW1BdHRyaWJ1dGVzID4g
MCB8fCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0p
IHsKKyAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwIHx8ICEoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwiLy8gQXR0cmlidXRlc1xuXG4iKTsKICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRl
IChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAi
anMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAv
Q29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7CkBAIC04NDksNyArODUwLDcgQEAK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCEkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSkgeworICAgICAgICBp
ZiAoISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSkg
ewogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25z
dHJ1Y3RvciI7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVl
ICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIGNvbnN0
IEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgfQpAQCAtOTE4LDcgKzkxOSw3IEBA
CiAKICAgICAjIC0gQWRkIGFsbCBhdHRyaWJ1dGVzIGluIGEgaGFzaHRhYmxlIGRlZmluaXRpb24K
ICAgICBteSAkbnVtQXR0cmlidXRlcyA9IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICAk
bnVtQXR0cmlidXRlcysrIGlmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0
Q29uc3RydWN0b3IifTsKKyAgICAkbnVtQXR0cmlidXRlcysrIGlmICghKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKTsKIAogICAgIGlmICgkbnVtQXR0
cmlidXRlcyA+IDApIHsKICAgICAgICAgbXkgJGhhc2hTaXplID0gJG51bUF0dHJpYnV0ZXM7CkBA
IC05NTksNyArOTYwLDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlm
ICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsK
KyAgICAgICAgaWYgKCEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0
cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3Ry
dWN0b3IifSkpIHsKICAgICAgICAgICAgIHB1c2goQGhhc2hLZXlzLCAiY29uc3RydWN0b3IiKTsK
ICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3Ry
dWN0b3IiOwogICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7CkBAIC05Nzcs
NyArOTc4LDcgQEAKICAgICBteSAkbnVtRnVuY3Rpb25zID0gQHskZGF0YU5vZGUtPmZ1bmN0aW9u
c307CiAKICAgICAjIC0gQWRkIGFsbCBjb25zdGFudHMKLSAgICBpZiAoISRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CisgICAgaWYgKCEoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkpIHsKICAgICAgICAg
JGhhc2hTaXplID0gJG51bUNvbnN0YW50czsKICAgICAgICAgJGhhc2hOYW1lID0gJGNsYXNzTmFt
ZSAuICJDb25zdHJ1Y3RvclRhYmxlIjsKIApAQCAtMTIxMyw3ICsxMjE0LDggQEAKICAgICB9CiAK
ICAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJpYnV0ZXMgPiAwIAotICAgICAgICAgICAgICAg
ICB8fCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0g
CisgICAgICAgICAgICAgICAgIHx8ICEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
T21pdENvbnN0cnVjdG9yIn0gCisgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pCiAgICAgICAgICAgICAgICAgIHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0KICAgICAg
ICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9t
SW5kZXhHZXR0ZXIifQogICAgICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifQpAQCAtMTM2NCw3ICsxMzY2LDcgQEAK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21p
dENvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgICAgIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7CiAgICAgICAgICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVj
dG9yIjsKIAogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSAke2Nv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
LCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKQEAgLTE1MDUsNyArMTUwNyw3IEBACiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CiAKLSAgICBpZiAoISRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CisgICAg
aWYgKCEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkp
IHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Y2xhc3NOYW1lfTo6Z2V0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KVxue1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01D
b25zdHJ1Y3Rvcjwke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcj4oZXhlYywgc3RhdGljX2Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjk5LDYgKzI5OSwxMiBA
QAogICAgICAgICAgICAgcHVzaChAZW5hYmxlZEF0UnVudGltZSwgJGZ1bmN0aW9uKTsKICAgICAg
ICAgfQogICAgIH0KKworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNh
bkJlQ29uc3RydWN0ZWQifSkgeworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7
CisgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKTsKK0VORAorICAgIH0KICAgICAKICAgICBmb3JlYWNoIG15
ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgewogICAgICAgICBteSAkbmFt
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKQEAgLTE1MzQsNyArMTU0MCw3IEBACiAg
ICAgaWYgKCRoYXNDb25zdHJ1Y3RvcnMpIHsKICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3Rvckdl
dHRlcigkaW1wbENsYXNzTmFtZSwgJGNsYXNzSW5kZXgpOwogICAgIH0KLQorICAgCiAgICAgbXkg
JGluZGV4ZXI7CiAgICAgbXkgJG5hbWVkUHJvcGVydHlHZXR0ZXI7CiAgICAgIyBHZW5lcmF0ZSBt
ZXRob2RzIGZvciBmdW5jdGlvbnMuCkBAIC0xNjUyLDYgKzE2NTgsMTcgQEAKIAogICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICJ9IC8vIG5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9SW50ZXJu
YWxcblxuIik7CiAKKyAgICAjIEluIG5hbWVzcGFjZSBXZWJDb3JlLCBhZGQgZ2VuZXJhdGVkIGlt
cGxlbWVudGF0aW9uIGZvciAnQ2FuQmVDb25zdHJ1Y3RlZCcuCisgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJlQ29uc3RydWN0ZWQifSAmJiAhJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkgeworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOworIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke2NsYXNzTmFt
ZX06OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKKyAgewor
ICAgIElOQ19TVEFUUygiRE9NLiR7aW50ZXJmYWNlTmFtZX0uQ29udHJ1Y3RvciIpOworICAgIHJl
dHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4Ojoke2NsYXNzSW5k
ZXh9LCAkaW50ZXJmYWNlTmFtZT4oYXJncyk7CisgIH0KK0VORAorICAgfQorCiAgICAgbXkgJGFj
Y2Vzc19jaGVjayA9ICIiOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDaGVja0RvbWFpblNlY3VyaXR5In0gJiYgISgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IikpIHsKICAgICAgICAgJGFjY2Vzc19jaGVjayA9ICJpbnN0YW5jZS0+U2V0QWNjZXNzQ2hlY2tD
YWxsYmFja3MoVjgke2ludGVyZmFjZU5hbWV9OjpuYW1lZFNlY3VyaXR5Q2hlY2ssIFY4JHtpbnRl
cmZhY2VOYW1lfTo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4OjpJbnRlZ2VyOjpOZXcoVjhDbGFz
c0luZGV4OjpUb0ludChWOENsYXNzSW5kZXg6OiR7Y2xhc3NJbmRleH0pKSk7IjsKQEAgLTE2OTEs
NyArMTcwOCw2IEBACiAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0X3NpZ25hdHVy
ZSA9IGNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsIFwiJHtpbnRlcmZhY2VOYW1lfVwiLAogICAgICAg
VjhDbGFzc0luZGV4OjokcGFyZW50Q2xhc3NJbmRleCwgVjgke2ludGVyZmFjZU5hbWV9OjppbnRl
cm5hbEZpZWxkQ291bnQsCiBFTkQKLQogICAgICMgU2V0IHVwIG91ciBhdHRyaWJ1dGVzIGlmIHdl
IGhhdmUgdGhlbQogICAgIGlmICgkaGFzX2F0dHJpYnV0ZXMpIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKQEAgLTE3MTMsNiArMTcyOSwxMiBAQAogRU5ECiAgICAgfQogCisg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9y
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FuQmVDb25zdHJ1Y3RlZCJ9
KSB7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CisgICAgICBkZXNjLT5TZXRD
YWxsSGFuZGxlcihWOCR7aW50ZXJmYWNlTmFtZX06OmNvbnN0cnVjdG9yQ2FsbGJhY2spOworRU5E
CisgICAgfQorCiAgICAgaWYgKCRhY2Nlc3NfY2hlY2sgb3IgQGVuYWJsZWRBdFJ1bnRpbWUgb3Ig
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc30gb3IgJGhhc19jb25zdGFudHMpIHsKICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIDw8RU5EKTsKICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5z
dGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdyYXBwZXIuY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDk2ICsyNTQsNyBAQAogICAg
IC8vIE5vdCBpbiB0aGUgY2FjaGUuCiAgICAgRnVuY3Rpb25UZW1wbGF0ZUZhY3RvcnkgZmFjdG9y
eSA9IFY4Q2xhc3NJbmRleDo6R2V0RmFjdG9yeSh0eXBlKTsKICAgICB2ODo6UGVyc2lzdGVudDx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzY3JpcHRvciA9IGZhY3RvcnkoKTsKLSAgICBzd2l0Y2gg
KHR5cGUpIHsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6TUVTU0FHRUNIQU5ORUw6IHsKLSAgICAg
ICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKE1lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogCi0jaWYgRU5BQkxFKEVWRU5U
U09VUkNFKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpFVkVOVFNPVVJDRTogewotICAgICAgICBk
ZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soRXZlbnRTb3VyY2VDb25zdHJ1
Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShXT1JL
RVJTKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXT1JLRVI6IHsKLSAgICAgICAgZGVzY3JpcHRv
ci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdvcmtlckNvbnN0cnVjdG9yKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSNlbmRpZiAvLyBXT1JLRVJTCi0KLSNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUlMpCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlNIQVJFRFdPUktFUjogewotICAgICAg
ICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soU2hhcmVkV29ya2VyQ29u
c3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlmIC8vIFNIQVJFRF9XT1JL
RVJTCi0KLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQotICAgIC8vIFRoZSBmb2xsb3dpbmcgb2JqZWN0
cyBhcmUgY3JlYXRlZCBmcm9tIEphdmFTY3JpcHQuCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldF
QkdMQVJSQVlCVUZGRVI6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9D
QUxMQkFDSyhXZWJHTEFycmF5QnVmZmVyQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMQllURUFSUkFZOgotICAgICAgICBkZXNjcmlwdG9y
LT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xCeXRlQXJyYXlDb25zdHJ1Y3Rvcikp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xGTE9BVEFSUkFZ
OgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xG
bG9hdEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNz
SW5kZXg6OldFQkdMSU5UQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVy
KFVTRV9DQUxMQkFDSyhXZWJHTEludEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMU0hPUlRBUlJBWToKLSAgICAgICAgZGVzY3Jp
cHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdlYkdMU2hvcnRBcnJheUNvbnN0cnVj
dG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lH
TkVEQllURUFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FM
TEJBQ0soV2ViR0xVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFVOU0lHTkVESU5UQVJSQVk6Ci0gICAgICAg
IGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTFVuc2lnbmVkSW50
QXJyYXlDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRl
eDo6V0VCR0xVTlNJR05FRFNIT1JUQVJSQVk6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxI
YW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yKSk7
Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OkRPTVBBUlNF
UjoKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKERPTVBh
cnNlckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4
OjpXRUJLSVRDU1NNQVRSSVg6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVT
RV9DQUxMQkFDSyhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCS0lUUE9JTlQ6Ci0gICAgICAgIGRlc2NyaXB0b3It
PlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJLaXRQb2ludENvbnN0cnVjdG9yKSk7Ci0g
ICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICBjYXNlIFY4Q2xhc3NJ
bmRleDo6V0VCU09DS0VUOiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVT
RV9DQUxMQkFDSyhXZWJTb2NrZXRDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0jZW5kaWYKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WE1MU0VSSUFMSVpFUjoKLSAgICAgICAg
ZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFhNTFNlcmlhbGl6ZXJDb25z
dHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WE1MSFRU
UFJFUVVFU1Q6IHsKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExC
QUNLKFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
I2lmIEVOQUJMRShYUEFUSCkKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6WFBBVEhFVkFMVUFUT1I6
Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYUGF0aEV2
YWx1YXRvckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgRU5BQkxF
KFhTTFQpCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlhTTFRQUk9DRVNTT1I6Ci0gICAgICAgIGRl
c2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYU0xUUHJvY2Vzc29yQ29uc3Ry
dWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICBkZWZhdWx0OgotICAgICAgICBi
cmVhazsKLSAgICB9Ci0KICAgICAqY2FjaGVDZWxsID0gZGVzY3JpcHRvcjsKICAgICByZXR1cm4g
ZGVzY3JpcHRvcjsKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xG
bG9hdEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMRmxvYXRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysgV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMRmxvYXRBcnJheUNvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOFdlYkdMRmxvYXRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMRmxvYXRBcnJheS5Db250cnVj
dG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5u
ZWxDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OE1lc3NhZ2VDaGFubmVsQ29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5NZXNzYWdlQ2hhbm5lbC5Db25z
dHJ1Y3RvciIpOwogICAgIC8vIEZJWE1FOiBUaGUgbG9naWMgaGVyZSBpcyBhbG1vc3QgZXhhY3Qg
ZHVwbGljYXRlIG9mIFY4Ojpjb25zdHJ1Y3RET01PYmplY3QuCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xBcnJheUJ1ZmZlckN1c3RvbS5jcHAJ
KHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEFy
cmF5QnVmZmVyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhX
ZWJHTEFycmF5QnVmZmVyQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xBcnJheUJ1ZmZlcjo6Y29uc3RydWN0
b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLldlYkdMQXJyYXlCdWZmZXIuQ29uc3RydWN0b3IiKTsKIApJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5jcHAJKHJl
dmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJD
b25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiRE9NUGFyc2VyLmgiCi0KLSNpbmNsdWRlICJWOEJpbmRpbmcu
aCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OERPTVBhcnNlckNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5ET01QYXJz
ZXIuQ29udHJ1Y3RvciIpOwotICAgIHJldHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8
VjhDbGFzc0luZGV4OjpET01QQVJTRVIsIERPTVBhcnNlcj4oYXJncyk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2Vy
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdv
cmtlckN1c3RvbS5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXb3JrZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9t
Ojp2OFdvcmtlckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdvcmtlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUyhMIkRPTS5Xb3JrZXIuQ29u
c3RydWN0b3IiKTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQ
b2ludENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDE5ICsyOSwxOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJWOFdlYktpdFBvaW50LmgiCiAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
ICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIK
ICNpbmNsdWRlICJWOEluZGV4LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1ZGUgIldl
YktpdFBvaW50LmgiCiAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFdlYktpdFBvaW50Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViS2l0UG9pbnQuQ29u
c3RydWN0b3IiKTsKICAgICBmbG9hdCB4ID0gMDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1
NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xCeXRlQXJyYXlDdXN0
b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMQnl0ZUFycmF5
Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4V2ViR0xCeXRlQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEJ5dGVBcnJh
eS5Db250cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xVbnNpZ25lZFNob3J0QXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDdXN0b20uY3BwCShyZXZp
c2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25l
ZFNob3J0QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2
OFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xVbnNpZ25lZFNob3J0
QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsK
ICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFVuc2lnbmVkU2hvcnRBcnJheS5Db250cnVjdG9yIik7
CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tQmluZGluZy5o
CShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9t
QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw0NSArNDAsMTAgQEAKICNkZWZpbmUgREVD
TEFSRV9DQUxMQkFDSyhOQU1FKSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4IyNOQU1F
IyNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogI2RlZmluZSBVU0VfQ0FMTEJB
Q0soTkFNRSkgVjhDdXN0b206OnY4IyNOQU1FIyNDYWxsYmFjawogCi0gICAgICAgIERFQ0xBUkVf
Q0FMTEJBQ0soRE9NUGFyc2VyQ29uc3RydWN0b3IpOwogICAgICAgICBERUNMQVJFX0NBTExCQUNL
KEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3Rvcik7CiAgICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0so
SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yKTsKICAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhI
VE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhXZWJL
aXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soV2ViS2l0
UG9pbnRDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soWE1MSHR0cFJlcXVl
c3RDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soWE1MU2VyaWFsaXplckNv
bnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhYUGF0aEV2YWx1YXRvckNvbnN0
cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhYU0xUUHJvY2Vzc29yQ29uc3RydWN0
b3IpOwogCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhX
ZWJHTEFycmF5QnVmZmVyQ29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdl
YkdMQnl0ZUFycmF5Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdlYkdM
RmxvYXRBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhXZWJHTElu
dEFycmF5Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdlYkdMU2hvcnRB
cnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhXZWJHTFVuc2lnbmVk
Qnl0ZUFycmF5Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdlYkdMVW5z
aWduZWRJbnRBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhXZWJH
TFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdP
UktFUlMpCi0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soV29ya2VyQ29uc3RydWN0b3IpOwotI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCi0gICAgICAgIERFQ0xBUkVfQ0FMTEJB
Q0soU2hhcmVkV29ya2VyQ29uc3RydWN0b3IpOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCX1NP
Q0tFVFMpCi0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soV2ViU29ja2V0Q29uc3RydWN0b3IpOwot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoRVZFTlRTT1VSQ0UpCi0gICAgICAgIERFQ0xBUkVfQ0FMTEJB
Q0soRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvcik7Ci0jZW5kaWYKLQogI3VuZGVmIERFQ0xBUkVfQ0FM
TEJBQ0sKICAgICB9OwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRCeXRlQXJy
YXlDdXN0b20uY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhDdXN0b206OnY4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YkdMVW5zaWduZWRCeXRlQXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFVuc2lnbmVkQnl0ZUFycmF5
LkNvbnRydWN0b3IiKTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTaGFy
ZWRXb3JrZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNoYXJlZFdvcmtlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKIAotI2lu
Y2x1ZGUgIlNoYXJlZFdvcmtlci5oIgorI2luY2x1ZGUgIlY4U2hhcmVkV29ya2VyLmgiCiAKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQ1LDcgKzQ1
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhD
dXN0b206OnY4U2hhcmVkV29ya2VyQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U2hhcmVkV29ya2VyOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRT
KEwiRE9NLlNoYXJlZFdvcmtlci5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEV2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAJ
KHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudFNv
dXJjZUNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhF
dmVudFNvdXJjZUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEV2ZW50U291cmNlOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRXZlbnRT
b3VyY2UuQ29uc3RydWN0b3IiKTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFBhdGhFdmFsdWF0b3JD
b25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiVjhYUGF0aEV2YWx1YXRvci5oIgotCi0jaW5jbHVkZSAiVjhC
aW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1ZGUgIlhQYXRoRXZhbHVhdG9y
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3Vz
dG9tOjp2OFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlhQYXRoRXZhbHVhdG9yLkNvbnN0cnVj
dG9yIik7Ci0gICAgcmV0dXJuIFY4UHJveHk6OmNvbnN0cnVjdERPTU9iamVjdDxWOENsYXNzSW5k
ZXg6OlhQQVRIRVZBTFVBVE9SLCBYUGF0aEV2YWx1YXRvcj4oYXJncyk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29j
a2V0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYlNvY2tldEN1c3RvbS5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3
ICs3Niw3IEBACiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIAotdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYlNvY2tldENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYlNvY2tldDo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLldlYlNvY2tldC5Db25zdHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAJKHJl
dmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vz
c29yQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYU0xUUHJv
Y2Vzc29yQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6Y29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlhTTFRQcm9j
ZXNzb3IuQ29uc3RydWN0b3IiKTsKICAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9NT2Jq
ZWN0PFY4Q2xhc3NJbmRleDo6WFNMVFBST0NFU1NPUiwgWFNMVFByb2Nlc3Nvcj4oYXJncyk7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktp
dENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJLaXRDU1NNYXRyaXguaCIKKyNpbmNsdWRlICJWOFdlYktpdENTU01hdHJpeC5o
IgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYktp
dENTU01hdHJpeDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogewogICAgIElOQ19TVEFUUygiRE9NLldlYktpdENTU01hdHJpeC5Db25zdHJ1Y3RvciIpOwog
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxT
ZXJpYWxpemVyQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4WE1MU2VyaWFsaXplckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWOFhN
TFNlcmlhbGl6ZXIuaCIKLQotI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4UHJv
eHkuaCIKLSNpbmNsdWRlICJYTUxTZXJpYWxpemVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFhNTFNlcmlhbGl6ZXJDb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRT
KCJET00uWE1MU2VyaWFsaXplci5Db25zdHJ1Y3RvciIpOwotICAgIHJldHVybiBWOFByb3h5Ojpj
b25zdHJ1Y3RET01PYmplY3Q8VjhDbGFzc0luZGV4OjpYTUxTRVJJQUxJWkVSLCBYTUxTZXJpYWxp
emVyPihhcmdzKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEludEFy
cmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhDdXN0b206OnY4V2ViR0xVbnNpZ25lZEludEFycmF5Q29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2Vi
R0xVbnNpZ25lZEludEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZEludEFycmF5LkNv
bnRydWN0b3IiKTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTElu
dEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMSW50QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xJbnRBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2ViR0xJbnRBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdM
SW50QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEludEFycmF5LkNvbnRydWN0b3IiKTsKIApJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFNob3J0QXJyYXlDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xTaG9ydEFy
cmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMU2hvcnRBcnJheUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcg
KzQ0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhDdXN0b206OnY4V2ViR0xTaG9ydEFycmF5Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xTaG9ydEFycmF5
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uV2ViR0xTaG9ydEFycmF5LkNvbnRydWN0b3IiKTsKIApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDEzICszNiwxMiBAQAogI2luY2x1ZGUgIlY4Q3VzdG9tQmluZGluZy5oIgogI2luY2x1ZGUg
IlY4UHJveHkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlhNTEh0dHBS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhN
TEh0dHBSZXF1ZXN0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uWE1MSHR0cFJlcXVlc3QuQ29uc3RydWN0b3IiKTsK
IApJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkU2hvcnRBcnJheS5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkU2hvcnRBcnJh
eS5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2ln
bmVkU2hvcnRBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxMCBAQAogbW9k
dWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPTNEX0NBTlZB
UywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdl
dHRlciwKICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0
aXZlQ29udmVydGVyLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRv
SlMKICAgICBdIFdlYkdMVW5zaWduZWRTaG9ydEFycmF5IDogV2ViR0xBcnJheSB7CiAgICAgICAg
IGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNob3J0QXJyYXkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaG9ydEFycmF5LmlkbAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hvcnRBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcg
QEAKICAgICAgICAgSGFzTnVtZXJpY0luZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRl
eFNldHRlciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIE9taXRD
b25zdHJ1Y3RvciwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRv
SlMKICAgICBdIFdlYkdMU2hvcnRBcnJheSA6IFdlYkdMQXJyYXkgewogICAgICAgICBsb25nIGdl
dChpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xGbG9hdEFycmF5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RmxvYXRBcnJheS5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZsb2F0QXJyYXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAg
ICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIs
CiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBPbWl0Q29uc3RydWN0
b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAg
XSBXZWJHTEZsb2F0QXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgZmxvYXQgZ2V0KGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEludEFy
cmF5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMSW50QXJyYXku
aWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xJbnRBcnJh
eS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgSGFzTnVtZXJp
Y0luZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2Vu
ZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAg
Q3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRvSlMKICAgICBdIFdlYkdMSW50QXJy
YXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgbG9uZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRl
eCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXkuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEJ5dGVBcnJh
eS5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2ln
bmVkQnl0ZUFycmF5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgICAg
ICBIYXNOdW1lcmljSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAog
ICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgT21pdENvbnN0cnVjdG9y
LAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwogICAgIF0g
V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSA6IFdlYkdMQXJyYXkgewogICAgICAgICBsb25nIGdldChp
biB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xB
cnJheUJ1ZmZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFy
cmF5QnVmZmVyLmlkbAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQXJyYXlCdWZmZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8K
IAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLCBP
bWl0Q29uc3RydWN0b3JdIFdlYkdMQXJyYXlCdWZmZXIgeworICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9M0RfQ0FOVkFTLCBDdXN0b21Db25zdHJ1Y3Rvcl0gV2ViR0xBcnJheUJ1ZmZlciB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgYnl0ZUxlbmd0aDsKICAgICB9OwogfQpJbmRl
eDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwJKHJldmlzaW9uIDU0MDA4KQor
KysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgSGFzTnVtZXJpY0luZGV4R2V0dGVyLAogICAgICAg
ICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIs
Ci0gICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAg
ICAgICAgIEN1c3RvbVRvSlMKICAgICBdIFdlYkdMQnl0ZUFycmF5IDogV2ViR0xBcnJheSB7CiAg
ICAgICAgIGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkSW50QXJyYXkuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEludEFycmF5LmlkbAkocmV2aXNpb24gNTQwMDgp
CisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRJbnRBcnJheS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDEwICsyNywxMCBAQAogbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFj
ZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPTNEX0NBTlZBUywKKyAgICAgICAgQ3VzdG9tQ29uc3Ry
dWN0b3IsCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAgICAgICAgSGFzQ3VzdG9t
SW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBP
bWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRvSlMKICAgICBdIFdlYkdMVW5zaWduZWRJ
bnRBcnJheSA6IFdlYkdMQXJyYXkgewogICAgICAgICB1bnNpZ25lZCBsb25nIGdldChpbiB1bnNp
Z25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFdlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCShyZXZpc2lv
biA1NDAwOCkKKysrIFdlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw5ICszMiw5IEBACiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRp
b25hbD1XRUJfU09DS0VUUywKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsICAgIAogICAgICAg
ICBFdmVudFRhcmdldCwKLSAgICAgICAgTm9TdGF0aWNUYWJsZXMsCi0gICAgICAgIE9taXRDb25z
dHJ1Y3RvcgorICAgICAgICBOb1N0YXRpY1RhYmxlcwogICAgIF0gV2ViU29ja2V0IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7CiAKSW5kZXg6IFdlYkNvcmUvY3Nz
L1dlYktpdENTU01hdHJpeC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmlkbAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRy
aXguaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiBtb2R1bGUgY3NzIHsKIAog
ICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsID86Ci0gICAgaW50ZXJmYWNlIFtPbWl0Q29u
c3RydWN0b3JdIFdlYktpdENTU01hdHJpeCB7CisgICAgaW50ZXJmYWNlIFtDdXN0b21Db25zdHJ1
Y3Rvcl0gV2ViS2l0Q1NTTWF0cml4IHsKIAogICAgICAgICAvLyBUaGVzZSBhdHRyaWJ1dGVzIGFy
ZSBzaW1wbGUgYWxpYXNlcyBmb3IgY2VydGFpbiBlbGVtZW50cyBvZiB0aGUgNHg0IG1hdHJpeAog
ICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGE7IC8vIGFsaWFzIGZvciBtMTEKSW5kZXg6IFdlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTAgQEAKIG1vZHVsZSB4bWwg
ewogCiAgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAg
IEN1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgRXZlbnRUYXJnZXQsCi0gICAgICAgIE5vU3Rh
dGljVGFibGVzLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICAgICAgTm9TdGF0aWNUYWJs
ZXMKICAgICBdIFhNTEh0dHBSZXF1ZXN0IHsKICAgICAgICAgLy8gRnJvbSBYTUxIdHRwUmVxdWVz
dEV2ZW50VGFyZ2V0CiAgICAgICAgIC8vIGV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwpJbmRleDog
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3Nvci5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS94bWwvWFNMVFBy
b2Nlc3Nvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogICAgIGludGVy
ZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVhTTFQsCi0gICAgICAgIE9taXRDb25zdHJ1Y3Rv
cgorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvcgogICAgIF0gWFNMVFByb2Nlc3NvciB7CiAgICAg
ICAgIAogICAgICAgICBbQ3VzdG9tXSB2b2lkIGltcG9ydFN0eWxlc2hlZXQoaW4gTm9kZSBzdHls
ZXNoZWV0KTsKSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCShyZXZpc2lvbiA1NDAwOCkKKysrIFdl
YkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAx
LDYgQEAKIAliaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2suY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21Wb2lkQ2FsbGJhY2suY3Bw
IFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcCBc
Ci0JYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2VyQ29uc3RydWN0b3IuY3BwIFwKIAliaW5k
aW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0
b20vVjhEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhYmFzZUN1c3RvbS5jcHAgXApAQCAtMTYzLDggKzE2Miw3IEBACiAJYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCBcCi0JYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwIFwKLQliaW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVyQ29u
c3RydWN0b3IuY3BwCisJYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RVcGxvYWRD
dXN0b20uY3BwCiAKIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYnJpZGdlL2puaS9KTklVdGlsaXR5
LmNwcAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47654</attachid>
            <date>2010-01-28 15:53:56 -0800</date>
            <delta_ts>2010-01-28 20:49:46 -0800</delta_ts>
            <desc>ChangeLog had 1 tab, fixed.</desc>
            <filename>patch-4-2.txt</filename>
            <type>text/plain</type>
            <size>46182</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9k
b20vTWVzc2FnZUNoYW5uZWwuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAK
IG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFtDdXN0b21NYXJrRnVuY3Rpb24sIE5v
U3RhdGljVGFibGVzLCBPbWl0Q29uc3RydWN0b3JdIE1lc3NhZ2VDaGFubmVsIHsKKyAgICBpbnRl
cmZhY2UgW0N1c3RvbUNvbnN0cnVjdG9yLCBDdXN0b21NYXJrRnVuY3Rpb24sIE5vU3RhdGljVGFi
bGVzXSBNZXNzYWdlQ2hhbm5lbCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3Nh
Z2VQb3J0IHBvcnQxOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9y
dDI7CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTQwMjQpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDc0IEBACisyMDEwLTAxLTI4ICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRr
YXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtWOF0gR2VuZXJhdGUgaGVhZGVyIGRlY2xhcmF0aW9uIGZvciBjdXN0b20gY29u
c3RydWN0b3IgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMzY4MAorCisgICAgICAgIEFkZGVkIGhhbmRsaW5nIG9mICdDYW5CZUNvbnN0
cnVjdGVkJyBhbmQgJ09taXRDb25zdHJ1Y3RvcicgYW5kIGEgbmV3IGV4dGVuZGVkIGF0dHJpYnV0
ZQorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvcicuCisKKyAgICAgICAgRGVsZXRlZCBpbXBsZW1l
bnRhdGlvbiAuY3BwIGZpbGVzIGZvciBjb3JyZXNwb25kaW5nICdDYW5CZUNvbnN0cnVjdGVkJwor
ICAgICAgICBleHRlbmRlZCBhdHRyaWJ1dGVzLiBUaGVzZSBhcmUgbm93IGdlbmVyYXRlZCB2aWEg
Q29kZUdlbmVyYXRvclY4LnBtCisgICAgICAgIFRyZWF0aW5nICdPbWl0Q29uc3RydWN0b3InIGFu
ZCAnQ3VzdG9tQ29uc3RydWN0b3InIHRvIGJlIHRoZSBzYW1lIGluCisgICAgICAgIENvZGVHZW5l
cmF0b3JKUy5wbQorICAgICAgICBDbGVhbmVkIGlkbHMgdGhhdCBoYWQgJ0N1c3RvbUNvbnN0cnVj
dG9yJyBhbmQgJ09taXRDb25zdHJ1Y3RvcicgdG9nZXRoZXIsIGFuZAorICAgICAgICBzYW1lIHdp
dGggQ3VzdG9tQ29uc3RydWN0b3IgYW5kIENhbkJlQ29uc3RydWN0ZWQuCisKKyAgICAgICAgKiBB
bmRyb2lkLnY4YmluZGluZ3MubWs6CisgICAgICAgICogV2ViQ29yZS5neXBpOiBSZW1vdmVkIGRl
cHMgZm9yIGNsYXNzZXMgYmVpbmcgZ2VuZXJhdGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOiBPbWl0Q29uc3RydWN0b3IgYW5kIEN1c3RvbUNvbnN0cnVj
dG9yIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IgaW4gZ2VuZXJhdG9yLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBHZW5lcmF0aW5nIHRoZSBjYWxsYmFja3Mg
Zm9yIGNvbnN0cnVjdG9ycy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
OiBSZW1vdmVkIG1hbnVhbCBjYWxscyB0byBTZXRDYWxsSGFuZGxlcigpIGZvciBjb25zdHJ1Y3Rv
ciBjYWxsYmFja3MuCisgICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OmdldFRlbXBsYXRl
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmg6IFJlbW92
ZWQgbWFudWFsIGRlY2xhcmF0aW9ucyBvZiBjb25zdHJ1Y3RvciBjYWxsYmFja3MuCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2VyQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhFdmVudFNvdXJjZTo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOE1lc3NhZ2VDaGFubmVsOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTaGFyZWRXb3JrZXJDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhTaGFyZWRXb3JrZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTEFycmF5QnVmZmVyOjpjb25zdHJ1Y3RvckNh
bGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEJ5dGVBcnJheUN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMQnl0ZUFycmF5Ojpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJy
YXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTEZsb2F0QXJyYXk6OmNvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMSW50
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTEludEFycmF5Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFNo
b3J0QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFNob3J0QXJyYXk6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMVW5zaWduZWRCeXRlQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJH
TFVuc2lnbmVkQnl0ZUFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhXZWJHTFVuc2lnbmVkSW50QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xVbnNpZ25lZFNob3J0QXJyYXk6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViS2l0
Q1NTTWF0cml4Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
V2ViS2l0UG9pbnQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYlNv
Y2tldDo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V29ya2VyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V29ya2VyOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVx
dWVzdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhN
TFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4WFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3Rvci5jcHA6IERlbGV0ZWQgdGhlIGZpbGUuIEltcGxl
bWVudGF0aW9uIG5vdyBiZWluZyBnZW5lcmF0ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHA6IERlbGV0ZWQgdGhlIGZpbGUuIEltcGxlbWVu
dGF0aW9uIG5vdyBiZWluZyBnZW5lcmF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWOFhTTFRQcm9j
ZXNzb3I6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOiBEZWxldGVkIHRoZSBmaWxlLiBJbXBsZW1lbnRh
dGlvbiBub3cgYmVpbmcgZ2VuZXJhdGVkLgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXgu
aWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogZG9tL01l
c3NhZ2VDaGFubmVsLmlkbDogQWRkZWQgQ3VzdG9tQ29uc3RydWN0b3IgYXR0cmlidXRlLgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsOiBBZGRlZCBDdXN0b21Db25z
dHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXku
aWRsOiBBZGRlZCBDdXN0b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xGbG9hdEFycmF5LmlkbDogQWRkZWQgQ3VzdG9tQ29uc3RydWN0b3IgYXR0cmli
dXRlLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMSW50QXJyYXkuaWRsOiBBZGRlZCBDdXN0
b21Db25zdHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaG9y
dEFycmF5LmlkbDogQWRkZWQgQ3VzdG9tQ29uc3RydWN0b3IgYXR0cmlidXRlLgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRCeXRlQXJyYXkuaWRsOiBBZGRlZCBDdXN0b21Db25z
dHJ1Y3RvciBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZElu
dEFycmF5LmlkbDogQWRkZWQgQ3VzdG9tQ29uc3RydWN0b3IgYXR0cmlidXRlLgorCiAyMDEwLTAx
LTI4ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYW4gYXNz
ZXJ0aW9uIGJlbmVhdGggU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSBvbiAzMi1i
aXQKSW5kZXg6IFdlYkNvcmUvcGFnZS9XZWJLaXRQb2ludC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wYWdlL1dlYktpdFBvaW50LmlkbAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL3Bh
Z2UvV2ViS2l0UG9pbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKIG1v
ZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFtPbWl0Q29uc3RydWN0b3JdIFdlYktpdFBv
aW50IHsKKyAgICBpbnRlcmZhY2UgW0N1c3RvbUNvbnN0cnVjdG9yXSBXZWJLaXRQb2ludCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4OwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeTsKICAg
ICB9OwpJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKIAog
ICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUVWRU5UU09VUkNFLAorICAgICAg
ICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgRXZlbnRUYXJnZXQsCi0gICAgICAgIE9taXRD
b25zdHJ1Y3RvciwKICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIEV2ZW50U291cmNlIHsK
IApJbmRleDogV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2Vi
Q29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICsz
MiwxMCBAQAogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0hBUkVEX1dP
UktFUlMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21NYXJrRnVu
Y3Rpb24sCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBHZW5lcmF0
ZVRvSlMsCi0gICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgICAgICBHZW5lcmF0ZVRvSlMKICAg
ICBdIFNoYXJlZFdvcmtlciA6IEFic3RyYWN0V29ya2VyIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE1lc3NhZ2VQb3J0IHBvcnQ7CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvd29ya2Vycy9X
b3JrZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCShyZXZp
c2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw5ICsyOCw5IEBACiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25h
bD1XT1JLRVJTLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgR2VuZXJhdGVO
YXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIEdlbmVyYXRlVG9KUywKLSAgICAgICAgT21pdENvbnN0
cnVjdG9yCisgICAgICAgIEdlbmVyYXRlVG9KUwogICAgIF0gV29ya2VyIDogQWJzdHJhY3RXb3Jr
ZXIgewogCiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubWVzc2FnZTsKSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBp
CShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkp
CkBAIC02ODksNyArNjg5LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RG9jdW1lbnRMb2NhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwJywKLSAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01QYXJzZXJDb25zdHJ1Y3Rvci5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERvY3VtZW50Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RWxlbWVudEN1c3RvbS5jcHAnLApAQCAt
NzUyLDggKzc1MSw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVyQ29uc3RydWN0b3IuY3BwJywKLSAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RhdGVFeHRlbnNpb24uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9EYXRlRXh0ZW5zaW9uLmgnLApJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA1NDAwOCkKKysr
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTU1Miw3ICs1NTIsOCBAQAogICAgICRpbXBsSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1
c3RvbS5oIn0gPSAxIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUhl
YWRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1dEZ1bmN0
aW9uIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1
bmN0aW9uIn07CiAKICAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJpYnV0ZXMgPiAwIAotICAg
ICAgICAgICAgICAgICB8fCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENv
bnN0cnVjdG9yIn0KKyAgICAgICAgICAgICAgICAgfHwgISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifQorICAgICAgICAgICAgICAgICB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KQogICAgICAgICAg
ICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRl
ciJ9CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0KICAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0KQEAgLTY1NSw3ICs2
NTYsNyBAQAogICAgIH0KIAogICAgICMgQ29uc3RydWN0b3Igb2JqZWN0IGdldHRlcgotICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpIGlmICEkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKSBpZiAoISgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSk7CiAKICAgICBteSAkbnVt
Q3VzdG9tRnVuY3Rpb25zID0gMDsKICAgICBteSAkbnVtQ3VzdG9tQXR0cmlidXRlcyA9IDA7CkBA
IC04MzgsNyArODM5LDcgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgkbnVtQXR0cmli
dXRlcyA+IDAgfHwgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1
Y3RvciJ9KSB7CisgICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCB8fCAhKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsIi8vIEF0dHJpYnV0ZXNcblxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGF0
dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICBteSAkZ2V0
dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5
cGUgPX4gL0NvbnN0cnVjdG9yJC8gPyAiQ29uc3RydWN0b3IiIDogIiIpOwpAQCAtODQ5LDcgKzg1
MCw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmICgh
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsKKyAg
ICAgICAgaWYgKCEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVj
dG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0
b3IifSkpIHsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUg
LiAiQ29uc3RydWN0b3IiOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6
SlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBjb25zdCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIH0KQEAgLTkxOCw3ICs5
MTksNyBAQAogCiAgICAgIyAtIEFkZCBhbGwgYXR0cmlidXRlcyBpbiBhIGhhc2h0YWJsZSBkZWZp
bml0aW9uCiAgICAgbXkgJG51bUF0dHJpYnV0ZXMgPSBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc307
Ci0gICAgJG51bUF0dHJpYnV0ZXMrKyBpZiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiT21pdENvbnN0cnVjdG9yIn07CisgICAgJG51bUF0dHJpYnV0ZXMrKyBpZiAoISgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSk7CiAKICAgICBpZiAo
JG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIG15ICRoYXNoU2l6ZSA9ICRudW1BdHRyaWJ1
dGVzOwpAQCAtOTU5LDcgKzk2MCw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3Rv
ciJ9KSB7CisgICAgICAgIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9t
aXRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUNvbnN0cnVjdG9yIn0pKSB7CiAgICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgImNvbnN0cnVj
dG9yIik7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4g
IkNvbnN0cnVjdG9yIjsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwpA
QCAtOTc3LDcgKzk3OCw3IEBACiAgICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9OwogCiAgICAgIyAtIEFkZCBhbGwgY29uc3RhbnRzCi0gICAgaWYgKCEkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSkgeworICAgIGlmICgh
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7CiAg
ICAgICAgICRoYXNoU2l6ZSA9ICRudW1Db25zdGFudHM7CiAgICAgICAgICRoYXNoTmFtZSA9ICRj
bGFzc05hbWUgLiAiQ29uc3RydWN0b3JUYWJsZSI7CiAKQEAgLTEyMTMsNyArMTIxNCw4IEBACiAg
ICAgfQogCiAgICAgbXkgJGhhc0dldHRlciA9ICRudW1BdHRyaWJ1dGVzID4gMCAKLSAgICAgICAg
ICAgICAgICAgfHwgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1
Y3RvciJ9IAorICAgICAgICAgICAgICAgICB8fCAhKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IAorICAgICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KQogICAgICAgICAgICAg
ICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9
CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhh
c0N1c3RvbUluZGV4R2V0dGVyIn0KICAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0KQEAgLTEzNjQsNyArMTM2
Niw3IEBACiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgICAgICBpZiAoISgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSkgewogICAgICAgICAgICAgICAg
IG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJD
b25zdHJ1Y3RvciI7CiAKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFs
dWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CkBAIC0xNTA1LDcgKzE1MDcs
NyBAQAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgfQogCi0gICAg
aWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSkg
eworICAgIGlmICghKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1
Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVj
dG9yIn0pKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSAke2NsYXNzTmFt
ZX06OmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdClcbntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
Z2V0RE9NQ29uc3RydWN0b3I8JHtjbGFzc05hbWV9Q29uc3RydWN0b3I+KGV4ZWMsIHN0YXRpY19j
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7XG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAgLTI5OSw2ICsy
OTksMTIgQEAKICAgICAgICAgICAgIHB1c2goQGVuYWJsZWRBdFJ1bnRpbWUsICRmdW5jdGlvbik7
CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDYW5CZUNvbnN0cnVjdGVkIn0pIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
PDxFTkQpOworICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncyk7CitFTkQKKyAgICB9CiAgICAgCiAgICAgZm9y
ZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAg
bXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CkBAIC0xNTM0LDcgKzE1NDAs
NyBAQAogICAgIGlmICgkaGFzQ29uc3RydWN0b3JzKSB7CiAgICAgICAgIEdlbmVyYXRlQ29uc3Ry
dWN0b3JHZXR0ZXIoJGltcGxDbGFzc05hbWUsICRjbGFzc0luZGV4KTsKICAgICB9Ci0KKyAgIAog
ICAgIG15ICRpbmRleGVyOwogICAgIG15ICRuYW1lZFByb3BlcnR5R2V0dGVyOwogICAgICMgR2Vu
ZXJhdGUgbWV0aG9kcyBmb3IgZnVuY3Rpb25zLgpAQCAtMTY1Miw2ICsxNjU4LDE3IEBACiAKICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAifSAvLyBuYW1lc3BhY2UgJHtpbnRlcmZhY2VOYW1l
fUludGVybmFsXG5cbiIpOwogCisgICAgIyBJbiBuYW1lc3BhY2UgV2ViQ29yZSwgYWRkIGdlbmVy
YXRlZCBpbXBsZW1lbnRhdGlvbiBmb3IgJ0NhbkJlQ29uc3RydWN0ZWQnLgorICAgIGlmICgkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5CZUNvbnN0cnVjdGVkIn0gJiYgISRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pIHsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKKyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtj
bGFzc05hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CisgIHsKKyAgICBJTkNfU1RBVFMoIkRPTS4ke2ludGVyZmFjZU5hbWV9LkNvbnRydWN0b3IiKTsK
KyAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9NT2JqZWN0PFY4Q2xhc3NJbmRleDo6JHtj
bGFzc0luZGV4fSwgJGludGVyZmFjZU5hbWU+KGFyZ3MpOworICB9CitFTkQKKyAgIH0KKwogICAg
IG15ICRhY2Nlc3NfY2hlY2sgPSAiIjsKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0eSJ9ICYmICEoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpKSB7CiAgICAgICAgICRhY2Nlc3NfY2hlY2sgPSAiaW5zdGFuY2UtPlNldEFjY2Vz
c0NoZWNrQ2FsbGJhY2tzKFY4JHtpbnRlcmZhY2VOYW1lfTo6bmFtZWRTZWN1cml0eUNoZWNrLCBW
OCR7aW50ZXJmYWNlTmFtZX06OmluZGV4ZWRTZWN1cml0eUNoZWNrLCB2ODo6SW50ZWdlcjo6TmV3
KFY4Q2xhc3NJbmRleDo6VG9JbnQoVjhDbGFzc0luZGV4Ojoke2NsYXNzSW5kZXh9KSkpOyI7CkBA
IC0xNjkxLDcgKzE3MDgsNiBAQAogICB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdF9z
aWduYXR1cmUgPSBjb25maWd1cmVUZW1wbGF0ZShkZXNjLCBcIiR7aW50ZXJmYWNlTmFtZX1cIiwK
ICAgICAgIFY4Q2xhc3NJbmRleDo6JHBhcmVudENsYXNzSW5kZXgsIFY4JHtpbnRlcmZhY2VOYW1l
fTo6aW50ZXJuYWxGaWVsZENvdW50LAogRU5ECi0KICAgICAjIFNldCB1cCBvdXIgYXR0cmlidXRl
cyBpZiB3ZSBoYXZlIHRoZW0KICAgICBpZiAoJGhhc19hdHRyaWJ1dGVzKSB7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBAIC0xNzEzLDYgKzE3MjksMTIgQEAKIEVORAogICAg
IH0KIAorICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25z
dHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJlQ29uc3Ry
dWN0ZWQifSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgZGVz
Yy0+U2V0Q2FsbEhhbmRsZXIoVjgke2ludGVyZmFjZU5hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KTsKK0VORAorICAgIH0KKwogICAgIGlmICgkYWNjZXNzX2NoZWNrIG9yIEBlbmFibGVkQXRSdW50
aW1lIG9yIEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9IG9yICRoYXNfY29uc3RhbnRzKSB7CiAgICAg
cHVzaChAaW1wbENvbnRlbnQsICA8PEVORCk7CiAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxh
dGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw5NiArMjU0LDcg
QEAKICAgICAvLyBOb3QgaW4gdGhlIGNhY2hlLgogICAgIEZ1bmN0aW9uVGVtcGxhdGVGYWN0b3J5
IGZhY3RvcnkgPSBWOENsYXNzSW5kZXg6OkdldEZhY3RvcnkodHlwZSk7CiAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2NyaXB0b3IgPSBmYWN0b3J5KCk7Ci0gICAg
c3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6Ok1FU1NBR0VDSEFOTkVMOiB7
Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KIAotI2lmIEVOQUJM
RShFVkVOVFNPVVJDRSkKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6RVZFTlRTT1VSQ0U6IHsKLSAg
ICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKEV2ZW50U291cmNl
Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBFTkFC
TEUoV09SS0VSUykKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V09SS0VSOiB7Ci0gICAgICAgIGRl
c2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXb3JrZXJDb25zdHJ1Y3Rvcikp
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYgLy8gV09SS0VSUwotCi0jaWYgRU5BQkxF
KFNIQVJFRF9XT1JLRVJTKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpTSEFSRURXT1JLRVI6IHsK
LSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFNoYXJlZFdv
cmtlckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSNlbmRpZiAvLyBTSEFS
RURfV09SS0VSUwotCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLSAgICAvLyBUaGUgZm9sbG93aW5n
IG9iamVjdHMgYXJlIGNyZWF0ZWQgZnJvbSBKYXZhU2NyaXB0LgotICAgIGNhc2UgVjhDbGFzc0lu
ZGV4OjpXRUJHTEFSUkFZQlVGRkVSOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxl
cihVU0VfQ0FMTEJBQ0soV2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTEJZVEVBUlJBWToKLSAgICAgICAgZGVz
Y3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNLKFdlYkdMQnl0ZUFycmF5Q29uc3Ry
dWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQkdMRkxP
QVRBUlJBWToKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIoVVNFX0NBTExCQUNL
KFdlYkdMRmxvYXRBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
VjhDbGFzc0luZGV4OjpXRUJHTElOVEFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxs
SGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xJbnRBcnJheUNvbnN0cnVjdG9yKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpXRUJHTFNIT1JUQVJSQVk6Ci0gICAgICAg
IGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhXZWJHTFNob3J0QXJyYXlD
b25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VC
R0xVTlNJR05FREJZVEVBUlJBWToKLSAgICAgICAgZGVzY3JpcHRvci0+U2V0Q2FsbEhhbmRsZXIo
VVNFX0NBTExCQUNLKFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDb25zdHJ1Y3RvcikpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFY4Q2xhc3NJbmRleDo6V0VCR0xVTlNJR05FRElOVEFSUkFZOgot
ICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xVbnNp
Z25lZEludEFycmF5Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENs
YXNzSW5kZXg6OldFQkdMVU5TSUdORURTSE9SVEFSUkFZOgotICAgICAgICBkZXNjcmlwdG9yLT5T
ZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDb25zdHJ1
Y3RvcikpOwotICAgICAgICBicmVhazsKLSNlbmRpZgotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpE
T01QQVJTRVI6Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFD
SyhET01QYXJzZXJDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFY4Q2xh
c3NJbmRleDo6V0VCS0lUQ1NTTUFUUklYOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFu
ZGxlcihVU0VfQ0FMTEJBQ0soV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6OldFQktJVFBPSU5UOgotICAgICAgICBkZXNj
cmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soV2ViS2l0UG9pbnRDb25zdHJ1Y3Rv
cikpOwotICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCi0gICAgY2FzZSBW
OENsYXNzSW5kZXg6OldFQlNPQ0tFVDogewotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFu
ZGxlcihVU0VfQ0FMTEJBQ0soV2ViU29ja2V0Q29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotI2VuZGlmCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlhNTFNFUklBTElaRVI6Ci0g
ICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVTRV9DQUxMQkFDSyhYTUxTZXJpYWxp
emVyQ29uc3RydWN0b3IpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWOENsYXNzSW5kZXg6
OlhNTEhUVFBSRVFVRVNUOiB7Ci0gICAgICAgIGRlc2NyaXB0b3ItPlNldENhbGxIYW5kbGVyKFVT
RV9DQUxMQkFDSyhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSNpZiBFTkFCTEUoWFBBVEgpCi0gICAgY2FzZSBWOENsYXNzSW5kZXg6OlhQQVRIRVZB
TFVBVE9SOgotICAgICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0so
WFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3RvcikpOwotICAgICAgICBicmVhazsKLSNlbmRpZgotI2lm
IEVOQUJMRShYU0xUKQotICAgIGNhc2UgVjhDbGFzc0luZGV4OjpYU0xUUFJPQ0VTU09SOgotICAg
ICAgICBkZXNjcmlwdG9yLT5TZXRDYWxsSGFuZGxlcihVU0VfQ0FMTEJBQ0soWFNMVFByb2Nlc3Nv
ckNvbnN0cnVjdG9yKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgZGVmYXVsdDoKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgKmNhY2hlQ2VsbCA9IGRlc2NyaXB0b3I7CiAgICAg
cmV0dXJuIGRlc2NyaXB0b3I7CiB9CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYkdMRmxvYXRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTEZsb2F0QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA1NDAwOCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTEZsb2F0QXJyYXlDb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhXZWJHTEZsb2F0QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTEZsb2F0QXJyYXku
Q29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3Nh
Z2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDU0MDA4
KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVj
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VDaGFubmVsOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uTWVzc2FnZUNoYW5u
ZWwuQ29uc3RydWN0b3IiKTsKICAgICAvLyBGSVhNRTogVGhlIGxvZ2ljIGhlcmUgaXMgYWxtb3N0
IGV4YWN0IGR1cGxpY2F0ZSBvZiBWODo6Y29uc3RydWN0RE9NT2JqZWN0LgpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTEFycmF5QnVmZmVyQ3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQXJyYXlCdWZmZXJDdXN0
b20uY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xBcnJheUJ1ZmZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0
b206OnY4V2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQXJyYXlCdWZmZXI6OmNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5XZWJHTEFycmF5QnVmZmVyLkNvbnN0cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2VyQ29uc3RydWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NUGFyc2VyQ29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
UGFyc2VyQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRPTVBhcnNlci5oIgotCi0jaW5jbHVkZSAiVjhC
aW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhET01QYXJzZXJDb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00u
RE9NUGFyc2VyLkNvbnRydWN0b3IiKTsKLSAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9N
T2JqZWN0PFY4Q2xhc3NJbmRleDo6RE9NUEFSU0VSLCBET01QYXJzZXI+KGFyZ3MpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdvcmtlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhXb3JrZXJDdXN0b20uY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyAr
NDgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEN1c3RvbTo6djhXb3JrZXJDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXb3JrZXI6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoTCJET00uV29y
a2VyLkNvbnN0cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTQwMDgp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxOSArMjksMTkgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVjhXZWJLaXRQb2ludC5oIgogCiAjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhET01XcmFw
cGVyLmgiCiAjaW5jbHVkZSAiVjhJbmRleC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNs
dWRlICJXZWJLaXRQb2ludC5oIgogCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4V2Vi
S2l0UG9pbnRDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRQb2ludDo6Y29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYktpdFBv
aW50LkNvbnN0cnVjdG9yIik7CiAgICAgZmxvYXQgeCA9IDA7CkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFycmF5Q3VzdG9tLmNwcAkocmV2
aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMQnl0ZUFy
cmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJHTEJ5
dGVBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMQnl0ZUFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xC
eXRlQXJyYXkuQ29udHJ1Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNw
cAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
VW5zaWduZWRTaG9ydEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1
c3RvbTo6djhXZWJHTFVuc2lnbmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMVW5zaWdu
ZWRTaG9ydEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZFNob3J0QXJyYXkuQ29udHJ1
Y3RvciIpOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRp
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJp
bmRpbmcuaAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNDUgKzQwLDEwIEBACiAjZGVm
aW5lIERFQ0xBUkVfQ0FMTEJBQ0soTkFNRSkgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
OCMjTkFNRSMjQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICNkZWZpbmUgVVNF
X0NBTExCQUNLKE5BTUUpIFY4Q3VzdG9tOjp2OCMjTkFNRSMjQ2FsbGJhY2sKIAotICAgICAgICBE
RUNMQVJFX0NBTExCQUNLKERPTVBhcnNlckNvbnN0cnVjdG9yKTsKICAgICAgICAgREVDTEFSRV9D
QUxMQkFDSyhIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IpOwogICAgICAgICBERUNMQVJFX0NB
TExCQUNLKEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcik7CiAgICAgICAgIERFQ0xBUkVfQ0FM
TEJBQ0soSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FM
TEJBQ0soTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJB
Q0soV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNL
KFdlYktpdFBvaW50Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFhNTEh0
dHBSZXF1ZXN0Q29uc3RydWN0b3IpOwotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFhNTFNlcmlh
bGl6ZXJDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soWFBhdGhFdmFsdWF0
b3JDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soWFNMVFByb2Nlc3NvckNv
bnN0cnVjdG9yKTsKIAotI2lmIEVOQUJMRSgzRF9DQU5WQVMpCi0gICAgICAgIERFQ0xBUkVfQ0FM
TEJBQ0soV2ViR0xBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxM
QkFDSyhXZWJHTEJ5dGVBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFD
SyhXZWJHTEZsb2F0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0so
V2ViR0xJbnRBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhXZWJH
TFNob3J0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJBQ0soV2ViR0xV
bnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVjdG9yKTsKLSAgICAgICAgREVDTEFSRV9DQUxMQkFDSyhX
ZWJHTFVuc2lnbmVkSW50QXJyYXlDb25zdHJ1Y3Rvcik7Ci0gICAgICAgIERFQ0xBUkVfQ0FMTEJB
Q0soV2ViR0xVbnNpZ25lZFNob3J0QXJyYXlDb25zdHJ1Y3Rvcik7Ci0jZW5kaWYKLQotI2lmIEVO
QUJMRShXT1JLRVJTKQotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdvcmtlckNvbnN0cnVjdG9y
KTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQotICAgICAgICBERUNMQVJF
X0NBTExCQUNLKFNoYXJlZFdvcmtlckNvbnN0cnVjdG9yKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxF
KFdFQl9TT0NLRVRTKQotICAgICAgICBERUNMQVJFX0NBTExCQUNLKFdlYlNvY2tldENvbnN0cnVj
dG9yKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKEVWRU5UU09VUkNFKQotICAgICAgICBERUNMQVJF
X0NBTExCQUNLKEV2ZW50U291cmNlQ29uc3RydWN0b3IpOwotI2VuZGlmCi0KICN1bmRlZiBERUNM
QVJFX0NBTExCQUNLCiAgICAgfTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEJ5dGVBcnJheUN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVk
Qnl0ZUFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMVW5zaWduZWRCeXRlQXJyYXlDb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhXZWJHTFVuc2lnbmVkQnl0ZUFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xVbnNpZ25lZEJ5
dGVBcnJheS5Db250cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFNoYXJlZFdvcmtlckN1c3RvbS5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysg
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTaGFyZWRXb3JrZXJDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMp
CiAKLSNpbmNsdWRlICJTaGFyZWRXb3JrZXIuaCIKKyNpbmNsdWRlICJWOFNoYXJlZFdvcmtlci5o
IgogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC00
NSw3ICs0NSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4Q3VzdG9tOjp2OFNoYXJlZFdvcmtlckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFNoYXJlZFdvcmtlcjo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUyhMIkRPTS5TaGFyZWRXb3JrZXIuQ29uc3RydWN0b3IiKTsKIApJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50U291cmNlQ29uc3RydWN0
b3IuY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0
b206OnY4RXZlbnRTb3VyY2VDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhFdmVudFNvdXJjZTo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9N
LkV2ZW50U291cmNlLkNvbnN0cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4WFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhQYXRoRXZh
bHVhdG9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlY4WFBhdGhFdmFsdWF0b3IuaCIKLQotI2luY2x1
ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlICJYUGF0aEV2
YWx1YXRvci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEN1c3RvbTo6djhYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5YUGF0aEV2YWx1YXRvci5D
b25zdHJ1Y3RvciIpOwotICAgIHJldHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8VjhD
bGFzc0luZGV4OjpYUEFUSEVWQUxVQVRPUiwgWFBhdGhFdmFsdWF0b3I+KGFyZ3MpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYlNvY2tldEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzYsNyArNzYsNyBAQAogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJTb2NrZXRDb25zdHJ1Y3RvckNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJT
b2NrZXQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsK
ICAgICBJTkNfU1RBVFMoIkRPTS5XZWJTb2NrZXQuQ29uc3RydWN0b3IiKTsKIApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20u
Y3BwCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNM
VFByb2Nlc3NvckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4
WFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhTTFRQcm9jZXNzb3I6OmNvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Y
U0xUUHJvY2Vzc29yLkNvbnN0cnVjdG9yIik7CiAgICAgcmV0dXJuIFY4UHJveHk6OmNvbnN0cnVj
dERPTU9iamVjdDxWOENsYXNzSW5kZXg6OlhTTFRQUk9DRVNTT1IsIFhTTFRQcm9jZXNzb3I+KGFy
Z3MpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRDU1NNYXRyaXhD
b25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysgV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiV2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiVjhXZWJLaXRDU1NN
YXRyaXguaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFn
bWVudC5oIgpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhXZWJLaXRDU1NNYXRyaXg6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJLaXRDU1NNYXRyaXguQ29uc3RydWN0
b3IiKTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxTZXJpYWxpemVy
Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4WE1MU2VyaWFsaXplckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTFNlcmlhbGl6ZXJDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiVjhYTUxTZXJpYWxpemVyLmgiCi0KLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRl
ICJWOFByb3h5LmgiCi0jaW5jbHVkZSAiWE1MU2VyaWFsaXplci5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1c3RvbTo6djhYTUxTZXJpYWxpemVy
Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElO
Q19TVEFUUygiRE9NLlhNTFNlcmlhbGl6ZXIuQ29uc3RydWN0b3IiKTsKLSAgICByZXR1cm4gVjhQ
cm94eTo6Y29uc3RydWN0RE9NT2JqZWN0PFY4Q2xhc3NJbmRleDo6WE1MU0VSSUFMSVpFUiwgWE1M
U2VyaWFsaXplcj4oYXJncyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xVbnNpZ25lZEludEFycmF5Q3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMVW5zaWdu
ZWRJbnRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMVW5zaWduZWRJbnRBcnJheUNvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOFdlYkdMVW5zaWduZWRJbnRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMVW5zaWduZWRJbnRB
cnJheS5Db250cnVjdG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xJbnRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJHTEludEFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMSW50QXJyYXlDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMSW50QXJyYXlDb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhXZWJHTEludEFycmF5Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xJbnRBcnJheS5Db250cnVjdG9yIik7
CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xTaG9ydEFycmF5Q3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
U2hvcnRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFNob3J0QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4Q3VzdG9tOjp2OFdlYkdMU2hvcnRBcnJheUNvbnN0cnVjdG9yQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMU2hv
cnRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMU2hvcnRBcnJheS5Db250cnVjdG9yIik7CiAKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMyArMzYsMTIgQEAKICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcuaCIKICNp
bmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJY
TUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJX
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDdXN0b206OnY4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhYTUxIdHRwUmVxdWVzdDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlhNTEh0dHBSZXF1ZXN0LkNvbnN0cnVj
dG9yIik7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZFNob3J0QXJy
YXkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZFNo
b3J0QXJyYXkuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xVbnNpZ25lZFNob3J0QXJyYXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMCArMjcsMTAg
QEAKIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD0z
RF9DQU5WQVMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNOdW1lcmlj
SW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAgICBHZW5l
cmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgT21pdENvbnN0cnVjdG9yLAogICAgICAgICBD
dXN0b21Ub0pTCiAgICAgXSBXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSA6IFdlYkdMQXJyYXkgewog
ICAgICAgICBsb25nIGdldChpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFdlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaG9ydEFycmF5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hvcnRBcnJheS5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFNob3J0QXJyYXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBACiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAgICAgICAgSGFzQ3Vz
dG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAg
ICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBD
dXN0b21Ub0pTCiAgICAgXSBXZWJHTFNob3J0QXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAg
bG9uZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRmxvYXRBcnJheS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEZsb2F0QXJyYXkuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xGbG9hdEFycmF5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBA
QAogICAgICAgICBIYXNOdW1lcmljSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4
U2V0dGVyLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgT21pdENv
bnN0cnVjdG9yLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9K
UwogICAgIF0gV2ViR0xGbG9hdEFycmF5IDogV2ViR0xBcnJheSB7CiAgICAgICAgIGZsb2F0IGdl
dChpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xJbnRBcnJheS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTElu
dEFycmF5LmlkbAkocmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
SW50QXJyYXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIEhh
c051bWVyaWNJbmRleEdldHRlciwKICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAg
ICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisg
ICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJH
TEludEFycmF5IDogV2ViR0xBcnJheSB7CiAgICAgICAgIGxvbmcgZ2V0KGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkQnl0ZUFy
cmF5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRC
eXRlQXJyYXkuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAK
ICAgICAgICAgSGFzTnVtZXJpY0luZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNl
dHRlciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIE9taXRDb25z
dHJ1Y3RvciwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEN1c3RvbVRvSlMK
ICAgICBdIFdlYkdMVW5zaWduZWRCeXRlQXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgbG9u
ZyBnZXQoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQXJyYXlCdWZmZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xBcnJheUJ1ZmZlci5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBA
QAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPTNEX0NB
TlZBUywgT21pdENvbnN0cnVjdG9yXSBXZWJHTEFycmF5QnVmZmVyIHsKKyAgICBpbnRlcmZhY2Ug
W0NvbmRpdGlvbmFsPTNEX0NBTlZBUywgQ3VzdG9tQ29uc3RydWN0b3JdIFdlYkdMQXJyYXlCdWZm
ZXIgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgaW50IGJ5dGVMZW5ndGg7CiAgICAgfTsK
IH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsCShyZXZpc2lvbiA1
NDAwOCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwK
ICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29u
dmVydGVyLAotICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIEN1c3RvbUNvbnN0cnVj
dG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJHTEJ5dGVBcnJheSA6IFdlYkdMQXJy
YXkgewogICAgICAgICBsb25nIGdldChpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbnNpZ25lZEludEFycmF5LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5zaWduZWRJbnRBcnJheS5pZGwJKHJldmlzaW9u
IDU0MDA4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuc2lnbmVkSW50QXJyYXkuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMCArMjcsMTAgQEAKIG1vZHVsZSBodG1sIHsKICAgICBp
bnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD0zRF9DQU5WQVMsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNOdW1lcmljSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhh
c0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAg
ICAgICAgT21pdENvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBXZWJHTFVu
c2lnbmVkSW50QXJyYXkgOiBXZWJHTEFycmF5IHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBnZXQo
aW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBXZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAko
cmV2aXNpb24gNTQwMDgpCisrKyBXZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzIsOSArMzIsOSBAQAogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9V0VCX1NPQ0tFVFMsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLCAgICAK
ICAgICAgICAgRXZlbnRUYXJnZXQsCi0gICAgICAgIE5vU3RhdGljVGFibGVzLAotICAgICAgICBP
bWl0Q29uc3RydWN0b3IKKyAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIFdlYlNvY2tldCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOwogCkluZGV4OiBXZWJD
b3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL1dl
YktpdENTU01hdHJpeC5pZGwJKHJldmlzaW9uIDU0MDA4KQorKysgV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTTWF0cml4LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogbW9kdWxlIGNz
cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCA/OgotICAgIGludGVyZmFjZSBb
T21pdENvbnN0cnVjdG9yXSBXZWJLaXRDU1NNYXRyaXggeworICAgIGludGVyZmFjZSBbQ3VzdG9t
Q29uc3RydWN0b3JdIFdlYktpdENTU01hdHJpeCB7CiAKICAgICAgICAgLy8gVGhlc2UgYXR0cmli
dXRlcyBhcmUgc2ltcGxlIGFsaWFzZXMgZm9yIGNlcnRhaW4gZWxlbWVudHMgb2YgdGhlIDR4NCBt
YXRyaXgKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBhOyAvLyBhbGlhcyBmb3IgbTExCkluZGV4
OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwIEBACiBtb2R1
bGUgeG1sIHsKIAogICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAog
ICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0LAotICAgICAg
ICBOb1N0YXRpY1RhYmxlcywKLSAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgICAgIE5vU3Rh
dGljVGFibGVzCiAgICAgXSBYTUxIdHRwUmVxdWVzdCB7CiAgICAgICAgIC8vIEZyb20gWE1MSHR0
cFJlcXVlc3RFdmVudFRhcmdldAogICAgICAgICAvLyBldmVudCBoYW5kbGVyIGF0dHJpYnV0ZXMK
SW5kZXg6IFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCShyZXZpc2lvbiA1NDAwOCkKKysrIFdlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKICAg
ICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1YU0xULAotICAgICAgICBPbWl0Q29u
c3RydWN0b3IKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IKICAgICBdIFhTTFRQcm9jZXNzb3Ig
ewogICAgICAgICAKICAgICAgICAgW0N1c3RvbV0gdm9pZCBpbXBvcnRTdHlsZXNoZWV0KGluIE5v
ZGUgc3R5bGVzaGVldCk7CkluZGV4OiBXZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawkocmV2aXNpb24gNTQwMDgp
CisrKyBXZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawkod29ya2luZyBjb3B5KQpAQCAtMTAx
LDcgKzEwMSw2IEBACiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxi
YWNrLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NQXBwbGljYXRpb25DYWNoZUN1c3Rv
bS5jcHAgXAotCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVBhcnNlckNvbnN0cnVjdG9yLmNwcCBc
CiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RGF0YUdyaWRDb2x1bW5MaXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGF0YWJhc2VDdXN0b20uY3BwIFwKQEAgLTE2Myw4ICsxNjIsNyBAQAogCWJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAotCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBS
ZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCi0JYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MU2VyaWFs
aXplckNvbnN0cnVjdG9yLmNwcAorCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0
VXBsb2FkQ3VzdG9tLmNwcAogCiBMT0NBTF9TUkNfRklMRVMgKz0gXAogCWJyaWRnZS9qbmkvSk5J
VXRpbGl0eS5jcHAK
</data>

          </attachment>
      

    </bug>

</bugzilla>