<?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>216428</bug_id>
          
          <creation_ts>2020-09-11 18:05:56 -0700</creation_ts>
          <short_desc>Send TestRendered event after running a test but before dumping</short_desc>
          <delta_ts>2020-09-12 23:22:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=186045</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=216397</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>216440</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1687872</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-11 18:05:56 -0700</bug_when>
    <thetext>https://web-platform-tests.org/writing-tests/reftests.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687888</commentid>
    <comment_count>1</comment_count>
      <attachid>408584</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-11 20:34:50 -0700</bug_when>
    <thetext>Created attachment 408584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687889</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-11 20:35:52 -0700</bug_when>
    <thetext>This sends the event. Might need to refine this later to make sure we force rendering twice the way the WPT documentation suggests; doing that unconditionally would probably slow down test running.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687890</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-09-11 20:40:09 -0700</bug_when>
    <thetext>I was about to say that there were iOS expectations to remove too, but there aren&apos;t. Not sure what happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687937</commentid>
    <comment_count>4</comment_count>
      <attachid>408584</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-12 10:05:54 -0700</bug_when>
    <thetext>Comment on attachment 408584
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=408584&amp;action=review

&gt; Tools/TestRunnerShared/Bindings/JSBasics.h:38
&gt; +JSValueRef JSValueMakeBooleanOrNull(JSContextRef, Optional&lt;bool&gt;);
&gt; +Optional&lt;bool&gt; JSValueToNullableBoolean(JSContextRef, JSValueRef);
&gt; +
&gt; +JSValueRef JSValueMakeStringOrNull(JSContextRef, JSStringRef);

Since you are just moving this, we shouldn&apos;t change this for this change, but I don&apos;t think we should mimic the JavaScriptCore c-API naming style here. Should instead be something like:

JSValueMakeBooleanOrNull(JSContextRef, Optional&lt;bool&gt;) -&gt; makeValue(JSContextRef, Optional&lt;bool&gt;)
JSValueToNullableBoolean(JSContextRef, JSValueRef) -&gt; toOptionalBool(JSContextRef, JSValueRef)
JSValueMakeStringOrNull(JSContextRef, JSStringRef) -&gt; makeValueAllowingNull(JSContextRef, JSStringRef)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687950</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 12:12:03 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Since you are just moving this, we shouldn&apos;t change this for this change,
&gt; but I don&apos;t think we should mimic the JavaScriptCore c-API naming style
&gt; here. Should instead be something like:
&gt; 
&gt; JSValueMakeBooleanOrNull(JSContextRef, Optional&lt;bool&gt;) -&gt;
&gt; makeValue(JSContextRef, Optional&lt;bool&gt;)
&gt; JSValueToNullableBoolean(JSContextRef, JSValueRef) -&gt;
&gt; toOptionalBool(JSContextRef, JSValueRef)
&gt; JSValueMakeStringOrNull(JSContextRef, JSStringRef) -&gt;
&gt; makeValueAllowingNull(JSContextRef, JSStringRef)

Yes, I absolutely agree. You will see I chose names like that for the newer functions I created recently and even renamed one of the old ones, but not all of them yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687951</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 12:12:42 -0700</bug_when>
    <thetext>Is there anyone with Windows and CMake build expertise that can help me figure out why the WinCairo build is failing? Something about the same precompiled header being used with different /D options?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687991</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 15:09:17 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; JSValueMakeBooleanOrNull(JSContextRef, Optional&lt;bool&gt;) -&gt;
&gt; makeValue(JSContextRef, Optional&lt;bool&gt;)

Yes.

&gt; JSValueToNullableBoolean(JSContextRef, JSValueRef) -&gt;
&gt; toOptionalBool(JSContextRef, JSValueRef)

Maybe optionalBoolean or optionalBooleanValue instead? Never sure whether to name after the C++ type keyword or after the full name of the type. Also not sure we need the &quot;to&quot; in a case like this.

&gt; JSValueMakeStringOrNull(JSContextRef, JSStringRef) -&gt;
&gt; makeValueAllowingNull(JSContextRef, JSStringRef)

I think just makeValue. If we decide we need one that turns nullptr into an assertion, a crash, or an empty string we can give it the more unusual name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687993</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 15:10:55 -0700</bug_when>
    <thetext>Can’t land this until:

1) the fix for bug 216440 gets landed first, since I’ll have to merge with it

2) I figure out what to do on WinCairo. I do not understand why the build there is failing, since I put JSBasics.cpp in all the same places where JSWrapper.cpp was already mentioned. This could delay me indefinitely!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688042</commentid>
    <comment_count>9</comment_count>
      <attachid>408630</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-09-12 18:53:58 -0700</bug_when>
    <thetext>Created attachment 408630
Patch to disable the precompiled header for WinCairo DRT and WTR

Please disable the precompiled header for WinCairo DRT and WTR at the moment. I&apos;ll look into it next Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688059</commentid>
    <comment_count>10</comment_count>
      <attachid>408641</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 22:06:36 -0700</bug_when>
    <thetext>Created attachment 408641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688062</commentid>
    <comment_count>11</comment_count>
      <attachid>408642</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 22:10:58 -0700</bug_when>
    <thetext>Created attachment 408642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688066</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 23:21:45 -0700</bug_when>
    <thetext>Committed r266988: &lt;https://trac.webkit.org/changeset/266988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688067</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-12 23:22:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/68790483&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408584</attachid>
            <date>2020-09-11 20:34:50 -0700</date>
            <delta_ts>2020-09-12 10:05:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216428-20200911203449.patch</filename>
            <type>text/plain</type>
            <size>44398</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTY4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzlhZDE4ZjI5MjdmZjg4MTBlZGVhODhmZTNiNTUyNjE2
