<?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>239400</bug_id>
          
          <creation_ts>2022-04-15 13:02:35 -0700</creation_ts>
          <short_desc>Allow C API clients to get the WKProcessTerminationReason in processDidCrash functions, and use in WebKitTestRunner</short_desc>
          <delta_ts>2022-04-18 14: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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1861884</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-15 13:02:35 -0700</bug_when>
    <thetext>Allow C API clients to get the WKProcessTerminationReason in processDidCrash functions, and use in WebKitTestRunner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861887</commentid>
    <comment_count>1</comment_count>
      <attachid>457718</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-15 13:07:31 -0700</bug_when>
    <thetext>Created attachment 457718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861901</commentid>
    <comment_count>2</comment_count>
      <attachid>457723</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-15 14:00:21 -0700</bug_when>
    <thetext>Created attachment 457723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861942</commentid>
    <comment_count>3</comment_count>
      <attachid>457723</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-15 15:38:20 -0700</bug_when>
    <thetext>Comment on attachment 457723
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKContext.h:137
&gt; +    WKContextChildProcessDidCrashWithDetailsCallback                    networkProcessDidCrashWithDetails;

How would a single one of these that gets passed a &quot;process-kind&quot; enum be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861943</commentid>
    <comment_count>4</comment_count>
      <attachid>457723</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-15 15:40:04 -0700</bug_when>
    <thetext>Comment on attachment 457723
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/C/WKContext.h:137
&gt;&gt; +    WKContextChildProcessDidCrashWithDetailsCallback                    networkProcessDidCrashWithDetails;
&gt; 
&gt; How would a single one of these that gets passed a &quot;process-kind&quot; enum be?

Or better yet, since this seems to be a pattern, a single one that gets passed a new WKObjectRef (I think that is the base name) &quot;crash info&quot; object that has some functions to grab the pid/reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861994</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-15 18:06:18 -0700</bug_when>
    <thetext>Both good suggestions, but is it really worth spending effort polishing the legacy C SPI?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862005</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-15 18:43:13 -0700</bug_when>
    <thetext>Alternatively we could replace this with Objective-C SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862176</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-17 15:15:59 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Both good suggestions, but is it really worth spending effort polishing the
&gt; legacy C SPI?

I was thinking of it not as polish but as just more ergonomical for going forward, since we don&apos;t really have a path off of it.