NWE1ODViYS4uZWExNjJiZGJiNjliNjRiM2E2ZTg2N2FmMjZlYzE2OGFlMGMwMTI5MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcy
IEBACisyMDIwLTA5LTExICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAg
ICBTZW5kIFRlc3RSZW5kZXJlZCBldmVudCBhZnRlciBydW5uaW5nIGEgdGVzdCBidXQgYmVmb3Jl
IGR1bXBpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNjQyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIHRoZSBuZXcgZmlsZXMgYW5k
IGRpcmVjdG9yaWVzLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0
ZSByZWFkeVRvRHVtcFN0YXRlXSk6IEFkZGVkLiBDYWxscyBzZW5kVGVzdFJlbmRlcmVkRXZlbnQu
CisgICAgICAgICgtW0ZyYW1lTG9hZERlbGVnYXRlIHByb2Nlc3NXb3JrOl0pOiBDYWxsIHJlYWR5
VG9EdW1wU3RhdGUuCisgICAgICAgICgtW0ZyYW1lTG9hZERlbGVnYXRlIHdlYlZpZXc6bG9jYXRp
b25DaGFuZ2VEb25lOmZvckRhdGFTb3VyY2U6XSk6IERpdHRvLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd2luL0ZyYW1lTG9hZERlbGVnYXRlLmNwcDoKKyAgICAgICAgKHJlYWR5VG9EdW1w
U3RhdGUpOiBBZGRlZC4gQ2FsbHMgc2VuZFRlc3RSZW5kZXJlZEV2ZW50LgorICAgICAgICAoRnJh
bWVMb2FkRGVsZWdhdGU6OnByb2Nlc3NXb3JrKTogQ2FsbCByZWFkeVRvRHVtcFN0YXRlLgorICAg
ICAgICAoRnJhbWVMb2FkRGVsZWdhdGU6OmxvY2F0aW9uQ2hhbmdlRG9uZSk6IERpdHRvLgorCisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU0Jhc2ljcy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV1RSOjpKU1ZhbHVlTWFrZUJvb2xlYW5Pck51bGwpOiBNb3ZlZCBmcm9tIEpTV3Jh
cHBhYmxlLmguCisgICAgICAgIChXVFI6OkpTVmFsdWVUb051bGxhYmxlQm9vbGVhbik6IERpdHRv
LgorICAgICAgICAoV1RSOjpKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbCk6IERpdHRvLgorICAgICAg
ICAoV1RSOjpjcmVhdGVKU1N0cmluZyk6IERpdHRvLgorICAgICAgICAoV1RSOjptYWtlVmFsdWUp
OiBEaXR0by4KKyAgICAgICAgKFdUUjo6b2JqZWN0UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAg
KFdUUjo6c2V0UHJvcGVydHkpOiBBZGRlZC4gU2V0cyBhIG5hbWVkIHByb3BlcnR5IHZhbHVlIHRv
IGEgYm9vbGVhbi4KKyAgICAgICAgKFdUUjo6Y2FsbCk6IE1vdmVkIGZyb20gSlNXcmFwcGFibGUu
aC4KKyAgICAgICAgKFdUUjo6Y2FsbENvbnN0cnVjdG9yKTogQWRkZWQuIEdldHMgYSBnbG9iYWwg
Y29uc3RydWN0b3IgYW5kIGNhbGxzIGl0LgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9C
aW5kaW5ncy9KU0Jhc2ljcy5oOiBBZGRlZC4gRGVjbGFyZXMgdGhlIGFib3ZlIGZ1bmN0aW9ucy4K
KworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNXcmFwcGFibGUuaDoKKyAg
ICAgICAgKFdUUjo6SlNWYWx1ZU1ha2VCb29sZWFuT3JOdWxsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6SlNWYWx1ZVRvTnVsbGFibGVCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6
SlNWYWx1ZU1ha2VTdHJpbmdPck51bGwpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpjcmVhdGVK
U1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6Om1ha2VWYWx1ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXVFI6Om9iamVjdFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6Y2Fs
bCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6Omhhc1JlZlRlc3RXYWl0QXR0cmlidXRlKTogRGVs
ZXRlZC4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNXcmFwcGVyLmg6
IFVwZGF0ZWQgaW5jbHVkZXMuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1JlZnRlc3RG
dW5jdGlvbnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6c2VuZFRlc3RSZW5kZXJlZEV2ZW50
KTogQWRkZWQuIENyZWF0ZXMgYW5kIGRpc3BhdGNoZXMgYSBUZXN0UmVuZGVyZWQgZXZlbnQuCisg
ICAgICAgIChXVFI6Omhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKTogTW92ZWQgZnJvbSBKU1dyYXBw
YWJsZS5oIGFuZCByZW5hbWVkIHRvIHVzZSBhCisgICAgICAgIGxvd2VyY2FzZSBUIHNpbmNlIHRo
YXQncyBob3cgd2ViLXBsYXRmb3JtLXRlc3RzIG5hbWVzIHRoaW5ncy4KKworICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5oOiBBZGRlZC4gRGVjbGFyZXMgdGhlIGFi
b3ZlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50
eHQ6IEFkZGVkIHRoZSBuZXcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAg
ICAgICAoV1RSOjpzZW5kVGVzdFJlbmRlcmVkRXZlbnQpOiBBZGRlZC4gQ2FsbHMgdGhlIHNlbmRU
ZXN0UmVuZGVyZWRFdmVudCBmcm9tCisgICAgICAgIFJlZnRlc3RGdW5jdGlvbnMuaCB3aXRoIHRo
ZSBhcHByb3ByaWF0ZSBzY3JpcHQgY29udGV4dC4KKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpmcmFtZURpZENoYW5nZUxvY2F0aW9uKTogQ2FsbCBzZW5kVGVzdFJlbmRlcmVkRXZl
bnQKKyAgICAgICAgYmVmb3JlIGNhbGxpbmcgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3Zl
ZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlUZXh0TWFya2VyTWFjLm1tOiBBZGRlZCBhCisgICAgICAgIG1pc3NpbmcgaW5jbHVk
ZSBvZiAiY29uZmlnLmgiIHRvIGZpeCBidWlsZCBmYWlsdXJlcyBJIHdhcyBzZWVpbmcuICBBbiBh
bHRlcm5hdGl2ZSwKKyAgICAgICAgc2luY2UgdGhpcyBpcyBhIENvY29hLW9ubHkgc291cmNlIGZp
bGUsIHdvdWxkIGJlIHRvIHB1dCBjb25maWcuaCBpbnRvIGEKKyAgICAgICAgcHJlY29tcGlsZWQg
cHJlZml4IGhlYWRlci4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOiBEaXR0by4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGRlZCB0aGUgbmV3CisgICAgICAgIGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KKwog
MjAyMC0wOS0xMSAgRnJhbmsgWWFuZyAgPGd1b3dlaV95YW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGRpbmcgbXlzZWxmIGFzIGNvbW1pdHRlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4
dAppbmRleCAzNmUzZmU4NmNkMWUxOTI5NjcyN2Y2NWNjMDk4ZDg4MGM0YzgwYTFlLi44NTU0MmYx
OGFmMWFiMjU3MGU0NjVlN2UxZmIwM2RmZTQwOTdjNTI0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNiw2ICs2LDggQEAgc2V0KFdlYktpdFRlc3RSdW5uZXJfVUlTQ1JJUFRD
T05URVhUX0RJUiAiJHtUT09MU19ESVJ9L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHQKIGZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtEdW1wUmVuZGVyVHJlZV9ERVJJVkVEX1NPVVJDRVNfRElSfSkKIAog
c2V0KER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKKyAgICAke1dlYktpdFRlc3RSdW5uZXJfU0hBUkVE
X0RJUn0vUmVmdGVzdEZ1bmN0aW9ucy5jcHAKKyAgICAke1dlYktpdFRlc3RSdW5uZXJfU0hBUkVE
X0RJUn0vQmluZGluZ3MvSlNCYXNpY3MuY3BwCiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX1NIQVJF
RF9ESVJ9L0JpbmRpbmdzL0pTV3JhcHBlci5jcHAKIAogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9V
SVNDUklQVENPTlRFWFRfRElSfS9VSVNjcmlwdENvbnRleHQuY3BwCkBAIC0zNCw2ICszNiw3IEBA
IHNldChEdW1wUmVuZGVyVHJlZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0NN
QUtFX0JJTkFSWV9ESVJ9CiAgICAgJHtEdW1wUmVuZGVyVHJlZV9ERVJJVkVEX1NPVVJDRVNfRElS
fQogICAgICR7RHVtcFJlbmRlclRyZWVfRElSfQorICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9TSEFS
RURfRElSfQogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9TSEFSRURfRElSfS9CaW5kaW5ncwogICAg
ICR7V2ViS2l0VGVzdFJ1bm5lcl9VSVNDUklQVENPTlRFWFRfRElSfQogKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYTI5ZTBjYThkNmYxMjFiODM5MWM1YTExNDAwMjM0YzcxZTJlN2U0
ZC4uZjI4MDI1ZWFmYWNkNWE0YjEzNjRjYTVhODMyN2NiOTBmMTEzNWRkMyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTEsNiArMTExLDggQEAKIAkJNURCOUFDQTAwRjcyMkMzNjAw
Njg0NjQxIC8qIFdlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmIGluIENvcHkgRm9udCBGaWxlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzVGMDk3OTBEQUMzQ0I2MDBDOEI0
RTUgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYgKi87IH07CiAJCTgwMDQ1QUVFMTQ3NzE4
RTcwMDgyOTBBOCAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgwMDQ1QUVDMTQ3NzE4RTcw
MDgyOTBBOCAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSAqLzsgfTsKIAkJ
ODQ2NUUyQzcwRkZBOERGMjAwM0I4MzQyIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ2NUUyQzYwRkZBOERGMjAw
M0I4MzQyIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovOyB9OworCQk5M0M3ODgyNjI1MEM2RDNB
MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0M3ODgyNDI1MEM2RDM5MDBDMEFBMjQgLyogUmVmdGVz
dEZ1bmN0aW9ucy5jcHAgKi87IH07CisJCTkzQzc4ODJFMjUwQzcxNzIwMEMwQUEyNCAvKiBKU0Jh
c2ljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0M3ODgyOTI1MEM3MTM0MDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwICovOyB9OwogCQk5ODMwRjMx
RjE1QzgxMTgxMDA1QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTgzMEYzMUUxNUM4MTE4MTAwNUFC
MjA2IC8qIER1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCAqLzsgfTsKIAkJQTExNThENTgxODkyNzQw
QzAwODhDMTdCIC8qIER1bXBSZW5kZXJUcmVlQnJvd3NlclZpZXcubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE1OEQ1NjE4OTI3M0VCMDA4OEMxN0Ig
LyogRHVtcFJlbmRlclRyZWVCcm93c2VyVmlldy5tbSAqLzsgfTsKIAkJQTExNThENTkxODkyNzQz
NjAwODhDMTdCIC8qIFBpeGVsRHVtcFN1cHBvcnRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE1OEQ1NzE4OTI3M0VCMDA4OEMxN0IgLyogUGl4
ZWxEdW1wU3VwcG9ydElPUy5tbSAqLzsgfTsKQEAgLTMzNCw2ICszMzYsMTAgQEAKIAkJODQ2NUUy
QzYwRkZBOERGMjAwM0I4MzQyIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBpeGVsRHVtcFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzM1NDM1RjAzRDc1NTAyMDA4NjM1Q0UgLyogV2ViS2l0LmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0gV2ViS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTM0MDk5NTQwODU0MENBRjAwN0YzQkM4IC8qIER1
bXBSZW5kZXJUcmVlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBEdW1wUmVuZGVyVHJlZTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJOTNDNzg4MjQyNTBDNkQzOTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmdGVzdEZ1bmN0aW9ucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQzc4ODI1MjUwQzZEMzkwMEMwQUEyNCAvKiBS
ZWZ0ZXN0RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZnRl
c3RGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNzg4MjkyNTBD
NzEzNDAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzaWNz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNzg4MkIyNTBDNzEzNDAwQzBB
QTI0IC8qIEpTQmFzaWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmFzaWNzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk4MzBGMzFFMTVDODExODEwMDVBQjIwNiAvKiBEdW1wUmVuZGVy
VHJlZUNvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEdW1w
UmVuZGVyVHJlZUNvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMTAz
QjVCMTg5MjQ5OEYwMDczOEM4NyAvKiBMYXlvdXRUZXN0SGVscGVyLnhjY29uZmlnICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
bmFtZSA9IExheW91dFRlc3RIZWxwZXIueGNjb25maWc7IHBhdGggPSBtYWMvQ29uZmlndXJhdGlv
bnMvTGF5b3V0VGVzdEhlbHBlci54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTExNThENTUxODkyNzNFQjAwODhDMTdCIC8qIER1bXBSZW5kZXJUcmVlQnJvd3NlclZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRHVtcFJlbmRlclRyZWVCcm93c2VyVmlldy5oOyBwYXRoID0gaW9z
L0R1bXBSZW5kZXJUcmVlQnJvd3NlclZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTcxOSwxMSArNzI1LDE0IEBACiAJCTMxNDhBMDY1MUU2RjkwRjQwMEQzQjMxNiAvKiBUZXN0
UnVubmVyU2hhcmVkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk5M0M3ODgyODI1MEM3MTM0MDBDMEFBMjQgLyogQmluZGluZ3MgKi8sCiAJCQkJRjRCNkMz
MTgyMEU4NDM4MjAwOEFDMjI1IC8qIGNvY29hICovLAogCQkJCUY0RkVEMzE2MjM1ODFFRjMwMDND
MTM5QyAvKiBtYWMgKi8sCiAJCQkJQTE3QTVBMkIyMkE4ODBEODAwNjVDNUYwIC8qIHNwaSAqLywK
IAkJCQkzMTQ4QTA1NTFFNkY5MEY0MDBEM0IzMTYgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRp
b24uY3BwICovLAogCQkJCTMxNDhBMDU2MUU2RjkwRjQwMEQzQjMxNiAvKiBJT1NMYXlvdXRUZXN0
Q29tbXVuaWNhdGlvbi5oICovLAorCQkJCTkzQzc4ODI0MjUwQzZEMzkwMEMwQUEyNCAvKiBSZWZ0
ZXN0RnVuY3Rpb25zLmNwcCAqLywKKwkJCQk5M0M3ODgyNTI1MEM2RDM5MDBDMEFBMjQgLyogUmVm
dGVzdEZ1bmN0aW9ucy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBUZXN0UnVubmVyU2hhcmVkOwog
CQkJcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQ7CkBAIC03NjgsNiArNzc3LDE1IEBACiAJCQlu
YW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTND
Nzg4MjgyNTBDNzEzNDAwQzBBQTI0IC8qIEJpbmRpbmdzICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0M3ODgyOTI1MEM3MTM0MDBDMEFBMjQgLyogSlNC
YXNpY3MuY3BwICovLAorCQkJCTkzQzc4ODJCMjUwQzcxMzQwMEMwQUEyNCAvKiBKU0Jhc2ljcy5o
ICovLAorCQkJKTsKKwkJCXBhdGggPSBCaW5kaW5nczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCUExMTU4RDZBMTg5MjdDRTEwMDg4QzE3QiAvKiBpb3MgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTIxNSw2ICsxMjMzLDcgQEAKIAkJ
CQlGNDRBNTMxRTIxQjg5QTUwMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTMxMjk0M0Y5MUU3MUYyQjQwMDFFRTJDQyAvKiBJT1NMYXlvdXRU
ZXN0Q29tbXVuaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0U4OEZBMjE3MTI0RDhD
MDA3MzRGQzAgLyogSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
M0M3ODgyRTI1MEM3MTcyMDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYxOEU3MDYxRDZCQTAyMzAwMjdFNTQ3IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGMThFNzEzMUQ2QkM0M0EwMDI3RTU0NyAvKiBKU1dyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRDMzU3OEQyMEU4NDQ0RTAwRkEwNzQ4IC8qIExheW91
dFRlc3RTcGVsbENoZWNrZXIubW0gaW4gU291cmNlcyAqLywKQEAgLTEyMzEsNiArMTI1MCw3IEBA
CiAJCQkJQkNCMjg0RDYwQ0ZBODNEMTAwN0U1MzNFIC8qIFBpeGVsRHVtcFN1cHBvcnRNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEI2NjBDOUIwOEMyMDAxMTQzNjkgLyogUG9saWN5RGVs
ZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDAxMEI3QjI0REEyMDFGMDBBODc2RTIgLyog
UG9zZUFzQ2xhc3MubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0M3ODgyNjI1MEM2RDNBMDBDMEFB
MjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEI2ODBD
OUIwOEMyMDAxMTQzNjkgLyogUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMzBBMjFGODIwNTFEOEM0MDAwOEZGNDIgLyogVGVzdE9wdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkMwMTMxREEwQzk3NzIwMTAwODczMTdEIC8qIFRlc3RSdW5uZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVM
b2FkRGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdh
dGUubW0KaW5kZXggZTk3NzQ5ZjRhMzJkYjdkOTIxY2YyY2M4YjVjNDZmMmI5NjA0MzQxMC4uYjM4
ZjRkMzdmMDY3MTUzNTFjODlhODZmZTgyMDhiNzZmMjE1YWE3ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2lt
cG9ydCAiT2JqQ0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIk9iakNQbHVnaW4uaCIKICNpbXBvcnQg
Ik9iakNQbHVnaW5GdW5jdGlvbi5oIgorI2ltcG9ydCAiUmVmdGVzdEZ1bmN0aW9ucy5oIgogI2lt
cG9ydCAiVGVzdFJ1bm5lci5oIgogI2ltcG9ydCAiVGV4dElucHV0Q29udHJvbGxlci5oIgogI2lt
cG9ydCAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCkBAIC0xNDEsMTQgKzE0MiwyMiBAQCAtICh2b2lk
KWR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQ6KGlkKWR1bW15CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICBXZWJUaHJlYWRMb2NrKCk7CiAjZW5kaWYKLQotICAgIGlmIChXVFI6
Omhhc1JlZlRlc3RXYWl0QXR0cmlidXRlKG1haW5GcmFtZS5nbG9iYWxDb250ZXh0KSkKKyAgICBp
ZiAoV1RSOjpoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZShtYWluRnJhbWUuZ2xvYmFsQ29udGV4dCkp
CiAgICAgICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoZHVtcEFmdGVyV2FpdEF0
dHJpYnV0ZUlzUmVtb3ZlZDopIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6MF07CiAgICAgZWxz
ZQogICAgICAgICBkdW1wKCk7CiB9CiAKLS8vIEV4ZWMgbWVzc2FnZXMgaW4gdGhlIHdvcmsgcXVl
dWUgdW50aWwgdGhleSdyZSBhbGwgZG9uZSwgb3Igb25lIG9mIHRoZW0gc3RhcnRzIGEgbmV3IGxv
YWQKKy0gKHZvaWQpcmVhZHlUb0R1bXBTdGF0ZQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgV2ViVGhyZWFkTG9jaygpOworI2VuZGlmCisgICAgV1RSOjpzZW5kVGVzdFJlbmRlcmVk
RXZlbnQobWFpbkZyYW1lLmdsb2JhbENvbnRleHQpOworICAgIFtzZWxmIGR1bXBBZnRlcldhaXRB
dHRyaWJ1dGVJc1JlbW92ZWQ6bmlsXTsKK30KKworLy8gRXhlY3V0ZSBtZXNzYWdlcyBpbiB0aGUg
d29yayBxdWV1ZSB1bnRpbCB0aGV5J3JlIGFsbCBkb25lLCBvciBvbmUgb2YgdGhlbSBzdGFydHMg
YSBuZXcgbG9hZC4KIC0gKHZvaWQpcHJvY2Vzc1dvcms6KGlkKWR1bW15CiB7CiAgICAgLy8gaWYg
YW5vdGhlciBsb2FkIHN0YXJ0ZWQsIHRoZW4gd2FpdCBmb3IgaXQgdG8gY29tcGxldGUuCkBAIC0x
NTgsMTAgKzE2Nyw5IEBAIC0gKHZvaWQpcHJvY2Vzc1dvcms6KGlkKWR1bW15CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBXZWJUaHJlYWRMb2NrKCk7CiAjZW5kaWYKLQotICAgIC8vIGlm
IHdlIGZpbmlzaCBhbGwgdGhlIGNvbW1hbmRzLCB3ZSdyZSByZWFkeSB0byBkdW1wIHN0YXRlCisg
ICAgLy8gSWYgd2UgZmluaXNoIGFsbCB0aGUgY29tbWFuZHMsIHdlJ3JlIHJlYWR5IHRvIGR1bXAg
c3RhdGUuCiAgICAgaWYgKERSVDo6V29ya1F1ZXVlOjpzaW5nbGV0b24oKS5wcm9jZXNzV29yaygp
ICYmICFnVGVzdFJ1bm5lci0+d2FpdFRvRHVtcCgpKQotICAgICAgICBbc2VsZiBkdW1wQWZ0ZXJX
YWl0QXR0cmlidXRlSXNSZW1vdmVkOm5pbF07CisgICAgICAgIFtzZWxmIHJlYWR5VG9EdW1wU3Rh
dGVdOwogfQogCiAtICh2b2lkKXJlc2V0VG9Db25zaXN0ZW50U3RhdGUKQEAgLTE3OSw3ICsxODcs
NyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGxvY2F0aW9uQ2hhbmdlRG9u
ZTooTlNFcnJvciAqKWVycm9yIGZvckRhdGFTbwogICAgICAgICAgICAgaWYgKHdvcmtRdWV1ZS5j
b3VudCgpKQogICAgICAgICAgICAgICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Io
cHJvY2Vzc1dvcms6KSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OjBdOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIFtzZWxmIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92
ZWQ6bmlsXTsKKyAgICAgICAgICAgICAgICBbc2VsZiByZWFkeVRvRHVtcFN0YXRlXTsKICAgICAg
ICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9GcmFt
ZUxvYWREZWxlZ2F0ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRnJhbWVMb2FkRGVs
ZWdhdGUuY3BwCmluZGV4IGE4OWVmZmExOTZmYzYzYjQ3NDQ4MTdlZWVlNGY2YTNlZGQ2MTg4YjYu
Ljc1NWJlZDE2ZjYwZWRjMDExMTU1MjFlMTU4YzBkYmYwNTU4OGJmODQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0ZyYW1lTG9hZERlbGVnYXRlLmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiSlNXcmFwcGVyLmgiCisjaW5jbHVkZSAiUmVmdGVzdEZ1bmN0aW9ucy5oIgogI2lu
Y2x1ZGUgIlRlc3RSdW5uZXIuaCIKICNpbmNsdWRlICJUZXh0SW5wdXRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCkBAIC0xOTEsNyArMTkyLDcgQEAgSFJFU1VM
VCBGcmFtZUxvYWREZWxlZ2F0ZTo6ZGlkQ2hhbmdlSWNvbnMoX0luX29wdF8gSVdlYlZpZXcqLCBf
SW5fb3B0XyBJV2ViRnJhbWUKIHN0YXRpYyB2b2lkIENBTExCQUNLIGR1bXBBZnRlcldhaXRBdHRy
aWJ1dGVJc1JlbW92ZWQoSFdORCA9IG51bGxwdHIsIFVJTlQgPSAwLCBVSU5UX1BUUiA9IDAsIERX
T1JEID0gMCkKIHsKICAgICBzdGF0aWMgVUlOVF9QVFIgdGltZXJJRDsKLSAgICBpZiAoZnJhbWUg
JiYgV1RSOjpoYXNSZWZUZXN0V2FpdEF0dHJpYnV0ZShmcmFtZS0+Z2xvYmFsQ29udGV4dCgpKSkg
eworICAgIGlmIChmcmFtZSAmJiBXVFI6Omhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKGZyYW1lLT5n
bG9iYWxDb250ZXh0KCkpKSB7CiAgICAgICAgIGlmICghdGltZXJJRCkKICAgICAgICAgICAgIHRp
bWVySUQgPSA6OlNldFRpbWVyKG51bGxwdHIsIDAsIDAsIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJ
c1JlbW92ZWQpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNiArMjA0LDEzIEBAIHN0YXRpYyB2b2lk
IENBTExCQUNLIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQoSFdORCA9IG51bGxwdHIs
IFVJTlQgPSAwLCBVCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCByZWFkeVRvRHVtcFN0YXRlKCkK
K3sKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIFdUUjo6c2VuZFRlc3RSZW5kZXJlZEV2ZW50KGZy
YW1lLT5nbG9iYWxDb250ZXh0KCkpOworICAgIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92
ZWQoKTsKK30KKwogdm9pZCBGcmFtZUxvYWREZWxlZ2F0ZTo6cHJvY2Vzc1dvcmsoKQogewogICAg
IC8vIGlmIGFub3RoZXIgbG9hZCBzdGFydGVkLCB0aGVuIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRl
LgpAQCAtMjExLDcgKzIxOSw3IEBAIHZvaWQgRnJhbWVMb2FkRGVsZWdhdGU6OnByb2Nlc3NXb3Jr
KCkKIAogICAgIC8vIGlmIHdlIGZpbmlzaCBhbGwgdGhlIGNvbW1hbmRzLCB3ZSdyZSByZWFkeSB0
byBkdW1wIHN0YXRlCiAgICAgaWYgKERSVDo6V29ya1F1ZXVlOjpzaW5nbGV0b24oKS5wcm9jZXNz
V29yaygpICYmICE6OmdUZXN0UnVubmVyLT53YWl0VG9EdW1wKCkpCi0gICAgICAgIGR1bXBBZnRl
cldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQoKTsKKyAgICAgICAgcmVhZHlUb0R1bXBTdGF0ZSgpOwog
fQogCiB2b2lkIEZyYW1lTG9hZERlbGVnYXRlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKQEAg
LTI2MCw3ICsyNjgsNyBAQCB2b2lkIEZyYW1lTG9hZERlbGVnYXRlOjpsb2NhdGlvbkNoYW5nZURv
bmUoSVdlYkVycm9yKiwgSVdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQoKTsKKyAgICByZWFkeVRvRHVt
cFN0YXRlKCk7CiB9CiAKIEhSRVNVTFQgRnJhbWVMb2FkRGVsZWdhdGU6OmRpZEZpbmlzaExvYWRG
b3JGcmFtZShfSW5fb3B0XyBJV2ViVmlldyosIF9Jbl9vcHRfIElXZWJGcmFtZSogZnJhbWUpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmNwcCBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNCYXNpY3MuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZmZjBiNzQ5OTBhZmI5ZTEyYWM5ZDAxYTcxMGE0YzUyODBlMWU5MDgKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmNwcApAQCAtMCww
ICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpT
QmFzaWNzLmgiCisKK25hbWVzcGFjZSBXVFIgeworCitKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlQm9v
bGVhbk9yTnVsbChKU0NvbnRleHRSZWYgY29udGV4dCwgT3B0aW9uYWw8Ym9vbD4gdmFsdWUpCit7
CisgICAgcmV0dXJuIHZhbHVlID8gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHZhbHVlLnZh
bHVlKCkpIDogSlNWYWx1ZU1ha2VOdWxsKGNvbnRleHQpOworfQorCitPcHRpb25hbDxib29sPiBK
U1ZhbHVlVG9OdWxsYWJsZUJvb2xlYW4oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYg
dmFsdWUpCit7CisgICAgcmV0dXJuIEpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCB2YWx1ZSkg
fHwgSlNWYWx1ZUlzTnVsbChjb250ZXh0LCB2YWx1ZSkgPyBXVEY6Om51bGxvcHQgOiBPcHRpb25h
bDxib29sPihKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIHZhbHVlKSk7Cit9CisKK0pTVmFsdWVS
ZWYgSlNWYWx1ZU1ha2VTdHJpbmdPck51bGwoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5n
UmVmIHN0cmluZ09yTnVsbCkKK3sKKyAgICByZXR1cm4gc3RyaW5nT3JOdWxsID8gSlNWYWx1ZU1h
a2VTdHJpbmcoY29udGV4dCwgc3RyaW5nT3JOdWxsKSA6IEpTVmFsdWVNYWtlTnVsbChjb250ZXh0
KTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNyZWF0ZUpTU3RyaW5nKGNvbnN0IGNo
YXIqIHN0cmluZykKK3sKKyAgICByZXR1cm4gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoc3RyaW5nKSk7Cit9CisKK0pTVmFsdWVSZWYgbWFrZVZhbHVlKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBjb25zdCBjaGFyKiBzdHJpbmcpCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3Ry
aW5nKGNvbnRleHQsIGNyZWF0ZUpTU3RyaW5nKHN0cmluZykuZ2V0KCkpOworfQorCitKU09iamVj
dFJlZiBvYmplY3RQcm9wZXJ0eShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBjb25zdCBjaGFyKiBuYW1lKQoreworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBhdXRvIHZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0
LCBvYmplY3QsIGNyZWF0ZUpTU3RyaW5nKG5hbWUpLmdldCgpLCBudWxscHRyKTsKKyAgICBpZiAo
IUpTVmFsdWVJc09iamVjdChjb250ZXh0LCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPih2YWx1ZSk7Cit9CisKK0pTT2Jq
ZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBv
YmplY3QsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBjaGFyKj4gbmFtZXMpCit7CisgICAg
Zm9yIChhdXRvIG5hbWUgOiBuYW1lcykKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0UHJvcGVydHko
Y29udGV4dCwgb2JqZWN0LCBuYW1lKTsKKyAgICByZXR1cm4gb2JqZWN0OworfQorCit2b2lkIHNl
dFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0
IGNoYXIqIG5hbWUsIGJvb2wgdmFsdWUpCit7CisgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShjb250
ZXh0LCBvYmplY3QsIGNyZWF0ZUpTU3RyaW5nKG5hbWUpLmdldCgpLCBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgdmFsdWUpLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIG51bGxwdHIpOwor
fQorCitKU1ZhbHVlUmVmIGNhbGwoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9i
amVjdCwgY29uc3QgY2hhciogbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PEpTVmFsdWVSZWY+
IGFyZ3VtZW50cykKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgYXV0byBmdW5jdGlvbiA9IG9iamVjdFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgbmFt
ZSk7CisgICAgaWYgKCFmdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgZnVuY3Rpb24sIG9iamVjdCwgYXJn
dW1lbnRzLnNpemUoKSwgYXJndW1lbnRzLmJlZ2luKCksIG51bGxwdHIpOworfQorCitKU09iamVj
dFJlZiBjYWxsQ29uc3RydWN0b3IoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IGNo
YXIqIG5hbWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxKU1ZhbHVlUmVmPiBhcmd1bWVudHMpCit7
CisgICAgYXV0byBjb25zdHJ1Y3RvciA9IG9iamVjdFByb3BlcnR5KGNvbnRleHQsIEpTQ29udGV4
dEdldEdsb2JhbE9iamVjdChjb250ZXh0KSwgeyBuYW1lIH0pOworICAgIGlmICghY29uc3RydWN0
b3IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBKU09iamVjdENhbGxBc0Nv
bnN0cnVjdG9yKGNvbnRleHQsIGNvbnN0cnVjdG9yLCBhcmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVu
dHMuYmVnaW4oKSwgbnVsbHB0cik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU0Jhc2ljcy5oIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU0Jhc2ljcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZGRhNTI0N2E1
YWI2YzA0MDk2M2RmMTlhYjBmNWUwMjk2Y2ViODIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRh
aW5QdHIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CisjaW5jbHVk
ZSA8aW5pdGlhbGl6ZXJfbGlzdD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNw
YWNlIFdUUiB7CisKK0pTVmFsdWVSZWYgSlNWYWx1ZU1ha2VCb29sZWFuT3JOdWxsKEpTQ29udGV4
dFJlZiwgT3B0aW9uYWw8Ym9vbD4pOworT3B0aW9uYWw8Ym9vbD4gSlNWYWx1ZVRvTnVsbGFibGVC
b29sZWFuKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CisKK0pTVmFsdWVSZWYgSlNWYWx1ZU1h
a2VTdHJpbmdPck51bGwoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZik7CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBjcmVhdGVKU1N0cmluZyhjb25zdCBjaGFyKik7CitKU1ZhbHVlUmVmIG1h
a2VWYWx1ZShKU0NvbnRleHRSZWYsIGNvbnN0IGNoYXIqKTsKK0pTT2JqZWN0UmVmIG9iamVjdFBy
b3BlcnR5KEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYsIGNvbnN0IGNoYXIqIG5hbWUpOworSlNP
YmplY3RSZWYgb2JqZWN0UHJvcGVydHkoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgc3RkOjpp
bml0aWFsaXplcl9saXN0PGNvbnN0IGNoYXIqPiBuYW1lcyk7Cit2b2lkIHNldFByb3BlcnR5KEpT
Q29udGV4dFJlZiwgSlNPYmplY3RSZWYsIGNvbnN0IGNoYXIqIG5hbWUsIGJvb2wgdmFsdWUpOwor
SlNWYWx1ZVJlZiBjYWxsKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYsIGNvbnN0IGNoYXIqIG5h
bWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxKU1ZhbHVlUmVmPiBhcmd1bWVudHMpOworSlNPYmpl
Y3RSZWYgY2FsbENvbnN0cnVjdG9yKEpTR2xvYmFsQ29udGV4dFJlZiwgY29uc3QgY2hhciogbmFt
ZSwgc3RkOjppbml0aWFsaXplcl9saXN0PEpTVmFsdWVSZWY+IGFyZ3VtZW50cyk7CisKK30gLy8g
bmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5n
cy9KU1dyYXBwYWJsZS5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBw
YWJsZS5oCmluZGV4IDVhMGEzNWZlOWQzNjJhMDdkMjgwZmE3N2YwYzVjYTI2MTE0YTBmZjMuLjll
MGYwN2RmNTkzMmFiMzAzMzFkN2I2MWQxNzM1M2FlNmUwMWM0NzMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNXcmFwcGFibGUuaAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMTAgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KLSNpbmNsdWRlIDxpbml0aWFsaXpl
cl9saXN0PgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXVFIgewpAQCAtMzksNjUgKzM2LDQgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSlNDbGFzc1JlZiB3cmFwcGVyQ2xhc3MoKSA9IDA7CiB9OwogCi1pbmxpbmUgSlNW
YWx1ZVJlZiBKU1ZhbHVlTWFrZUJvb2xlYW5Pck51bGwoSlNDb250ZXh0UmVmIGNvbnRleHQsIE9w
dGlvbmFsPGJvb2w+IHZhbHVlKQotewotICAgIHJldHVybiB2YWx1ZSA/IEpTVmFsdWVNYWtlQm9v
bGVhbihjb250ZXh0LCB2YWx1ZS52YWx1ZSgpKSA6IEpTVmFsdWVNYWtlTnVsbChjb250ZXh0KTsK
LX0KLQotaW5saW5lIE9wdGlvbmFsPGJvb2w+IEpTVmFsdWVUb051bGxhYmxlQm9vbGVhbihKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1
ZUlzVW5kZWZpbmVkKGNvbnRleHQsIHZhbHVlKSB8fCBKU1ZhbHVlSXNOdWxsKGNvbnRleHQsIHZh
bHVlKSA/IFdURjo6bnVsbG9wdCA6IE9wdGlvbmFsPGJvb2w+KEpTVmFsdWVUb0Jvb2xlYW4oY29u
dGV4dCwgdmFsdWUpKTsKLX0KLQotaW5saW5lIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VTdHJpbmdP
ck51bGwoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIHN0cmluZ09yTnVsbCkKLXsK
LSAgICByZXR1cm4gc3RyaW5nT3JOdWxsID8gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgc3Ry
aW5nT3JOdWxsKSA6IEpTVmFsdWVNYWtlTnVsbChjb250ZXh0KTsKLX0KLQotaW5saW5lIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBjcmVhdGVKU1N0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcpCi17
Ci0gICAgcmV0dXJuIGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0cmluZykp
OwotfQotCi1pbmxpbmUgSlNWYWx1ZVJlZiBtYWtlVmFsdWUoSlNDb250ZXh0UmVmIGNvbnRleHQs
IGNvbnN0IGNoYXIqIHN0cmluZykKLXsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29u
dGV4dCwgY3JlYXRlSlNTdHJpbmcoc3RyaW5nKS5nZXQoKSk7Ci19Ci0KLWlubGluZSBKU09iamVj
dFJlZiBvYmplY3RQcm9wZXJ0eShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBjb25zdCBjaGFyKiBuYW1lKQotewotICAgIGlmICghb2JqZWN0KQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBhdXRvIHZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0
LCBvYmplY3QsIGNyZWF0ZUpTU3RyaW5nKG5hbWUpLmdldCgpLCBudWxscHRyKTsKLSAgICBpZiAo
IUpTVmFsdWVJc09iamVjdChjb250ZXh0LCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPih2YWx1ZSk7Ci19Ci0KLWlubGlu
ZSBKU09iamVjdFJlZiBvYmplY3RQcm9wZXJ0eShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgb2JqZWN0LCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hhcio+IG5hbWVzKQot
ewotICAgIGZvciAoYXV0byBuYW1lIDogbmFtZXMpCi0gICAgICAgIG9iamVjdCA9IG9iamVjdFBy
b3BlcnR5KGNvbnRleHQsIG9iamVjdCwgbmFtZSk7Ci0gICAgcmV0dXJuIG9iamVjdDsKLX0KLQot
aW5saW5lIEpTVmFsdWVSZWYgY2FsbChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
b2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8SlNWYWx1ZVJl
Zj4gYXJndW1lbnRzKQotewotICAgIGlmICghb2JqZWN0KQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBhdXRvIGZ1bmN0aW9uID0gb2JqZWN0UHJvcGVydHkoY29udGV4dCwgb2JqZWN0LCBu
YW1lKTsKLSAgICBpZiAoIWZ1bmN0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBy
ZXR1cm4gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBmdW5jdGlvbiwgb2JqZWN0LCBh
cmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVudHMuYmVnaW4oKSwgbnVsbHB0cik7Ci19Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoaXMgc29tZXdoZXJlIGJldHRlci4gV2Ugd2FudCB0byBzaGFyZSBpdCwgc28g
aXQgYmVsb25ncyBpbiBUZXN0UnVubmVyU2hhcmVkLCBidXQgbm90IGFzIHBhcnQgb2YgSlNXcmFw
cGFibGUuCi1pbmxpbmUgYm9vbCBoYXNSZWZUZXN0V2FpdEF0dHJpYnV0ZShKU0NvbnRleHRSZWYg
Y29udGV4dCkKLXsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBhdXRvIGNsYXNzTGlzdCA9IG9iamVjdFByb3BlcnR5KGNvbnRleHQsIEpTQ29udGV4dEdldEds
b2JhbE9iamVjdChjb250ZXh0KSwgeyAiZG9jdW1lbnQiLCAiZG9jdW1lbnRFbGVtZW50IiwgImNs
YXNzTGlzdCIgfSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgY2FsbChj
b250ZXh0LCBjbGFzc0xpc3QsICJjb250YWlucyIsIHsgbWFrZVZhbHVlKGNvbnRleHQsICJyZWZ0
ZXN0LXdhaXQiKSB9KSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwZXIuaCBiL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvQmluZGluZ3MvSlNXcmFwcGVyLmgKaW5kZXggMzViMzRmYjU2MjA4NjIwMDZkODA0
MTZiZjIzZTlkZTE1NzZlMTIyMy4uZjY3OThmOTlhNGZlYzY3NTYzZDA5MTU2M2I1MDUwOWRmYzg1
NzJkYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBw
ZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBlci5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSlNCYXNpY3MuaCIK
ICNpbmNsdWRlICJKU1dyYXBwYWJsZS5oIgogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5jcHAgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1JlZnRlc3RGdW5jdGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzNWMyOTJmNGEx
NTY4ZTAyZWY1YzZjZDM0YzAxOTc0MzQ0YWEyZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1JlZnRlc3RGdW5jdGlvbnMuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVmdGVzdEZ1bmN0aW9u
cy5oIgorCisjaW5jbHVkZSAiSlNCYXNpY3MuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQg
c2VuZFRlc3RSZW5kZXJlZEV2ZW50KEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0KQoreworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gaW5pdGlhbGl6ZXIgPSBK
U09iamVjdE1ha2UoY29udGV4dCwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgc2V0UHJvcGVydHko
Y29udGV4dCwgaW5pdGlhbGl6ZXIsICJidWJibGVzIiwgdHJ1ZSk7CisgICAgYXV0byBldmVudCA9
IGNhbGxDb25zdHJ1Y3Rvcihjb250ZXh0LCAiRXZlbnQiLCB7IG1ha2VWYWx1ZShjb250ZXh0LCAi
VGVzdFJlbmRlcmVkIiksIGluaXRpYWxpemVyIH0pOworICAgIGF1dG8gZG9jdW1lbnRFbGVtZW50
ID0gb2JqZWN0UHJvcGVydHkoY29udGV4dCwgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRl
eHQpLCB7ICJkb2N1bWVudCIsICJkb2N1bWVudEVsZW1lbnQiIH0pOworICAgIGNhbGwoY29udGV4
dCwgZG9jdW1lbnRFbGVtZW50LCAiZGlzcGF0Y2hFdmVudCIsIHsgZXZlbnQgfSk7Cit9CisKK2Jv
b2wgaGFzUmVmdGVzdFdhaXRBdHRyaWJ1dGUoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQpCit7
CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byBjbGFz
c0xpc3QgPSBvYmplY3RQcm9wZXJ0eShjb250ZXh0LCBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3Qo
Y29udGV4dCksIHsgImRvY3VtZW50IiwgImRvY3VtZW50RWxlbWVudCIsICJjbGFzc0xpc3QiIH0p
OworICAgIHJldHVybiBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGNhbGwoY29udGV4dCwgY2xh
c3NMaXN0LCAiY29udGFpbnMiLCB7IG1ha2VWYWx1ZShjb250ZXh0LCAicmVmdGVzdC13YWl0Iikg
fSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1JlZnRlc3RG
dW5jdGlvbnMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliNmZkNzk1N2YwYjkwNTFjOTA0OWIwMzMzY2YxMDg5OWY1ZDkxNTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1JlZnRlc3RGdW5jdGlvbnMuaApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK3R5cGVkZWYgc3Ry
dWN0IE9wYXF1ZUpTQ29udGV4dCogSlNHbG9iYWxDb250ZXh0UmVmOworCituYW1lc3BhY2UgV1RS
IHsKKwordm9pZCBzZW5kVGVzdFJlbmRlcmVkRXZlbnQoSlNHbG9iYWxDb250ZXh0UmVmKTsKK2Jv
b2wgaGFzUmVmdGVzdFdhaXRBdHRyaWJ1dGUoSlNHbG9iYWxDb250ZXh0UmVmKTsKKworfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggYTNkMDUxYjk2MmU4MDk5N2QxMTRi
N2Y0MWQ0ZjVkMTZkN2QzZTljNy4uYTJiMmEzY2E4NGU2NTg3MGMyYWM0YjJhZmIwODEwYTZjNzcx
NjJjOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CkBAIC03LDYgKzcsNyBA
QCBmaWxlKE1BS0VfRElSRUNUT1JZICR7V2ViS2l0VGVzdFJ1bm5lcl9ERVJJVkVEX1NPVVJDRVNf
RElSfS9JbmplY3RlZEJ1bmRsZSkKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtXZWJLaXRUZXN0UnVu
bmVyX0RFUklWRURfU09VUkNFU19ESVJ9L1VJU2NyaXB0Q29udGV4dCkKIAogc2V0KFdlYktpdFRl
c3RSdW5uZXJfU09VUkNFUworICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9L0pT
QmFzaWNzLmNwcAogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9L0pTV3JhcHBl
ci5jcHAKIAogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9VSVNDUklQVENPTlRFWFRfRElSfS9VSVNj
cmlwdENvbnRleHQuY3BwCkBAIC00Nyw2ICs0OCw5IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RS
dW5uZXJfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBzZXQoV2ViS2l0VGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlX1NPVVJDRVMKKyAgICAke1dlYktpdFRlc3RSdW5uZXJfU0hBUkVEX0RJUn0vUmVm
dGVzdEZ1bmN0aW9ucy5jcHAKKworICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9
L0pTQmFzaWNzLmNwcAogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9L0pTV3Jh
cHBlci5jcHAKIAogICAgIEluamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cApAQCAtNjQsNiArNjgsNyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NP
VVJDRVMKIAogc2V0KFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9JTkNMVURFX0RJUkVD
VE9SSUVTCiAgICAgJHtDTUFLRV9CSU5BUllfRElSfQorICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9T
SEFSRURfRElSfQogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9CiAgICAgJHtX
ZWJLaXRUZXN0UnVubmVyX0RFUklWRURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlCiAgICAg
JHtXZWJLaXRUZXN0UnVubmVyX0RJUn0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAwZDE1
MDJhNjNiOGFlOTdmNTExNWM4MGZiOWNiZWI4MWRkMjRmZWY2Li4xMzg3ZTkzZmI5N2U1ZDFiOWZl
MWUyMzk1OTMwMDNiNmY3NmU0YWM1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlLmgiCisjaW5jbHVkZSAiUmVmdGVzdEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlN0
cmluZ0Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydC5oIgogI2luY2x1
ZGUgPGNtYXRoPgpAQCAtMTk1NCwxMCArMTk1NSwyMSBAQCBTdHJpbmcgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpwbGF0Zm9ybVJlc3BvbnNlTWltZVR5cGUoV0tVUkxSZXNwb25zZVJlZikKIH0KICNlbmRp
ZgogCi1zdGF0aWMgYm9vbCBoYXNSZWZUZXN0V2FpdEF0dHJpYnV0ZShJbmplY3RlZEJ1bmRsZVBh
Z2UmIHBhZ2UpCitzdGF0aWMgdm9pZCBzZW5kVGVzdFJlbmRlcmVkRXZlbnQoKQoreworICAgIGF1
dG8gcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCk7CisgICAgaWYgKCFw
YWdlKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBmcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1h
aW5GcmFtZShwYWdlLT5wYWdlKCkpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsK
KyAgICBzZW5kVGVzdFJlbmRlcmVkRXZlbnQoV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250
ZXh0KGZyYW1lKSk7Cit9CisKK3N0YXRpYyBib29sIGhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKElu
amVjdGVkQnVuZGxlUGFnZSYgcGFnZSkKIHsKICAgICBhdXRvIGZyYW1lID0gV0tCdW5kbGVQYWdl
R2V0TWFpbkZyYW1lKHBhZ2UucGFnZSgpKTsKLSAgICByZXR1cm4gZnJhbWUgJiYgaGFzUmVmVGVz
dFdhaXRBdHRyaWJ1dGUoV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KGZyYW1lKSk7
CisgICAgcmV0dXJuIGZyYW1lICYmIGhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKFdLQnVuZGxlRnJh
bWVHZXRKYXZhU2NyaXB0Q29udGV4dChmcmFtZSkpOwogfQogCiBzdGF0aWMgdm9pZCBkdW1wQWZ0
ZXJXYWl0QXR0cmlidXRlSXNSZW1vdmVkKHZvaWQqID0gbnVsbHB0cikKQEAgLTE5NjUsNyArMTk3
Nyw3IEBAIHN0YXRpYyB2b2lkIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQodm9pZCog
PSBudWxscHRyKQogICAgIGF1dG8gcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKGhhc1JlZlRl
c3RXYWl0QXR0cmlidXRlKCpwYWdlKSkKKyAgICBpZiAoaGFzUmVmdGVzdFdhaXRBdHRyaWJ1dGUo
KnBhZ2UpKQogICAgICAgICBXS0J1bmRsZVBhZ2VDYWxsQWZ0ZXJUYXNrc0FuZFRpbWVycyhwYWdl
LT5wYWdlKCksIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQsIG51bGxwdHIpOwogICAg
IGVsc2UKICAgICAgICAgcGFnZS0+ZHVtcCgpOwpAQCAtMTk5Miw2ICsyMDA0LDcgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmZyYW1lRGlkQ2hhbmdlTG9jYXRpb24oV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIHNlbmRUZXN0UmVuZGVyZWRF
dmVudCgpOwogICAgIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQppbmRleCBiYTI4OWIxZDZj
ZGU3YTIyMTEzMmRhMThjMjBmOTYyOTMyZTJkMzk4Li4xZmI5OTFjMjA4YjNjMzcyNzVjYzZjN2Ri
N2ViNTlmNWNkOTJiOWE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
ck1hYy5tbQpAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2ltcG9y
dCAiY29uZmlnLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5oIgogCiBuYW1l
c3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlTWFjLm1tCmluZGV4IGQzODNkZmE0NDM0MzUxNGY5M2Y3Njc1MGJiMjg4NGZjOGRlZTk3YzUu
LmY1ZjU4OTJhMDk4YTYxYWMyNmQ4YjljMjRiODQwNGU0ZmU1YmNlOWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2VNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbQpAQCAtMjMsNiArMjMs
NyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0
ICJBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmgiCiAKIG5hbWVzcGFjZSBXVFIgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5u
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNjRjNjQwNjU4YzJmMTc5YzBiZDJi
MGFmZDdjMGM0MTcwMGE0MjkxLi4zZTkyMzdiZTE5MWUyMTdlNTlmODY2Yjc2NWJiNDc4ZTFiZDdh
MTYwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIyLDYgKzEyMiw5
IEBACiAJCTgwMzRDNjYyMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgw
MzRDNjYxMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAq
LzsgfTsKIAkJODA5NzMzOEExNDg3NEE1QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODA5NzMzODkxNDg3NEE1QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tICovOyB9OwogCQk5Mzc2NDE3QTIxMEQ3MzcyMDBBM0RBQUUgLyogV2ViS2l0
VGVzdFJ1bm5lcldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNzY0MTc2MjEwRDczNjAwMEEzREFBRSAvKiBXZWJLaXRUZXN0UnVubmVyV2lu
ZG93Lm1tICovOyB9OworCQk5M0M3ODgyMzI1MEM2QzJFMDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0M3ODgxRjI1MEM2OUU0MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgKi87IH07CisJ
CTkzQzc4ODMxMjUwQzcxOUYwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0M3ODgzMDI1MEM3MTk5MDBDMEFBMjQg
LyogSlNCYXNpY3MuY3BwICovOyB9OworCQk5M0M3ODgzMjI1MEM3MUI3MDBDMEFBMjQgLyogSlNC
YXNpY3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNDNzg4MzAyNTBDNzE5OTAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCAqLzsgfTsKIAkJQTE4NTEw
M0ExQjlBRTBEQTAwNzQ0QUVCIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQjkwQTMxOTA1QkM2QTAwMEZEQkYz
IC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tICovOyB9OwogCQlBMTg1MTAzQjFCOUFFMEUyMDA3NDRB
RUIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJv
bGxlckNvY29hLm1tICovOyB9OwogCQlBMTg1MTAzQzFCOUFFMEZFMDA3NDRBRUIgLyogT3B0aW9u
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFD
QzAwRDE4MTE4NUJGMDA0MkU5QjYgLyogT3B0aW9ucy5jcHAgKi87IH07CkBAIC0zNTIsNiArMzU1
LDEwIEBACiAJCThERDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBXZWJLaXRUZXN0UnVubmVyICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0
UnVubmVyOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5Mzc2NDE3NjIx
MEQ3MzYwMDBBM0RBQUUgLyogV2ViS2l0VGVzdFJ1bm5lcldpbmRvdy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJXaW5kb3cubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNzY0MTc3MjEwRDczNjEwMEEzREFBRSAvKiBX
ZWJLaXRUZXN0UnVubmVyV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdFRlc3RSdW5uZXJXaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNDNzg4MUYyNTBDNjlFNDAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVmdGVzdEZ1bmN0aW9ucy5jcHA7IHBhdGgg
PSAuLi9UZXN0UnVubmVyU2hhcmVkL1JlZnRlc3RGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0M3ODgyMDI1MEM2OUU0MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZWZ0ZXN0RnVuY3Rpb25z
Lmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1JlZnRlc3RGdW5jdGlvbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNzg4MkYyNTBDNzE5OTAwQzBBQTI0IC8qIEpTQmFz
aWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTQmFzaWNzLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hh
cmVkL0JpbmRpbmdzL0pTQmFzaWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
Qzc4ODMwMjUwQzcxOTkwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBKU0Jhc2ljcy5jcHA7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFz
aWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRDEzMkUyMDM2RDM0NjAw
OEZDOEZCIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QuZW50aXRsZW1lbnRzOyBwYXRoID0gIldlYktpdFRlc3RSdW5uZXJBcHAtaU9T
LmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMzZBMjcwMjA5
NDUzQTAwMDNFMDY1MSAvKiBXaGF0VG9EdW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdoYXRUb0R1bXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE4NTEw
MjcxQjlBREU0ODAwNzQ0QUVCIC8qIGxpYldlYktpdFRlc3RSdW5uZXIuYSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUlu
SW5kZXggPSAwOyBwYXRoID0gbGliV2ViS2l0VGVzdFJ1bm5lci5hOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNTM2LDYgKzU0Myw4IEBACiAJCQkJMEY3M0I1NDcxQkE3
ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0Q29udGV4dCAqLywKIAkJCQkzMTQ4QTA1MzFFNkY4NUI2
MDBEM0IzMTYgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRpb24uY3BwICovLAogCQkJCTMxNDhB
MDU0MUU2Rjg1QjYwMEQzQjMxNiAvKiBJT1NMYXlvdXRUZXN0Q29tbXVuaWNhdGlvbi5oICovLAor
CQkJCTkzQzc4ODFGMjUwQzY5RTQwMEMwQUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCAqLywK
KwkJCQk5M0M3ODgyMDI1MEM2OUU0MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5oICovLAog
CQkJKTsKIAkJCW5hbWUgPSBUZXN0UnVubmVyU2hhcmVkOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTU0Myw2ICs1NTIsOCBAQAogCQkwRjE4RTcxQjFENkJDNEU2MDAyN0U1NDcgLyog
QmluZGluZ3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTkzQzc4ODMwMjUwQzcxOTkwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAgKi8sCisJCQkJOTNDNzg4
MkYyNTBDNzE5OTAwQzBBQTI0IC8qIEpTQmFzaWNzLmggKi8sCiAJCQkJMEYxOEU3MTQxRDZCQzQ1
NjAwMjdFNTQ3IC8qIEpTV3JhcHBhYmxlLmggKi8sCiAJCQkJMEYxOEU3MTUxRDZCQzQ1NjAwMjdF
NTQ3IC8qIEpTV3JhcHBlci5jcHAgKi8sCiAJCQkJMEYxOEU3MTYxRDZCQzQ1NjAwMjdFNTQ3IC8q
IEpTV3JhcHBlci5oICovLApAQCAtMTE4NCw2ICsxMTk1LDcgQEAKIAkJCQlBMTg1MTAzRjFCOUFF
MTI5MDA3NDRBRUIgLyogR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjQ0QTUzMTgyMUI4OTlFNTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzMURBOEEzRDFFNzIwNUNDMDBFMURGMkYgLyogSU9TTGF5
b3V0VGVzdENvbW11bmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNDNzg4MzIyNTBD
NzFCNzAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNCNTUx
MUJBNzg5NjgwMDRCM0VGNCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjE4RTcxODFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY0QzM1NzhDMjBFODQ0NDYwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxD
aGVja2VyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMjQxLDExICsxMjUzLDEzIEBACiAJCQkJMjlB
OEZDQ0IxNDVFRjAyRTAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTIxMEVFMTE0NENE
QjI2MDA4MzVCQjUgLyogSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTkzQzc4ODMxMjUwQzcxOUYwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzhGRDhEMjEyMEU1NDVCMDBGM0U3MUEgLyogSlNFdmVudFNlbmRpbmdDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTRFNEVBMTIwRTAzRDgwMDgyNkMwQyAv
KiBKU0dDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk1MkYxRjExRjNDNjUy
MDAzMzk4QjQgLyogSlNUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU2NDFFMkQw
MTQzMzVFOTUwMDgzMDdFNSAvKiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY2RTg5MDMxRDZCQzVBMjAwOEVEMEZBIC8qIEpTV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5M0M3ODgyMzI1MEM2QzJFMDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9u
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTYzRURBNjE4OTFCREMwMDAyQTdBRkMgLyogVGVz
dFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMENFNzIwQjEyNDdDOTMzMDBCQzBFQzQg
LyogVGVzdFJ1bm5lck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU2NjRBNDlBMTQzMjYzODQw
MDg4ODFCRSAvKiBUZXh0SW5wdXRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDdhZTA3OTUwZTc1ZDhhZGJmZTE5YTU2MWNiNDI1ZmI4ZDFmMmJhMmUuLjJhNzg5OGRkOWIxMjdj
NjJkMjJlODE3Y2UyOWY5OGUzNTRjYTM4MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0w
OS0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VuZCBUZXN0
UmVuZGVyZWQgZXZlbnQgYWZ0ZXIgcnVubmluZyBhIHRlc3QgYnV0IGJlZm9yZSBkdW1waW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0MjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICBVbnNraXAgdHdvIHRlc3RzIHRoYXQgbm8gbG9uZ2VyIHRpbWUgb3V0
IHNpbmNlIHdlIGFyZSBzZW5kaW5nIHRoaXMgZXZlbnQuCisKIDIwMjAtMDktMTEgIEthcmwgUmFj
a2xlciAgPHJhY2tsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IFsgQmlnU3Vy
IHdrMiBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1h
bGxvd2VkLWNyb3Nzb3JpZ2luLmh0bWwgaXMgYSBjb25zdGFudCBmYWlsdXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVkMGYwNmZlOGUwNDgxMzQxOGU0
YmViYzEwZDY3MDFjNmI1MmY4NWEuLjIxYWNjZDgyOWM5OGJjZGM3MDcxNjFmMDRlYjE3ZGJlNzYx
Yjc3MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03
OCw4ICs3OCw2IEBAIHdlYmtpdC5vcmcvYi8yMTYzOTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtCiB3ZWJraXQub3JnL2IvMjE2Mzk3
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC90aGUtaW1nLWVsZW1lbnQvaW1hZ2UtY29tcG9zaXRpbmctY2hhbmdlLmh0bWwgWyBU
aW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8yMTYzOTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9pbWFn
ZS1sb2FkaW5nLWxhenktc2xvdy1hc3BlY3QtcmF0aW8uaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0
Lm9yZy9iLzIxNjM5NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2ltYWdlLWxvYWRpbmctbGF6eS1z
bG93Lmh0bWwgWyBUaW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8yMTYzOTcgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtb3B0aW9uLWVsZW1lbnQv
ZHluYW1pYy1jb250ZW50LWNoYW5nZS1yZW5kZXJpbmcuaHRtbCBbIFRpbWVvdXQgXQotd2Via2l0
Lm9yZy9iLzIxNjM5NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2Zvcm1zL3RoZS1zZWxlY3QtZWxlbWVudC9yZXNldC1hbGdvcml0aG0tcmVuZGVyaW5nLmh0
bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8yMTYzOTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9mcmFjdGlvbnMvZnJhYy1iYXIt
MDAxLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8yMTYzOTcgd2Via2l0Lm9yZy9iLzIx
NDgwMCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWlu
Zy1tb2RlbC9hbmltYXRpb25zL2luZmluaXRlLWR1cmF0aW9uLWFuaW1hdGlvbi5odG1sIFsgVGlt
ZW91dCBdCiB3ZWJraXQub3JnL2IvMjE2Mzk3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL2FuaW1hdGlvbnMvcmV2ZXJzZS1ydW5uaW5n
LWFuaW1hdGlvbi5odG1sIFsgVGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDk0OGZkYWRhYWUyOGZjOWU3OTc1NWM3ZGQ4YTgxZTczMWUyZGE3
MzUuLjA1ZGM0MjhkODk0MzVjNDIyZDE2MGU4YzY0NmMwYTM4ZTY3ODkyOWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTk3LDExICsyMTk3LDkgQEAg
d2Via2l0Lm9yZy9iLzIxNjI5OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9ibG9iLXZhbGlkLWFmdGVyLWQKIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL3RleHQtb3ZlcmZsb3ctMDE3Lmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy92aF9ub3RfcmVmcmVzaGluZ19vbl9jaHJvbWUuaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzE4NjA0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2VtYmVkZGVkLWNvbnRlbnQvY3Jvc3MtZG9t
YWluLWlmcmFtZS5zdWIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE4NjA0NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1vcHRpb24t
ZWxlbWVudC9keW5hbWljLWNvbnRlbnQtY2hhbmdlLXJlbmRlcmluZy5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLXNlbGVjdC1lbGVtZW50L3Jlc2V0LWFsZ29yaXRobS1yZW5kZXJp
bmcuaHRtbCBbIFNraXAgXQogCiAjPHJkYXI6Ly82MzAyNjI4Mz4gWyBtYWNPUyBpT1MgXSBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxheWJhY2stc3VwcG9ydC9wbGF5YmFjay1zdXBwb3J0
LWF1dG9wbGF5Lmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlL3RpbWVvdXQKIFsgQmlnU3VyKyBdIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9wbGF5YmFjay1zdXBwb3J0L3BsYXliYWNrLXN1cHBv
cnQtYXV0b3BsYXkuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKICMgcmRhcjovLzY4NzM2NzM1IChS
RUdSRVNTSU9OOiBbIEJpZ1N1ciA8IDIwQTIzNzQgXSBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYt
bG9vcC1jb3VudC5odG1sIGlzIGEgY29uc3RhbnQgaW1hZ2UgZmFpbHVyZSkKLVsgQmlnU3VyKyBd
IGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1sb29wLWNvdW50Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitbIEJpZ1N1cisgXSBmYXN0L2ltYWdl
cy9hbmltYXRlZC1naWYtbG9vcC1jb3VudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="424030"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="424033"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408630</attachid>
            <date>2020-09-12 18:53:58 -0700</date>
            <delta_ts>2020-09-12 18:53:58 -0700</delta_ts>
            <desc>Patch to disable the precompiled header for WinCairo DRT and WTR</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>1674</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZmQwNjUyYjQzZjVjLi41
YWQyOGZlMzhiZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2lu
LmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC03
Miw3ICs3Miw5IEBAIGVsc2UgKCkKICAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAotV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5kZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVtcFJl
bmRlclRyZWVQcmVmaXguY3BwIiBEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTKQoraWYgKE5PVCBXVEZf
UExBVEZPUk1fV0lOX0NBSVJPKQorICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJE
dW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIgRHVt
cFJlbmRlclRyZWVfU09VUkNFUykKK2VuZGlmICgpCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJf
RkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShEdW1wUmVuZGVyVHJlZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNjkxOTc5MWRkZjlkLi42Nzc2
ZWM2MTQzN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4u
Y21ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAt
MzksNyArMzksOSBAQCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVf
TElCUkFSSUVTCiAjIHByZXNlbnQgaW4gdGhlIGxpc3Qgb2Ygc291cmNlcyB3aGVuIHRoZSBtYWNy
byBpcyBpbnZva2VkLiBSZW1vdmUgaXQsIGNyZWF0ZSB0aGUgcHJlY29tcGlsZWQKICMgaGVhZGVy
LCBhbmQgYWRkIGl0IGJhY2sgdG8gd29yayBhcm91bmQgdGhpcy4KIGxpc3QoUkVNT1ZFX0lURU0g
V2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9
L0pTV3JhcHBlci5jcHApCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVz
dFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRU
ZXN0UnVubmVyX1NPVVJDRVMpCitpZiAoTk9UIFdURl9QTEFURk9STV9XSU5fQ0FJUk8pCisgICAg
V0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIg
Indpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VT
KQorZW5kaWYgKCkKIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUyAke1dlYktp
dFRlc3RSdW5uZXJfQklORElOR1NfRElSfS9KU1dyYXBwZXIuY3BwKQogCiBzZXQoQ01BS0VfU0hB
UkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVO
VElNRV9MSU5LRVJfRkxBR1N9IikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408641</attachid>
            <date>2020-09-12 22:06:36 -0700</date>
            <delta_ts>2020-09-12 23:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216428-20200912220635.patch</filename>
            <type>text/plain</type>
            <size>48251</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGMyOTNlNzI4NmY0OWYyYjQwZjFjZWYxMTExMzQyMGE0