(In reply to Simon Fraser (smfr) from comment #6)
&gt; Alternatively we could replace this with Objective-C SPI

Isn&apos;t this used by the non-cocoa ports as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862317</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-18 14:21:35 -0700</bug_when>
    <thetext>Committed r292970 (249733@main): &lt;https://commits.webkit.org/249733@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457723.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862318</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-18 14:22:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/91917423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457718</attachid>
            <date>2022-04-15 13:07:31 -0700</date>
            <delta_ts>2022-04-15 14:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239400-20220415130730.patch</filename>
            <type>text/plain</type>
            <size>24678</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMGQwZTFmMTQ3MDhhMDAy
OGExOTNlOTNkMzA3YmZhOTVhZmI1ODQuLjEwOGU1MGFkMDEyZDQzNzgyNDFkYWVjZjBiNzljMDli
ZmZlZWZlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDQtMTUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgQyBBUEkgY2xp
ZW50cyB0byBnZXQgdGhlIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIGluIHByb2Nlc3NEaWRD
cmFzaCBmdW5jdGlvbnMsIGFuZCB1c2UgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFdLQ29udGV4dENs
aWVudFY0IHdpdGggImRpZCBjcmFzaCIgZnVuY3Rpb25zIHRoYXQgdGFrZSBhIFByb2Nlc3NJRCBh
bmQgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uCisgICAgICAgIFdlYkNvbnRleHRDbGllbnQg
d2lsbCBjYWxsIHRoZSBuZXcgZnVuY3Rpb25zIGlmIHJlZ2lzdGVyZWQsIG90aGVyd2lzZSB0aGUg
b2xkIG9uZXMuCisKKyAgICAgICAgSGF2ZSBXZWJQcm9jZXNzUG9vbDo6bmV0d29ya1Byb2Nlc3NE
aWRUZXJtaW5hdGUoKSBhbmQgV2ViUHJvY2Vzc1Bvb2w6OmdwdVByb2Nlc3NFeGl0ZWQoKSBjYWxs
CisgICAgICAgIHRoZSBjbGllbnQgZm9yIG1vcmUgdHlwZXMgb2YgcmVhc29uczsgRXhjZWVkZWRN
ZW1vcnlMaW1pdCBhbmQgRXhjZWVkZWRDUFVMaW1pdCBvbmx5IGFwcGx5CisgICAgICAgIHRvIHRo
ZSB3ZWIgcHJvY2Vzcywgc28gdGhlIGJlaGF2aW9yIGNoYW5nZSBoZXJlIGlzIHRvIGNhbGwgbV9j
bGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCisgICAgICAgIGZvciBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OlVucmVzcG9uc2l2ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpzZXJ2aWNlV29ya2VyUHJvY2Vz
c0RpZENyYXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dENsaWVudDo6Z3B1UHJvY2Vz
c0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNo
b3VsZFJlcG9ydEF1eGlsaWFyeVByb2Nlc3NDcmFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0V4aXRlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRl
cm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2gpOgorCiAyMDIyLTA0LTE0ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSB0aGUgUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIGVudW0gZm9yIGFsbCB0aGUgcHJvY2VzcyB0eXBlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCBkYzJlMGQxOTIzMTVlZTU3MmQxZDFmNjc4
YWJhNjFkNmMyNGQxMzkxLi4xNzRhNjQyYmY2ZGJlNjI0YTA5ODNmZTQ0MjQ1ZjNhODFjODQ2Mzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRIaXN0b3J5Q2xpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8
V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oPgogCiAjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiB0
eXBlZGVmIGludCBXS1Byb2Nlc3NJRDsKQEAgLTYwLDYgKzYxLDcgQEAgdHlwZWRlZiB2b2lkICgq
V0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIGNvbnMKIHR5cGVkZWYgV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayBX
S0NvbnRleHROZXR3b3JrUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2s7CiAKIHR5cGVkZWYgdm9pZCAo
KldLQ29udGV4dENoaWxkUHJvY2Vzc1dpdGhQSUREaWRDcmFzaENhbGxiYWNrKShXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tQcm9jZXNzSUQgcHJvY2Vzc0lELCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLQ29udGV4dENoaWxkUHJvY2Vzc0RpZENyYXNoV2l0aERldGFp
bHNDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUHJvY2Vzc0lEIHByb2Nlc3NJRCwg
V0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tDb250ZXh0Q2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwpAQCAtODcsNiArODksNyBAQCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGll
bnRWMSB7CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoKmNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlfdW5hdmFpbGFi
bGUpKHZvaWQpOwogfSBXS0NvbnRleHRDbGllbnRWMTsKIAorLy8gV0tDb250ZXh0Q2xpZW50VjEg
YW5kIFdLQ29udGV4dENsaWVudFYyIGFyZSBpZGVudGljYWwuCiB0eXBlZGVmIHN0cnVjdCBXS0Nv
bnRleHRDbGllbnRWMiB7CiAgICAgV0tDb250ZXh0Q2xpZW50QmFzZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOwogCkBAIC05Nyw3ICsxMDAsNiBA
QCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGllbnRWMiB7CiAKICAgICAvLyBWZXJzaW9uIDEu
CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKmNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlfdW5hdmFpbGFibGUpKHZv
aWQpOwotCiB9IFdLQ29udGV4dENsaWVudFYyOwogCiB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRD
bGllbnRWMyB7CkBAIC0xMTEsMTEgKzExMywzMyBAQCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRD
bGllbnRWMyB7CiAgICAgLy8gVmVyc2lvbiAxLgogICAgIHZvaWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpjb3B5V2ViQ3J5
cHRvTWFzdGVyS2V5X3VuYXZhaWxhYmxlKSh2b2lkKTsKIAotICAgIC8vIFZlcnNpb24yLgorICAg
IC8vIFZlcnNpb24gMy4KICAgICBXS0NvbnRleHRDaGlsZFByb2Nlc3NXaXRoUElERGlkQ3Jhc2hD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jh
c2g7CiAgICAgV0tDb250ZXh0Q2hpbGRQcm9jZXNzV2l0aFBJRERpZENyYXNoQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICBncHVQcm9jZXNzRGlkQ3Jhc2g7CiB9IFdLQ29udGV4dENsaWVu
dFYzOwogCit0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGllbnRWNCB7CisgICAgV0tDb250ZXh0
Q2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQ29udGV4dFBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlc0NoYW5nZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZDsKKyAgICBXS0NvbnRleHROZXR3b3JrUHJvY2Vzc0RpZENy
YXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2g7CisgICAgV0tDb250ZXh0UGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFibGVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICBwbHVnSW5JbmZvcm1hdGlvbkJlY2FtZUF2YWlsYWJsZTsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqY29weVdlYkNyeXB0b01hc3Rl
cktleV91bmF2YWlsYWJsZSkodm9pZCk7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tDb250
ZXh0Q2hpbGRQcm9jZXNzV2l0aFBJRERpZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoOworICAgIFdLQ29udGV4dENoaWxkUHJv
Y2Vzc1dpdGhQSUREaWRDcmFzaENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZ3B1UHJv
Y2Vzc0RpZENyYXNoOworICAgIAorICAgIC8vIFZlcnNpb24gNC4KKyAgICBXS0NvbnRleHRDaGls
ZFByb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIG5l
dHdvcmtQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlsczsKKyAgICBXS0NvbnRleHRDaGlsZFByb2Nl
c3NEaWRDcmFzaFdpdGhEZXRhaWxzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VX
b3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlsczsKKyAgICBXS0NvbnRleHRDaGlsZFByb2Nl
c3NEaWRDcmFzaFdpdGhEZXRhaWxzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIGdwdVByb2Nl
c3NEaWRDcmFzaFdpdGhEZXRhaWxzOworfSBXS0NvbnRleHRDbGllbnRWNDsKKworCiAvLyBGSVhN
RTogUmVtb3ZlIHRoZXNlIG9uY2Ugc3VwcG9ydCBmb3IgTWF2ZXJpY2tzIGhhcyBiZWVuIGRyb3Bw
ZWQuCiBlbnVtIHsKICAgICBrV0tQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzID0g
MCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXgg
YTI1MjhjMmMwZTBkN2UxMzA5ODYxNmIzMTUwODg2NmVmOTg0NzYxMy4uYjYxYzBjM2I1NTdiN2Nl
N2YzNzMwZjIzZGM2ZjZlNWE3MjRkNWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTM4LDI4ICszOCwzNyBAQCB2b2lkIFdlYkNvbnRleHRD
bGllbnQ6OnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wq
IHByb2NlcwogICAgIG1fY2xpZW50LnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQo
dG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi12b2lk
IFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wq
IHByb2Nlc3NQb29sKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCwgUHJvY2Vzc0lEIHByb2Nlc3NJRCwgUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKLSAgICBpZiAoIW1fY2xpZW50Lm5ldHdv
cmtQcm9jZXNzRGlkQ3Jhc2gpCisgICAgaWYgKG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2hXaXRoRGV0YWlscykgeworICAgICAgICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNo
V2l0aERldGFpbHModG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQsIHRvQVBJKHJlYXNvbiks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAg
ICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBpZiAobV9jbGllbnQubmV0d29ya1Byb2Nlc3NE
aWRDcmFzaCkKKyAgICAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShw
cm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgV2ViQ29u
dGV4dENsaWVudDo6c2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCog
cHJvY2Vzc1Bvb2wsIFByb2Nlc3NJRCBwcm9jZXNzSUQpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6
OnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29s
LCBQcm9jZXNzSUQgcHJvY2Vzc0lELCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQog
ewotICAgIGlmICghbV9jbGllbnQuc2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaCkKKyAgICBp
ZiAobV9jbGllbnQuc2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKSB7Cisg
ICAgICAgIG1fY2xpZW50LnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlscyh0
b0FQSShwcm9jZXNzUG9vbCksIHByb2Nlc3NJRCwgdG9BUEkocmVhc29uKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1fY2xpZW50LnNl
cnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQs
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgaWYgKG1fY2xpZW50LnNlcnZpY2VXb3Jr
ZXJQcm9jZXNzRGlkQ3Jhc2gpCisgICAgICAgIG1fY2xpZW50LnNlcnZpY2VXb3JrZXJQcm9jZXNz
RGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dENsaWVudDo6Z3B1UHJvY2Vzc0RpZENyYXNo
KFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCwgUHJvY2Vzc0lEIHByb2Nlc3NJRCkKK3ZvaWQg
V2ViQ29udGV4dENsaWVudDo6Z3B1UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9j
ZXNzUG9vbCwgUHJvY2Vzc0lEIHByb2Nlc3NJRCwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKIHsKLSAgICBpZiAoIW1fY2xpZW50LmdwdVByb2Nlc3NEaWRDcmFzaCkKKyAgICBpZiAo
bV9jbGllbnQuZ3B1UHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHMpIHsKKyAgICAgICAgbV9jbGll
bnQuZ3B1UHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHModG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9j
ZXNzSUQsIHRvQVBJKHJlYXNvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAg
IHJldHVybjsKKyAgICB9CiAKLSAgICBtX2NsaWVudC5ncHVQcm9jZXNzRGlkQ3Jhc2godG9BUEko
cHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAg
aWYgKG1fY2xpZW50LmdwdVByb2Nlc3NEaWRDcmFzaCkKKyAgICAgICAgbV9jbGllbnQuZ3B1UHJv
Y2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgcHJvY2Vzc0lELCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA0OGEyMDllMjBhZTM1Yzg1ZTM5ODQ4
ZTVhMTIwNDg3YTFlMjQ3YzBmLi4yN2Q0ZWVhMDRjYmNhMmZlZTI1OGMyNzk5N2FhODhjZmNlNTkw
ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC0y
Myw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2lmbmRlZiBXZWJDb250ZXh0Q2xpZW50X2gKLSNkZWZpbmUgV2ViQ29udGV4dENsaWVudF9oCisj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSURhdGEu
aCIKQEAgLTMzLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiB0ZW1wbGF0ZTw+IHN0cnVj
dCBDbGllbnRUcmFpdHM8V0tDb250ZXh0Q2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS0NvbnRleHRDbGllbnRWMCwgV0tDb250ZXh0Q2xpZW50VjEsIFdLQ29udGV4dENsaWVu
dFYyLCBXS0NvbnRleHRDbGllbnRWMz4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLQ29udGV4dENsaWVudFYwLCBXS0NvbnRleHRDbGllbnRWMSwgV0tDb250ZXh0Q2xpZW50VjIs
IFdLQ29udGV4dENsaWVudFYzLCBXS0NvbnRleHRDbGllbnRWND4gVmVyc2lvbnM7CiB9OwogfQog
CkBAIC00MSwxNSArNDAsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQ29u
dGV4dENsaWVudEJhc2U+IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQcm9jZXNz
UG9vbDsKK2VudW0gY2xhc3MgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOwogCiBjbGFzcyBXZWJD
b250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsK
IHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2Vi
UHJvY2Vzc1Bvb2wqKTsKLSAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vz
c1Bvb2wqKTsKLSAgICB2b2lkIHNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vz
c1Bvb2wqLCBQcm9jZXNzSUQpOwotICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nl
c3NQb29sKiwgUHJvY2Vzc0lEKTsKKyAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2Vi
UHJvY2Vzc1Bvb2wqLCBQcm9jZXNzSUQsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CisgICAg
dm9pZCBzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiwgUHJvY2Vz
c0lELCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24pOworICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKiwgUHJvY2Vzc0lELCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24p
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJDb250ZXh0Q2xp
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA5
MTZmMzBjMDFjNDMzODgyNWU2NzQxOWRhNjlkNWYwNTA4OWE1NDEzLi43YTBkODA1MmRlZTI2MmM2
N2FmMmY4ZDQ2ZjIxMWIyMmNkZjFiNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC00MjgsMTAgKzQyOCwzMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpzY3JlZW5Qcm9wZXJ0aWVzU3RhdGVDaGFuZ2VkKCkKICNlbmRpZgogfQogCitzdGF0aWMgYm9v
bCBzaG91bGRSZXBvcnRBdXhpbGlhcnlQcm9jZXNzQ3Jhc2goUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uIHJlYXNvbikKK3sKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9yeUxpbWl0OgorICAgIGNhc2UgUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgorICAgIGNhc2UgUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uOjpVbnJlc3BvbnNpdmU6CisgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25S
ZWFzb246OkNyYXNoOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFByb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgY2FzZSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OklkbGVFeGl0OgorICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
OjpFeGNlZWRlZFByb2Nlc3NDb3VudExpbWl0OgorICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uOjpOYXZpZ2F0aW9uU3dhcDoKKyAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bjo6UmVxdWVzdGVkQnlOZXR3b3JrUHJvY2VzczoKKyAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbjo6UmVxdWVzdGVkQnlHUFVQcm9jZXNzOgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpuZXR3
b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2Vz
c1Byb3h5LCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewotICAgIGlmIChyZWFz
b24gPT0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaCkKLSAgICAgICAgbV9jbGllbnQu
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0aGlzKTsKKyAgICBpZiAoc2hvdWxkUmVwb3J0QXV4aWxp
YXJ5UHJvY2Vzc0NyYXNoKHJlYXNvbikpCisgICAgICAgIG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2godGhpcywgbmV0d29ya1Byb2Nlc3NQcm94eS5wcm9jZXNzSWRlbnRpZmllcigpLCBy
ZWFzb24pOwogCiAgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCiAgICAgICAgIG1fYXV0b21h
dGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOwpAQCAtNDM5LDEwICs0NTksMTAgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6bmV0d29ya1Byb2Nlc3NEaWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94
eSYgbmV0d29ya1Byb2MKICAgICB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VycygpOwogfQogCi12b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0NyYXNoZWQoV2ViUHJvY2Vzc1By
b3h5JiBwcm94eSkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlcnZpY2VXb3JrZXJQcm9jZXNzQ3Jh
c2hlZChXZWJQcm9jZXNzUHJveHkmIHByb3h5LCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVh
c29uKQogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBtX2NsaWVudC5zZXJ2aWNl
V29ya2VyUHJvY2Vzc0RpZENyYXNoKHRoaXMsIHByb3h5LnByb2Nlc3NJZGVudGlmaWVyKCkpOwor
ICAgIG1fY2xpZW50LnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2godGhpcywgcHJveHkucHJv
Y2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uKTsKICNlbmRpZgogfQogCkBAIC00NzEsOCArNDkxLDgg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0V4aXRlZChQcm9jZXNzSUQgaWRlbnRp
ZmllciwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmUKICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xP
RyhQcm9jZXNzLCAiZ3B1UHJvY2Vzc0RpZEV4aXQ6IFBJRD0lZCwgcmVhc29uPXJlYXNvbj0le3B1
YmxpY31zIiwgaWRlbnRpZmllciwgcHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uVG9TdHJpbmcocmVh
c29uKSk7CiAgICAgbV9ncHVQcm9jZXNzID0gbnVsbHB0cjsKIAotICAgIGlmIChyZWFzb24gPT0g
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaCB8fCByZWFzb24gPT0gUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uOjpVbnJlc3BvbnNpdmUpCi0gICAgICAgIG1fY2xpZW50LmdwdVByb2Nlc3NE
aWRDcmFzaCh0aGlzLCBpZGVudGlmaWVyKTsKKyAgICBpZiAoc2hvdWxkUmVwb3J0QXV4aWxpYXJ5
UHJvY2Vzc0NyYXNoKHJlYXNvbikpCisgICAgICAgIG1fY2xpZW50LmdwdVByb2Nlc3NEaWRDcmFz
aCh0aGlzLCBpZGVudGlmaWVyLCByZWFzb24pOwogCiAgICAgVmVjdG9yPFJlZjxXZWJQcm9jZXNz
UHJveHk+PiBwcm9jZXNzZXMgPSBtX3Byb2Nlc3NlczsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3Mg
OiBwcm9jZXNzZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRl
eCA3Njk3ODFmM2MzNDRmZjk1NjcwMjYwYWM0ODU1Mjg1Y2U5NDdkYWNkLi44YTA1NzNiNWNiNjc3
NTQ4MDQ3ZDFhMWU1OWNiNzljYzQxNzlhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTM3OSw3ICszNzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNT
ZXJ2aWNlV29ya2VyRm9yZWdyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0OwogICAgIGJv
b2wgaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmcoKSBjb25zdDsK
ICNlbmRpZgotICAgIHZvaWQgc2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlByb2Nlc3NQ
cm94eSYpOworICAgIHZvaWQgc2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlByb2Nlc3NQ
cm94eSYsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKICAgICB2b2lkIHVwZGF0ZVJlbW90
ZVdvcmtlclVzZXJBZ2VudChjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCk7CiAgICAgVXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllciB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyRm9y
UmVtb3RlV29ya2VycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggZGRiYjllNjhmMDY4MzlkOTA1N2YyY2I3NmVmYjkzYzkxOTFkNWI1Yy4uMWFi
ZjY1NDljOGViYWI1Njc5YmFhYWI3NzU3NTRmODE5OTE4NTk5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC05MTYsMTEgKzkxNiwxMiBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhcwogICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiAKICAgICBpZiAo
aXNTdGFuZGFsb25lU2VydmljZVdvcmtlclByb2Nlc3MoKSkKLSAgICAgICAgcHJvY2Vzc1Bvb2wo
KS5zZXJ2aWNlV29ya2VyUHJvY2Vzc0NyYXNoZWQoKnRoaXMpOworICAgICAgICBwcm9jZXNzUG9v
bCgpLnNlcnZpY2VXb3JrZXJQcm9jZXNzQ3Jhc2hlZCgqdGhpcywgcmVhc29uKTsKIAogICAgIHNo
dXREb3duKCk7CiAKICNpZiBFTkFCTEUoUFVCTElDX1NVRkZJWF9MSVNUKQorICAgIC8vIEZJWE1F
OiBQZXJoYXBzIHRoaXMgc2hvdWxkIGNvbnNpZGVyIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbnMg
RXhjZWVkZWRNZW1vcnlMaW1pdCwgRXhjZWVkZWRDUFVMaW1pdCwgVW5yZXNwb25zaXZlIGFzIHdl
bGwuCiAgICAgaWYgKHBhZ2VzLnNpemUoKSA9PSAxICYmIHJlYXNvbiA9PSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OkNyYXNoKSB7CiAgICAgICAgIGF1dG8mIHBhZ2UgPSAqcGFnZXNbMF07CiAg
ICAgICAgIFN0cmluZyBkb21haW4gPSB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFVSTCh7
IH0sIHBhZ2UuY3VycmVudFVSTCgpKS5ob3N0KCkudG9TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTRmMTY3YjA1ODY0OTZiZjRl
MDg5M2I5MjMwZjg1MzBlZmIyOThiYS4uYWI4MDc5MzJjZjllOTk2NTAyYzg1YWIwYzA2ZmQzNTk0
MTY0NDc4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA0LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IEMgQVBJIGNsaWVudHMgdG8gZ2V0IHRoZSBX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiBpbiBwcm9jZXNzRGlkQ3Jhc2ggZnVuY3Rpb25zLCBh
bmQgdXNlIGluIFdlYktpdFRlc3RSdW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTQwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFN0YW5kYXJkaXplIHRoZSAiZGlkQ3Jhc2giIGNhbGxiYWNrcyB0
byB1c2UgdGhlIFdLQ29udGV4dENsaWVudFY0ICJ3aXRoIGRldGFpbHMiIHZlcnNpb25zLAorICAg
ICAgICBhbmQgdXNlIHRoZW0gdG8gcHJpbnQgb3V0IGNyYXNoIHJlYXNvbnMuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRo
RGV0YWlscyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpncHVQcm9jZXNzRGlkQ3Jh
c2hXaXRoRGV0YWlscyk6CisgICAgICAgIChXVFI6OnRlcm1pbmF0aW9uUmVhc29uVG9TdHJpbmcp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENy
YXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdwdVByb2Nlc3NEaWRDcmFzaCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVybWluYXRlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisKIDIwMjItMDQt
MTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5k
byBvcHRpb24gYWZ0ZXIgaW52b2tpbmcgIk1hcmt1cCBJbWFnZSIgc2F5cyAiVW5kbyBQYXN0ZSIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYTE1ODIwMzA3
YWE4ZmIzZjE4NGY5OGQzZTU2ODQ2YmY3N2U1YTc4ZS4uM2VkMjY3MDc1Y2NlMzE0ZGU5N2I3NTEy
MjI2Y2M5MzBjMjM2NjE2NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTY4NSwxNCArNjg1LDE3IEBAIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWY+IFRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvCiAgICAg
fTsKICAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChtX2NvbnRleHQuZ2V0KCks
ICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKIAotICAgIFdLQ29udGV4dENsaWVudFYzIGNv
bnRleHRDbGllbnQgPSB7Ci0gICAgICAgIHsgMywgdGhpcyB9LAorICAgIFdLQ29udGV4dENsaWVu
dFY0IGNvbnRleHRDbGllbnQgPSB7CisgICAgICAgIHsgNCwgdGhpcyB9LAogICAgICAgICAwLCAv
LyBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkCi0gICAgICAgIG5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2gsCisgICAgICAgIDAsIC8vIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gsCiAgICAg
ICAgIDAsIC8vIHBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxhYmxlCiAgICAgICAgIDAsIC8v
IGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXkKLSAgICAgICAgc2VydmljZVdvcmtlclByb2Nlc3NEaWRD
cmFzaCwKLSAgICAgICAgZ3B1UHJvY2Vzc0RpZENyYXNoCisgICAgICAgIDAsIC8vIHNlcnZpY2VX
b3JrZXJQcm9jZXNzRGlkQ3Jhc2gsCisgICAgICAgIDAsIC8vIGdwdVByb2Nlc3NEaWRDcmFzaAor
ICAgICAgICBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHMsCisgICAgICAgIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlscywKKyAgICAgICAgZ3B1UHJvY2Vzc0Rp
ZENyYXNoV2l0aERldGFpbHMsCiAgICAgfTsKICAgICBXS0NvbnRleHRTZXRDbGllbnQobV9jb250
ZXh0LmdldCgpLCAmY29udGV4dENsaWVudC5iYXNlKTsKIApAQCAtMTY3MCwxOSArMTY3MywxOSBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNQYWdlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZQogICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVy
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZlU3luY2hyb25vdXNN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keSwgbGlzdGVu
ZXIpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdL
Q29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBUZXN0Q29u
dHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1Byb2Nlc3NJRCBwcm9jZXNzSUQsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
IHJlYXNvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKLSAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nl
c3NEaWRDcmFzaCgpOworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHByb2Nlc3NJRCwg
cmVhc29uKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2VydmljZVdvcmtlclByb2Nlc3NE
aWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tQcm9jZXNzSUQgcHJvY2Vzc0lELCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBUZXN0Q29udHJvbGxlcjo6c2VydmljZVdvcmtlclBy
b2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1Byb2Nlc3NJ
RCBwcm9jZXNzSUQsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbiwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKIHsKLSAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+c2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaChw
cm9jZXNzSUQpOworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5zZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoKHByb2Nlc3NJ
RCwgcmVhc29uKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6Z3B1UHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1Byb2Nlc3NJRCBwcm9jZXNzSUQsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCit2b2lkIFRlc3RDb250cm9sbGVyOjpncHVQcm9jZXNzRGlkQ3Jhc2hXaXRo
RGV0YWlscyhXS0NvbnRleHRSZWYgY29udGV4dCwgV0tQcm9jZXNzSUQgcHJvY2Vzc0lELCBXS1By
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7
Ci0gICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmdwdVByb2Nlc3NEaWRDcmFzaChwcm9jZXNzSUQpOworICAgIHN0YXRpY19jYXN0
PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5ncHVQcm9j
ZXNzRGlkQ3Jhc2gocHJvY2Vzc0lELCByZWFzb24pOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5
UmVmIGRpY3Rpb25hcnksIGJvb2wgc3luY2hyb25vdXMpCkBAIC0yMDAxLDI0ICsyMDA0LDQ2IEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdENvbnRyb2xsZXI6OmdldEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YSgpCiAKIC8vIFdLQ29udGV4dENsaWVudAogCi12b2lkIFRl
c3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKK3N0YXRpYyBjb25zdCBjaGFy
KiB0ZXJtaW5hdGlvblJlYXNvblRvU3RyaW5nKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKK3sKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2Uga1dLUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uRXhjZWVkZWRNZW1vcnlMaW1pdDoKKyAgICAgICAgcmV0dXJuICJleGNlZWRl
ZCBtZW1vcnkgbGltaXQiOworICAgIGNhc2Uga1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uRXhj
ZWVkZWRDUFVMaW1pdDoKKyAgICAgICAgcmV0dXJuICJleGNlZWRlZCBjcHUgbGltaXQiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3Rl
ZEJ5Q2xpZW50OgorICAgICAgICByZXR1cm4gInJlcXVlc3RlZCBieSBjbGllbnQiOworICAgIGNh
c2Uga1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uQ3Jhc2g6CisgICAgICAgIHJldHVybiAiY3Jh
c2giOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gInVua25vd24gcmVhc29uIjsKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS1Byb2Nlc3NJRCBwcm9jZXNzSUQs
IFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKLSAgICBwaWRfdCBwaWQgPSBX
S1dlYnNpdGVEYXRhU3RvcmVHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIod2Vic2l0ZURhdGFT
dG9yZSgpKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4i
LCBuZXR3b3JrUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7Ci0gICAgZXhp
dCgxKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIHRlcm1pbmF0ZWQgKHBpZCAlbGQpIGZvciBy
ZWFzb246ICVzXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJv
Y2Vzc0lEKSwgdGVybWluYXRpb25SZWFzb25Ub1N0cmluZyhyZWFzb24pKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUo
KSwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJvY2Vzc0lEKSk7CisgICAgaWYgKG1fc2hvdWxkRXhpdFdo
ZW5BdXhpbGlhcnlQcm9jZXNzQ3Jhc2hlcykKKyAgICAgICAgZXhpdCgxKTsKIH0KIAotdm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaChXS1Byb2Nlc3NJRCBw
cm9jZXNzSUQpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENy
YXNoKFdLUHJvY2Vzc0lEIHByb2Nlc3NJRCwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVh
c29uKQogeworICAgIGZwcmludGYoc3RkZXJyLCAiJXMgdGVybWluYXRlZCAocGlkICVsZCkgZm9y
IHJlYXNvbjogJXNcbiIsICJTZXJ2aWNlV29ya2VyUHJvY2VzcyIsIHN0YXRpY19jYXN0PGxvbmc+
KHByb2Nlc3NJRCksIHRlcm1pbmF0aW9uUmVhc29uVG9TdHJpbmcocmVhc29uKSk7CiAgICAgZnBy
aW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtIFNlcnZpY2VXb3JrZXJQcm9jZXNzIChwaWQgJWxkKVxu
Iiwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJvY2Vzc0lEKSk7Ci0gICAgaWYgKG1fc2hvdWxkRXhpdFdo
ZW5XZWJQcm9jZXNzQ3Jhc2hlcykKKyAgICBpZiAobV9zaG91bGRFeGl0V2hlbkF1eGlsaWFyeVBy
b2Nlc3NDcmFzaGVzKQogICAgICAgICBleGl0KDEpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVy
OjpncHVQcm9jZXNzRGlkQ3Jhc2goV0tQcm9jZXNzSUQgcHJvY2Vzc0lEKQordm9pZCBUZXN0Q29u
dHJvbGxlcjo6Z3B1UHJvY2Vzc0RpZENyYXNoKFdLUHJvY2Vzc0lEIHByb2Nlc3NJRCwgV0tQcm9j
ZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiI0NS
QVNIRUQgLSBHUFVQcm9jZXNzIChwaWQgJWxkKVxuIiwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJvY2Vz
c0lEKSk7Ci0gICAgaWYgKG1fc2hvdWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlcykKKyAgICBm
cHJpbnRmKHN0ZGVyciwgIiVzIHRlcm1pbmF0ZWQgKHBpZCAlbGQpIGZvciByZWFzb246ICVzXG4i
LCBncHVQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwcm9jZXNzSUQpLCB0ZXJtaW5h
dGlvblJlYXNvblRvU3RyaW5nKHJlYXNvbikpOworICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNI
RUQgLSAlcyAocGlkICVsZClcbiIsIGdwdVByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+
KHByb2Nlc3NJRCkpOworICAgIGlmIChtX3Nob3VsZEV4aXRXaGVuQXV4aWxpYXJ5UHJvY2Vzc0Ny
YXNoZXMpCiAgICAgICAgIGV4aXQoMSk7CiB9CiAKQEAgLTIzNjIsMjQgKzIzODcsNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIHJlYXNvbikKICAgICAvLyBlbnN1cmUgd2Ugb25seSBwcmludCB0aGUgY3Jhc2hl
ZCBtZXNzYWdlIG9uY2UuCiAgICAgaWYgKCFtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNz
YWdlKSB7CiAgICAgICAgIHBpZF90IHBpZCA9IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKG1f
bWFpbldlYlZpZXctPnBhZ2UoKSk7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgdGVybWlu
YXRlZCAocGlkICVsZCkgIiwgd2ViUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlk
KSk7Ci0gICAgICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgICAgIGNhc2Uga1dLUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uRXhjZWVkZWRNZW1vcnlMaW1pdDoKLSAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiYmVjYXVzZSB0aGUgbWVtb3J5IGxpbWl0IHdhcyBleGNlZWRlZFxuIik7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25F
eGNlZWRlZENQVUxpbWl0OgotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiZWNhdXNlIHRo
ZSBjcHUgbGltaXQgd2FzIGV4Y2VlZGVkXG4iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50OgotICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiZWNhdXNlIHRoZSBjbGllbnQgcmVxdWVzdGVkXG4i
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIGtXS1Byb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbkNyYXNoOgotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiZWNhdXNlIHRoZSBw
cm9jZXNzIGNyYXNoZWRcbiIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZvciBhbiB1bmtub3duIHJlYXNvblxuIik7
Ci0gICAgICAgIH0KLQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIHRlcm1pbmF0ZWQgKHBp
ZCAlbGQpIGZvciByZWFzb246ICVzXG4iLCB3ZWJQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxs
b25nPihwaWQpLCB0ZXJtaW5hdGlvblJlYXNvblRvU3RyaW5nKHJlYXNvbikpOwogICAgICAgICBp
ZiAocmVhc29uID09IGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50
KSB7CiAgICAgICAgICAgICBmZmx1c2goc3RkZXJyKTsKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTIzOTAsNyArMjM5OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OndlYlByb2Nlc3NEaWRUZXJt
aW5hdGUoV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogICAgICAgICBtX2RpZFBy
aW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAobV9z
aG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFzaGVzKQorICAgIGlmIChtX3Nob3VsZEV4aXRXaGVu
QXV4aWxpYXJ5UHJvY2Vzc0NyYXNoZXMpCiAgICAgICAgIGV4aXQoMSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA0OGZhNWFkNDJlZjgyY2IzZDUwYzMw
OWMxZmJjYjRkYTExNDYxODU4Li41ZTRiNjM2MTI0NzY4N2Y1N2VjNGFhOGYyNDUwNTllZjQwN2Jm
NmNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC00NjAsMTIg
KzQ2MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJhd0tleVVwTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBi
b29sIHN5bmNocm9ub3VzKTsKIAogICAgIC8vIFdLQ29udGV4dENsaWVudAotICAgIHN0YXRpYyB2
b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7Ci0g
ICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7Ci0gICAgc3RhdGljIHZvaWQgc2Vydmlj
ZVdvcmtlclByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIFdLUHJvY2Vzc0lELCBjb25zdCB2
b2lkKik7Ci0gICAgdm9pZCBzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoKFdLUHJvY2Vzc0lE
KTsKLSAgICBzdGF0aWMgdm9pZCBncHVQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBXS1By
b2Nlc3NJRCwgY29uc3Qgdm9pZCopOwotICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENyYXNoKFdLUHJv
Y2Vzc0lEKTsKKyAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoV2l0aERldGFp
bHMoV0tDb250ZXh0UmVmLCBXS1Byb2Nlc3NJRCwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24s
IGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tQcm9jZXNz
SUQsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKKyAgICBzdGF0aWMgdm9pZCBzZXJ2aWNl
V29ya2VyUHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHMoV0tDb250ZXh0UmVmLCBXS1Byb2Nlc3NJ
RCwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24sIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHNl
cnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2goV0tQcm9jZXNzSUQsIFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uKTsKKyAgICBzdGF0aWMgdm9pZCBncHVQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWls
cyhXS0NvbnRleHRSZWYsIFdLUHJvY2Vzc0lELCBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiwg
Y29uc3Qgdm9pZCopOworICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENyYXNoKFdLUHJvY2Vzc0lELCBX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZW50CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2
aWdhdGlvblJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7CkBAIC02MDUsNyAr
NjA1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9yY2VOb1RpbWVvdXQgeyBmYWxzZSB9Owog
CiAgICAgYm9vbCBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fc2hvdWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlcyB7IHRydWUgfTsKKyAg
ICBib29sIG1fc2hvdWxkRXhpdFdoZW5BdXhpbGlhcnlQcm9jZXNzQ3Jhc2hlcyB7IHRydWUgfTsK
ICAgICAKICAgICBib29sIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgeyB0cnVlIH07CiAK
</data>
<flag name="commit-queue"
          id="486412"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457723</attachid>
            <date>2022-04-15 14:00:21 -0700</date>
            <delta_ts>2022-04-18 14:21:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239400-20220415140021.patch</filename>
            <type>text/plain</type>
            <size>25670</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMGQwZTFmMTQ3MDhhMDAy
OGExOTNlOTNkMzA3YmZhOTVhZmI1ODQuLjEwOGU1MGFkMDEyZDQzNzgyNDFkYWVjZjBiNzljMDli
ZmZlZWZlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDQtMTUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgQyBBUEkgY2xp
ZW50cyB0byBnZXQgdGhlIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIGluIHByb2Nlc3NEaWRD
cmFzaCBmdW5jdGlvbnMsIGFuZCB1c2UgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFdLQ29udGV4dENs
aWVudFY0IHdpdGggImRpZCBjcmFzaCIgZnVuY3Rpb25zIHRoYXQgdGFrZSBhIFByb2Nlc3NJRCBh
bmQgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uCisgICAgICAgIFdlYkNvbnRleHRDbGllbnQg
d2lsbCBjYWxsIHRoZSBuZXcgZnVuY3Rpb25zIGlmIHJlZ2lzdGVyZWQsIG90aGVyd2lzZSB0aGUg
b2xkIG9uZXMuCisKKyAgICAgICAgSGF2ZSBXZWJQcm9jZXNzUG9vbDo6bmV0d29ya1Byb2Nlc3NE
aWRUZXJtaW5hdGUoKSBhbmQgV2ViUHJvY2Vzc1Bvb2w6OmdwdVByb2Nlc3NFeGl0ZWQoKSBjYWxs
CisgICAgICAgIHRoZSBjbGllbnQgZm9yIG1vcmUgdHlwZXMgb2YgcmVhc29uczsgRXhjZWVkZWRN
ZW1vcnlMaW1pdCBhbmQgRXhjZWVkZWRDUFVMaW1pdCBvbmx5IGFwcGx5CisgICAgICAgIHRvIHRo
ZSB3ZWIgcHJvY2Vzcywgc28gdGhlIGJlaGF2aW9yIGNoYW5nZSBoZXJlIGlzIHRvIGNhbGwgbV9j
bGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCisgICAgICAgIGZvciBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OlVucmVzcG9uc2l2ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpzZXJ2aWNlV29ya2VyUHJvY2Vz
c0RpZENyYXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dENsaWVudDo6Z3B1UHJvY2Vz
c0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNo
b3VsZFJlcG9ydEF1eGlsaWFyeVByb2Nlc3NDcmFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0V4aXRlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRl
cm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2gpOgorCiAyMDIyLTA0LTE0ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSB0aGUgUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIGVudW0gZm9yIGFsbCB0aGUgcHJvY2VzcyB0eXBlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCBkYzJlMGQxOTIzMTVlZTU3MmQxZDFmNjc4
YWJhNjFkNmMyNGQxMzkxLi4xNzRhNjQyYmY2ZGJlNjI0YTA5ODNmZTQ0MjQ1ZjNhODFjODQ2Mzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRIaXN0b3J5Q2xpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8
V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oPgogCiAjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiB0
eXBlZGVmIGludCBXS1Byb2Nlc3NJRDsKQEAgLTYwLDYgKzYxLDcgQEAgdHlwZWRlZiB2b2lkICgq
V0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIGNvbnMKIHR5cGVkZWYgV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayBX
S0NvbnRleHROZXR3b3JrUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2s7CiAKIHR5cGVkZWYgdm9pZCAo
KldLQ29udGV4dENoaWxkUHJvY2Vzc1dpdGhQSUREaWRDcmFzaENhbGxiYWNrKShXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tQcm9jZXNzSUQgcHJvY2Vzc0lELCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLQ29udGV4dENoaWxkUHJvY2Vzc0RpZENyYXNoV2l0aERldGFp
bHNDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUHJvY2Vzc0lEIHByb2Nlc3NJRCwg
V0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tDb250ZXh0Q2xpZW50QmFzZSB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwpAQCAtODcsNiArODksNyBAQCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGll
bnRWMSB7CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoKmNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlfdW5hdmFpbGFi
bGUpKHZvaWQpOwogfSBXS0NvbnRleHRDbGllbnRWMTsKIAorLy8gV0tDb250ZXh0Q2xpZW50VjEg
YW5kIFdLQ29udGV4dENsaWVudFYyIGFyZSBpZGVudGljYWwuCiB0eXBlZGVmIHN0cnVjdCBXS0Nv
bnRleHRDbGllbnRWMiB7CiAgICAgV0tDb250ZXh0Q2xpZW50QmFzZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOwogCkBAIC05Nyw3ICsxMDAsNiBA
QCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGllbnRWMiB7CiAKICAgICAvLyBWZXJzaW9uIDEu
CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKmNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlfdW5hdmFpbGFibGUpKHZv
aWQpOwotCiB9IFdLQ29udGV4dENsaWVudFYyOwogCiB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRD
bGllbnRWMyB7CkBAIC0xMTEsMTEgKzExMywzMyBAQCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRD
bGllbnRWMyB7CiAgICAgLy8gVmVyc2lvbiAxLgogICAgIHZvaWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpjb3B5V2ViQ3J5
cHRvTWFzdGVyS2V5X3VuYXZhaWxhYmxlKSh2b2lkKTsKIAotICAgIC8vIFZlcnNpb24yLgorICAg
IC8vIFZlcnNpb24gMy4KICAgICBXS0NvbnRleHRDaGlsZFByb2Nlc3NXaXRoUElERGlkQ3Jhc2hD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jh
c2g7CiAgICAgV0tDb250ZXh0Q2hpbGRQcm9jZXNzV2l0aFBJRERpZENyYXNoQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICBncHVQcm9jZXNzRGlkQ3Jhc2g7CiB9IFdLQ29udGV4dENsaWVu
dFYzOwogCit0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGllbnRWNCB7CisgICAgV0tDb250ZXh0
Q2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQ29udGV4dFBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlc0NoYW5nZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZDsKKyAgICBXS0NvbnRleHROZXR3b3JrUHJvY2Vzc0RpZENy
YXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2g7CisgICAgV0tDb250ZXh0UGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFibGVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICBwbHVnSW5JbmZvcm1hdGlvbkJlY2FtZUF2YWlsYWJsZTsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqY29weVdlYkNyeXB0b01hc3Rl
cktleV91bmF2YWlsYWJsZSkodm9pZCk7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tDb250
ZXh0Q2hpbGRQcm9jZXNzV2l0aFBJRERpZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoOworICAgIFdLQ29udGV4dENoaWxkUHJv
Y2Vzc1dpdGhQSUREaWRDcmFzaENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZ3B1UHJv
Y2Vzc0RpZENyYXNoOworICAgIAorICAgIC8vIFZlcnNpb24gNC4KKyAgICBXS0NvbnRleHRDaGls
ZFByb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIG5l
dHdvcmtQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlsczsKKyAgICBXS0NvbnRleHRDaGlsZFByb2Nl
c3NEaWRDcmFzaFdpdGhEZXRhaWxzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VX
b3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlsczsKKyAgICBXS0NvbnRleHRDaGlsZFByb2Nl
c3NEaWRDcmFzaFdpdGhEZXRhaWxzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIGdwdVByb2Nl
c3NEaWRDcmFzaFdpdGhEZXRhaWxzOworfSBXS0NvbnRleHRDbGllbnRWNDsKKworCiAvLyBGSVhN
RTogUmVtb3ZlIHRoZXNlIG9uY2Ugc3VwcG9ydCBmb3IgTWF2ZXJpY2tzIGhhcyBiZWVuIGRyb3Bw
ZWQuCiBlbnVtIHsKICAgICBrV0tQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzID0g
MCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXgg
YTI1MjhjMmMwZTBkN2UxMzA5ODYxNmIzMTUwODg2NmVmOTg0NzYxMy4uYjYxYzBjM2I1NTdiN2Nl
N2YzNzMwZjIzZGM2ZjZlNWE3MjRkNWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTM4LDI4ICszOCwzNyBAQCB2b2lkIFdlYkNvbnRleHRD
bGllbnQ6OnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wq
IHByb2NlcwogICAgIG1fY2xpZW50LnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQo
dG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi12b2lk
IFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wq
IHByb2Nlc3NQb29sKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCwgUHJvY2Vzc0lEIHByb2Nlc3NJRCwgUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKLSAgICBpZiAoIW1fY2xpZW50Lm5ldHdv
cmtQcm9jZXNzRGlkQ3Jhc2gpCisgICAgaWYgKG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2hXaXRoRGV0YWlscykgeworICAgICAgICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNo
V2l0aERldGFpbHModG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQsIHRvQVBJKHJlYXNvbiks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAg
ICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBpZiAobV9jbGllbnQubmV0d29ya1Byb2Nlc3NE
aWRDcmFzaCkKKyAgICAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShw
cm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgV2ViQ29u
dGV4dENsaWVudDo6c2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCog
cHJvY2Vzc1Bvb2wsIFByb2Nlc3NJRCBwcm9jZXNzSUQpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6
OnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29s
LCBQcm9jZXNzSUQgcHJvY2Vzc0lELCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQog
ewotICAgIGlmICghbV9jbGllbnQuc2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaCkKKyAgICBp
ZiAobV9jbGllbnQuc2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKSB7Cisg
ICAgICAgIG1fY2xpZW50LnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlscyh0
b0FQSShwcm9jZXNzUG9vbCksIHByb2Nlc3NJRCwgdG9BUEkocmVhc29uKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1fY2xpZW50LnNl
cnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQs
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgaWYgKG1fY2xpZW50LnNlcnZpY2VXb3Jr
ZXJQcm9jZXNzRGlkQ3Jhc2gpCisgICAgICAgIG1fY2xpZW50LnNlcnZpY2VXb3JrZXJQcm9jZXNz
RGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dENsaWVudDo6Z3B1UHJvY2Vzc0RpZENyYXNo
KFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCwgUHJvY2Vzc0lEIHByb2Nlc3NJRCkKK3ZvaWQg
V2ViQ29udGV4dENsaWVudDo6Z3B1UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9j
ZXNzUG9vbCwgUHJvY2Vzc0lEIHByb2Nlc3NJRCwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKIHsKLSAgICBpZiAoIW1fY2xpZW50LmdwdVByb2Nlc3NEaWRDcmFzaCkKKyAgICBpZiAo
bV9jbGllbnQuZ3B1UHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHMpIHsKKyAgICAgICAgbV9jbGll
bnQuZ3B1UHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHModG9BUEkocHJvY2Vzc1Bvb2wpLCBwcm9j
ZXNzSUQsIHRvQVBJKHJlYXNvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAg
IHJldHVybjsKKyAgICB9CiAKLSAgICBtX2NsaWVudC5ncHVQcm9jZXNzRGlkQ3Jhc2godG9BUEko
cHJvY2Vzc1Bvb2wpLCBwcm9jZXNzSUQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAg
aWYgKG1fY2xpZW50LmdwdVByb2Nlc3NEaWRDcmFzaCkKKyAgICAgICAgbV9jbGllbnQuZ3B1UHJv
Y2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgcHJvY2Vzc0lELCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA0OGEyMDllMjBhZTM1Yzg1ZTM5ODQ4
ZTVhMTIwNDg3YTFlMjQ3YzBmLi4yN2Q0ZWVhMDRjYmNhMmZlZTI1OGMyNzk5N2FhODhjZmNlNTkw
ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC0y
Myw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2lmbmRlZiBXZWJDb250ZXh0Q2xpZW50X2gKLSNkZWZpbmUgV2ViQ29udGV4dENsaWVudF9oCisj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSURhdGEu
aCIKQEAgLTMzLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiB0ZW1wbGF0ZTw+IHN0cnVj
dCBDbGllbnRUcmFpdHM8V0tDb250ZXh0Q2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS0NvbnRleHRDbGllbnRWMCwgV0tDb250ZXh0Q2xpZW50VjEsIFdLQ29udGV4dENsaWVu
dFYyLCBXS0NvbnRleHRDbGllbnRWMz4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLQ29udGV4dENsaWVudFYwLCBXS0NvbnRleHRDbGllbnRWMSwgV0tDb250ZXh0Q2xpZW50VjIs
IFdLQ29udGV4dENsaWVudFYzLCBXS0NvbnRleHRDbGllbnRWND4gVmVyc2lvbnM7CiB9OwogfQog
CkBAIC00MSwxNSArNDAsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQ29u
dGV4dENsaWVudEJhc2U+IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQcm9jZXNz
UG9vbDsKK2VudW0gY2xhc3MgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOwogCiBjbGFzcyBXZWJD
b250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsK
IHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2Vi
UHJvY2Vzc1Bvb2wqKTsKLSAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vz
c1Bvb2wqKTsKLSAgICB2b2lkIHNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vz
c1Bvb2wqLCBQcm9jZXNzSUQpOwotICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nl
c3NQb29sKiwgUHJvY2Vzc0lEKTsKKyAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2Vi
UHJvY2Vzc1Bvb2wqLCBQcm9jZXNzSUQsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CisgICAg
dm9pZCBzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiwgUHJvY2Vz
c0lELCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24pOworICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKiwgUHJvY2Vzc0lELCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24p
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJDb250ZXh0Q2xp
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA5
MTZmMzBjMDFjNDMzODgyNWU2NzQxOWRhNjlkNWYwNTA4OWE1NDEzLi43YTBkODA1MmRlZTI2MmM2
N2FmMmY4ZDQ2ZjIxMWIyMmNkZjFiNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC00MjgsMTAgKzQyOCwzMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpzY3JlZW5Qcm9wZXJ0aWVzU3RhdGVDaGFuZ2VkKCkKICNlbmRpZgogfQogCitzdGF0aWMgYm9v
bCBzaG91bGRSZXBvcnRBdXhpbGlhcnlQcm9jZXNzQ3Jhc2goUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uIHJlYXNvbikKK3sKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9yeUxpbWl0OgorICAgIGNhc2UgUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgorICAgIGNhc2UgUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uOjpVbnJlc3BvbnNpdmU6CisgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25S
ZWFzb246OkNyYXNoOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFByb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgY2FzZSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OklkbGVFeGl0OgorICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
OjpFeGNlZWRlZFByb2Nlc3NDb3VudExpbWl0OgorICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uOjpOYXZpZ2F0aW9uU3dhcDoKKyAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bjo6UmVxdWVzdGVkQnlOZXR3b3JrUHJvY2VzczoKKyAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbjo6UmVxdWVzdGVkQnlHUFVQcm9jZXNzOgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpuZXR3
b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2Vz
c1Byb3h5LCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewotICAgIGlmIChyZWFz
b24gPT0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaCkKLSAgICAgICAgbV9jbGllbnQu
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0aGlzKTsKKyAgICBpZiAoc2hvdWxkUmVwb3J0QXV4aWxp
YXJ5UHJvY2Vzc0NyYXNoKHJlYXNvbikpCisgICAgICAgIG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2godGhpcywgbmV0d29ya1Byb2Nlc3NQcm94eS5wcm9jZXNzSWRlbnRpZmllcigpLCBy
ZWFzb24pOwogCiAgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCiAgICAgICAgIG1fYXV0b21h
dGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOwpAQCAtNDM5LDEwICs0NTksMTAgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6bmV0d29ya1Byb2Nlc3NEaWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94
eSYgbmV0d29ya1Byb2MKICAgICB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VycygpOwogfQogCi12b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0NyYXNoZWQoV2ViUHJvY2Vzc1By
b3h5JiBwcm94eSkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlcnZpY2VXb3JrZXJQcm9jZXNzQ3Jh
c2hlZChXZWJQcm9jZXNzUHJveHkmIHByb3h5LCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVh
c29uKQogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBtX2NsaWVudC5zZXJ2aWNl
V29ya2VyUHJvY2Vzc0RpZENyYXNoKHRoaXMsIHByb3h5LnByb2Nlc3NJZGVudGlmaWVyKCkpOwor
ICAgIG1fY2xpZW50LnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2godGhpcywgcHJveHkucHJv
Y2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uKTsKICNlbmRpZgogfQogCkBAIC00NzEsOCArNDkxLDgg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0V4aXRlZChQcm9jZXNzSUQgaWRlbnRp
ZmllciwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmUKICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xP
RyhQcm9jZXNzLCAiZ3B1UHJvY2Vzc0RpZEV4aXQ6IFBJRD0lZCwgcmVhc29uPXJlYXNvbj0le3B1
YmxpY31zIiwgaWRlbnRpZmllciwgcHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uVG9TdHJpbmcocmVh
c29uKSk7CiAgICAgbV9ncHVQcm9jZXNzID0gbnVsbHB0cjsKIAotICAgIGlmIChyZWFzb24gPT0g
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaCB8fCByZWFzb24gPT0gUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uOjpVbnJlc3BvbnNpdmUpCi0gICAgICAgIG1fY2xpZW50LmdwdVByb2Nlc3NE
aWRDcmFzaCh0aGlzLCBpZGVudGlmaWVyKTsKKyAgICBpZiAoc2hvdWxkUmVwb3J0QXV4aWxpYXJ5
UHJvY2Vzc0NyYXNoKHJlYXNvbikpCisgICAgICAgIG1fY2xpZW50LmdwdVByb2Nlc3NEaWRDcmFz
aCh0aGlzLCBpZGVudGlmaWVyLCByZWFzb24pOwogCiAgICAgVmVjdG9yPFJlZjxXZWJQcm9jZXNz
UHJveHk+PiBwcm9jZXNzZXMgPSBtX3Byb2Nlc3NlczsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3Mg
OiBwcm9jZXNzZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRl
eCA3Njk3ODFmM2MzNDRmZjk1NjcwMjYwYWM0ODU1Mjg1Y2U5NDdkYWNkLi44YTA1NzNiNWNiNjc3
NTQ4MDQ3ZDFhMWU1OWNiNzljYzQxNzlhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTM3OSw3ICszNzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNT
ZXJ2aWNlV29ya2VyRm9yZWdyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0OwogICAgIGJv
b2wgaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmcoKSBjb25zdDsK
ICNlbmRpZgotICAgIHZvaWQgc2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlByb2Nlc3NQ
cm94eSYpOworICAgIHZvaWQgc2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlByb2Nlc3NQ
cm94eSYsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKICAgICB2b2lkIHVwZGF0ZVJlbW90
ZVdvcmtlclVzZXJBZ2VudChjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCk7CiAgICAgVXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllciB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyRm9y
UmVtb3RlV29ya2VycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggZGRiYjllNjhmMDY4MzlkOTA1N2YyY2I3NmVmYjkzYzkxOTFkNWI1Yy4uMWFi
ZjY1NDljOGViYWI1Njc5YmFhYWI3NzU3NTRmODE5OTE4NTk5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC05MTYsMTEgKzkxNiwxMiBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhcwogICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiAKICAgICBpZiAo
aXNTdGFuZGFsb25lU2VydmljZVdvcmtlclByb2Nlc3MoKSkKLSAgICAgICAgcHJvY2Vzc1Bvb2wo
KS5zZXJ2aWNlV29ya2VyUHJvY2Vzc0NyYXNoZWQoKnRoaXMpOworICAgICAgICBwcm9jZXNzUG9v
bCgpLnNlcnZpY2VXb3JrZXJQcm9jZXNzQ3Jhc2hlZCgqdGhpcywgcmVhc29uKTsKIAogICAgIHNo
dXREb3duKCk7CiAKICNpZiBFTkFCTEUoUFVCTElDX1NVRkZJWF9MSVNUKQorICAgIC8vIEZJWE1F
OiBQZXJoYXBzIHRoaXMgc2hvdWxkIGNvbnNpZGVyIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbnMg
RXhjZWVkZWRNZW1vcnlMaW1pdCwgRXhjZWVkZWRDUFVMaW1pdCwgVW5yZXNwb25zaXZlIGFzIHdl
bGwuCiAgICAgaWYgKHBhZ2VzLnNpemUoKSA9PSAxICYmIHJlYXNvbiA9PSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OkNyYXNoKSB7CiAgICAgICAgIGF1dG8mIHBhZ2UgPSAqcGFnZXNbMF07CiAg
ICAgICAgIFN0cmluZyBkb21haW4gPSB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFVSTCh7
IH0sIHBhZ2UuY3VycmVudFVSTCgpKS5ob3N0KCkudG9TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTRmMTY3YjA1ODY0OTZiZjRl
MDg5M2I5MjMwZjg1MzBlZmIyOThiYS4uYWI4MDc5MzJjZjllOTk2NTAyYzg1YWIwYzA2ZmQzNTk0
MTY0NDc4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA0LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IEMgQVBJIGNsaWVudHMgdG8gZ2V0IHRoZSBX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiBpbiBwcm9jZXNzRGlkQ3Jhc2ggZnVuY3Rpb25zLCBh
bmQgdXNlIGluIFdlYktpdFRlc3RSdW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTQwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFN0YW5kYXJkaXplIHRoZSAiZGlkQ3Jhc2giIGNhbGxiYWNrcyB0
byB1c2UgdGhlIFdLQ29udGV4dENsaWVudFY0ICJ3aXRoIGRldGFpbHMiIHZlcnNpb25zLAorICAg
ICAgICBhbmQgdXNlIHRoZW0gdG8gcHJpbnQgb3V0IGNyYXNoIHJlYXNvbnMuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNlcnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRo
RGV0YWlscyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpncHVQcm9jZXNzRGlkQ3Jh
c2hXaXRoRGV0YWlscyk6CisgICAgICAgIChXVFI6OnRlcm1pbmF0aW9uUmVhc29uVG9TdHJpbmcp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENy
YXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdwdVByb2Nlc3NEaWRDcmFzaCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVybWluYXRlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisKIDIwMjItMDQt
MTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5k
byBvcHRpb24gYWZ0ZXIgaW52b2tpbmcgIk1hcmt1cCBJbWFnZSIgc2F5cyAiVW5kbyBQYXN0ZSIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYTE1ODIwMzA3
YWE4ZmIzZjE4NGY5OGQzZTU2ODQ2YmY3N2U1YTc4ZS4uM2VkMjY3MDc1Y2NlMzE0ZGU5N2I3NTEy
MjI2Y2M5MzBjMjM2NjE2NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTY4NSwxNCArNjg1LDE3IEBAIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWY+IFRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvCiAgICAg
fTsKICAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChtX2NvbnRleHQuZ2V0KCks
ICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKIAotICAgIFdLQ29udGV4dENsaWVudFYzIGNv
bnRleHRDbGllbnQgPSB7Ci0gICAgICAgIHsgMywgdGhpcyB9LAorICAgIFdLQ29udGV4dENsaWVu
dFY0IGNvbnRleHRDbGllbnQgPSB7CisgICAgICAgIHsgNCwgdGhpcyB9LAogICAgICAgICAwLCAv
LyBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkCi0gICAgICAgIG5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2gsCisgICAgICAgIDAsIC8vIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gsCiAgICAg
ICAgIDAsIC8vIHBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxhYmxlCiAgICAgICAgIDAsIC8v
IGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXkKLSAgICAgICAgc2VydmljZVdvcmtlclByb2Nlc3NEaWRD
cmFzaCwKLSAgICAgICAgZ3B1UHJvY2Vzc0RpZENyYXNoCisgICAgICAgIDAsIC8vIHNlcnZpY2VX
b3JrZXJQcm9jZXNzRGlkQ3Jhc2gsCisgICAgICAgIDAsIC8vIGdwdVByb2Nlc3NEaWRDcmFzaAor
ICAgICAgICBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHMsCisgICAgICAgIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWlscywKKyAgICAgICAgZ3B1UHJvY2Vzc0Rp
ZENyYXNoV2l0aERldGFpbHMsCiAgICAgfTsKICAgICBXS0NvbnRleHRTZXRDbGllbnQobV9jb250
ZXh0LmdldCgpLCAmY29udGV4dENsaWVudC5iYXNlKTsKIApAQCAtMTY3MCwxOSArMTY3MywxOSBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNQYWdlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZQogICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVy
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZlU3luY2hyb25vdXNN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keSwgbGlzdGVu
ZXIpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdL
Q29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBUZXN0Q29u
dHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1Byb2Nlc3NJRCBwcm9jZXNzSUQsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
IHJlYXNvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKLSAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nl
c3NEaWRDcmFzaCgpOworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHByb2Nlc3NJRCwg
cmVhc29uKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2VydmljZVdvcmtlclByb2Nlc3NE
aWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tQcm9jZXNzSUQgcHJvY2Vzc0lELCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBUZXN0Q29udHJvbGxlcjo6c2VydmljZVdvcmtlclBy
b2Nlc3NEaWRDcmFzaFdpdGhEZXRhaWxzKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1Byb2Nlc3NJ
RCBwcm9jZXNzSUQsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbiwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKIHsKLSAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+c2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaChw
cm9jZXNzSUQpOworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5zZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoKHByb2Nlc3NJ
RCwgcmVhc29uKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6Z3B1UHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1Byb2Nlc3NJRCBwcm9jZXNzSUQsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCit2b2lkIFRlc3RDb250cm9sbGVyOjpncHVQcm9jZXNzRGlkQ3Jhc2hXaXRo
RGV0YWlscyhXS0NvbnRleHRSZWYgY29udGV4dCwgV0tQcm9jZXNzSUQgcHJvY2Vzc0lELCBXS1By
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7
Ci0gICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmdwdVByb2Nlc3NEaWRDcmFzaChwcm9jZXNzSUQpOworICAgIHN0YXRpY19jYXN0
PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5ncHVQcm9j
ZXNzRGlkQ3Jhc2gocHJvY2Vzc0lELCByZWFzb24pOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5
UmVmIGRpY3Rpb25hcnksIGJvb2wgc3luY2hyb25vdXMpCkBAIC0yMDAxLDI0ICsyMDA0LDQ2IEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdENvbnRyb2xsZXI6OmdldEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YSgpCiAKIC8vIFdLQ29udGV4dENsaWVudAogCi12b2lkIFRl
c3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKK3N0YXRpYyBjb25zdCBjaGFy
KiB0ZXJtaW5hdGlvblJlYXNvblRvU3RyaW5nKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKK3sKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2Uga1dLUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uRXhjZWVkZWRNZW1vcnlMaW1pdDoKKyAgICAgICAgcmV0dXJuICJleGNlZWRl
ZCBtZW1vcnkgbGltaXQiOworICAgIGNhc2Uga1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uRXhj
ZWVkZWRDUFVMaW1pdDoKKyAgICAgICAgcmV0dXJuICJleGNlZWRlZCBjcHUgbGltaXQiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3Rl
ZEJ5Q2xpZW50OgorICAgICAgICByZXR1cm4gInJlcXVlc3RlZCBieSBjbGllbnQiOworICAgIGNh
c2Uga1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uQ3Jhc2g6CisgICAgICAgIHJldHVybiAiY3Jh
c2giOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gInVua25vd24gcmVhc29uIjsKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS1Byb2Nlc3NJRCBwcm9jZXNzSUQs
IFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKLSAgICBwaWRfdCBwaWQgPSBX
S1dlYnNpdGVEYXRhU3RvcmVHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIod2Vic2l0ZURhdGFT
dG9yZSgpKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4i
LCBuZXR3b3JrUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7Ci0gICAgZXhp
dCgxKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIHRlcm1pbmF0ZWQgKHBpZCAlbGQpIGZvciBy
ZWFzb246ICVzXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJv
Y2Vzc0lEKSwgdGVybWluYXRpb25SZWFzb25Ub1N0cmluZyhyZWFzb24pKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUo
KSwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJvY2Vzc0lEKSk7CisgICAgaWYgKG1fc2hvdWxkRXhpdFdo
ZW5BdXhpbGlhcnlQcm9jZXNzQ3Jhc2hlcykKKyAgICAgICAgZXhpdCgxKTsKIH0KIAotdm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2VydmljZVdvcmtlclByb2Nlc3NEaWRDcmFzaChXS1Byb2Nlc3NJRCBw
cm9jZXNzSUQpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENy
YXNoKFdLUHJvY2Vzc0lEIHByb2Nlc3NJRCwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVh
c29uKQogeworICAgIGZwcmludGYoc3RkZXJyLCAiJXMgdGVybWluYXRlZCAocGlkICVsZCkgZm9y
IHJlYXNvbjogJXNcbiIsICJTZXJ2aWNlV29ya2VyUHJvY2VzcyIsIHN0YXRpY19jYXN0PGxvbmc+
KHByb2Nlc3NJRCksIHRlcm1pbmF0aW9uUmVhc29uVG9TdHJpbmcocmVhc29uKSk7CiAgICAgZnBy
aW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtIFNlcnZpY2VXb3JrZXJQcm9jZXNzIChwaWQgJWxkKVxu
Iiwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJvY2Vzc0lEKSk7Ci0gICAgaWYgKG1fc2hvdWxkRXhpdFdo
ZW5XZWJQcm9jZXNzQ3Jhc2hlcykKKyAgICBpZiAobV9zaG91bGRFeGl0V2hlbkF1eGlsaWFyeVBy
b2Nlc3NDcmFzaGVzKQogICAgICAgICBleGl0KDEpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVy
OjpncHVQcm9jZXNzRGlkQ3Jhc2goV0tQcm9jZXNzSUQgcHJvY2Vzc0lEKQordm9pZCBUZXN0Q29u
dHJvbGxlcjo6Z3B1UHJvY2Vzc0RpZENyYXNoKFdLUHJvY2Vzc0lEIHByb2Nlc3NJRCwgV0tQcm9j
ZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiI0NS
QVNIRUQgLSBHUFVQcm9jZXNzIChwaWQgJWxkKVxuIiwgc3RhdGljX2Nhc3Q8bG9uZz4ocHJvY2Vz
c0lEKSk7Ci0gICAgaWYgKG1fc2hvdWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlcykKKyAgICBm
cHJpbnRmKHN0ZGVyciwgIiVzIHRlcm1pbmF0ZWQgKHBpZCAlbGQpIGZvciByZWFzb246ICVzXG4i
LCBncHVQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwcm9jZXNzSUQpLCB0ZXJtaW5h
dGlvblJlYXNvblRvU3RyaW5nKHJlYXNvbikpOworICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNI
RUQgLSAlcyAocGlkICVsZClcbiIsIGdwdVByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+
KHByb2Nlc3NJRCkpOworICAgIGlmIChtX3Nob3VsZEV4aXRXaGVuQXV4aWxpYXJ5UHJvY2Vzc0Ny
YXNoZXMpCiAgICAgICAgIGV4aXQoMSk7CiB9CiAKQEAgLTIzNjIsMjQgKzIzODcsNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVybWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIHJlYXNvbikKICAgICAvLyBlbnN1cmUgd2Ugb25seSBwcmludCB0aGUgY3Jhc2hl
ZCBtZXNzYWdlIG9uY2UuCiAgICAgaWYgKCFtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNz
YWdlKSB7CiAgICAgICAgIHBpZF90IHBpZCA9IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKG1f
bWFpbldlYlZpZXctPnBhZ2UoKSk7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgdGVybWlu
YXRlZCAocGlkICVsZCkgIiwgd2ViUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlk
KSk7Ci0gICAgICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgICAgIGNhc2Uga1dLUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uRXhjZWVkZWRNZW1vcnlMaW1pdDoKLSAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiYmVjYXVzZSB0aGUgbWVtb3J5IGxpbWl0IHdhcyBleGNlZWRlZFxuIik7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25F
eGNlZWRlZENQVUxpbWl0OgotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiZWNhdXNlIHRo
ZSBjcHUgbGltaXQgd2FzIGV4Y2VlZGVkXG4iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50OgotICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiZWNhdXNlIHRoZSBjbGllbnQgcmVxdWVzdGVkXG4i
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIGtXS1Byb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbkNyYXNoOgotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiZWNhdXNlIHRoZSBw
cm9jZXNzIGNyYXNoZWRcbiIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZvciBhbiB1bmtub3duIHJlYXNvblxuIik7
Ci0gICAgICAgIH0KLQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIHRlcm1pbmF0ZWQgKHBp
ZCAlbGQpIGZvciByZWFzb246ICVzXG4iLCB3ZWJQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxs
b25nPihwaWQpLCB0ZXJtaW5hdGlvblJlYXNvblRvU3RyaW5nKHJlYXNvbikpOwogICAgICAgICBp
ZiAocmVhc29uID09IGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50
KSB7CiAgICAgICAgICAgICBmZmx1c2goc3RkZXJyKTsKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTIzOTAsNyArMjM5OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OndlYlByb2Nlc3NEaWRUZXJt
aW5hdGUoV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogICAgICAgICBtX2RpZFBy
aW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAobV9z
aG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFzaGVzKQorICAgIGlmIChtX3Nob3VsZEV4aXRXaGVu
QXV4aWxpYXJ5UHJvY2Vzc0NyYXNoZXMpCiAgICAgICAgIGV4aXQoMSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA0OGZhNWFkNDJlZjgyY2IzZDUwYzMw
OWMxZmJjYjRkYTExNDYxODU4Li41ZTRiNjM2MTI0NzY4N2Y1N2VjNGFhOGYyNDUwNTllZjQwN2Jm
NmNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC00NjAsMTIg
KzQ2MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJhd0tleVVwTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBi
b29sIHN5bmNocm9ub3VzKTsKIAogICAgIC8vIFdLQ29udGV4dENsaWVudAotICAgIHN0YXRpYyB2
b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7Ci0g
ICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7Ci0gICAgc3RhdGljIHZvaWQgc2Vydmlj
ZVdvcmtlclByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIFdLUHJvY2Vzc0lELCBjb25zdCB2
b2lkKik7Ci0gICAgdm9pZCBzZXJ2aWNlV29ya2VyUHJvY2Vzc0RpZENyYXNoKFdLUHJvY2Vzc0lE
KTsKLSAgICBzdGF0aWMgdm9pZCBncHVQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBXS1By
b2Nlc3NJRCwgY29uc3Qgdm9pZCopOwotICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENyYXNoKFdLUHJv
Y2Vzc0lEKTsKKyAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoV2l0aERldGFp
bHMoV0tDb250ZXh0UmVmLCBXS1Byb2Nlc3NJRCwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24s
IGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tQcm9jZXNz
SUQsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKKyAgICBzdGF0aWMgdm9pZCBzZXJ2aWNl
V29ya2VyUHJvY2Vzc0RpZENyYXNoV2l0aERldGFpbHMoV0tDb250ZXh0UmVmLCBXS1Byb2Nlc3NJ
RCwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24sIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHNl
cnZpY2VXb3JrZXJQcm9jZXNzRGlkQ3Jhc2goV0tQcm9jZXNzSUQsIFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uKTsKKyAgICBzdGF0aWMgdm9pZCBncHVQcm9jZXNzRGlkQ3Jhc2hXaXRoRGV0YWls
cyhXS0NvbnRleHRSZWYsIFdLUHJvY2Vzc0lELCBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiwg
Y29uc3Qgdm9pZCopOworICAgIHZvaWQgZ3B1UHJvY2Vzc0RpZENyYXNoKFdLUHJvY2Vzc0lELCBX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZW50CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2
aWdhdGlvblJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7CkBAIC02MDUsNyAr
NjA1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9yY2VOb1RpbWVvdXQgeyBmYWxzZSB9Owog
CiAgICAgYm9vbCBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fc2hvdWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlcyB7IHRydWUgfTsKKyAg
ICBib29sIG1fc2hvdWxkRXhpdFdoZW5BdXhpbGlhcnlQcm9jZXNzQ3Jhc2hlcyB7IHRydWUgfTsK
ICAgICAKICAgICBib29sIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgeyB0cnVlIH07CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAppbmRl
eCAwNzdjYzk3ZmVhZWM0NmU1MDA2NTc2Nzc0OGJiODg2NTVmZTY0OWQxLi44MjEwYWZmN2E0YTVm
MzczZDZiZGRhMDljZWQ3NDM1NWNjYTViYzZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xNTQsOSArMTU0LDkgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRpb24sIFdURjo6U2Vj
b25kcyB0aW1lb3V0KQogCiAgICAgLy8gRmlyc3QsIGxldCB0aGUgdGVzdCBoYXJuZXNzIGtub3cg
dGhpcyBoYXBwZW5lZCBzbyBpdCB3b24ndCB0aGluayB3ZSd2ZSBodW5nLiBCdXQKICAgICAvLyBt
YWtlIHN1cmUgd2UgZG9uJ3QgZXhpdCBqdXN0IHlldCEKLSAgICBtX3Nob3VsZEV4aXRXaGVuV2Vi
UHJvY2Vzc0NyYXNoZXMgPSBmYWxzZTsKKyAgICBtX3Nob3VsZEV4aXRXaGVuQXV4aWxpYXJ5UHJv
Y2Vzc0NyYXNoZXMgPSBmYWxzZTsKICAgICB3ZWJQcm9jZXNzRGlkVGVybWluYXRlKGtXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbkNyYXNoKTsKLSAgICBtX3Nob3VsZEV4aXRXaGVuV2ViUHJvY2Vz
c0NyYXNoZXMgPSB0cnVlOworICAgIG1fc2hvdWxkRXhpdFdoZW5BdXhpbGlhcnlQcm9jZXNzQ3Jh
c2hlcyA9IHRydWU7CiAKICAgICAvLyBUaGVuIHNwaW4gYSBydW4gbG9vcCB1bnRpbCBpdCBmaW5p
c2hlcyBjcmFzaGluZyB0byBnaXZlIHRpbWUgZm9yIGEgY3Jhc2ggbG9nIHRvIGJlIHNhdmVkLiBJ
ZgogICAgIC8vIGl0IHRha2VzIHRvbyBsb25nIGZvciBhIGNyYXNoIGxvZyB0byBiZSBzYXZlZCwg
d2UnbGwganVzdCBnaXZlIHVwLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>