ODkwNDM3NC4uZjU2YWE1Yjg4Nzc5ZTRiNDMyMWZhMTE1YTdlOGFhMTZiMDViZTRkNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2
IEBACisyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAg
ICBTZW5kIFRlc3RSZW5kZXJlZCBldmVudCBhZnRlciBydW5uaW5nIGEgdGVzdCBidXQgYmVmb3Jl
IGR1bXBpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNjQyOAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dDogQWRkZWQgdGhlIG5ldyBmaWxlcyBhbmQgZGly
ZWN0b3JpZXMuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9Q
bGF0Zm9ybVdpbi5jbWFrZTogVGVtcG9yYXJpbHkgZGlzYWJsZSBwcmVjb21waWxlZCBoZWFkZXJz
CisgICAgICAgIG9uIFdpbkNhaXJvIHNpbmNlIHRoZXkgd2VyZSBub3Qgd29ya2luZyBwcm9wZXJs
eSB3aXRoIEpTQmFzaWNzLmNwcC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9GcmFt
ZUxvYWREZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bRnJhbWVMb2FkRGVsZWdhdGUgcmVhZHlUb0R1
bXBTdGF0ZV0pOiBBZGRlZC4gQ2FsbHMgc2VuZFRlc3RSZW5kZXJlZEV2ZW50LgorICAgICAgICAo
LVtGcmFtZUxvYWREZWxlZ2F0ZSBwcm9jZXNzV29yazpdKTogQ2FsbCByZWFkeVRvRHVtcFN0YXRl
LgorICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OmxvY2F0aW9uQ2hhbmdlRG9u
ZTpmb3JEYXRhU291cmNlOl0pOiBEaXR0by4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHA6CisgICAgICAgIChyZWFkeVRvRHVtcFN0YXRlKTogQWRk
ZWQuIENhbGxzIHNlbmRUZXN0UmVuZGVyZWRFdmVudC4KKyAgICAgICAgKEZyYW1lTG9hZERlbGVn
YXRlOjpwcm9jZXNzV29yayk6IENhbGwgcmVhZHlUb0R1bXBTdGF0ZS4KKyAgICAgICAgKEZyYW1l
TG9hZERlbGVnYXRlOjpsb2NhdGlvbkNoYW5nZURvbmUpOiBEaXR0by4KKworICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNCYXNpY3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdU
Ujo6SlNWYWx1ZU1ha2VCb29sZWFuT3JOdWxsKTogTW92ZWQgZnJvbSBKU1dyYXBwYWJsZS5oLgor
ICAgICAgICAoV1RSOjpKU1ZhbHVlVG9OdWxsYWJsZUJvb2xlYW4pOiBEaXR0by4KKyAgICAgICAg
KFdUUjo6SlNWYWx1ZU1ha2VTdHJpbmdPck51bGwpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6Y3Jl
YXRlSlNTdHJpbmcpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6bWFrZVZhbHVlKTogRGl0dG8uCisg
ICAgICAgIChXVFI6Om9iamVjdFByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXVFI6OnNldFBy
b3BlcnR5KTogQWRkZWQuIFNldHMgYSBuYW1lZCBwcm9wZXJ0eSB2YWx1ZSB0byBhIGJvb2xlYW4u
CisgICAgICAgIChXVFI6OmNhbGwpOiBNb3ZlZCBmcm9tIEpTV3JhcHBhYmxlLmguCisgICAgICAg
IChXVFI6OmNhbGxDb25zdHJ1Y3Rvcik6IEFkZGVkLiBHZXRzIGEgZ2xvYmFsIGNvbnN0cnVjdG9y
IGFuZCBjYWxscyBpdC4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNC
YXNpY3MuaDogQWRkZWQuIERlY2xhcmVzIHRoZSBhYm92ZSBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmg6CisgICAgICAgIChXVFI6
OkpTVmFsdWVNYWtlQm9vbGVhbk9yTnVsbCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OkpTVmFs
dWVUb051bGxhYmxlQm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OkpTVmFsdWVNYWtl
U3RyaW5nT3JOdWxsKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6Y3JlYXRlSlNTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjptYWtlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjpvYmplY3RQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OmNhbGwpOiBEZWxldGVk
LgorICAgICAgICAoV1RSOjpoYXNSZWZUZXN0V2FpdEF0dHJpYnV0ZSk6IERlbGV0ZWQuCisKKyAg
ICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBlci5oOiBVcGRhdGVkIGlu
Y2x1ZGVzLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9SZWZ0ZXN0RnVuY3Rpb25zLmNw
cDogQWRkZWQuCisgICAgICAgIChXVFI6OnNlbmRUZXN0UmVuZGVyZWRFdmVudCk6IEFkZGVkLiBD
cmVhdGVzIGFuZCBkaXNwYXRjaGVzIGEgVGVzdFJlbmRlcmVkIGV2ZW50LgorICAgICAgICAoV1RS
OjpoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZSk6IE1vdmVkIGZyb20gSlNXcmFwcGFibGUuaCBhbmQg
cmVuYW1lZCB0byB1c2UgYQorICAgICAgICBsb3dlcmNhc2UgVCBzaW5jZSB0aGF0J3MgaG93IHdl
Yi1wbGF0Zm9ybS10ZXN0cyBuYW1lcyB0aGluZ3MuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hh
cmVkL1JlZnRlc3RGdW5jdGlvbnMuaDogQWRkZWQuIERlY2xhcmVzIHRoZSBhYm92ZSBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0OiBBZGRlZCB0
aGUgbmV3IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpmcmFtZURpZENoYW5nZUxvY2F0aW9uKTogQ2FsbCBzZW5kVGVz
dFJlbmRlcmVkRXZlbnQKKyAgICAgICAgYmVmb3JlIGNhbGxpbmcgZHVtcEFmdGVyV2FpdEF0dHJp
YnV0ZUlzUmVtb3ZlZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tOiBBZGRlZCBhCisgICAgICAgIG1p
c3NpbmcgaW5jbHVkZSBvZiAiY29uZmlnLmgiIHRvIGZpeCBidWlsZCBmYWlsdXJlcyBJIHdhcyBz
ZWVpbmcuICBBbiBhbHRlcm5hdGl2ZSwKKyAgICAgICAgc2luY2UgdGhpcyBpcyBhIENvY29hLW9u
bHkgc291cmNlIGZpbGUsIHdvdWxkIGJlIHRvIHB1dCBjb25maWcuaCBpbnRvIGEKKyAgICAgICAg
cHJlY29tcGlsZWQgcHJlZml4IGhlYWRlci4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOiBEaXR0
by4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2U6IFRlbXBv
cmFyaWx5IGRpc2FibGUgcHJlY29tcGlsZWQgaGVhZGVycworICAgICAgICBvbiBXaW5DYWlybyBz
aW5jZSB0aGV5IHdlcmUgbm90IHdvcmtpbmcgcHJvcGVybHkgd2l0aCBKU0Jhc2ljcy5jcHAuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogQWRkZWQgdGhlIG5ldworICAgICAgICBmaWxlcyBhbmQgZGlyZWN0b3Jp
ZXMuCisKIDIwMjAtMDktMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjY4MTcpOiBBU1NFUlRJT04gRkFJTEVEOiBpbmplY3RlZEJ1bmRs
ZS5pc1Rlc3RSdW5uaW5nKCkgb24gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3ZnLXRhcmdldC1yZWZ0ZXN0Lmh0dHBzLmh0bWwK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzZlM2ZlODZjZDFlMTkyOTY3Mjdm
NjVjYzA5OGQ4ODBjNGM4MGExZS4uODU1NDJmMThhZjFhYjI1NzBlNDY1ZTdlMWZiMDNkZmU0MDk3
YzUyNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTYsNiArNiw4IEBAIHNl
dChXZWJLaXRUZXN0UnVubmVyX1VJU0NSSVBUQ09OVEVYVF9ESVIgIiR7VE9PTFNfRElSfS9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0CiBmaWxlKE1BS0VfRElSRUNUT1JZICR7RHVtcFJlbmRlclRy
ZWVfREVSSVZFRF9TT1VSQ0VTX0RJUn0pCiAKIHNldChEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCisg
ICAgJHtXZWJLaXRUZXN0UnVubmVyX1NIQVJFRF9ESVJ9L1JlZnRlc3RGdW5jdGlvbnMuY3BwCisg
ICAgJHtXZWJLaXRUZXN0UnVubmVyX1NIQVJFRF9ESVJ9L0JpbmRpbmdzL0pTQmFzaWNzLmNwcAog
ICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9TSEFSRURfRElSfS9CaW5kaW5ncy9KU1dyYXBwZXIuY3Bw
CiAKICAgICAke1dlYktpdFRlc3RSdW5uZXJfVUlTQ1JJUFRDT05URVhUX0RJUn0vVUlTY3JpcHRD
b250ZXh0LmNwcApAQCAtMzQsNiArMzYsNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtDTUFLRV9CSU5BUllfRElSfQogICAgICR7RHVtcFJl
bmRlclRyZWVfREVSSVZFRF9TT1VSQ0VTX0RJUn0KICAgICAke0R1bXBSZW5kZXJUcmVlX0RJUn0K
KyAgICAke1dlYktpdFRlc3RSdW5uZXJfU0hBUkVEX0RJUn0KICAgICAke1dlYktpdFRlc3RSdW5u
ZXJfU0hBUkVEX0RJUn0vQmluZGluZ3MKICAgICAke1dlYktpdFRlc3RSdW5uZXJfVUlTQ1JJUFRD
T05URVhUX0RJUn0KICkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyOWUwY2E4ZDZm
MTIxYjgzOTFjNWExMTQwMDIzNGM3MWUyZTdlNGQuLmYyODAyNWVhZmFjZDVhNGIxMzY0Y2E1YTgz
MjdjYjkwZjExMzVkZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTExLDYgKzEx
MSw4IEBACiAJCTVEQjlBQ0EwMEY3MjJDMzYwMDY4NDY0MSAvKiBXZWJLaXRXZWlnaHRXYXRjaGVy
OTAwLnR0ZiBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzc1RjA5NzkwREFDM0NCNjAwQzhCNEU1IC8qIFdlYktpdFdlaWdodFdhdGNoZXI5MDAu
dHRmICovOyB9OwogCQk4MDA0NUFFRTE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MDA0NUFFQzE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0gKi87IH07CiAJCTg0NjVFMkM3MEZGQThERjIwMDNCODM0MiAvKiBQ
aXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0NjVFMkM2MEZGQThERjIwMDNCODM0MiAvKiBQaXhlbER1bXBTdXBwb3J0LmNw
cCAqLzsgfTsKKwkJOTNDNzg4MjYyNTBDNkQzQTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNzg4
MjQyNTBDNkQzOTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwICovOyB9OworCQk5M0M3
ODgyRTI1MEM3MTcyMDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNzg4MjkyNTBDNzEzNDAwQzBBQTI0IC8qIEpT
QmFzaWNzLmNwcCAqLzsgfTsKIAkJOTgzMEYzMUYxNUM4MTE4MTAwNUFCMjA2IC8qIER1bXBSZW5k
ZXJUcmVlQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk4MzBGMzFFMTVDODExODEwMDVBQjIwNiAvKiBEdW1wUmVuZGVyVHJlZUNvbW1vbi5j
cHAgKi87IH07CiAJCUExMTU4RDU4MTg5Mjc0MEMwMDg4QzE3QiAvKiBEdW1wUmVuZGVyVHJlZUJy
b3dzZXJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTExNThENTYxODkyNzNFQjAwODhDMTdCIC8qIER1bXBSZW5kZXJUcmVlQnJvd3NlclZpZXcu
bW0gKi87IH07CiAJCUExMTU4RDU5MTg5Mjc0MzYwMDg4QzE3QiAvKiBQaXhlbER1bXBTdXBwb3J0
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEx
NThENTcxODkyNzNFQjAwODhDMTdCIC8qIFBpeGVsRHVtcFN1cHBvcnRJT1MubW0gKi87IH07CkBA
IC0zMzQsNiArMzM2LDEwIEBACiAJCTg0NjVFMkM2MEZGQThERjIwMDNCODM0MiAvKiBQaXhlbER1
bXBTdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQaXhl
bER1bXBTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzNTQzNUYw
M0Q3NTUwMjAwODYzNUNFIC8qIFdlYktpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IFdl
YktpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkz
NDA5OTU0MDg1NDBDQUYwMDdGM0JDOCAvKiBEdW1wUmVuZGVyVHJlZSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRh
YmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gRHVtcFJlbmRlclRyZWU7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTkzQzc4ODI0MjUwQzZEMzkwMEMwQUEyNCAv
KiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlZnRlc3RGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0M3ODgyNTI1MEM2RDM5MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZ0ZXN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQzc4ODI5MjUwQzcxMzQwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jhc2ljcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQzc4ODJCMjUwQzcxMzQwMEMwQUEyNCAvKiBKU0Jhc2ljcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0Jhc2ljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5ODMwRjMxRTE1
QzgxMTgxMDA1QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTEwM0I1QjE4OTI0OThGMDA3MzhDODcgLyogTGF5b3V0
VGVzdEhlbHBlci54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IG5hbWUgPSBMYXlvdXRUZXN0SGVscGVyLnhjY29u
ZmlnOyBwYXRoID0gbWFjL0NvbmZpZ3VyYXRpb25zL0xheW91dFRlc3RIZWxwZXIueGNjb25maWc7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMTU4RDU1MTg5MjczRUIwMDg4QzE3QiAv
KiBEdW1wUmVuZGVyVHJlZUJyb3dzZXJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IER1bXBSZW5kZXJU
cmVlQnJvd3NlclZpZXcuaDsgcGF0aCA9IGlvcy9EdW1wUmVuZGVyVHJlZUJyb3dzZXJWaWV3Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MTksMTEgKzcyNSwxNCBAQAogCQkzMTQ4
QTA2NTFFNkY5MEY0MDBEM0IzMTYgLyogVGVzdFJ1bm5lclNoYXJlZCAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNDNzg4MjgyNTBDNzEzNDAwQzBBQTI0
IC8qIEJpbmRpbmdzICovLAogCQkJCUY0QjZDMzE4MjBFODQzODIwMDhBQzIyNSAvKiBjb2NvYSAq
LywKIAkJCQlGNEZFRDMxNjIzNTgxRUYzMDAzQzEzOUMgLyogbWFjICovLAogCQkJCUExN0E1QTJC
MjJBODgwRDgwMDY1QzVGMCAvKiBzcGkgKi8sCiAJCQkJMzE0OEEwNTUxRTZGOTBGNDAwRDNCMzE2
IC8qIElPU0xheW91dFRlc3RDb21tdW5pY2F0aW9uLmNwcCAqLywKIAkJCQkzMTQ4QTA1NjFFNkY5
MEY0MDBEM0IzMTYgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRpb24uaCAqLywKKwkJCQk5M0M3
ODgyNDI1MEM2RDM5MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgKi8sCisJCQkJOTND
Nzg4MjUyNTBDNkQzOTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gVGVzdFJ1bm5lclNoYXJlZDsKIAkJCXBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVk
OwpAQCAtNzY4LDYgKzc3NywxNSBAQAogCQkJbmFtZSA9IFJlc291cmNlczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzQzc4ODI4MjUwQzcxMzQwMEMwQUEyNCAvKiBCaW5k
aW5ncyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTND
Nzg4MjkyNTBDNzEzNDAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCAqLywKKwkJCQk5M0M3ODgyQjI1
MEM3MTM0MDBDMEFBMjQgLyogSlNCYXNpY3MuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gQmluZGlu
Z3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTE1OEQ2QTE4OTI3Q0Ux
MDA4OEMxN0IgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTEyMTUsNiArMTIzMyw3IEBACiAJCQkJRjQ0QTUzMUUyMUI4OUE1MDAwREJCOTlDIC8q
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTI5NDNGOTFF
NzFGMkI0MDAxRUUyQ0MgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkNFODhGQTIxNzEyNEQ4QzAwNzM0RkMwIC8qIEphdmFTY3JpcHRUaHJlYWRp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNDNzg4MkUyNTBDNzE3MjAwQzBBQTI0IC8qIEpT
QmFzaWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNzA2MUQ2QkEwMjMwMDI3RTU0NyAv
KiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcxMzFE
NkJDNDNBMDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QzM1
NzhEMjBFODQ0NEUwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMjMxLDYgKzEyNTAsNyBAQAogCQkJCUJDQjI4NEQ2MENGQTgzRDEwMDdFNTMz
RSAvKiBQaXhlbER1bXBTdXBwb3J0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMThCNjYw
QzlCMDhDMjAwMTE0MzY5IC8qIFBvbGljeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjQwMTBCN0IyNERBMjAxRjAwQTg3NkUyIC8qIFBvc2VBc0NsYXNzLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJOTNDNzg4MjYyNTBDNkQzQTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNBMThCNjgwQzlCMDhDMjAwMTE0MzY5IC8qIFJlc291cmNlTG9h
ZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwQTIxRjgyMDUxRDhDNDAwMDhGRjQy
IC8qIFRlc3RPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDEzMURBMEM5NzcyMDEw
MDg3MzE3RCAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDA2NTJiNDNmNWMwYjllMjE5YzNmZDc1YTkzM2Yx
MDA1OTA2ODBhLi41YWQyOGZlMzhiZjU0NDQxM2EwODZkMTMyYWU5ZmIwYzkzMDFkZjJhIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNzIsNyArNzIsOSBAQCBlbHNl
ICgpCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNw
cCIgRHVtcFJlbmRlclRyZWVfU09VUkNFUykKK2lmIChOT1QgV1RGX1BMQVRGT1JNX1dJTl9DQUlS
TykKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiRHVtcFJlbmRlclRyZWVQcmVm
aXguaCIgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAiIER1bXBSZW5kZXJUcmVlX1NPVVJD
RVMpCitlbmRpZiAoKQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hB
UkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJ
VF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQppbmRleCBlOTc3NDlmNGEzMmRiN2Q5MjFjZjJjYzhi
NWM0NmYyYjk2MDQzNDEwLi5iMzhmNGQzN2YwNjcxNTM1MWM4OWE4NmZlODIwOGI3NmYyMTVhYTdl
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUu
bW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCkBA
IC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJPYmpDQ29udHJvbGxlci5oIgogI2ltcG9ydCAiT2Jq
Q1BsdWdpbi5oIgogI2ltcG9ydCAiT2JqQ1BsdWdpbkZ1bmN0aW9uLmgiCisjaW1wb3J0ICJSZWZ0
ZXN0RnVuY3Rpb25zLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgiCiAjaW1wb3J0ICJUZXh0SW5w
dXRDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKQEAgLTE0MSwx
NCArMTQyLDIyIEBAIC0gKHZvaWQpZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZDooaWQp
ZHVtbXkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYlRocmVhZExvY2soKTsKICNl
bmRpZgotCi0gICAgaWYgKFdUUjo6aGFzUmVmVGVzdFdhaXRBdHRyaWJ1dGUobWFpbkZyYW1lLmds
b2JhbENvbnRleHQpKQorICAgIGlmIChXVFI6Omhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKG1haW5G
cmFtZS5nbG9iYWxDb250ZXh0KSkKICAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxl
Y3RvcihkdW1wQWZ0ZXJXYWl0QXR0cmlidXRlSXNSZW1vdmVkOikgd2l0aE9iamVjdDpuaWwgYWZ0
ZXJEZWxheTowXTsKICAgICBlbHNlCiAgICAgICAgIGR1bXAoKTsKIH0KIAotLy8gRXhlYyBtZXNz
YWdlcyBpbiB0aGUgd29yayBxdWV1ZSB1bnRpbCB0aGV5J3JlIGFsbCBkb25lLCBvciBvbmUgb2Yg
dGhlbSBzdGFydHMgYSBuZXcgbG9hZAorLSAodm9pZClyZWFkeVRvRHVtcFN0YXRlCit7CisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXZWJUaHJlYWRMb2NrKCk7CisjZW5kaWYKKyAgICBX
VFI6OnNlbmRUZXN0UmVuZGVyZWRFdmVudChtYWluRnJhbWUuZ2xvYmFsQ29udGV4dCk7CisgICAg
W3NlbGYgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZDpuaWxdOworfQorCisvLyBFeGVj
dXRlIG1lc3NhZ2VzIGluIHRoZSB3b3JrIHF1ZXVlIHVudGlsIHRoZXkncmUgYWxsIGRvbmUsIG9y
IG9uZSBvZiB0aGVtIHN0YXJ0cyBhIG5ldyBsb2FkLgogLSAodm9pZClwcm9jZXNzV29yazooaWQp
ZHVtbXkKIHsKICAgICAvLyBpZiBhbm90aGVyIGxvYWQgc3RhcnRlZCwgdGhlbiB3YWl0IGZvciBp
dCB0byBjb21wbGV0ZS4KQEAgLTE1OCwxMCArMTY3LDkgQEAgLSAodm9pZClwcm9jZXNzV29yazoo
aWQpZHVtbXkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYlRocmVhZExvY2soKTsK
ICNlbmRpZgotCi0gICAgLy8gaWYgd2UgZmluaXNoIGFsbCB0aGUgY29tbWFuZHMsIHdlJ3JlIHJl
YWR5IHRvIGR1bXAgc3RhdGUKKyAgICAvLyBJZiB3ZSBmaW5pc2ggYWxsIHRoZSBjb21tYW5kcywg
d2UncmUgcmVhZHkgdG8gZHVtcCBzdGF0ZS4KICAgICBpZiAoRFJUOjpXb3JrUXVldWU6OnNpbmds
ZXRvbigpLnByb2Nlc3NXb3JrKCkgJiYgIWdUZXN0UnVubmVyLT53YWl0VG9EdW1wKCkpCi0gICAg
ICAgIFtzZWxmIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQ6bmlsXTsKKyAgICAgICAg
W3NlbGYgcmVhZHlUb0R1bXBTdGF0ZV07CiB9CiAKIC0gKHZvaWQpcmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZQpAQCAtMTc5LDcgKzE4Nyw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgbG9jYXRpb25DaGFuZ2VEb25lOihOU0Vycm9yICopZXJyb3IgZm9yRGF0YVNvCiAgICAgICAg
ICAgICBpZiAod29ya1F1ZXVlLmNvdW50KCkpCiAgICAgICAgICAgICAgICAgW3NlbGYgcGVyZm9y
bVNlbGVjdG9yOkBzZWxlY3Rvcihwcm9jZXNzV29yazopIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVs
YXk6MF07CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgW3NlbGYgZHVtcEFmdGVy
V2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZDpuaWxdOworICAgICAgICAgICAgICAgIFtzZWxmIHJlYWR5
VG9EdW1wU3RhdGVdOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0ZyYW1lTG9hZERlbGVnYXRlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHAKaW5kZXggYTg5ZWZmYTE5NmZjNjNiNDc0NDgx
N2VlZWU0ZjZhM2VkZDYxODhiNi4uNzU1YmVkMTZmNjBlZGMwMTExNTUyMWUxNThjMGRiZjA1NTg4
YmY4NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0ZyYW1lTG9hZERlbGVn
YXRlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRnJhbWVMb2FkRGVsZWdhdGUu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRl
ICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJKU1dyYXBwZXIuaCIKKyNpbmNsdWRlICJSZWZ0
ZXN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUgIlRleHRJ
bnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKQEAgLTE5
MSw3ICsxOTIsNyBAQCBIUkVTVUxUIEZyYW1lTG9hZERlbGVnYXRlOjpkaWRDaGFuZ2VJY29ucyhf
SW5fb3B0XyBJV2ViVmlldyosIF9Jbl9vcHRfIElXZWJGcmFtZQogc3RhdGljIHZvaWQgQ0FMTEJB
Q0sgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZChIV05EID0gbnVsbHB0ciwgVUlOVCA9
IDAsIFVJTlRfUFRSID0gMCwgRFdPUkQgPSAwKQogewogICAgIHN0YXRpYyBVSU5UX1BUUiB0aW1l
cklEOwotICAgIGlmIChmcmFtZSAmJiBXVFI6Omhhc1JlZlRlc3RXYWl0QXR0cmlidXRlKGZyYW1l
LT5nbG9iYWxDb250ZXh0KCkpKSB7CisgICAgaWYgKGZyYW1lICYmIFdUUjo6aGFzUmVmdGVzdFdh
aXRBdHRyaWJ1dGUoZnJhbWUtPmdsb2JhbENvbnRleHQoKSkpIHsKICAgICAgICAgaWYgKCF0aW1l
cklEKQogICAgICAgICAgICAgdGltZXJJRCA9IDo6U2V0VGltZXIobnVsbHB0ciwgMCwgMCwgZHVt
cEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZCk7CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw2ICsy
MDQsMTMgQEAgc3RhdGljIHZvaWQgQ0FMTEJBQ0sgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVt
b3ZlZChIV05EID0gbnVsbHB0ciwgVUlOVCA9IDAsIFUKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lk
IHJlYWR5VG9EdW1wU3RhdGUoKQoreworICAgIGlmIChmcmFtZSkKKyAgICAgICAgV1RSOjpzZW5k
VGVzdFJlbmRlcmVkRXZlbnQoZnJhbWUtPmdsb2JhbENvbnRleHQoKSk7CisgICAgZHVtcEFmdGVy
V2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZCgpOworfQorCiB2b2lkIEZyYW1lTG9hZERlbGVnYXRlOjpw
cm9jZXNzV29yaygpCiB7CiAgICAgLy8gaWYgYW5vdGhlciBsb2FkIHN0YXJ0ZWQsIHRoZW4gd2Fp
dCBmb3IgaXQgdG8gY29tcGxldGUuCkBAIC0yMTEsNyArMjE5LDcgQEAgdm9pZCBGcmFtZUxvYWRE
ZWxlZ2F0ZTo6cHJvY2Vzc1dvcmsoKQogCiAgICAgLy8gaWYgd2UgZmluaXNoIGFsbCB0aGUgY29t
bWFuZHMsIHdlJ3JlIHJlYWR5IHRvIGR1bXAgc3RhdGUKICAgICBpZiAoRFJUOjpXb3JrUXVldWU6
OnNpbmdsZXRvbigpLnByb2Nlc3NXb3JrKCkgJiYgITo6Z1Rlc3RSdW5uZXItPndhaXRUb0R1bXAo
KSkKLSAgICAgICAgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZCgpOworICAgICAgICBy
ZWFkeVRvRHVtcFN0YXRlKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkRGVsZWdhdGU6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGUoKQpAQCAtMjYwLDcgKzI2OCw3IEBAIHZvaWQgRnJhbWVMb2FkRGVsZWdh
dGU6OmxvY2F0aW9uQ2hhbmdlRG9uZShJV2ViRXJyb3IqLCBJV2ViRnJhbWUqIGZyYW1lKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3Zl
ZCgpOworICAgIHJlYWR5VG9EdW1wU3RhdGUoKTsKIH0KIAogSFJFU1VMVCBGcmFtZUxvYWREZWxl
Z2F0ZTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKF9Jbl9vcHRfIElXZWJWaWV3KiwgX0luX29wdF8g
SVdlYkZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmlu
ZGluZ3MvSlNCYXNpY3MuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU0Jh
c2ljcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmMGI3NDk5MGFmYjllMTJhYzlkMDFhNzEwYTRjNTI4MGUx
ZTkwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3Mv
SlNCYXNpY3MuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSlNCYXNpY3MuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTVmFs
dWVSZWYgSlNWYWx1ZU1ha2VCb29sZWFuT3JOdWxsKEpTQ29udGV4dFJlZiBjb250ZXh0LCBPcHRp
b25hbDxib29sPiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPyBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgdmFsdWUudmFsdWUoKSkgOiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7Cit9
CisKK09wdGlvbmFsPGJvb2w+IEpTVmFsdWVUb051bGxhYmxlQm9vbGVhbihKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZUlzVW5kZWZp
bmVkKGNvbnRleHQsIHZhbHVlKSB8fCBKU1ZhbHVlSXNOdWxsKGNvbnRleHQsIHZhbHVlKSA/IFdU
Rjo6bnVsbG9wdCA6IE9wdGlvbmFsPGJvb2w+KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgdmFs
dWUpKTsKK30KKworSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgc3RyaW5nT3JOdWxsKQoreworICAgIHJldHVybiBzdHJp
bmdPck51bGwgPyBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBzdHJpbmdPck51bGwpIDogSlNW
YWx1ZU1ha2VOdWxsKGNvbnRleHQpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY3Jl
YXRlSlNTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQoreworICAgIHJldHVybiBhZG9wdChKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmcpKTsKK30KKworSlNWYWx1ZVJlZiBtYWtl
VmFsdWUoSlNDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IGNoYXIqIHN0cmluZykKK3sKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgY3JlYXRlSlNTdHJpbmcoc3RyaW5nKS5n
ZXQoKSk7Cit9CisKK0pTT2JqZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8gdmFsdWUgPSBKU09iamVj
dEdldFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgY3JlYXRlSlNTdHJpbmcobmFtZSkuZ2V0KCks
IG51bGxwdHIpOworICAgIGlmICghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIHZhbHVlKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+
KHZhbHVlKTsKK30KKworSlNPYmplY3RSZWYgb2JqZWN0UHJvcGVydHkoSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IGNo
YXIqPiBuYW1lcykKK3sKKyAgICBmb3IgKGF1dG8gbmFtZSA6IG5hbWVzKQorICAgICAgICBvYmpl
Y3QgPSBvYmplY3RQcm9wZXJ0eShjb250ZXh0LCBvYmplY3QsIG5hbWUpOworICAgIHJldHVybiBv
YmplY3Q7Cit9CisKK3ZvaWQgc2V0UHJvcGVydHkoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIG9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBKU09i
amVjdFNldFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgY3JlYXRlSlNTdHJpbmcobmFtZSkuZ2V0
KCksIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB2YWx1ZSksIGtKU1Byb3BlcnR5QXR0cmli
dXRlTm9uZSwgbnVsbHB0cik7Cit9CisKK0pTVmFsdWVSZWYgY2FsbChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmluaXRpYWxp
emVyX2xpc3Q8SlNWYWx1ZVJlZj4gYXJndW1lbnRzKQoreworICAgIGlmICghb2JqZWN0KQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGZ1bmN0aW9uID0gb2JqZWN0UHJvcGVydHko
Y29udGV4dCwgb2JqZWN0LCBuYW1lKTsKKyAgICBpZiAoIWZ1bmN0aW9uKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBm
dW5jdGlvbiwgb2JqZWN0LCBhcmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVudHMuYmVnaW4oKSwgbnVs
bHB0cik7Cit9CisKK0pTT2JqZWN0UmVmIGNhbGxDb25zdHJ1Y3RvcihKU0dsb2JhbENvbnRleHRS
ZWYgY29udGV4dCwgY29uc3QgY2hhciogbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PEpTVmFs
dWVSZWY+IGFyZ3VtZW50cykKK3sKKyAgICBhdXRvIGNvbnN0cnVjdG9yID0gb2JqZWN0UHJvcGVy
dHkoY29udGV4dCwgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQpLCB7IG5hbWUgfSk7
CisgICAgaWYgKCFjb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3IoY29udGV4dCwgY29uc3RydWN0b3IsIGFyZ3Vt
ZW50cy5zaXplKCksIGFyZ3VtZW50cy5iZWdpbigpLCBudWxscHRyKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pT
QmFzaWNzLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTFkZGE1MjQ3YTVhYjZjMDQwOTYzZGYxOWFiMGY1ZTAyOTZjZWI4MgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNCYXNpY3MuaApA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHQuaD4KKyNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgorCituYW1lc3BhY2UgV1RSIHsKKworSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUJv
b2xlYW5Pck51bGwoSlNDb250ZXh0UmVmLCBPcHRpb25hbDxib29sPik7CitPcHRpb25hbDxib29s
PiBKU1ZhbHVlVG9OdWxsYWJsZUJvb2xlYW4oSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKKwor
SlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChKU0NvbnRleHRSZWYsIEpTU3RyaW5n
UmVmKTsKKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNyZWF0ZUpTU3RyaW5nKGNvbnN0IGNo
YXIqKTsKK0pTVmFsdWVSZWYgbWFrZVZhbHVlKEpTQ29udGV4dFJlZiwgY29uc3QgY2hhciopOwor
SlNPYmplY3RSZWYgb2JqZWN0UHJvcGVydHkoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgY29u
c3QgY2hhciogbmFtZSk7CitKU09iamVjdFJlZiBvYmplY3RQcm9wZXJ0eShKU0NvbnRleHRSZWYs
IEpTT2JqZWN0UmVmLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hhcio+IG5hbWVzKTsK
K3ZvaWQgc2V0UHJvcGVydHkoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgY29uc3QgY2hhciog
bmFtZSwgYm9vbCB2YWx1ZSk7CitKU1ZhbHVlUmVmIGNhbGwoSlNDb250ZXh0UmVmLCBKU09iamVj
dFJlZiwgY29uc3QgY2hhciogbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PEpTVmFsdWVSZWY+
IGFyZ3VtZW50cyk7CitKU09iamVjdFJlZiBjYWxsQ29uc3RydWN0b3IoSlNHbG9iYWxDb250ZXh0
UmVmLCBjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8SlNWYWx1ZVJlZj4g
YXJndW1lbnRzKTsKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmggYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmgKaW5kZXggNWEwYTM1ZmU5ZDM2MmEwN2QyODBmYTc3
ZjBjNWNhMjYxMTRhMGZmMy4uOWUwZjA3ZGY1OTMyYWIzMDMzMWQ3YjYxZDE3MzUzYWU2ZTAxYzQ3
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwYWJs
ZS5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNXcmFwcGFibGUuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSwxMCArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgot
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+Ci0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0zOSw2NSAr
MzYsNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBKU0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpID0g
MDsKIH07CiAKLWlubGluZSBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlQm9vbGVhbk9yTnVsbChKU0Nv
bnRleHRSZWYgY29udGV4dCwgT3B0aW9uYWw8Ym9vbD4gdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZh
bHVlID8gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHZhbHVlLnZhbHVlKCkpIDogSlNWYWx1
ZU1ha2VOdWxsKGNvbnRleHQpOwotfQotCi1pbmxpbmUgT3B0aW9uYWw8Ym9vbD4gSlNWYWx1ZVRv
TnVsbGFibGVCb29sZWFuKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlKQot
ewotICAgIHJldHVybiBKU1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwgdmFsdWUpIHx8IEpTVmFs
dWVJc051bGwoY29udGV4dCwgdmFsdWUpID8gV1RGOjpudWxsb3B0IDogT3B0aW9uYWw8Ym9vbD4o
SlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCB2YWx1ZSkpOwotfQotCi1pbmxpbmUgSlNWYWx1ZVJl
ZiBKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdS
ZWYgc3RyaW5nT3JOdWxsKQotewotICAgIHJldHVybiBzdHJpbmdPck51bGwgPyBKU1ZhbHVlTWFr
ZVN0cmluZyhjb250ZXh0LCBzdHJpbmdPck51bGwpIDogSlNWYWx1ZU1ha2VOdWxsKGNvbnRleHQp
OwotfQotCi1pbmxpbmUgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNyZWF0ZUpTU3RyaW5nKGNv
bnN0IGNoYXIqIHN0cmluZykKLXsKLSAgICByZXR1cm4gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nKSk7Ci19Ci0KLWlubGluZSBKU1ZhbHVlUmVmIG1ha2VWYWx1ZShK
U0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgY2hhciogc3RyaW5nKQotewotICAgIHJldHVybiBK
U1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjcmVhdGVKU1N0cmluZyhzdHJpbmcpLmdldCgpKTsK
LX0KLQotaW5saW5lIEpTT2JqZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUpCi17Ci0gICAgaWYgKCFv
YmplY3QpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gdmFsdWUgPSBKU09iamVj
dEdldFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgY3JlYXRlSlNTdHJpbmcobmFtZSkuZ2V0KCks
IG51bGxwdHIpOwotICAgIGlmICghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIHZhbHVlKSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+
KHZhbHVlKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxj
b25zdCBjaGFyKj4gbmFtZXMpCi17Ci0gICAgZm9yIChhdXRvIG5hbWUgOiBuYW1lcykKLSAgICAg
ICAgb2JqZWN0ID0gb2JqZWN0UHJvcGVydHkoY29udGV4dCwgb2JqZWN0LCBuYW1lKTsKLSAgICBy
ZXR1cm4gb2JqZWN0OwotfQotCi1pbmxpbmUgSlNWYWx1ZVJlZiBjYWxsKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6aW5pdGlh
bGl6ZXJfbGlzdDxKU1ZhbHVlUmVmPiBhcmd1bWVudHMpCi17Ci0gICAgaWYgKCFvYmplY3QpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gZnVuY3Rpb24gPSBvYmplY3RQcm9wZXJ0
eShjb250ZXh0LCBvYmplY3QsIG5hbWUpOwotICAgIGlmICghZnVuY3Rpb24pCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQs
IGZ1bmN0aW9uLCBvYmplY3QsIGFyZ3VtZW50cy5zaXplKCksIGFyZ3VtZW50cy5iZWdpbigpLCBu
dWxscHRyKTsKLX0KLQotLy8gRklYTUU6IE1vdmUgdGhpcyBzb21ld2hlcmUgYmV0dGVyLiBXZSB3
YW50IHRvIHNoYXJlIGl0LCBzbyBpdCBiZWxvbmdzIGluIFRlc3RSdW5uZXJTaGFyZWQsIGJ1dCBu
b3QgYXMgcGFydCBvZiBKU1dyYXBwYWJsZS4KLWlubGluZSBib29sIGhhc1JlZlRlc3RXYWl0QXR0
cmlidXRlKEpTQ29udGV4dFJlZiBjb250ZXh0KQotewotICAgIGlmICghY29udGV4dCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGF1dG8gY2xhc3NMaXN0ID0gb2JqZWN0UHJvcGVydHkoY29u
dGV4dCwgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQpLCB7ICJkb2N1bWVudCIsICJk
b2N1bWVudEVsZW1lbnQiLCAiY2xhc3NMaXN0IiB9KTsKLSAgICByZXR1cm4gSlNWYWx1ZVRvQm9v
bGVhbihjb250ZXh0LCBjYWxsKGNvbnRleHQsIGNsYXNzTGlzdCwgImNvbnRhaW5zIiwgeyBtYWtl
VmFsdWUoY29udGV4dCwgInJlZnRlc3Qtd2FpdCIpIH0pKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBl
ci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwZXIuaAppbmRleCAz
NWIzNGZiNTYyMDg2MjAwNmQ4MDQxNmJmMjNlOWRlMTU3NmUxMjIzLi5mNjc5OGY5OWE0ZmVjNjc1
NjNkMDkxNTYzYjUwNTA5ZGZjODU3MmRhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL0JpbmRpbmdzL0pTV3JhcHBlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmlu
ZGluZ3MvSlNXcmFwcGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJKU0Jhc2ljcy5oIgogI2luY2x1ZGUgIkpTV3JhcHBhYmxlLmgiCiAKIG5hbWVzcGFj
ZSBXVFIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9SZWZ0ZXN0RnVuY3Rp
b25zLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDM1YzI5MmY0YTE1NjhlMDJlZjVjNmNkMzRjMDE5NzQzNDRhYTJkNgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5jcHAK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZWZ0ZXN0RnVuY3Rpb25zLmgiCisKKyNpbmNsdWRlICJKU0Jhc2ljcy5oIgorCituYW1l
c3BhY2UgV1RSIHsKKwordm9pZCBzZW5kVGVzdFJlbmRlcmVkRXZlbnQoSlNHbG9iYWxDb250ZXh0
UmVmIGNvbnRleHQpCit7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisgICAg
YXV0byBpbml0aWFsaXplciA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBudWxscHRyLCBudWxscHRy
KTsKKyAgICBzZXRQcm9wZXJ0eShjb250ZXh0LCBpbml0aWFsaXplciwgImJ1YmJsZXMiLCB0cnVl
KTsKKyAgICBhdXRvIGV2ZW50ID0gY2FsbENvbnN0cnVjdG9yKGNvbnRleHQsICJFdmVudCIsIHsg
bWFrZVZhbHVlKGNvbnRleHQsICJUZXN0UmVuZGVyZWQiKSwgaW5pdGlhbGl6ZXIgfSk7CisgICAg
YXV0byBkb2N1bWVudEVsZW1lbnQgPSBvYmplY3RQcm9wZXJ0eShjb250ZXh0LCBKU0NvbnRleHRH
ZXRHbG9iYWxPYmplY3QoY29udGV4dCksIHsgImRvY3VtZW50IiwgImRvY3VtZW50RWxlbWVudCIg
fSk7CisgICAgY2FsbChjb250ZXh0LCBkb2N1bWVudEVsZW1lbnQsICJkaXNwYXRjaEV2ZW50Iiwg
eyBldmVudCB9KTsKK30KKworYm9vbCBoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZShKU0dsb2JhbENv
bnRleHRSZWYgY29udGV4dCkKK3sKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBhdXRvIGNsYXNzTGlzdCA9IG9iamVjdFByb3BlcnR5KGNvbnRleHQsIEpTQ29u
dGV4dEdldEdsb2JhbE9iamVjdChjb250ZXh0KSwgeyAiZG9jdW1lbnQiLCAiZG9jdW1lbnRFbGVt
ZW50IiwgImNsYXNzTGlzdCIgfSk7CisgICAgcmV0dXJuIEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4
dCwgY2FsbChjb250ZXh0LCBjbGFzc0xpc3QsICJjb250YWlucyIsIHsgbWFrZVZhbHVlKGNvbnRl
eHQsICJyZWZ0ZXN0LXdhaXQiKSB9KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9S
ZWZ0ZXN0RnVuY3Rpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI2ZmQ3OTU3ZjBiOTA1MWM5MDQ5YjAzMzNj
ZjEwODk5ZjVkOTE1MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
UmVmdGVzdEZ1bmN0aW9ucy5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0dsb2JhbENvbnRleHRS
ZWY7CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIHNlbmRUZXN0UmVuZGVyZWRFdmVudChKU0ds
b2JhbENvbnRleHRSZWYpOworYm9vbCBoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZShKU0dsb2JhbENv
bnRleHRSZWYpOworCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtl
TGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAppbmRleCBh
M2QwNTFiOTYyZTgwOTk3ZDExNGI3ZjQxZDRmNWQxNmQ3ZDNlOWM3Li5hMmIyYTNjYTg0ZTY1ODcw
YzJhYzRiMmFmYjA4MTBhNmM3NzE2MmM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0
cy50eHQKQEAgLTcsNiArNyw3IEBAIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtXZWJLaXRUZXN0UnVu
bmVyX0RFUklWRURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlKQogZmlsZShNQUtFX0RJUkVD
VE9SWSAke1dlYktpdFRlc3RSdW5uZXJfREVSSVZFRF9TT1VSQ0VTX0RJUn0vVUlTY3JpcHRDb250
ZXh0KQogCiBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCisgICAgJHtXZWJLaXRUZXN0UnVu
bmVyX0JJTkRJTkdTX0RJUn0vSlNCYXNpY3MuY3BwCiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX0JJ
TkRJTkdTX0RJUn0vSlNXcmFwcGVyLmNwcAogCiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX1VJU0NS
SVBUQ09OVEVYVF9ESVJ9L1VJU2NyaXB0Q29udGV4dC5jcHAKQEAgLTQ3LDYgKzQ4LDkgQEAgbGlz
dChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIHNldChX
ZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7V2ViS2l0VGVzdFJ1
bm5lcl9TSEFSRURfRElSfS9SZWZ0ZXN0RnVuY3Rpb25zLmNwcAorCisgICAgJHtXZWJLaXRUZXN0
UnVubmVyX0JJTkRJTkdTX0RJUn0vSlNCYXNpY3MuY3BwCiAgICAgJHtXZWJLaXRUZXN0UnVubmVy
X0JJTkRJTkdTX0RJUn0vSlNXcmFwcGVyLmNwcAogCiAgICAgSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC02NCw2ICs2OCw3IEBAIHNldChXZWJLaXRUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogCiBzZXQoV2ViS2l0VGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0NNQUtFX0JJTkFSWV9ESVJ9CisgICAg
JHtXZWJLaXRUZXN0UnVubmVyX1NIQVJFRF9ESVJ9CiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX0JJ
TkRJTkdTX0RJUn0KICAgICAke1dlYktpdFRlc3RSdW5uZXJfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
SW5qZWN0ZWRCdW5kbGUKICAgICAke1dlYktpdFRlc3RSdW5uZXJfRElSfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCmluZGV4IDY4YTgyMmNiYTcyMWU3NzMzMGM0ZmEzNjY2MGExNTY2ZWMzZDBhZjcu
LmYwYmZiZGRkZGVhYjY2MzBmMTEzYzBhODNhY2U4MDhkNTY1YjExNGUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBY3RpdmF0ZUZvbnRz
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKyNpbmNsdWRlICJSZWZ0ZXN0RnVuY3Rp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRl
c3RTdXBwb3J0LmgiCiAjaW5jbHVkZSA8Y21hdGg+CkBAIC0yMDA0LDYgKzIwMDUsOCBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZnJhbWVEaWRDaGFuZ2VMb2NhdGlvbihXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGF1dG8gZnJhbWUg
PSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUocGFnZS0+cGFnZSgpKSkKKyAgICAgICAgc2VuZFRl
c3RSZW5kZXJlZEV2ZW50KFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChmcmFtZSkp
OwogICAgIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQocGFnZS0+cGFnZSgpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQppbmRleCBiYTI4
OWIxZDZjZGU3YTIyMTEzMmRhMThjMjBmOTYyOTMyZTJkMzk4Li4xZmI5OTFjMjA4YjNjMzcyNzVj
YzZjN2RiN2ViNTlmNWNkOTJiOWE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlck1hYy5tbQpAQCAtMjMsNiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAor
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5oIgog
CiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlTWFjLm1tCmluZGV4IGQzODNkZmE0NDM0MzUxNGY5M2Y3Njc1MGJiMjg4NGZjOGRl
ZTk3YzUuLmY1ZjU4OTJhMDk4YTYxYWMyNmQ4YjljMjRiODQwNGU0ZmU1YmNlOWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2VNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbQpAQCAtMjMs
NiArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmgiCiAKIG5hbWVzcGFjZSBXVFIg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZSBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNjkxOTc5MWRk
ZjlkMGFiODdjMjkyOWE2NmRlZGUxZjBlNjIwMWY2Yy4uNjc3NmVjNjE0MzdhMTU1NWI0YmQyMTcy
ZmY2ZjVkOTIwODA4OTIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNt
YWtlCkBAIC0zOSw3ICszOSw5IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3Rl
ZEJ1bmRsZV9MSUJSQVJJRVMKICMgcHJlc2VudCBpbiB0aGUgbGlzdCBvZiBzb3VyY2VzIHdoZW4g
dGhlIG1hY3JvIGlzIGludm9rZWQuIFJlbW92ZSBpdCwgY3JlYXRlIHRoZSBwcmVjb21waWxlZAog
IyBoZWFkZXIsIGFuZCBhZGQgaXQgYmFjayB0byB3b3JrIGFyb3VuZCB0aGlzLgogbGlzdChSRU1P
VkVfSVRFTSBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMgJHtXZWJLaXRUZXN0UnVubmVyX0JJTkRJ
TkdTX0RJUn0vSlNXcmFwcGVyLmNwcCkKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJX
ZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAi
IFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKK2lmIChOT1QgV1RGX1BMQVRGT1JNX1dJTl9DQUlS
TykKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclBy
ZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVy
X1NPVVJDRVMpCitlbmRpZiAoKQogbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VT
ICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9L0pTV3JhcHBlci5jcHApCiAKIHNldChD
TUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7
TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlNjRjNjQwNjU4YzJmMTc5YzBiZDJiMGFmZDdjMGM0MTcwMGE0MjkxLi4zZTky
MzdiZTE5MWUyMTdlNTlmODY2Yjc2NWJiNDc4ZTFiZDdhMTYwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTIyLDYgKzEyMiw5IEBACiAJCTgwMzRDNjYyMTQ4NzYzNjQw
MEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgwMzRDNjYxMTQ4NzYzNjQwMEFDMzJFOSAv
KiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJODA5NzMzOEExNDg3NEE1
QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODA5NzMzODkxNDg3NEE1QTAw
ODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tICovOyB9OwogCQk5
Mzc2NDE3QTIxMEQ3MzcyMDBBM0RBQUUgLyogV2ViS2l0VGVzdFJ1bm5lcldpbmRvdy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzY0MTc2MjEwRDcz
NjAwMEEzREFBRSAvKiBXZWJLaXRUZXN0UnVubmVyV2luZG93Lm1tICovOyB9OworCQk5M0M3ODgy
MzI1MEM2QzJFMDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0M3ODgxRjI1MEM2OUU0MDBDMEFBMjQg
LyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgKi87IH07CisJCTkzQzc4ODMxMjUwQzcxOUYwMEMwQUEy
NCAvKiBKU0Jhc2ljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0M3ODgzMDI1MEM3MTk5MDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwICovOyB9Owor
CQk5M0M3ODgzMjI1MEM3MUI3MDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNzg4MzAyNTBDNzE5OTAwQzBBQTI0
IC8qIEpTQmFzaWNzLmNwcCAqLzsgfTsKIAkJQTE4NTEwM0ExQjlBRTBEQTAwNzQ0QUVCIC8qIENy
YXNoUmVwb3J0ZXJJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFQjkwQTMxOTA1QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1t
ICovOyB9OwogCQlBMTg1MTAzQjFCOUFFMEUyMDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXJDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQ0Uy
Q0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJvbGxlckNvY29hLm1tICovOyB9OwogCQlB
MTg1MTAzQzFCOUFFMEZFMDA3NDRBRUIgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFDQzAwRDE4MTE4NUJGMDA0MkU5QjYgLyog
T3B0aW9ucy5jcHAgKi87IH07CkBAIC0zNTIsNiArMzU1LDEwIEBACiAJCThERDc2RkExMDQ4NkFB
NzYwMEQ5NkI1RSAvKiBXZWJLaXRUZXN0UnVubmVyICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQk5Mzc2NDE3NjIxMEQ3MzYwMDBBM0RBQUUgLyogV2ViS2l0
VGVzdFJ1bm5lcldpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYktpdFRlc3RSdW5uZXJXaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNzY0MTc3MjEwRDczNjEwMEEzREFBRSAvKiBXZWJLaXRUZXN0UnVubmVyV2luZG93Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJXaW5kb3cu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNzg4MUYyNTBDNjlFNDAwQzBBQTI0
IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gUmVmdGVzdEZ1bmN0aW9ucy5jcHA7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1Jl
ZnRlc3RGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0M3ODgy
MDI1MEM2OUU0MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBSZWZ0ZXN0RnVuY3Rpb25zLmg7IHBhdGggPSAuLi9UZXN0UnVubmVy
U2hhcmVkL1JlZnRlc3RGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNDNzg4MkYyNTBDNzE5OTAwQzBBQTI0IC8qIEpTQmFzaWNzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpT
QmFzaWNzLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQzc4ODMwMjUwQzcxOTkwMEMwQUEyNCAv
KiBKU0Jhc2ljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0Jhc2ljcy5jcHA7IHBhdGggPSAu
Li9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUIwRDEzMkUyMDM2RDM0NjAwOEZDOEZCIC8qIFdlYktpdFRlc3RSdW5u
ZXJBcHAtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRz
OyBwYXRoID0gIldlYktpdFRlc3RSdW5uZXJBcHAtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMzZBMjcwMjA5NDUzQTAwMDNFMDY1MSAvKiBXaGF0VG9E
dW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdoYXRUb0R1bXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE4NTEwMjcxQjlBREU0ODAwNzQ0QUVCIC8qIGxp
YldlYktpdFRlc3RSdW5uZXIuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliV2Vi
S2l0VGVzdFJ1bm5lci5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAt
NTM2LDYgKzU0Myw4IEBACiAJCQkJMEY3M0I1NDcxQkE3ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0
Q29udGV4dCAqLywKIAkJCQkzMTQ4QTA1MzFFNkY4NUI2MDBEM0IzMTYgLyogSU9TTGF5b3V0VGVz
dENvbW11bmljYXRpb24uY3BwICovLAogCQkJCTMxNDhBMDU0MUU2Rjg1QjYwMEQzQjMxNiAvKiBJ
T1NMYXlvdXRUZXN0Q29tbXVuaWNhdGlvbi5oICovLAorCQkJCTkzQzc4ODFGMjUwQzY5RTQwMEMw
QUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCAqLywKKwkJCQk5M0M3ODgyMDI1MEM2OUU0MDBD
MEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBUZXN0UnVu
bmVyU2hhcmVkOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTU0Myw2ICs1NTIsOCBA
QAogCQkwRjE4RTcxQjFENkJDNEU2MDAyN0U1NDcgLyogQmluZGluZ3MgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTkzQzc4ODMwMjUwQzcxOTkwMEMwQUEy
NCAvKiBKU0Jhc2ljcy5jcHAgKi8sCisJCQkJOTNDNzg4MkYyNTBDNzE5OTAwQzBBQTI0IC8qIEpT
QmFzaWNzLmggKi8sCiAJCQkJMEYxOEU3MTQxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBhYmxl
LmggKi8sCiAJCQkJMEYxOEU3MTUxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBlci5jcHAgKi8s
CiAJCQkJMEYxOEU3MTYxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBlci5oICovLApAQCAtMTE4
NCw2ICsxMTk1LDcgQEAKIAkJCQlBMTg1MTAzRjFCOUFFMTI5MDA3NDRBRUIgLyogR2VvbG9jYXRp
b25Qcm92aWRlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QTUzMTgyMUI4OTlFNTAw
REJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkz
MURBOEEzRDFFNzIwNUNDMDBFMURGMkYgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTNDNzg4MzIyNTBDNzFCNzAwQzBBQTI0IC8qIEpTQmFzaWNz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNCNTUxMUJBNzg5NjgwMDRCM0VGNCAvKiBKU1VJ
U2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcxODFENkJDNDU2
MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QzM1NzhDMjBF
ODQ0NDYwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0xMjQxLDExICsxMjUzLDEzIEBACiAJCQkJMjlBOEZDQ0IxNDVFRjAyRTAwOTA0NUE2IC8q
IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlBOEZD
REQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyOTIxMEVFMTE0NENEQjI2MDA4MzVCQjUgLyogSlNBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzQzc4ODMxMjUwQzcxOUYw
MEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhGRDhEMjEyMEU1
NDVCMDBGM0U3MUEgLyogSlNFdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDMTRFNEVBMTIwRTAzRDgwMDgyNkMwQyAvKiBKU0dDQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzk1MkYxRjExRjNDNjUyMDAzMzk4QjQgLyogSlNUZXN0UnVubmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU2NDFFMkQwMTQzMzVFOTUwMDgzMDdFNSAvKiBKU1Rl
eHRJbnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2RTg5MDMxRDZCQzVB
MjAwOEVEMEZBIC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0M3ODgyMzI1
MEM2QzJFMDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRTYzRURBNjE4OTFCREMwMDAyQTdBRkMgLyogVGVzdFJ1bm5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDMENFNzIwQjEyNDdDOTMzMDBCQzBFQzQgLyogVGVzdFJ1bm5lck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTU2NjRBNDlBMTQzMjYzODQwMDg4ODFCRSAvKiBUZXh0SW5wdXRDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAwMDBkNGNjYTMzNjgxYmU0MTkzZTIx
ZjhmYTg2NTc4NDU2OWY1NzIuLjU3ZjNmODY0NjJiODU2MTE5MGVlYTBmOWU4ZDI3ZjJmODY3NzFm
NDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wOS0xMiAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VuZCBUZXN0UmVuZGVyZWQgZXZlbnQgYWZ0ZXIgcnVu
bmluZyBhIHRlc3QgYnV0IGJlZm9yZSBkdW1waW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0MjgKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVuc2tpcCB0d28g
dGVzdHMgdGhhdCBubyBsb25nZXIgdGltZSBvdXQgc2luY2Ugd2UgYXJlIHNlbmRpbmcgdGhpcyBl
dmVudC4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICBBZGQgYSBmYWlsdXJlIGV4cGVjdGF0aW9uIGZvciBhIHRlc3QgdGhhdCBoYXMgYSBjb3VwbGUg
bm9uLWdyZWVuIHBpeGVscy4KKwogMjAyMC0wOS0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NjgxNyk6IEFTU0VSVElPTiBGQUlMRUQ6
IGluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSBvbiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zdmctdGFyZ2V0LXJlZnRl
c3QuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAyNmY2ZDFlMWY3NmZlNDU5YjJhN2NlZGU3YjQ1NDYzMThlYWNkZjEyLi4wM2JmOTBhYWE3
OTRmNDE3NGZjYmJiYjNjYzNlY2YxNmM2NDkzN2E5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTcsOSArNTcsNiBAQCB3ZWJraXQub3JnL2IvMTk2NTQy
IHByaW50aW5nL3ByaW50aW5nLWV2ZW50cy5odG1sIFsgQ3Jhc2ggXQogIyBSZWZ0ZXN0LXdhaXQg
dGltZW91dHMKIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXVpL3RleHQtb3ZlcmZsb3ctMDE3Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtp
dC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy92aF9ub3RfcmVmcmVzaGluZ19vbl9jaHJvbWUuaHRtbCBbIFRpbWVvdXQgXQotd2Via2l0
Lm9yZy9iLzE4NjA0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2Zvcm1zL3RoZS1vcHRpb24tZWxlbWVudC9keW5hbWljLWNvbnRlbnQtY2hhbmdlLXJlbmRl
cmluZy5odG1sIFsgVGltZW91dCBdCi13ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXNlbGVjdC1lbGVtZW50
L3Jlc2V0LWFsZ29yaXRobS1yZW5kZXJpbmcuaHRtbCBbIFRpbWVvdXQgXQotCiAKICMgUmVzb3Vy
Y2VMb2FkaW5nCiB3ZWJraXQub3JnL2IvMjAxMjcwIFsgUmVsZWFzZSBdIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbCBbIFRpbWVvdXQg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NDhmZGFk
YWFlMjhmYzllNzk3NTVjN2RkOGE4MWU3MzFlMmRhNzM1Li4wNWRjNDI4ZDg5NDM1YzQyMmQxNjBl
OGM2NDZjMGEzOGU2Nzg5MjllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjE5NywxMSArMjE5Nyw5IEBAIHdlYmtpdC5vcmcvYi8yMTYyOTggaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYmxvYi12YWxpZC1hZnRlci1kCiB3
ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy11aS90ZXh0LW92ZXJmbG93LTAxNy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTg2MDQ1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdmhfbm90X3Jl
ZnJlc2hpbmdfb25fY2hyb21lLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVt
ZW50cy9lbWJlZGRlZC1jb250ZW50L2Nyb3NzLWRvbWFpbi1pZnJhbWUuc3ViLmh0bWwgWyBTa2lw
IF0KLXdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtb3B0aW9uLWVsZW1lbnQvZHluYW1pYy1jb250ZW50LWNo
YW5nZS1yZW5kZXJpbmcuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE4NjA0NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1zZWxlY3Qt
ZWxlbWVudC9yZXNldC1hbGdvcml0aG0tcmVuZGVyaW5nLmh0bWwgWyBTa2lwIF0KIAogIzxyZGFy
Oi8vNjMwMjYyODM+IFsgbWFjT1MgaU9TIF0gbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Bs
YXliYWNrLXN1cHBvcnQvcGxheWJhY2stc3VwcG9ydC1hdXRvcGxheS5odG1sIGlzIGEgZmxha3kg
ZmFpbHVyZS90aW1lb3V0CiBbIEJpZ1N1cisgXSBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
cGxheWJhY2stc3VwcG9ydC9wbGF5YmFjay1zdXBwb3J0LWF1dG9wbGF5Lmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCiAjIHJkYXI6Ly82ODczNjczNSAoUkVHUkVTU0lPTjogWyBCaWdTdXIgPCAyMEEy
Mzc0IF0gZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWxvb3AtY291bnQuaHRtbCBpcyBhIGNvbnN0
YW50IGltYWdlIGZhaWx1cmUpCi1bIEJpZ1N1cisgXSBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYt
bG9vcC1jb3VudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQorWyBCaWdTdXIrIF0gZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWxvb3AtY291bnQu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA1ZTJiODg2N2E3ZWNiMWQxM2QxYzA5YzQ4MDcyNTQwNmM5M2QyMWI4
Li42NjE0Yjc1YWNiOWUzODMwNDYyNjViYTk0YTlmN2IxNzk5ZTRjOTZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDUzNSwyMSArNDUzNSwyMSBAQCB3
ZWJraXQub3JnL2IvMjE1MTcwIHdlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXdp
dGgtZWFzaW5nLmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMjE1MTcyIGltcG9ydGVkL2JsaW5r
L2Zhc3QvY3NzL2ZpeGVkLW92ZXJsYXBzLWFic29sdXRlLWluLWNsaXAuaHRtbCBbIFNraXAgXQog
CiB3ZWJraXQub3JnL2IvMjE1NjM2IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi0zLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTU2MzYgIGZhc3QvdGV4dC9lbW9qaS1n
ZW5kZXItMi00Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTU2MzYg
IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi01Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMTU2MzYgIGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi02Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTU2MzYgIGZhc3QvdGV4dC9lbW9qaS1nZW5k
ZXItMi03Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTU2MzYgIGZh
c3QvdGV4dC9lbW9qaS1nZW5kZXItMi04Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8yMTU2MzYgIGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi05Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRl
ci1mZTBmLTMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAg
ZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTUuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2pp
LWdlbmRlci1mZTBmLTYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIx
NTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTcuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTgu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0
L2Vtb2ppLWdlbmRlci1mZTBmLTkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvMjE1NjM2IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi00Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2pp
LWdlbmRlci0yLTUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYz
NiBmYXN0L3RleHQvZW1vamktZ2VuZGVyLTItNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3
ZWJraXQub3JnL2IvMjE1NjM2IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi03Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRl
ci0yLTguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0
L3RleHQvZW1vamktZ2VuZGVyLTItOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKK3dlYmtp
dC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1vamktZ2VuZGVy
LWZlMGYtNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjE1NjM2IGZh
c3QvdGV4dC9lbW9qaS1nZW5kZXItZmUwZi01Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dl
YmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTYuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1vamktZ2Vu
ZGVyLWZlMGYtNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjE1NjM2
IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItZmUwZi04Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTkuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1vamkt
Z2VuZGVyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNTgyNyBh
bmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJpbmctdXBkYXRlcy5odG1sIFsgRmFpbHVy
ZSBdCiAKQEAgLTQ1NjYsMyArNDU2Niw2IEBAIHdlYmtpdC5vcmcvYi8yMTYwMzYgd2ViYW5pbWF0
aW9ucy9hbmltYXRpb24tcGFnZS1jYWNoZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogIyBFbW9q
aSBzeW50aGVzaXMgaXMgb25seSBjdXJyZW50bHkgZGlzYWJsZWQgb24gQ29jb2EgcGxhdGZvcm1z
CiBmYXN0L3RleHQvZW1vamktc3ludGhlc2lzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwor
IyBUaGlzIHRlc3QgaXMgYmFzaWNhbGx5IHBhc3NpbmcsIGJ1dCBvZmYgYnkgYSBwaXhlbCBvciB0
d28uIE5vdCBzdXJlIHRoaXMgaXMgaW1wb3J0YW50IGVub3VnaCB0byB0cmFjayB3aXRoIGEgYnVn
Lgord2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1jc3MtYW5pbWF0aW9uLXdpdGgtZWFzaW5nLmh0
bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQo=
</data>
<flag name="commit-queue"
          id="424088"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408642</attachid>
            <date>2020-09-12 22:10:58 -0700</date>
            <delta_ts>2020-09-12 22:10:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216428-20200912221057.patch</filename>
            <type>text/plain</type>
            <size>49057</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGMyOTNlNzI4NmY0OWYyYjQwZjFjZWYxMTExMzQyMGE0
ODkwNDM3NC4uZjU2YWE1Yjg4Nzc5ZTRiNDMyMWZhMTE1YTdlOGFhMTZiMDViZTRkNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2
IEBACisyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAg
ICBTZW5kIFRlc3RSZW5kZXJlZCBldmVudCBhZnRlciBydW5uaW5nIGEgdGVzdCBidXQgYmVmb3Jl
IGR1bXBpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNjQyOAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dDogQWRkZWQgdGhlIG5ldyBmaWxlcyBhbmQgZGly
ZWN0b3JpZXMuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9Q
bGF0Zm9ybVdpbi5jbWFrZTogVGVtcG9yYXJpbHkgZGlzYWJsZSBwcmVjb21waWxlZCBoZWFkZXJz
CisgICAgICAgIG9uIFdpbkNhaXJvIHNpbmNlIHRoZXkgd2VyZSBub3Qgd29ya2luZyBwcm9wZXJs
eSB3aXRoIEpTQmFzaWNzLmNwcC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9GcmFt
ZUxvYWREZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bRnJhbWVMb2FkRGVsZWdhdGUgcmVhZHlUb0R1
bXBTdGF0ZV0pOiBBZGRlZC4gQ2FsbHMgc2VuZFRlc3RSZW5kZXJlZEV2ZW50LgorICAgICAgICAo
LVtGcmFtZUxvYWREZWxlZ2F0ZSBwcm9jZXNzV29yazpdKTogQ2FsbCByZWFkeVRvRHVtcFN0YXRl
LgorICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OmxvY2F0aW9uQ2hhbmdlRG9u
ZTpmb3JEYXRhU291cmNlOl0pOiBEaXR0by4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHA6CisgICAgICAgIChyZWFkeVRvRHVtcFN0YXRlKTogQWRk
ZWQuIENhbGxzIHNlbmRUZXN0UmVuZGVyZWRFdmVudC4KKyAgICAgICAgKEZyYW1lTG9hZERlbGVn
YXRlOjpwcm9jZXNzV29yayk6IENhbGwgcmVhZHlUb0R1bXBTdGF0ZS4KKyAgICAgICAgKEZyYW1l
TG9hZERlbGVnYXRlOjpsb2NhdGlvbkNoYW5nZURvbmUpOiBEaXR0by4KKworICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNCYXNpY3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdU
Ujo6SlNWYWx1ZU1ha2VCb29sZWFuT3JOdWxsKTogTW92ZWQgZnJvbSBKU1dyYXBwYWJsZS5oLgor
ICAgICAgICAoV1RSOjpKU1ZhbHVlVG9OdWxsYWJsZUJvb2xlYW4pOiBEaXR0by4KKyAgICAgICAg
KFdUUjo6SlNWYWx1ZU1ha2VTdHJpbmdPck51bGwpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6Y3Jl
YXRlSlNTdHJpbmcpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6bWFrZVZhbHVlKTogRGl0dG8uCisg
ICAgICAgIChXVFI6Om9iamVjdFByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXVFI6OnNldFBy
b3BlcnR5KTogQWRkZWQuIFNldHMgYSBuYW1lZCBwcm9wZXJ0eSB2YWx1ZSB0byBhIGJvb2xlYW4u
CisgICAgICAgIChXVFI6OmNhbGwpOiBNb3ZlZCBmcm9tIEpTV3JhcHBhYmxlLmguCisgICAgICAg
IChXVFI6OmNhbGxDb25zdHJ1Y3Rvcik6IEFkZGVkLiBHZXRzIGEgZ2xvYmFsIGNvbnN0cnVjdG9y
IGFuZCBjYWxscyBpdC4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNC
YXNpY3MuaDogQWRkZWQuIERlY2xhcmVzIHRoZSBhYm92ZSBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmg6CisgICAgICAgIChXVFI6
OkpTVmFsdWVNYWtlQm9vbGVhbk9yTnVsbCk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OkpTVmFs
dWVUb051bGxhYmxlQm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OkpTVmFsdWVNYWtl
U3RyaW5nT3JOdWxsKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6Y3JlYXRlSlNTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjptYWtlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RS
OjpvYmplY3RQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OmNhbGwpOiBEZWxldGVk
LgorICAgICAgICAoV1RSOjpoYXNSZWZUZXN0V2FpdEF0dHJpYnV0ZSk6IERlbGV0ZWQuCisKKyAg
ICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBlci5oOiBVcGRhdGVkIGlu
Y2x1ZGVzLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9SZWZ0ZXN0RnVuY3Rpb25zLmNw
cDogQWRkZWQuCisgICAgICAgIChXVFI6OnNlbmRUZXN0UmVuZGVyZWRFdmVudCk6IEFkZGVkLiBD
cmVhdGVzIGFuZCBkaXNwYXRjaGVzIGEgVGVzdFJlbmRlcmVkIGV2ZW50LgorICAgICAgICAoV1RS
OjpoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZSk6IE1vdmVkIGZyb20gSlNXcmFwcGFibGUuaCBhbmQg
cmVuYW1lZCB0byB1c2UgYQorICAgICAgICBsb3dlcmNhc2UgVCBzaW5jZSB0aGF0J3MgaG93IHdl
Yi1wbGF0Zm9ybS10ZXN0cyBuYW1lcyB0aGluZ3MuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hh
cmVkL1JlZnRlc3RGdW5jdGlvbnMuaDogQWRkZWQuIERlY2xhcmVzIHRoZSBhYm92ZSBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0OiBBZGRlZCB0
aGUgbmV3IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpmcmFtZURpZENoYW5nZUxvY2F0aW9uKTogQ2FsbCBzZW5kVGVz
dFJlbmRlcmVkRXZlbnQKKyAgICAgICAgYmVmb3JlIGNhbGxpbmcgZHVtcEFmdGVyV2FpdEF0dHJp
YnV0ZUlzUmVtb3ZlZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tOiBBZGRlZCBhCisgICAgICAgIG1p
c3NpbmcgaW5jbHVkZSBvZiAiY29uZmlnLmgiIHRvIGZpeCBidWlsZCBmYWlsdXJlcyBJIHdhcyBz
ZWVpbmcuICBBbiBhbHRlcm5hdGl2ZSwKKyAgICAgICAgc2luY2UgdGhpcyBpcyBhIENvY29hLW9u
bHkgc291cmNlIGZpbGUsIHdvdWxkIGJlIHRvIHB1dCBjb25maWcuaCBpbnRvIGEKKyAgICAgICAg
cHJlY29tcGlsZWQgcHJlZml4IGhlYWRlci4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOiBEaXR0
by4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2U6IFRlbXBv
cmFyaWx5IGRpc2FibGUgcHJlY29tcGlsZWQgaGVhZGVycworICAgICAgICBvbiBXaW5DYWlybyBz
aW5jZSB0aGV5IHdlcmUgbm90IHdvcmtpbmcgcHJvcGVybHkgd2l0aCBKU0Jhc2ljcy5jcHAuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogQWRkZWQgdGhlIG5ldworICAgICAgICBmaWxlcyBhbmQgZGlyZWN0b3Jp
ZXMuCisKIDIwMjAtMDktMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjY4MTcpOiBBU1NFUlRJT04gRkFJTEVEOiBpbmplY3RlZEJ1bmRs
ZS5pc1Rlc3RSdW5uaW5nKCkgb24gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3ZnLXRhcmdldC1yZWZ0ZXN0Lmh0dHBzLmh0bWwK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzZlM2ZlODZjZDFlMTkyOTY3Mjdm
NjVjYzA5OGQ4ODBjNGM4MGExZS4uODU1NDJmMThhZjFhYjI1NzBlNDY1ZTdlMWZiMDNkZmU0MDk3
YzUyNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTYsNiArNiw4IEBAIHNl
dChXZWJLaXRUZXN0UnVubmVyX1VJU0NSSVBUQ09OVEVYVF9ESVIgIiR7VE9PTFNfRElSfS9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0CiBmaWxlKE1BS0VfRElSRUNUT1JZICR7RHVtcFJlbmRlclRy
ZWVfREVSSVZFRF9TT1VSQ0VTX0RJUn0pCiAKIHNldChEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCisg
ICAgJHtXZWJLaXRUZXN0UnVubmVyX1NIQVJFRF9ESVJ9L1JlZnRlc3RGdW5jdGlvbnMuY3BwCisg
ICAgJHtXZWJLaXRUZXN0UnVubmVyX1NIQVJFRF9ESVJ9L0JpbmRpbmdzL0pTQmFzaWNzLmNwcAog
ICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9TSEFSRURfRElSfS9CaW5kaW5ncy9KU1dyYXBwZXIuY3Bw
CiAKICAgICAke1dlYktpdFRlc3RSdW5uZXJfVUlTQ1JJUFRDT05URVhUX0RJUn0vVUlTY3JpcHRD
b250ZXh0LmNwcApAQCAtMzQsNiArMzYsNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtDTUFLRV9CSU5BUllfRElSfQogICAgICR7RHVtcFJl
bmRlclRyZWVfREVSSVZFRF9TT1VSQ0VTX0RJUn0KICAgICAke0R1bXBSZW5kZXJUcmVlX0RJUn0K
KyAgICAke1dlYktpdFRlc3RSdW5uZXJfU0hBUkVEX0RJUn0KICAgICAke1dlYktpdFRlc3RSdW5u
ZXJfU0hBUkVEX0RJUn0vQmluZGluZ3MKICAgICAke1dlYktpdFRlc3RSdW5uZXJfVUlTQ1JJUFRD
T05URVhUX0RJUn0KICkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyOWUwY2E4ZDZm
MTIxYjgzOTFjNWExMTQwMDIzNGM3MWUyZTdlNGQuLmYyODAyNWVhZmFjZDVhNGIxMzY0Y2E1YTgz
MjdjYjkwZjExMzVkZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTExLDYgKzEx
MSw4IEBACiAJCTVEQjlBQ0EwMEY3MjJDMzYwMDY4NDY0MSAvKiBXZWJLaXRXZWlnaHRXYXRjaGVy
OTAwLnR0ZiBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzc1RjA5NzkwREFDM0NCNjAwQzhCNEU1IC8qIFdlYktpdFdlaWdodFdhdGNoZXI5MDAu
dHRmICovOyB9OwogCQk4MDA0NUFFRTE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MDA0NUFFQzE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0gKi87IH07CiAJCTg0NjVFMkM3MEZGQThERjIwMDNCODM0MiAvKiBQ
aXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0NjVFMkM2MEZGQThERjIwMDNCODM0MiAvKiBQaXhlbER1bXBTdXBwb3J0LmNw
cCAqLzsgfTsKKwkJOTNDNzg4MjYyNTBDNkQzQTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNzg4
MjQyNTBDNkQzOTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwICovOyB9OworCQk5M0M3
ODgyRTI1MEM3MTcyMDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNzg4MjkyNTBDNzEzNDAwQzBBQTI0IC8qIEpT
QmFzaWNzLmNwcCAqLzsgfTsKIAkJOTgzMEYzMUYxNUM4MTE4MTAwNUFCMjA2IC8qIER1bXBSZW5k
ZXJUcmVlQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk4MzBGMzFFMTVDODExODEwMDVBQjIwNiAvKiBEdW1wUmVuZGVyVHJlZUNvbW1vbi5j
cHAgKi87IH07CiAJCUExMTU4RDU4MTg5Mjc0MEMwMDg4QzE3QiAvKiBEdW1wUmVuZGVyVHJlZUJy
b3dzZXJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTExNThENTYxODkyNzNFQjAwODhDMTdCIC8qIER1bXBSZW5kZXJUcmVlQnJvd3NlclZpZXcu
bW0gKi87IH07CiAJCUExMTU4RDU5MTg5Mjc0MzYwMDg4QzE3QiAvKiBQaXhlbER1bXBTdXBwb3J0
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEx
NThENTcxODkyNzNFQjAwODhDMTdCIC8qIFBpeGVsRHVtcFN1cHBvcnRJT1MubW0gKi87IH07CkBA
IC0zMzQsNiArMzM2LDEwIEBACiAJCTg0NjVFMkM2MEZGQThERjIwMDNCODM0MiAvKiBQaXhlbER1
bXBTdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQaXhl
bER1bXBTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzNTQzNUYw
M0Q3NTUwMjAwODYzNUNFIC8qIFdlYktpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IFdl
YktpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkz
NDA5OTU0MDg1NDBDQUYwMDdGM0JDOCAvKiBEdW1wUmVuZGVyVHJlZSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRh
YmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gRHVtcFJlbmRlclRyZWU7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTkzQzc4ODI0MjUwQzZEMzkwMEMwQUEyNCAv
KiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlZnRlc3RGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0M3ODgyNTI1MEM2RDM5MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZ0ZXN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQzc4ODI5MjUwQzcxMzQwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jhc2ljcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQzc4ODJCMjUwQzcxMzQwMEMwQUEyNCAvKiBKU0Jhc2ljcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0Jhc2ljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5ODMwRjMxRTE1
QzgxMTgxMDA1QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTEwM0I1QjE4OTI0OThGMDA3MzhDODcgLyogTGF5b3V0
VGVzdEhlbHBlci54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IG5hbWUgPSBMYXlvdXRUZXN0SGVscGVyLnhjY29u
ZmlnOyBwYXRoID0gbWFjL0NvbmZpZ3VyYXRpb25zL0xheW91dFRlc3RIZWxwZXIueGNjb25maWc7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMTU4RDU1MTg5MjczRUIwMDg4QzE3QiAv
KiBEdW1wUmVuZGVyVHJlZUJyb3dzZXJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IER1bXBSZW5kZXJU
cmVlQnJvd3NlclZpZXcuaDsgcGF0aCA9IGlvcy9EdW1wUmVuZGVyVHJlZUJyb3dzZXJWaWV3Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MTksMTEgKzcyNSwxNCBAQAogCQkzMTQ4
QTA2NTFFNkY5MEY0MDBEM0IzMTYgLyogVGVzdFJ1bm5lclNoYXJlZCAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNDNzg4MjgyNTBDNzEzNDAwQzBBQTI0
IC8qIEJpbmRpbmdzICovLAogCQkJCUY0QjZDMzE4MjBFODQzODIwMDhBQzIyNSAvKiBjb2NvYSAq
LywKIAkJCQlGNEZFRDMxNjIzNTgxRUYzMDAzQzEzOUMgLyogbWFjICovLAogCQkJCUExN0E1QTJC
MjJBODgwRDgwMDY1QzVGMCAvKiBzcGkgKi8sCiAJCQkJMzE0OEEwNTUxRTZGOTBGNDAwRDNCMzE2
IC8qIElPU0xheW91dFRlc3RDb21tdW5pY2F0aW9uLmNwcCAqLywKIAkJCQkzMTQ4QTA1NjFFNkY5
MEY0MDBEM0IzMTYgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRpb24uaCAqLywKKwkJCQk5M0M3
ODgyNDI1MEM2RDM5MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgKi8sCisJCQkJOTND
Nzg4MjUyNTBDNkQzOTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gVGVzdFJ1bm5lclNoYXJlZDsKIAkJCXBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVk
OwpAQCAtNzY4LDYgKzc3NywxNSBAQAogCQkJbmFtZSA9IFJlc291cmNlczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzQzc4ODI4MjUwQzcxMzQwMEMwQUEyNCAvKiBCaW5k
aW5ncyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTND
Nzg4MjkyNTBDNzEzNDAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCAqLywKKwkJCQk5M0M3ODgyQjI1
MEM3MTM0MDBDMEFBMjQgLyogSlNCYXNpY3MuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gQmluZGlu
Z3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTE1OEQ2QTE4OTI3Q0Ux
MDA4OEMxN0IgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTEyMTUsNiArMTIzMyw3IEBACiAJCQkJRjQ0QTUzMUUyMUI4OUE1MDAwREJCOTlDIC8q
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTI5NDNGOTFF
NzFGMkI0MDAxRUUyQ0MgLyogSU9TTGF5b3V0VGVzdENvbW11bmljYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkNFODhGQTIxNzEyNEQ4QzAwNzM0RkMwIC8qIEphdmFTY3JpcHRUaHJlYWRp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNDNzg4MkUyNTBDNzE3MjAwQzBBQTI0IC8qIEpT
QmFzaWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNzA2MUQ2QkEwMjMwMDI3RTU0NyAv
KiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcxMzFE
NkJDNDNBMDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QzM1
NzhEMjBFODQ0NEUwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMjMxLDYgKzEyNTAsNyBAQAogCQkJCUJDQjI4NEQ2MENGQTgzRDEwMDdFNTMz
RSAvKiBQaXhlbER1bXBTdXBwb3J0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMThCNjYw
QzlCMDhDMjAwMTE0MzY5IC8qIFBvbGljeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjQwMTBCN0IyNERBMjAxRjAwQTg3NkUyIC8qIFBvc2VBc0NsYXNzLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJOTNDNzg4MjYyNTBDNkQzQTAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNBMThCNjgwQzlCMDhDMjAwMTE0MzY5IC8qIFJlc291cmNlTG9h
ZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTMwQTIxRjgyMDUxRDhDNDAwMDhGRjQy
IC8qIFRlc3RPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDEzMURBMEM5NzcyMDEw
MDg3MzE3RCAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDA2NTJiNDNmNWMwYjllMjE5YzNmZDc1YTkzM2Yx
MDA1OTA2ODBhLi41YWQyOGZlMzhiZjU0NDQxM2EwODZkMTMyYWU5ZmIwYzkzMDFkZjJhIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNzIsNyArNzIsOSBAQCBlbHNl
ICgpCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNw
cCIgRHVtcFJlbmRlclRyZWVfU09VUkNFUykKK2lmIChOT1QgV1RGX1BMQVRGT1JNX1dJTl9DQUlS
TykKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiRHVtcFJlbmRlclRyZWVQcmVm
aXguaCIgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAiIER1bXBSZW5kZXJUcmVlX1NPVVJD
RVMpCitlbmRpZiAoKQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hB
UkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJ
VF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQppbmRleCBlOTc3NDlmNGEzMmRiN2Q5MjFjZjJjYzhi
NWM0NmYyYjk2MDQzNDEwLi5iMzhmNGQzN2YwNjcxNTM1MWM4OWE4NmZlODIwOGI3NmYyMTVhYTdl
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUu
bW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCkBA
IC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJPYmpDQ29udHJvbGxlci5oIgogI2ltcG9ydCAiT2Jq
Q1BsdWdpbi5oIgogI2ltcG9ydCAiT2JqQ1BsdWdpbkZ1bmN0aW9uLmgiCisjaW1wb3J0ICJSZWZ0
ZXN0RnVuY3Rpb25zLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgiCiAjaW1wb3J0ICJUZXh0SW5w
dXRDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKQEAgLTE0MSwx
NCArMTQyLDIyIEBAIC0gKHZvaWQpZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZDooaWQp
ZHVtbXkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYlRocmVhZExvY2soKTsKICNl
bmRpZgotCi0gICAgaWYgKFdUUjo6aGFzUmVmVGVzdFdhaXRBdHRyaWJ1dGUobWFpbkZyYW1lLmds
b2JhbENvbnRleHQpKQorICAgIGlmIChXVFI6Omhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKG1haW5G
cmFtZS5nbG9iYWxDb250ZXh0KSkKICAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxl
Y3RvcihkdW1wQWZ0ZXJXYWl0QXR0cmlidXRlSXNSZW1vdmVkOikgd2l0aE9iamVjdDpuaWwgYWZ0
ZXJEZWxheTowXTsKICAgICBlbHNlCiAgICAgICAgIGR1bXAoKTsKIH0KIAotLy8gRXhlYyBtZXNz
YWdlcyBpbiB0aGUgd29yayBxdWV1ZSB1bnRpbCB0aGV5J3JlIGFsbCBkb25lLCBvciBvbmUgb2Yg
dGhlbSBzdGFydHMgYSBuZXcgbG9hZAorLSAodm9pZClyZWFkeVRvRHVtcFN0YXRlCit7CisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXZWJUaHJlYWRMb2NrKCk7CisjZW5kaWYKKyAgICBX
VFI6OnNlbmRUZXN0UmVuZGVyZWRFdmVudChtYWluRnJhbWUuZ2xvYmFsQ29udGV4dCk7CisgICAg
W3NlbGYgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZDpuaWxdOworfQorCisvLyBFeGVj
dXRlIG1lc3NhZ2VzIGluIHRoZSB3b3JrIHF1ZXVlIHVudGlsIHRoZXkncmUgYWxsIGRvbmUsIG9y
IG9uZSBvZiB0aGVtIHN0YXJ0cyBhIG5ldyBsb2FkLgogLSAodm9pZClwcm9jZXNzV29yazooaWQp
ZHVtbXkKIHsKICAgICAvLyBpZiBhbm90aGVyIGxvYWQgc3RhcnRlZCwgdGhlbiB3YWl0IGZvciBp
dCB0byBjb21wbGV0ZS4KQEAgLTE1OCwxMCArMTY3LDkgQEAgLSAodm9pZClwcm9jZXNzV29yazoo
aWQpZHVtbXkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYlRocmVhZExvY2soKTsK
ICNlbmRpZgotCi0gICAgLy8gaWYgd2UgZmluaXNoIGFsbCB0aGUgY29tbWFuZHMsIHdlJ3JlIHJl
YWR5IHRvIGR1bXAgc3RhdGUKKyAgICAvLyBJZiB3ZSBmaW5pc2ggYWxsIHRoZSBjb21tYW5kcywg
d2UncmUgcmVhZHkgdG8gZHVtcCBzdGF0ZS4KICAgICBpZiAoRFJUOjpXb3JrUXVldWU6OnNpbmds
ZXRvbigpLnByb2Nlc3NXb3JrKCkgJiYgIWdUZXN0UnVubmVyLT53YWl0VG9EdW1wKCkpCi0gICAg
ICAgIFtzZWxmIGR1bXBBZnRlcldhaXRBdHRyaWJ1dGVJc1JlbW92ZWQ6bmlsXTsKKyAgICAgICAg
W3NlbGYgcmVhZHlUb0R1bXBTdGF0ZV07CiB9CiAKIC0gKHZvaWQpcmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZQpAQCAtMTc5LDcgKzE4Nyw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgbG9jYXRpb25DaGFuZ2VEb25lOihOU0Vycm9yICopZXJyb3IgZm9yRGF0YVNvCiAgICAgICAg
ICAgICBpZiAod29ya1F1ZXVlLmNvdW50KCkpCiAgICAgICAgICAgICAgICAgW3NlbGYgcGVyZm9y
bVNlbGVjdG9yOkBzZWxlY3Rvcihwcm9jZXNzV29yazopIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVs
YXk6MF07CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgW3NlbGYgZHVtcEFmdGVy
V2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZDpuaWxdOworICAgICAgICAgICAgICAgIFtzZWxmIHJlYWR5
VG9EdW1wU3RhdGVdOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0ZyYW1lTG9hZERlbGVnYXRlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHAKaW5kZXggYTg5ZWZmYTE5NmZjNjNiNDc0NDgx
N2VlZWU0ZjZhM2VkZDYxODhiNi4uNzU1YmVkMTZmNjBlZGMwMTExNTUyMWUxNThjMGRiZjA1NTg4
YmY4NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0ZyYW1lTG9hZERlbGVn
YXRlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRnJhbWVMb2FkRGVsZWdhdGUu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRl
ICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJKU1dyYXBwZXIuaCIKKyNpbmNsdWRlICJSZWZ0
ZXN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUgIlRleHRJ
bnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKQEAgLTE5
MSw3ICsxOTIsNyBAQCBIUkVTVUxUIEZyYW1lTG9hZERlbGVnYXRlOjpkaWRDaGFuZ2VJY29ucyhf
SW5fb3B0XyBJV2ViVmlldyosIF9Jbl9vcHRfIElXZWJGcmFtZQogc3RhdGljIHZvaWQgQ0FMTEJB
Q0sgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZChIV05EID0gbnVsbHB0ciwgVUlOVCA9
IDAsIFVJTlRfUFRSID0gMCwgRFdPUkQgPSAwKQogewogICAgIHN0YXRpYyBVSU5UX1BUUiB0aW1l
cklEOwotICAgIGlmIChmcmFtZSAmJiBXVFI6Omhhc1JlZlRlc3RXYWl0QXR0cmlidXRlKGZyYW1l
LT5nbG9iYWxDb250ZXh0KCkpKSB7CisgICAgaWYgKGZyYW1lICYmIFdUUjo6aGFzUmVmdGVzdFdh
aXRBdHRyaWJ1dGUoZnJhbWUtPmdsb2JhbENvbnRleHQoKSkpIHsKICAgICAgICAgaWYgKCF0aW1l
cklEKQogICAgICAgICAgICAgdGltZXJJRCA9IDo6U2V0VGltZXIobnVsbHB0ciwgMCwgMCwgZHVt
cEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZCk7CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw2ICsy
MDQsMTMgQEAgc3RhdGljIHZvaWQgQ0FMTEJBQ0sgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVt
b3ZlZChIV05EID0gbnVsbHB0ciwgVUlOVCA9IDAsIFUKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lk
IHJlYWR5VG9EdW1wU3RhdGUoKQoreworICAgIGlmIChmcmFtZSkKKyAgICAgICAgV1RSOjpzZW5k
VGVzdFJlbmRlcmVkRXZlbnQoZnJhbWUtPmdsb2JhbENvbnRleHQoKSk7CisgICAgZHVtcEFmdGVy
V2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZCgpOworfQorCiB2b2lkIEZyYW1lTG9hZERlbGVnYXRlOjpw
cm9jZXNzV29yaygpCiB7CiAgICAgLy8gaWYgYW5vdGhlciBsb2FkIHN0YXJ0ZWQsIHRoZW4gd2Fp
dCBmb3IgaXQgdG8gY29tcGxldGUuCkBAIC0yMTEsNyArMjE5LDcgQEAgdm9pZCBGcmFtZUxvYWRE
ZWxlZ2F0ZTo6cHJvY2Vzc1dvcmsoKQogCiAgICAgLy8gaWYgd2UgZmluaXNoIGFsbCB0aGUgY29t
bWFuZHMsIHdlJ3JlIHJlYWR5IHRvIGR1bXAgc3RhdGUKICAgICBpZiAoRFJUOjpXb3JrUXVldWU6
OnNpbmdsZXRvbigpLnByb2Nlc3NXb3JrKCkgJiYgITo6Z1Rlc3RSdW5uZXItPndhaXRUb0R1bXAo
KSkKLSAgICAgICAgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZCgpOworICAgICAgICBy
ZWFkeVRvRHVtcFN0YXRlKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkRGVsZWdhdGU6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGUoKQpAQCAtMjYwLDcgKzI2OCw3IEBAIHZvaWQgRnJhbWVMb2FkRGVsZWdh
dGU6OmxvY2F0aW9uQ2hhbmdlRG9uZShJV2ViRXJyb3IqLCBJV2ViRnJhbWUqIGZyYW1lKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3Zl
ZCgpOworICAgIHJlYWR5VG9EdW1wU3RhdGUoKTsKIH0KIAogSFJFU1VMVCBGcmFtZUxvYWREZWxl
Z2F0ZTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKF9Jbl9vcHRfIElXZWJWaWV3KiwgX0luX29wdF8g
SVdlYkZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmlu
ZGluZ3MvSlNCYXNpY3MuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU0Jh
c2ljcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmMGI3NDk5MGFmYjllMTJhYzlkMDFhNzEwYTRjNTI4MGUx
ZTkwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3Mv
SlNCYXNpY3MuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSlNCYXNpY3MuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTVmFs
dWVSZWYgSlNWYWx1ZU1ha2VCb29sZWFuT3JOdWxsKEpTQ29udGV4dFJlZiBjb250ZXh0LCBPcHRp
b25hbDxib29sPiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPyBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgdmFsdWUudmFsdWUoKSkgOiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7Cit9
CisKK09wdGlvbmFsPGJvb2w+IEpTVmFsdWVUb051bGxhYmxlQm9vbGVhbihKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZUlzVW5kZWZp
bmVkKGNvbnRleHQsIHZhbHVlKSB8fCBKU1ZhbHVlSXNOdWxsKGNvbnRleHQsIHZhbHVlKSA/IFdU
Rjo6bnVsbG9wdCA6IE9wdGlvbmFsPGJvb2w+KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgdmFs
dWUpKTsKK30KKworSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgc3RyaW5nT3JOdWxsKQoreworICAgIHJldHVybiBzdHJp
bmdPck51bGwgPyBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBzdHJpbmdPck51bGwpIDogSlNW
YWx1ZU1ha2VOdWxsKGNvbnRleHQpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY3Jl
YXRlSlNTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQoreworICAgIHJldHVybiBhZG9wdChKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzdHJpbmcpKTsKK30KKworSlNWYWx1ZVJlZiBtYWtl
VmFsdWUoSlNDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IGNoYXIqIHN0cmluZykKK3sKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgY3JlYXRlSlNTdHJpbmcoc3RyaW5nKS5n
ZXQoKSk7Cit9CisKK0pTT2JqZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8gdmFsdWUgPSBKU09iamVj
dEdldFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgY3JlYXRlSlNTdHJpbmcobmFtZSkuZ2V0KCks
IG51bGxwdHIpOworICAgIGlmICghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIHZhbHVlKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+
KHZhbHVlKTsKK30KKworSlNPYmplY3RSZWYgb2JqZWN0UHJvcGVydHkoSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IGNo
YXIqPiBuYW1lcykKK3sKKyAgICBmb3IgKGF1dG8gbmFtZSA6IG5hbWVzKQorICAgICAgICBvYmpl
Y3QgPSBvYmplY3RQcm9wZXJ0eShjb250ZXh0LCBvYmplY3QsIG5hbWUpOworICAgIHJldHVybiBv
YmplY3Q7Cit9CisKK3ZvaWQgc2V0UHJvcGVydHkoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIG9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSkKK3sKKyAgICBKU09i
amVjdFNldFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgY3JlYXRlSlNTdHJpbmcobmFtZSkuZ2V0
KCksIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB2YWx1ZSksIGtKU1Byb3BlcnR5QXR0cmli
dXRlTm9uZSwgbnVsbHB0cik7Cit9CisKK0pTVmFsdWVSZWYgY2FsbChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmluaXRpYWxp
emVyX2xpc3Q8SlNWYWx1ZVJlZj4gYXJndW1lbnRzKQoreworICAgIGlmICghb2JqZWN0KQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGZ1bmN0aW9uID0gb2JqZWN0UHJvcGVydHko
Y29udGV4dCwgb2JqZWN0LCBuYW1lKTsKKyAgICBpZiAoIWZ1bmN0aW9uKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBm
dW5jdGlvbiwgb2JqZWN0LCBhcmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVudHMuYmVnaW4oKSwgbnVs
bHB0cik7Cit9CisKK0pTT2JqZWN0UmVmIGNhbGxDb25zdHJ1Y3RvcihKU0dsb2JhbENvbnRleHRS
ZWYgY29udGV4dCwgY29uc3QgY2hhciogbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PEpTVmFs
dWVSZWY+IGFyZ3VtZW50cykKK3sKKyAgICBhdXRvIGNvbnN0cnVjdG9yID0gb2JqZWN0UHJvcGVy
dHkoY29udGV4dCwgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQpLCB7IG5hbWUgfSk7
CisgICAgaWYgKCFjb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3IoY29udGV4dCwgY29uc3RydWN0b3IsIGFyZ3Vt
ZW50cy5zaXplKCksIGFyZ3VtZW50cy5iZWdpbigpLCBudWxscHRyKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pT
QmFzaWNzLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTQmFzaWNzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTFkZGE1MjQ3YTVhYjZjMDQwOTYzZGYxOWFiMGY1ZTAyOTZjZWI4MgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNCYXNpY3MuaApA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHQuaD4KKyNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgorCituYW1lc3BhY2UgV1RSIHsKKworSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUJv
b2xlYW5Pck51bGwoSlNDb250ZXh0UmVmLCBPcHRpb25hbDxib29sPik7CitPcHRpb25hbDxib29s
PiBKU1ZhbHVlVG9OdWxsYWJsZUJvb2xlYW4oSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKKwor
SlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChKU0NvbnRleHRSZWYsIEpTU3RyaW5n
UmVmKTsKKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNyZWF0ZUpTU3RyaW5nKGNvbnN0IGNo
YXIqKTsKK0pTVmFsdWVSZWYgbWFrZVZhbHVlKEpTQ29udGV4dFJlZiwgY29uc3QgY2hhciopOwor
SlNPYmplY3RSZWYgb2JqZWN0UHJvcGVydHkoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgY29u
c3QgY2hhciogbmFtZSk7CitKU09iamVjdFJlZiBvYmplY3RQcm9wZXJ0eShKU0NvbnRleHRSZWYs
IEpTT2JqZWN0UmVmLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hhcio+IG5hbWVzKTsK
K3ZvaWQgc2V0UHJvcGVydHkoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgY29uc3QgY2hhciog
bmFtZSwgYm9vbCB2YWx1ZSk7CitKU1ZhbHVlUmVmIGNhbGwoSlNDb250ZXh0UmVmLCBKU09iamVj
dFJlZiwgY29uc3QgY2hhciogbmFtZSwgc3RkOjppbml0aWFsaXplcl9saXN0PEpTVmFsdWVSZWY+
IGFyZ3VtZW50cyk7CitKU09iamVjdFJlZiBjYWxsQ29uc3RydWN0b3IoSlNHbG9iYWxDb250ZXh0
UmVmLCBjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8SlNWYWx1ZVJlZj4g
YXJndW1lbnRzKTsKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmggYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL0JpbmRpbmdzL0pTV3JhcHBhYmxlLmgKaW5kZXggNWEwYTM1ZmU5ZDM2MmEwN2QyODBmYTc3
ZjBjNWNhMjYxMTRhMGZmMy4uOWUwZjA3ZGY1OTMyYWIzMDMzMWQ3YjYxZDE3MzUzYWU2ZTAxYzQ3
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwYWJs
ZS5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNXcmFwcGFibGUuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSwxMCArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgot
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+Ci0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0zOSw2NSAr
MzYsNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBKU0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpID0g
MDsKIH07CiAKLWlubGluZSBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlQm9vbGVhbk9yTnVsbChKU0Nv
bnRleHRSZWYgY29udGV4dCwgT3B0aW9uYWw8Ym9vbD4gdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZh
bHVlID8gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHZhbHVlLnZhbHVlKCkpIDogSlNWYWx1
ZU1ha2VOdWxsKGNvbnRleHQpOwotfQotCi1pbmxpbmUgT3B0aW9uYWw8Ym9vbD4gSlNWYWx1ZVRv
TnVsbGFibGVCb29sZWFuKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlKQot
ewotICAgIHJldHVybiBKU1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwgdmFsdWUpIHx8IEpTVmFs
dWVJc051bGwoY29udGV4dCwgdmFsdWUpID8gV1RGOjpudWxsb3B0IDogT3B0aW9uYWw8Ym9vbD4o
SlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCB2YWx1ZSkpOwotfQotCi1pbmxpbmUgSlNWYWx1ZVJl
ZiBKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdS
ZWYgc3RyaW5nT3JOdWxsKQotewotICAgIHJldHVybiBzdHJpbmdPck51bGwgPyBKU1ZhbHVlTWFr
ZVN0cmluZyhjb250ZXh0LCBzdHJpbmdPck51bGwpIDogSlNWYWx1ZU1ha2VOdWxsKGNvbnRleHQp
OwotfQotCi1pbmxpbmUgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNyZWF0ZUpTU3RyaW5nKGNv
bnN0IGNoYXIqIHN0cmluZykKLXsKLSAgICByZXR1cm4gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyaW5nKSk7Ci19Ci0KLWlubGluZSBKU1ZhbHVlUmVmIG1ha2VWYWx1ZShK
U0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgY2hhciogc3RyaW5nKQotewotICAgIHJldHVybiBK
U1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjcmVhdGVKU1N0cmluZyhzdHJpbmcpLmdldCgpKTsK
LX0KLQotaW5saW5lIEpTT2JqZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUpCi17Ci0gICAgaWYgKCFv
YmplY3QpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gdmFsdWUgPSBKU09iamVj
dEdldFByb3BlcnR5KGNvbnRleHQsIG9iamVjdCwgY3JlYXRlSlNTdHJpbmcobmFtZSkuZ2V0KCks
IG51bGxwdHIpOwotICAgIGlmICghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIHZhbHVlKSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+
KHZhbHVlKTsKLX0KLQotaW5saW5lIEpTT2JqZWN0UmVmIG9iamVjdFByb3BlcnR5KEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxj
b25zdCBjaGFyKj4gbmFtZXMpCi17Ci0gICAgZm9yIChhdXRvIG5hbWUgOiBuYW1lcykKLSAgICAg
ICAgb2JqZWN0ID0gb2JqZWN0UHJvcGVydHkoY29udGV4dCwgb2JqZWN0LCBuYW1lKTsKLSAgICBy
ZXR1cm4gb2JqZWN0OwotfQotCi1pbmxpbmUgSlNWYWx1ZVJlZiBjYWxsKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6aW5pdGlh
bGl6ZXJfbGlzdDxKU1ZhbHVlUmVmPiBhcmd1bWVudHMpCi17Ci0gICAgaWYgKCFvYmplY3QpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gZnVuY3Rpb24gPSBvYmplY3RQcm9wZXJ0
eShjb250ZXh0LCBvYmplY3QsIG5hbWUpOwotICAgIGlmICghZnVuY3Rpb24pCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQs
IGZ1bmN0aW9uLCBvYmplY3QsIGFyZ3VtZW50cy5zaXplKCksIGFyZ3VtZW50cy5iZWdpbigpLCBu
dWxscHRyKTsKLX0KLQotLy8gRklYTUU6IE1vdmUgdGhpcyBzb21ld2hlcmUgYmV0dGVyLiBXZSB3
YW50IHRvIHNoYXJlIGl0LCBzbyBpdCBiZWxvbmdzIGluIFRlc3RSdW5uZXJTaGFyZWQsIGJ1dCBu
b3QgYXMgcGFydCBvZiBKU1dyYXBwYWJsZS4KLWlubGluZSBib29sIGhhc1JlZlRlc3RXYWl0QXR0
cmlidXRlKEpTQ29udGV4dFJlZiBjb250ZXh0KQotewotICAgIGlmICghY29udGV4dCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGF1dG8gY2xhc3NMaXN0ID0gb2JqZWN0UHJvcGVydHkoY29u
dGV4dCwgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQpLCB7ICJkb2N1bWVudCIsICJk
b2N1bWVudEVsZW1lbnQiLCAiY2xhc3NMaXN0IiB9KTsKLSAgICByZXR1cm4gSlNWYWx1ZVRvQm9v
bGVhbihjb250ZXh0LCBjYWxsKGNvbnRleHQsIGNsYXNzTGlzdCwgImNvbnRhaW5zIiwgeyBtYWtl
VmFsdWUoY29udGV4dCwgInJlZnRlc3Qtd2FpdCIpIH0pKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0JpbmRpbmdzL0pTV3JhcHBl
ci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwZXIuaAppbmRleCAz
NWIzNGZiNTYyMDg2MjAwNmQ4MDQxNmJmMjNlOWRlMTU3NmUxMjIzLi5mNjc5OGY5OWE0ZmVjNjc1
NjNkMDkxNTYzYjUwNTA5ZGZjODU3MmRhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL0JpbmRpbmdzL0pTV3JhcHBlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvQmlu
ZGluZ3MvSlNXcmFwcGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJKU0Jhc2ljcy5oIgogI2luY2x1ZGUgIkpTV3JhcHBhYmxlLmgiCiAKIG5hbWVzcGFj
ZSBXVFIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9SZWZ0ZXN0RnVuY3Rp
b25zLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDM1YzI5MmY0YTE1NjhlMDJlZjVjNmNkMzRjMDE5NzQzNDRhYTJkNgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5jcHAK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZWZ0ZXN0RnVuY3Rpb25zLmgiCisKKyNpbmNsdWRlICJKU0Jhc2ljcy5oIgorCituYW1l
c3BhY2UgV1RSIHsKKwordm9pZCBzZW5kVGVzdFJlbmRlcmVkRXZlbnQoSlNHbG9iYWxDb250ZXh0
UmVmIGNvbnRleHQpCit7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisgICAg
YXV0byBpbml0aWFsaXplciA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBudWxscHRyLCBudWxscHRy
KTsKKyAgICBzZXRQcm9wZXJ0eShjb250ZXh0LCBpbml0aWFsaXplciwgImJ1YmJsZXMiLCB0cnVl
KTsKKyAgICBhdXRvIGV2ZW50ID0gY2FsbENvbnN0cnVjdG9yKGNvbnRleHQsICJFdmVudCIsIHsg
bWFrZVZhbHVlKGNvbnRleHQsICJUZXN0UmVuZGVyZWQiKSwgaW5pdGlhbGl6ZXIgfSk7CisgICAg
YXV0byBkb2N1bWVudEVsZW1lbnQgPSBvYmplY3RQcm9wZXJ0eShjb250ZXh0LCBKU0NvbnRleHRH
ZXRHbG9iYWxPYmplY3QoY29udGV4dCksIHsgImRvY3VtZW50IiwgImRvY3VtZW50RWxlbWVudCIg
fSk7CisgICAgY2FsbChjb250ZXh0LCBkb2N1bWVudEVsZW1lbnQsICJkaXNwYXRjaEV2ZW50Iiwg
eyBldmVudCB9KTsKK30KKworYm9vbCBoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZShKU0dsb2JhbENv
bnRleHRSZWYgY29udGV4dCkKK3sKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBhdXRvIGNsYXNzTGlzdCA9IG9iamVjdFByb3BlcnR5KGNvbnRleHQsIEpTQ29u
dGV4dEdldEdsb2JhbE9iamVjdChjb250ZXh0KSwgeyAiZG9jdW1lbnQiLCAiZG9jdW1lbnRFbGVt
ZW50IiwgImNsYXNzTGlzdCIgfSk7CisgICAgcmV0dXJuIEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4
dCwgY2FsbChjb250ZXh0LCBjbGFzc0xpc3QsICJjb250YWlucyIsIHsgbWFrZVZhbHVlKGNvbnRl
eHQsICJyZWZ0ZXN0LXdhaXQiKSB9KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9S
ZWZ0ZXN0RnVuY3Rpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI2ZmQ3OTU3ZjBiOTA1MWM5MDQ5YjAzMzNj
ZjEwODk5ZjVkOTE1MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
UmVmdGVzdEZ1bmN0aW9ucy5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0dsb2JhbENvbnRleHRS
ZWY7CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIHNlbmRUZXN0UmVuZGVyZWRFdmVudChKU0ds
b2JhbENvbnRleHRSZWYpOworYm9vbCBoYXNSZWZ0ZXN0V2FpdEF0dHJpYnV0ZShKU0dsb2JhbENv
bnRleHRSZWYpOworCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtl
TGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAppbmRleCBh
M2QwNTFiOTYyZTgwOTk3ZDExNGI3ZjQxZDRmNWQxNmQ3ZDNlOWM3Li5hMmIyYTNjYTg0ZTY1ODcw
YzJhYzRiMmFmYjA4MTBhNmM3NzE2MmM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0
cy50eHQKQEAgLTcsNiArNyw3IEBAIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtXZWJLaXRUZXN0UnVu
bmVyX0RFUklWRURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlKQogZmlsZShNQUtFX0RJUkVD
VE9SWSAke1dlYktpdFRlc3RSdW5uZXJfREVSSVZFRF9TT1VSQ0VTX0RJUn0vVUlTY3JpcHRDb250
ZXh0KQogCiBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCisgICAgJHtXZWJLaXRUZXN0UnVu
bmVyX0JJTkRJTkdTX0RJUn0vSlNCYXNpY3MuY3BwCiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX0JJ
TkRJTkdTX0RJUn0vSlNXcmFwcGVyLmNwcAogCiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX1VJU0NS
SVBUQ09OVEVYVF9ESVJ9L1VJU2NyaXB0Q29udGV4dC5jcHAKQEAgLTQ3LDYgKzQ4LDkgQEAgbGlz
dChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCiApCiAKIHNldChX
ZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7V2ViS2l0VGVzdFJ1
bm5lcl9TSEFSRURfRElSfS9SZWZ0ZXN0RnVuY3Rpb25zLmNwcAorCisgICAgJHtXZWJLaXRUZXN0
UnVubmVyX0JJTkRJTkdTX0RJUn0vSlNCYXNpY3MuY3BwCiAgICAgJHtXZWJLaXRUZXN0UnVubmVy
X0JJTkRJTkdTX0RJUn0vSlNXcmFwcGVyLmNwcAogCiAgICAgSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC02NCw2ICs2OCw3IEBAIHNldChXZWJLaXRUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogCiBzZXQoV2ViS2l0VGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0NNQUtFX0JJTkFSWV9ESVJ9CisgICAg
JHtXZWJLaXRUZXN0UnVubmVyX1NIQVJFRF9ESVJ9CiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX0JJ
TkRJTkdTX0RJUn0KICAgICAke1dlYktpdFRlc3RSdW5uZXJfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
SW5qZWN0ZWRCdW5kbGUKICAgICAke1dlYktpdFRlc3RSdW5uZXJfRElSfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCmluZGV4IDY4YTgyMmNiYTcyMWU3NzMzMGM0ZmEzNjY2MGExNTY2ZWMzZDBhZjcu
LmI2NDBmZjI4YWU3NWZkNjE4MDAzYmY2Zjc1MmUwNWNiMTMwNjM2NzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBY3RpdmF0ZUZvbnRz
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKyNpbmNsdWRlICJSZWZ0ZXN0RnVuY3Rp
b25zLmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRl
c3RTdXBwb3J0LmgiCiAjaW5jbHVkZSA8Y21hdGg+CkBAIC0xOTU1LDE1ICsxOTU2LDE1IEBAIFN0
cmluZyBJbmplY3RlZEJ1bmRsZVBhZ2U6OnBsYXRmb3JtUmVzcG9uc2VNaW1lVHlwZShXS1VSTFJl
c3BvbnNlUmVmKQogfQogI2VuZGlmCiAKLXN0YXRpYyBib29sIGhhc1JlZlRlc3RXYWl0QXR0cmli
dXRlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQorc3RhdGljIGJvb2wgaGFzUmVmdGVzdFdhaXRBdHRy
aWJ1dGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiB7CiAgICAgYXV0byBmcmFtZSA9IFdLQnVuZGxl
UGFnZUdldE1haW5GcmFtZShwYWdlKTsKLSAgICByZXR1cm4gZnJhbWUgJiYgaGFzUmVmVGVzdFdh
aXRBdHRyaWJ1dGUoV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KGZyYW1lKSk7Cisg
ICAgcmV0dXJuIGZyYW1lICYmIGhhc1JlZnRlc3RXYWl0QXR0cmlidXRlKFdLQnVuZGxlRnJhbWVH
ZXRKYXZhU2NyaXB0Q29udGV4dChmcmFtZSkpOwogfQogCiBzdGF0aWMgdm9pZCBkdW1wQWZ0ZXJX
YWl0QXR0cmlidXRlSXNSZW1vdmVkKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogewotICAgIGlmICho
YXNSZWZUZXN0V2FpdEF0dHJpYnV0ZShwYWdlKSkgeworICAgIGlmIChoYXNSZWZ0ZXN0V2FpdEF0
dHJpYnV0ZShwYWdlKSkgewogICAgICAgICBXS1JldGFpbihwYWdlKTsKICAgICAgICAgLy8gVXNl
IGEgMW1zIGludGVydmFsIGJldHdlZW4gdHJpZXMgdG8gYWxsb3cgbG93ZXIgcHJpb3JpdHkgcnVu
IGxvb3Agc291cmNlcyB3aXRoIHplcm8gZGVsYXlzIHRvIHJ1bi4KICAgICAgICAgUnVuTG9vcDo6
Y3VycmVudCgpLmRpc3BhdGNoQWZ0ZXIoMV9tcywgW3BhZ2VdIHsKQEAgLTIwMDQsNiArMjAwNSw4
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpmcmFtZURpZENoYW5nZUxvY2F0aW9uKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoYXV0
byBmcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShwYWdlLT5wYWdlKCkpKQorICAgICAg
ICBzZW5kVGVzdFJlbmRlcmVkRXZlbnQoV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0
KGZyYW1lKSk7CiAgICAgZHVtcEFmdGVyV2FpdEF0dHJpYnV0ZUlzUmVtb3ZlZChwYWdlLT5wYWdl
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tCmlu
ZGV4IGJhMjg5YjFkNmNkZTdhMjIxMTMyZGExOGMyMGY5NjI5MzJlMmQzOTguLjFmYjk5MWMyMDhi
M2MzNzI3NWNjNmM3ZGI3ZWI1OWY1Y2Q5MmI5YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1t
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlUZXh0TWFya2VyTWFjLm1tCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
ICAqLwogCisjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyLmgiCiAKIG5hbWVzcGFjZSBXVFIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2VNYWMubW0KaW5kZXggZDM4M2RmYTQ0MzQzNTE0ZjkzZjc2NzUwYmIy
ODg0ZmM4ZGVlOTdjNS4uZjVmNTg5MmEwOThhNjFhYzI2ZDhiOWMyNGI4NDA0ZTRmZTViY2U5YyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1t
CkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW1wb3J0ICJjb25m
aWcuaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaCIKIAogbmFtZXNw
YWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2lu
LmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA2
OTE5NzkxZGRmOWQwYWI4N2MyOTI5YTY2ZGVkZTFmMGU2MjAxZjZjLi42Nzc2ZWM2MTQzN2ExNTU1
YjRiZDIxNzJmZjZmNWQ5MjA4MDg5MjI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XaW4uY21ha2UKQEAgLTM5LDcgKzM5LDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5l
ckluamVjdGVkQnVuZGxlX0xJQlJBUklFUwogIyBwcmVzZW50IGluIHRoZSBsaXN0IG9mIHNvdXJj
ZXMgd2hlbiB0aGUgbWFjcm8gaXMgaW52b2tlZC4gUmVtb3ZlIGl0LCBjcmVhdGUgdGhlIHByZWNv
bXBpbGVkCiAjIGhlYWRlciwgYW5kIGFkZCBpdCBiYWNrIHRvIHdvcmsgYXJvdW5kIHRoaXMuCiBs
aXN0KFJFTU9WRV9JVEVNIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUyAke1dlYktpdFRlc3RSdW5u
ZXJfQklORElOR1NfRElSfS9KU1dyYXBwZXIuY3BwKQotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJl
Zml4LmNwcCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQoraWYgKE5PVCBXVEZfUExBVEZPUk1f
V0lOX0NBSVJPKQorICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0
UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRl
c3RSdW5uZXJfU09VUkNFUykKK2VuZGlmICgpCiBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVy
X1NPVVJDRVMgJHtXZWJLaXRUZXN0UnVubmVyX0JJTkRJTkdTX0RJUn0vSlNXcmFwcGVyLmNwcCkK
IAogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGU2NGM2NDA2NThjMmYxNzljMGJkMmIwYWZkN2MwYzQxNzAwYTQy
OTEuLjNlOTIzN2JlMTkxZTIxN2U1OWY4NjZiNzY1YmI0NzhlMWJkN2ExNjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjIsNiArMTIyLDkgQEAKIAkJODAzNEM2NjIx
NDg3NjM2NDAwQUMzMkU5IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODAzNEM2NjExNDg3NjM2NDAw
QUMzMkU5IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQk4MDk3MzM4
QTE0ODc0QTVBMDA4MTU2RDkgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MDk3MzM4OTE0
ODc0QTVBMDA4MTU2RDkgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gKi87
IH07CiAJCTkzNzY0MTdBMjEwRDczNzIwMEEzREFBRSAvKiBXZWJLaXRUZXN0UnVubmVyV2luZG93
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM3NjQx
NzYyMTBENzM2MDAwQTNEQUFFIC8qIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cubW0gKi87IH07CisJ
CTkzQzc4ODIzMjUwQzZDMkUwMEMwQUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzc4ODFGMjUwQzY5RTQw
MEMwQUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCAqLzsgfTsKKwkJOTNDNzg4MzEyNTBDNzE5
RjAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQzc4ODMwMjUwQzcxOTkwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAg
Ki87IH07CisJCTkzQzc4ODMyMjUwQzcxQjcwMEMwQUEyNCAvKiBKU0Jhc2ljcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0M3ODgzMDI1MEM3MTk5
MDBDMEFBMjQgLyogSlNCYXNpY3MuY3BwICovOyB9OwogCQlBMTg1MTAzQTFCOUFFMERBMDA3NDRB
RUIgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkVCOTBBMzE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRl
ckluZm8ubW0gKi87IH07CiAJCUExODUxMDNCMUI5QUUwRTIwMDc0NEFFQiAvKiBUZXN0Q29udHJv
bGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkRDRTJDRDExQjg0NTI0NTAwQzdGODMyIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gKi87
IH07CiAJCUExODUxMDNDMUI5QUUwRkUwMDc0NEFFQiAvKiBPcHRpb25zLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MUNDMDBEMTgxMTg1QkYwMDQy
RTlCNiAvKiBPcHRpb25zLmNwcCAqLzsgfTsKQEAgLTM1Miw2ICszNTUsMTAgQEAKIAkJOERENzZG
QTEwNDg2QUE3NjAwRDk2QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJs
ZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXI7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzNzY0MTc2MjEwRDczNjAwMEEzREFBRSAv
KiBXZWJLaXRUZXN0UnVubmVyV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lcldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM3NjQxNzcyMTBENzM2MTAwQTNEQUFFIC8qIFdlYktpdFRlc3RSdW5uZXJX
aW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5l
cldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0M3ODgxRjI1MEM2OUU0
MDBDMEFBMjQgLyogUmVmdGVzdEZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBSZWZ0ZXN0RnVuY3Rpb25zLmNwcDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJT
aGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQzc4ODIwMjUwQzY5RTQwMEMwQUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlZnRlc3RGdW5jdGlvbnMuaDsgcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvUmVmdGVzdEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0M3ODgyRjI1MEM3MTk5MDBDMEFBMjQgLyogSlNCYXNpY3MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNCYXNpY3MuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNC
YXNpY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNzg4MzAyNTBDNzE5OTAw
QzBBQTI0IC8qIEpTQmFzaWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTQmFzaWNzLmNwcDsg
cGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvQmluZGluZ3MvSlNCYXNpY3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjBEMTMyRTIwMzZEMzQ2MDA4RkM4RkIgLyogV2ViS2l0
VGVzdFJ1bm5lckFwcC1pT1MuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRp
dGxlbWVudHM7IHBhdGggPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC1pT1MuZW50aXRsZW1lbnRzIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIzNkEyNzAyMDk0NTNBMDAwM0UwNjUxIC8q
IFdoYXRUb0R1bXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2hhdFRvRHVt
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg1MTAyNzFCOUFERTQ4MDA3NDRB
RUIgLyogbGliV2ViS2l0VGVzdFJ1bm5lci5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJXZWJLaXRUZXN0UnVubmVyLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CkBAIC01MzYsNiArNTQzLDggQEAKIAkJCQkwRjczQjU0NzFCQTc4MkZFMDA0QjNFRjQgLyog
VUlTY3JpcHRDb250ZXh0ICovLAogCQkJCTMxNDhBMDUzMUU2Rjg1QjYwMEQzQjMxNiAvKiBJT1NM
YXlvdXRUZXN0Q29tbXVuaWNhdGlvbi5jcHAgKi8sCiAJCQkJMzE0OEEwNTQxRTZGODVCNjAwRDNC
MzE2IC8qIElPU0xheW91dFRlc3RDb21tdW5pY2F0aW9uLmggKi8sCisJCQkJOTNDNzg4MUYyNTBD
NjlFNDAwQzBBQTI0IC8qIFJlZnRlc3RGdW5jdGlvbnMuY3BwICovLAorCQkJCTkzQzc4ODIwMjUw
QzY5RTQwMEMwQUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9
IFRlc3RSdW5uZXJTaGFyZWQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTQzLDYg
KzU1Miw4IEBACiAJCTBGMThFNzFCMUQ2QkM0RTYwMDI3RTU0NyAvKiBCaW5kaW5ncyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNDNzg4MzAyNTBDNzE5
OTAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCAqLywKKwkJCQk5M0M3ODgyRjI1MEM3MTk5MDBDMEFB
MjQgLyogSlNCYXNpY3MuaCAqLywKIAkJCQkwRjE4RTcxNDFENkJDNDU2MDAyN0U1NDcgLyogSlNX
cmFwcGFibGUuaCAqLywKIAkJCQkwRjE4RTcxNTFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVy
LmNwcCAqLywKIAkJCQkwRjE4RTcxNjFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmggKi8s
CkBAIC0xMTg0LDYgKzExOTUsNyBAQAogCQkJCUExODUxMDNGMUI5QUUxMjkwMDc0NEFFQiAvKiBH
ZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDRBNTMxODIx
Qjg5OUU1MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTMxREE4QTNEMUU3MjA1Q0MwMEUxREYyRiAvKiBJT1NMYXlvdXRUZXN0Q29tbXVuaWNh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0M3ODgzMjI1MEM3MUI3MDBDMEFBMjQgLyog
SlNCYXNpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3M0I1NTExQkE3ODk2ODAwNEIzRUY0
IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNzE4
MUQ2QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRD
MzU3OEMyMEU4NDQ0NjAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIubW0gaW4gU291
cmNlcyAqLywKQEAgLTEyNDEsMTEgKzEyNTMsMTMgQEAKIAkJCQkyOUE4RkNDQjE0NUVGMDJFMDA5
MDQ1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyOUE4RkNERDE0NUYwMzM3MDA5MDQ1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MjEwRUUxMTQ0Q0RCMjYwMDgzNUJCNSAvKiBK
U0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNDNzg4MzEy
NTBDNzE5RjAwQzBBQTI0IC8qIEpTQmFzaWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOEZE
OEQyMTIwRTU0NUIwMEYzRTcxQSAvKiBKU0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMxNEU0RUExMjBFMDNEODAwODI2QzBDIC8qIEpTR0NDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTUyRjFGMTFGM0M2NTIwMDMzOThCNCAvKiBKU1Rl
c3RSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTY0MUUyRDAxNDMzNUU5NTAwODMwN0U1
IC8qIEpTVGV4dElucHV0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjZFODkw
MzFENkJDNUEyMDA4RUQwRkEgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
Qzc4ODIzMjUwQzZDMkUwMEMwQUEyNCAvKiBSZWZ0ZXN0RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJFNjNFREE2MTg5MUJEQzAwMDJBN0FGQyAvKiBUZXN0UnVubmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMwQ0U3MjBCMTI0N0M5MzMwMEJDMEVDNCAvKiBUZXN0UnVubmVyTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTY2NEE0OUExNDMyNjM4NDAwODg4MUJFIC8qIFRleHRJ
bnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDAwMGQ0Y2NhMzM2ODFi
ZTQxOTNlMjFmOGZhODY1Nzg0NTY5ZjU3Mi4uNTdmM2Y4NjQ2MmI4NTYxMTkwZWVhMGY5ZThkMjdm
MmY4Njc3MWY0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA5LTEyICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTZW5kIFRlc3RSZW5kZXJlZCBldmVudCBh
ZnRlciBydW5uaW5nIGEgdGVzdCBidXQgYmVmb3JlIGR1bXBpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgVW5z
a2lwIHR3byB0ZXN0cyB0aGF0IG5vIGxvbmdlciB0aW1lIG91dCBzaW5jZSB3ZSBhcmUgc2VuZGlu
ZyB0aGlzIGV2ZW50LgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgIEFkZCBhIGZhaWx1cmUgZXhwZWN0YXRpb24gZm9yIGEgdGVzdCB0aGF0IGhhcyBh
IGNvdXBsZSBub24tZ3JlZW4gcGl4ZWxzLgorCiAyMDIwLTA5LTEyICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY2ODE3KTogQVNTRVJUSU9O
IEZBSUxFRDogaW5qZWN0ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpIG9uIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3N2Zy10YXJn
ZXQtcmVmdGVzdC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDI2ZjZkMWUxZjc2ZmU0NTliMmE3Y2VkZTdiNDU0NjMxOGVhY2RmMTIuLjAz
YmY5MGFhYTc5NGY0MTc0ZmNiYmJiM2NjM2VjZjE2YzY0OTM3YTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC01Nyw5ICs1Nyw2IEBAIHdlYmtpdC5vcmcv
Yi8xOTY1NDIgcHJpbnRpbmcvcHJpbnRpbmctZXZlbnRzLmh0bWwgWyBDcmFzaCBdCiAjIFJlZnRl
c3Qtd2FpdCB0aW1lb3V0cwogd2Via2l0Lm9yZy9iLzE4NjA0NSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvdGV4dC1vdmVyZmxvdy0wMTcuaHRtbCBbIFRpbWVvdXQg
XQogd2Via2l0Lm9yZy9iLzE4NjA0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3ZoX25vdF9yZWZyZXNoaW5nX29uX2Nocm9tZS5odG1sIFsgVGltZW91dCBd
Ci13ZWJraXQub3JnL2IvMTg2MDQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLW9wdGlvbi1lbGVtZW50L2R5bmFtaWMtY29udGVudC1jaGFu
Z2UtcmVuZGVyaW5nLmh0bWwgWyBUaW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtc2VsZWN0
LWVsZW1lbnQvcmVzZXQtYWxnb3JpdGhtLXJlbmRlcmluZy5odG1sIFsgVGltZW91dCBdCi0KIAog
IyBSZXNvdXJjZUxvYWRpbmcKIHdlYmtpdC5vcmcvYi8yMDEyNzAgWyBSZWxlYXNlIF0gaHR0cC90
ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFnZS5odG1sIFsg
VGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDk0OGZkYWRhYWUyOGZjOWU3OTc1NWM3ZGQ4YTgxZTczMWUyZGE3MzUuLjA1ZGM0MjhkODk0MzVj
NDIyZDE2MGU4YzY0NmMwYTM4ZTY3ODkyOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0yMTk3LDExICsyMTk3LDkgQEAgd2Via2l0Lm9yZy9iLzIxNjI5
OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9ibG9iLXZhbGlkLWFm
dGVyLWQKIHdlYmtpdC5vcmcvYi8xODYwNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXVpL3RleHQtb3ZlcmZsb3ctMDE3Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xODYwNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy92
aF9ub3RfcmVmcmVzaGluZ19vbl9jaHJvbWUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE4
NjA0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxh
Y2VkLWVsZW1lbnRzL2VtYmVkZGVkLWNvbnRlbnQvY3Jvc3MtZG9tYWluLWlmcmFtZS5zdWIuaHRt
bCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE4NjA0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1vcHRpb24tZWxlbWVudC9keW5hbWljLWNv
bnRlbnQtY2hhbmdlLXJlbmRlcmluZy5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTg2MDQ1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhl
LXNlbGVjdC1lbGVtZW50L3Jlc2V0LWFsZ29yaXRobS1yZW5kZXJpbmcuaHRtbCBbIFNraXAgXQog
CiAjPHJkYXI6Ly82MzAyNjI4Mz4gWyBtYWNPUyBpT1MgXSBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvcGxheWJhY2stc3VwcG9ydC9wbGF5YmFjay1zdXBwb3J0LWF1dG9wbGF5Lmh0bWwgaXMg
YSBmbGFreSBmYWlsdXJlL3RpbWVvdXQKIFsgQmlnU3VyKyBdIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9wbGF5YmFjay1zdXBwb3J0L3BsYXliYWNrLXN1cHBvcnQtYXV0b3BsYXkuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKICMgcmRhcjovLzY4NzM2NzM1IChSRUdSRVNTSU9OOiBbIEJpZ1N1
ciA8IDIwQTIzNzQgXSBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtbG9vcC1jb3VudC5odG1sIGlz
IGEgY29uc3RhbnQgaW1hZ2UgZmFpbHVyZSkKLVsgQmlnU3VyKyBdIGZhc3QvaW1hZ2VzL2FuaW1h
dGVkLWdpZi1sb29wLWNvdW50Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCitbIEJpZ1N1cisgXSBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtbG9v
cC1jb3VudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVlMmI4ODY3YTdlY2IxZDEzZDFjMDljNDgwNzI1NDA2
YzkzZDIxYjguLjY2MTRiNzVhY2I5ZTM4MzA0NjI2NWJhOTRhOWY3YjE3OTllNGM5NmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTM1LDIxICs0NTM1
LDIxIEBAIHdlYmtpdC5vcmcvYi8yMTUxNzAgd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmlt
YXRpb24td2l0aC1lYXNpbmcuaHRtbCBbIFNraXAKIHdlYmtpdC5vcmcvYi8yMTUxNzIgaW1wb3J0
ZWQvYmxpbmsvZmFzdC9jc3MvZml4ZWQtb3ZlcmxhcHMtYWJzb2x1dGUtaW4tY2xpcC5odG1sIFsg
U2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLTMu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0
L2Vtb2ppLWdlbmRlci0yLTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
LzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLTUuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLTYuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vt
b2ppLWdlbmRlci0yLTcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIx
NTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLTguaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzIxNTYzNiAgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLTkuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQotCi13ZWJraXQub3JnL2IvMjE1NjM2ICBmYXN0L3RleHQvZW1v
amktZ2VuZGVyLWZlMGYtMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MjE1NjM2ICBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYtNC5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvMjE1NjM2ICBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYt
NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE1NjM2ICBmYXN0L3Rl
eHQvZW1vamktZ2VuZGVyLWZlMGYtNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjE1NjM2ICBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYtNy5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE1NjM2ICBmYXN0L3RleHQvZW1vamktZ2VuZGVy
LWZlMGYtOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE1NjM2ICBm
YXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYtOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMjE1NjM2ICBmYXN0L3RleHQvZW1vamktZ2VuZGVyLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0y
LTQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3Rl
eHQvZW1vamktZ2VuZGVyLTItNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvMjE1NjM2IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi02Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLTcuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1v
amktZ2VuZGVyLTItOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjE1
NjM2IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi05Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
Kword2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYtMy5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjE1NjM2IGZhc3QvdGV4dC9lbW9q
aS1nZW5kZXItZmUwZi00Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8y
MTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTUuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYtNi5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjE1NjM2IGZhc3QvdGV4dC9l
bW9qaS1nZW5kZXItZmUwZi03Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi8yMTU2MzYgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTguaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzIxNTYzNiBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYt
OS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjE1NjM2IGZhc3QvdGV4
dC9lbW9qaS1nZW5kZXIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2Iv
MjE1ODI3IGFuaW1hdGlvbnMvc3RlcHMtdHJhbnNmb3JtLXJlbmRlcmluZy11cGRhdGVzLmh0bWwg
WyBGYWlsdXJlIF0KIApAQCAtNDU2NiwzICs0NTY2LDYgQEAgd2Via2l0Lm9yZy9iLzIxNjAzNiB3
ZWJhbmltYXRpb25zL2FuaW1hdGlvbi1wYWdlLWNhY2hlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
CiAjIEVtb2ppIHN5bnRoZXNpcyBpcyBvbmx5IGN1cnJlbnRseSBkaXNhYmxlZCBvbiBDb2NvYSBw
bGF0Zm9ybXMKIGZhc3QvdGV4dC9lbW9qaS1zeW50aGVzaXMuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQorCisjIFRoaXMgdGVzdCBpcyBiYXNpY2FsbHkgcGFzc2luZywgYnV0IG9mZiBieSBhIHBp
eGVsIG9yIHR3by4gTm90IHN1cmUgdGhpcyBpcyBpbXBvcnRhbnQgZW5vdWdoIHRvIHRyYWNrIHdp
dGggYSBidWcuCit3ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWNzcy1hbmltYXRpb24td2l0aC1l
YXNpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>