<?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>240239</bug_id>
          
          <creation_ts>2022-05-09 10:13:14 -0700</creation_ts>
          <short_desc>AX ITM: Cache several object relationships that were not cached in isolated tree mode.</short_desc>
          <delta_ts>2022-06-02 18:07:41 -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>Accessibility</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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867688</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-09 10:13:14 -0700</bug_when>
    <thetext>AX ITM: Cache several object relationships that were not cached in isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867689</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-09 10:13:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/92970244&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867692</commentid>
    <comment_count>2</comment_count>
      <attachid>459056</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-09 10:32:59 -0700</bug_when>
    <thetext>Created attachment 459056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873060</commentid>
    <comment_count>3</comment_count>
      <attachid>459893</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-31 11:31:03 -0700</bug_when>
    <thetext>Created attachment 459893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873136</commentid>
    <comment_count>4</comment_count>
      <attachid>459893</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-31 14:34:43 -0700</bug_when>
    <thetext>Comment on attachment 459893
Patch

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

Looks good to me!

&gt; COMMIT_MESSAGE:3
&gt; +

Your COMMIT_MESSAGE is missing a &quot;Reviewed by&quot; below the bug URL and above the long-form commit description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873285</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-06-01 05:58:04 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; Comment on attachment 459893 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459893&amp;action=review
&gt; 
&gt; Looks good to me!
&gt; 
&gt; &gt; COMMIT_MESSAGE:3
&gt; &gt; +
&gt; 
&gt; Your COMMIT_MESSAGE is missing a &quot;Reviewed by&quot; below the bug URL and above
&gt; the long-form commit description.

I&apos;m not getting the commit message template with the webkit-patch upload script. Does it work only if you have uncommitted changes on the main branch? I have my changes committed in a working branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873496</commentid>
    <comment_count>6</comment_count>
      <attachid>459952</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-06-01 19:21:10 -0700</bug_when>
    <thetext>Created attachment 459952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873498</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-06-01 19:29:35 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; Comment on attachment 459893 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459893&amp;action=review
&gt; 
&gt; Looks good to me!
&gt; 
&gt; &gt; COMMIT_MESSAGE:3
&gt; &gt; +
&gt; 
&gt; Your COMMIT_MESSAGE is missing a &quot;Reviewed by&quot; below the bug URL and above
&gt; the long-form commit description.

Somewhat amended the commit message, but couldn&apos;t re-generate the list of changed functions. So I guess we&apos;ll go without that this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873522</commentid>
    <comment_count>8</comment_count>
      <attachid>459952</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-06-01 23:17:27 -0700</bug_when>
    <thetext>Comment on attachment 459952
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:627
&gt; +                return cache-&gt;relations();

is this going to make a copy of the relations map? or just assign it the same pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873562</commentid>
    <comment_count>9</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-06-02 05:44:48 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #8)
&gt; Comment on attachment 459952 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459952&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:627
&gt; &gt; +                return cache-&gt;relations();
&gt; 
&gt; is this going to make a copy of the relations map? or just assign it the
&gt; same pointer?

It is a copy accessed only on the AX thread. I.e., we maintain two copies of the m_relations data structure, one in the AXObjectCache and one in the AXIsolatedTree. The one in the cache is only accessed on the main thread and the one on the IsolatedTree is accessed only on the AX thread. The atomic m_relationsNeedUpdate is used to mark that the m_relations in the IsolatedTree is dirty and needs to be copied from the cache&apos;s one. Since the copy happens by blocking the AX thread until we get the value from the main thread, I believe we are safe:

    if (m_relationsNeedUpdate) {
        m_relations = Accessibility::retrieveValueFromMainThread&lt;HashMap&lt;AXID, AXRelations&gt;&gt;([this] () -&gt; HashMap&lt;AXID, AXRelations&gt; {
            if (auto* cache = axObjectCache())
                return cache-&gt;relations();
            return { };
        });
        m_relationsNeedUpdate = false;
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873667</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-02 12:46:56 -0700</bug_when>
    <thetext>Committed r295139 (251230@main): &lt;https://commits.webkit.org/251230@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459952.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873754</commentid>
    <comment_count>11</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2022-06-02 18:07:41 -0700</bug_when>
    <thetext>Landing build fix for !ENABLE(ACCESSIBILITY) in https://github.com/WebKit/WebKit/pull/1262.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459056</attachid>
            <date>2022-05-09 10:32:59 -0700</date>
            <delta_ts>2022-05-31 11:30:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240239-20220509133258.patch</filename>
            <type>text/plain</type>
            <size>10933</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQxMWQ3NGFkMDEwZjI3
ZDNmYTgwMDQ2Zjc2ODAxNmQ0NmM1MjRlYS4uZGYwYWQxMzM3YjYwZmRhNTJjZmVhZTI0YTk4NzNi
YjFmMWIwMzY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTA1LTA5ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWCBJVE06IENh
Y2hlIHNldmVyYWwgb2JqZWN0IHJlbGF0aW9uc2hpcHMgdGhhdCB3ZXJlIG5vdCBjYWNoZWQgaW4g
aXNvbGF0ZWQgdHJlZSBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQwMjM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85Mjk3MDI0ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWNoZSBzZXZl
cmFsIHJlbGF0aW9ucyB0aGF0IHdlcmUgbm90IGJlaW5nIGNhY2hlZCBpbiBpc29sYXRlZCB0cmVl
IG1vZGUsCisgICAgICAgIHN1Y2ggYXMgb3duZXJzLCBsYWJlbGxlZCBieSBhbmQgbGFiZWwgZm9y
LCBldGMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxp
emVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmFjdGl2
ZURlc2NlbmRhbnRPZk9iamVjdHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6Y29udHJvbGxlcnMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6ZGVzY3JpYmVkQnlPYmplY3RzIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmRlc2NyaXB0aW9uRm9y
T2JqZWN0cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2Jq
ZWN0OjpkZXRhaWxzRm9yT2JqZWN0cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpBWElzb2xhdGVkT2JqZWN0OjplcnJvck1lc3NhZ2VGb3JPYmplY3RzIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmZsb3dGcm9tT2JqZWN0cyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpsYWJl
bGxlZEJ5T2JqZWN0cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xh
dGVkT2JqZWN0OjpsYWJlbEZvck9iamVjdHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZE9iamVjdDo6b3duZXJzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKwogMjAyMi0w
NS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3NEaWRDaGFuZ2Ugc2hvdWxkIG5vdCByZWNvbmZpZ3Vy
ZSB0aGUgYXVkaW8gdW5pdCBpZiBDb3JlQXVkaW9DYXB0dXJlU291cmNlIGlzIG5vdCBzdGFydGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDExOTNhN2UxOWE2ZDQxNzIxYmYyNzhh
M2MzMDUwNzc3ZjFhNTdjMGQuLmRjNGRjYjc4Y2FkOTk0Njk2ZDBkZThlN2NlNjcwYzI1NTg4ZDY3
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0zMzIsMTEgKzMzMiwyMSBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKEFYQ29yZU9iamVjdCYg
Y29yZU9iamVjdCwgSXNSb290IGlzUgogICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpMaW5rZWRPYmplY3RzLCBvYmplY3QubGlua2VkT2JqZWN0cygpKTsKIAogICAg
IC8vIFJlbGF0aW9ucy4KKyAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6QWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cywgb2JqZWN0LmFjdGl2ZURlc2NlbmRhbnRPZk9i
amVjdHMoKSk7CiAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNv
bnRyb2xsZWRPYmplY3RzLCBvYmplY3QuY29udHJvbGxlZE9iamVjdHMoKSk7CisgICAgc2V0T2Jq
ZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNvbnRyb2xsZXJzLCBvYmplY3QuY29u
dHJvbGxlcnMoKSk7CisgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkRlc2NyaWJlZEJ5T2JqZWN0cywgb2JqZWN0LmRlc2NyaWJlZEJ5T2JqZWN0cygpKTsKKyAgICBz
ZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb25Gb3JPYmpl
Y3RzLCBvYmplY3QuZGVzY3JpcHRpb25Gb3JPYmplY3RzKCkpOwogICAgIHNldE9iamVjdFZlY3Rv
clByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEZXRhaWxlZEJ5T2JqZWN0cywgb2JqZWN0LmRldGFp
bGVkQnlPYmplY3RzKCkpOworICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlO
YW1lOjpEZXRhaWxzRm9yT2JqZWN0cywgb2JqZWN0LmRldGFpbHNGb3JPYmplY3RzKCkpOwogICAg
IHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpFcnJvck1lc3NhZ2VPYmpl
Y3RzLCBvYmplY3QuZXJyb3JNZXNzYWdlT2JqZWN0cygpKTsKKyAgICBzZXRPYmplY3RWZWN0b3JQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RXJyb3JNZXNzYWdlRm9yT2JqZWN0cywgb2JqZWN0LmVy
cm9yTWVzc2FnZUZvck9iamVjdHMoKSk7CiAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OkZsb3dUb09iamVjdHMsIG9iamVjdC5mbG93VG9PYmplY3RzKCkpOworICAg
IHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpGbG93RnJvbU9iamVjdHMs
IG9iamVjdC5mbG93RnJvbU9iamVjdHMoKSk7CisgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OkxhYmVsbGVkQnlPYmplY3RzLCBvYmplY3QubGFiZWxsZWRCeU9iamVj
dHMoKSk7CisgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkxhYmVs
Rm9yT2JqZWN0cywgb2JqZWN0LmxhYmVsRm9yT2JqZWN0cygpKTsKICAgICBzZXRPYmplY3RWZWN0
b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6T3duZWRPYmplY3RzLCBvYmplY3Qub3duZWRPYmpl
Y3RzKCkpOworICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpPd25l
cnMsIG9iamVjdC5vd25lcnMoKSk7CiAKICAgICAvLyBTcGluIGJ1dHRvbiBzdXBwb3J0LgogICAg
IHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEZWNyZW1lbnRCdXR0b24sIG9iamVj
dC5kZWNyZW1lbnRCdXR0b24oKSk7CkBAIC0xODU5LDY2ICsxODY5LDYgQEAgQVhDb3JlT2JqZWN0
KiBBWElzb2xhdGVkT2JqZWN0OjpzZWxlY3RlZExpc3RJdGVtKCkKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29s
YXRlZE9iamVjdDo6YWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6Y29udHJvbGxlcnMo
KSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFYSXNvbGF0ZWRP
YmplY3Q6OmRlc2NyaWJlZEJ5T2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6ZGVzY3JpcHRpb25Gb3JPYmplY3RzKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQot
Ci1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2Jq
ZWN0OjpkZXRhaWxzRm9yT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6ZXJyb3JNZXNzYWdlRm9yT2JqZWN0cygpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQot
QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVj
dDo6Zmxvd0Zyb21PYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciBBWElzb2xhdGVkT2JqZWN0OjpsYWJlbGxlZEJ5T2JqZWN0cygpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2Jq
ZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6bGFiZWxG
b3JPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBB
WElzb2xhdGVkT2JqZWN0Ojpvd25lcnMoKSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6aGFzRGF0
YWxpc3QoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCmluZGV4IDM3Nzc3NDYyZjQyNTE1NTI3ZWQ3OTE0MTNhZTQ4MmRiNjNkMzk2OTEu
LjlkNTdmOGM5OGRiYWY4OGNkNzg0NGQxMzQ3MGUwMTlkOGFmNjUxZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgKQEAgLTU0MSwyMSArNTQxLDIxIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgc3Rl
cFZhbHVlRm9yUmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIHNlbGVj
dGVkTGlzdEl0ZW0oKSBvdmVycmlkZTsKIAotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBhY3RpdmVEZXNjZW5kYW50T2ZPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIGFjdGl2ZURlc2NlbmRhbnRPZk9iamVjdHMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRlVmFs
dWU8QVhJRD4oQVhQcm9wZXJ0eU5hbWU6OkFjdGl2ZURlc2NlbmRhbnRPZk9iamVjdHMpKTsgfQog
ICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb250cm9sbGVkT2JqZWN0cygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVW
YWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6Q29udHJvbGxlZE9iamVjdHMpKTsgfQotICAgIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb250cm9sbGVycygpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXNjcmliZWRCeU9iamVjdHMoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVzY3JpcHRpb25G
b3JPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIGNvbnRyb2xsZXJzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3Rz
Rm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpDb250cm9s
bGVycykpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRlc2NyaWJlZEJ5T2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0
b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6RGVzY3JpYmVkQnlPYmplY3Rz
KSk7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVzY3JpcHRpb25Gb3JPYmpl
Y3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3Rv
ckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpEZXNjcmlwdGlvbkZvck9iamVj
dHMpKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXRhaWxlZEJ5T2JqZWN0
cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JB
dHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6RGV0YWlsZWRCeU9iamVjdHMpKTsg
fQotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXRhaWxzRm9yT2JqZWN0cygpIGNv
bnN0IG92ZXJyaWRlOworICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXRhaWxzRm9y
T2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2
ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6RGV0YWlsc0Zvck9iamVj
dHMpKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBlcnJvck1lc3NhZ2VPYmpl
Y3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3Rv
ckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpFcnJvck1lc3NhZ2VPYmplY3Rz
KSk7IH0KLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZXJyb3JNZXNzYWdlRm9yT2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlOworICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBl
cnJvck1lc3NhZ2VGb3JPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5v
YmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpF
cnJvck1lc3NhZ2VGb3JPYmplY3RzKSk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgZmxvd1RvT2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0
c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6Rmxvd1Rv
T2JqZWN0cykpOyB9Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGZsb3dGcm9tT2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBs
YWJlbGxlZEJ5T2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBsYWJlbEZvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3IgZmxvd0Zyb21PYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFY
UHJvcGVydHlOYW1lOjpGbG93RnJvbU9iamVjdHMpKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBsYWJlbGxlZEJ5T2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
ZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5
TmFtZTo6TGFiZWxsZWRCeU9iamVjdHMpKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBsYWJlbEZvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cmVlKCktPm9i
amVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRlVmFsdWU8QVhJRD4oQVhQcm9wZXJ0eU5hbWU6Okxh
YmVsRm9yT2JqZWN0cykpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIG93bmVk
T2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2
ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6T3duZWRPYmplY3RzKSk7
IH0KLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igb3duZXJzKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIG93bmVycygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxB
WElEPihBWFByb3BlcnR5TmFtZTo6T3duZXJzKSk7IH0KIAogICAgIGJvb2wgaGFzRGF0YWxpc3Qo
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBvcnRzSGFzUG9wdXAoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IDAzMzEwZWYxN2ZhNzBiNDI5OGQ5M2MzNmQ2
NWU0ZDI4NzFhZGRiMzguLmIxMGRlYjM4MmI5MzEwZTUwNGU3MzI4ZWZiNGU2MWFiZDNhMTU5YzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtNjIsNiArNjIsNyBAQCBlbnVtIGNsYXNzIEFYUHJv
cGVydHlOYW1lIDogdWludDE2X3QgewogICAgIEFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbiwKICAg
ICBBY2Nlc3NpYmlsaXR5VGV4dCwKICAgICBBY3Rpb25WZXJiLAorICAgIEFjdGl2ZURlc2NlbmRh
bnRPZk9iamVjdHMsCiAgICAgQW5jZXN0b3JGbGFncywKICAgICBBdXRvQ29tcGxldGVWYWx1ZSwK
ICAgICBCbG9ja3F1b3RlTGV2ZWwsCkBAIC05MywxMiArOTQsMTYgQEAgZW51bSBjbGFzcyBBWFBy
b3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBDb21wdXRlZFJvbGVTdHJpbmcsCiAgICAgQ29u
dGVudHMsCiAgICAgQ29udHJvbGxlZE9iamVjdHMsCisgICAgQ29udHJvbGxlcnMsCiAgICAgQ3Vy
cmVudFN0YXRlLAogICAgIEN1cnJlbnRWYWx1ZSwKICAgICBEYXRldGltZUF0dHJpYnV0ZVZhbHVl
LAogICAgIERlY3JlbWVudEJ1dHRvbiwKKyAgICBEZXNjcmliZWRCeU9iamVjdHMsCiAgICAgRGVz
Y3JpcHRpb24sCisgICAgRGVzY3JpcHRpb25Gb3JPYmplY3RzLAogICAgIERldGFpbGVkQnlPYmpl
Y3RzLAorICAgIERldGFpbHNGb3JPYmplY3RzLAogICAgIERpc2Nsb3NlZEJ5Um93LAogICAgIERp
c2Nsb3NlZFJvd3MsCiAgICAgRG9jdW1lbnRFbmNvZGluZywKQEAgLTEwOCw5ICsxMTMsMTEgQEAg
ZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBFZGl0YWJsZUFuY2Vz
dG9yLAogICAgIEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiwKICAgICBFcnJvck1lc3NhZ2VPYmpl
Y3RzLAorICAgIEVycm9yTWVzc2FnZUZvck9iamVjdHMsCiAgICAgRXhwYW5kZWRUZXh0VmFsdWUs
CiAgICAgRmlsZVVwbG9hZEJ1dHRvblJldHVybnNWYWx1ZUluVGl0bGUsCiAgICAgRmxvd1RvT2Jq
ZWN0cywKKyAgICBGbG93RnJvbU9iamVjdHMsCiAgICAgRm9jdXNhYmxlQW5jZXN0b3IsCiAgICAg
SGFzQVJJQVZhbHVlTm93LAogICAgIEhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSwKQEAg
LTIyNSw2ICsyMzIsOCBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3Qgewog
ICAgIElzVmlzaXRlZCwKICAgICBJc1dpZGdldCwKICAgICBLZXlTaG9ydGN1dHNWYWx1ZSwKKyAg
ICBMYWJlbGxlZEJ5T2JqZWN0cywKKyAgICBMYWJlbEZvck9iamVjdHMsCiAgICAgTGFuZ3VhZ2Us
CiAgICAgTGF5b3V0Q291bnQsCiAgICAgTGlua1JlbFZhbHVlLApAQCAtMjUxLDYgKzI2MCw3IEBA
IGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgTWluVmFsdWVGb3JS
YW5nZSwKICAgICBOYW1lQXR0cmlidXRlLAogICAgIE93bmVkT2JqZWN0cywKKyAgICBPd25lcnMs
CiAgICAgT3JpZW50YXRpb24sCiAgICAgT3V0ZXJIVE1MLAogICAgIFBhdGgsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459893</attachid>
            <date>2022-05-31 11:31:03 -0700</date>
            <delta_ts>2022-06-01 19:21:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240239-20220531143102.patch</filename>
            <type>text/plain</type>
            <size>23091</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBkYWE4YjNlZGVjZmMwZWE3OWI2OWZhYTIzNTA2NjA2YThhZjVhN2ZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBNb24sIDkgTWF5IDIwMjIgMTI6MjM6MDcgLTA0MDAKU3ViamVjdDogW1BBVENIXSBB
WCBJVE06IENhY2hlIHNldmVyYWwgb2JqZWN0IHJlbGF0aW9uc2hpcHMgdGhhdCB3ZXJlIG5vdAog
Y2FjaGVkIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI0MDIzOQoKSW5zdGVhZCBvZiBjYWNoaW5nIGluZGl2aWR1YWwgcmVsYXRp
b25zIGFzIHNlcGFyYXRlIFZlY3RvcnMgb2YgQVhJc29sYXRlZE9iamVjdHMsIHRoaXMgcGF0Y2gg
dXNlcyB0aGUgbmV3IHJlbGF0aW9uc2hpcHMgaW1wbGVtZW50YXRpb24gdG8gY2FjaGUgYSBjb3B5
IG9mIHRoZSBBWE9iamVjdENhY2hlOjptX3JlbGF0aW9ucyBpbiB0aGUgQVhJc29sYXRlZFRyZWUu
IFRoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgdXBkYXRlZCB3aGVuIHRoZSBBWE9iamVjdENhY2hlIHNl
dHMgdGhlIGZsYWcgbV9yZWxhdGlvbnNOZWVkVXBkYXRlIGFuZCBvbmUgb2YgdGhlIHJlbGF0aW9u
cyBwcm9wZXJ0aWVzIGlzIHJlcXVlc3RlZCBvbiB0aGUgQVggdGhyZWFkLiBUaGlzIGFsbG93cyBm
b3IgYSBjb21tb24gaW1wbGVtZW50YXRpb24gZm9yIGFsbCB0aGUgbWV0aG9kcyB0byByZXRyaWV2
ZSBpbmRpdmlkdWFsIHJlbGF0aW9uc2hpcHMsIGFuZCB0aGUgbWFpbiB0d28gZGVyaXZlZCBjbGFz
c2VzIEFYT2JqZWN0IGFuZCBBWElzb2xhdGVkT2JqZWN0IG9ubHkgb3ZlcnJpZGUgdGhlIHJlbGF0
ZWRPYmplY3RzIG1ldGhvZC4KLS0tCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAyMiArKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICB8ICA4ICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAgICAgfCA3NyArLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmggICAgICAgfCAxOCArLS0tLQogLi4uL0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaCAgICAgICAgICAgIHwgMzIgKysrKy0tLS0KIC4uLi9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgICAgICAgICB8IDc0ICsrLS0tLS0tLS0tLS0tLS0tLQog
Li4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAgIHwgMTYgKy0tLQog
Li4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAgIHwgMjMgKysrKysr
CiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAgICAgfCAxNyArKy0t
CiA5IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDIwMSBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA5
NGYwMDE3MTY1ZTQuLjQzMDFlZjU0OTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0zNzY0LDcgKzM3NjQsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmFkZFJlbGF0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9yaWdpbiwgQWNjZXNz
aWJpbGl0eU9iamVjdAogICAgIGF1dG8gcmVsYXRpb25zSXRlcmF0b3IgPSBtX3JlbGF0aW9ucy5m
aW5kKG9yaWdpbi0+b2JqZWN0SUQoKSk7CiAgICAgaWYgKHJlbGF0aW9uc0l0ZXJhdG9yID09IG1f
cmVsYXRpb25zLmVuZCgpKSB7CiAgICAgICAgIC8vIE5vIHJlbGF0aW9ucyBmb3IgdGhpcyBvYmpl
Y3QsIGFkZCB0aGUgZmlyc3Qgb25lLgotICAgICAgICBtX3JlbGF0aW9ucy5hZGQob3JpZ2luLT5v
YmplY3RJRCgpLCBSZWxhdGlvbnMgeyB7IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHJlbGF0aW9uVHlw
ZSksIHsgdGFyZ2V0LT5vYmplY3RJRCgpIH0gfSB9KTsKKyAgICAgICAgbV9yZWxhdGlvbnMuYWRk
KG9yaWdpbi0+b2JqZWN0SUQoKSwgQVhSZWxhdGlvbnMgeyB7IHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KHJlbGF0aW9uVHlwZSksIHsgdGFyZ2V0LT5vYmplY3RJRCgpIH0gfSB9KTsKICAgICB9IGVsc2Ug
aWYgKGF1dG8gdGFyZ2V0c0l0ZXJhdG9yID0gcmVsYXRpb25zSXRlcmF0b3ItPnZhbHVlLmZpbmQo
c3RhdGljX2Nhc3Q8dWludDhfdD4ocmVsYXRpb25UeXBlKSk7IHRhcmdldHNJdGVyYXRvciA9PSBy
ZWxhdGlvbnNJdGVyYXRvci0+dmFsdWUuZW5kKCkpIHsKICAgICAgICAgLy8gTm8gcmVsYXRpb24g
b2YgdGhpcyB0eXBlIGZvciB0aGlzIG9iamVjdCwgYWRkIHRoZSBmaXJzdCBvbmUuCiAgICAgICAg
IHJlbGF0aW9uc0l0ZXJhdG9yLT52YWx1ZS5hZGQoc3RhdGljX2Nhc3Q8dWludDhfdD4ocmVsYXRp
b25UeXBlKSwgVmVjdG9yPEFYSUQ+IHsgdGFyZ2V0LT5vYmplY3RJRCgpIH0pOwpAQCAtMzgzNSw3
ICszODM1LDI1IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlUmVsYXRpb25zSWZOZWVkZWQo
KQogICAgIH0KIH0KIAotc3RkOjpvcHRpb25hbDxWZWN0b3I8QVhJRD4+IEFYT2JqZWN0Q2FjaGU6
OnJlbGF0ZWRPYmplY3RzRm9yKGNvbnN0IEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWFJlbGF0aW9u
VHlwZSByZWxhdGlvblR5cGUpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbGF0aW9uc05lZWRVcGRh
dGUoYm9vbCBuZWVkVXBkYXRlKQoreworICAgIG1fcmVsYXRpb25zTmVlZFVwZGF0ZSA9IG5lZWRV
cGRhdGU7CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorICAgIGlm
IChtX3JlbGF0aW9uc05lZWRVcGRhdGUgJiYgbV9wYWdlSUQpIHsKKyAgICAgICAgaWYgKGF1dG8g
dHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlEKCptX3BhZ2VJRCkpCisgICAgICAg
ICAgICB0cmVlLT5yZWxhdGlvbnNOZWVkVXBkYXRlKHRydWUpOworICAgIH0KKyNlbmRpZgorfQor
CitIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPiBBWE9iamVjdENhY2hlOjpyZWxhdGlvbnMoKQor
eworICAgIHVwZGF0ZVJlbGF0aW9uc0lmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1fcmVsYXRpb25z
OworfQorCitzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBWElEPj4gQVhPYmplY3RDYWNoZTo6cmVsYXRl
ZE9iamVjdElEc0Zvcihjb25zdCBBWENvcmVPYmplY3QmIG9iamVjdCwgQVhSZWxhdGlvblR5cGUg
cmVsYXRpb25UeXBlKQogewogICAgIHVwZGF0ZVJlbGF0aW9uc0lmTmVlZGVkKCk7CiAgICAgYXV0
byByZWxhdGlvbnNJdGVyYXRvciA9IG1fcmVsYXRpb25zLmZpbmQob2JqZWN0Lm9iamVjdElEKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBm
YmUzZmQyNzg1NzAuLmUzZWIwMWZmOGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTM3OCw3ICszNzgsNyBAQCBwdWJsaWM6CiAgICAgQVhU
cmVlRGF0YSB0cmVlRGF0YSgpOwogCiAgICAgLy8gUmV0dXJucyB0aGUgSURzIG9mIHRoZSBvYmpl
Y3RzIHRoYXQgcmVsYXRlIHRvIHRoZSBnaXZlbiBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIHJl
bGF0aW9uc2hpcC4KLSAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBWElEPj4gcmVsYXRlZE9iamVj
dHNGb3IoY29uc3QgQVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUpOworICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEFYSUQ+PiByZWxhdGVkT2JqZWN0SURzRm9yKGNvbnN0IEFYQ29yZU9iamVj
dCYsIEFYUmVsYXRpb25UeXBlKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVE
X1RSRUUpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNJc29sYXRlZFRyZWVFbmFi
bGVkKCk7CkBAIC00OTgsNyArNDk4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFJlbGF0aW9u
KEVsZW1lbnQqLCBFbGVtZW50KiwgQVhSZWxhdGlvblR5cGUpOwogICAgIHZvaWQgYWRkUmVsYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFJlbGF0aW9u
VHlwZSwgQWRkaW5nU3ltbWV0cmljUmVsYXRpb24gPSBBZGRpbmdTeW1tZXRyaWNSZWxhdGlvbjo6
Tm8pOwogICAgIHZvaWQgdXBkYXRlUmVsYXRpb25zSWZOZWVkZWQoKTsKLSAgICB2b2lkIHJlbGF0
aW9uc05lZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKSB7IG1fcmVsYXRpb25zTmVlZFVwZGF0ZSA9
IG5lZWRVcGRhdGU7IH0KKyAgICB2b2lkIHJlbGF0aW9uc05lZWRVcGRhdGUoYm9vbCk7CisgICAg
SGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4gcmVsYXRpb25zKCk7CiAKICAgICBEb2N1bWVudCYg
bV9kb2N1bWVudDsKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBtX3Bh
Z2VJRDsgLy8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxpZmV0aW1lLgpAQCAtNTU2LDggKzU1Nyw3
IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fbG9hZGluZ1Byb2dyZXNzIHsgMCB9OwogCiAgICAg
Ly8gUmVsYXRpb25zaGlwcyBiZXR3ZWVuIG9iamVjdHMuCi0gICAgdXNpbmcgUmVsYXRpb25zID0g
SGFzaE1hcDxBWFJlbGF0aW9uVHlwZSwgVmVjdG9yPEFYSUQ+LCBEZWZhdWx0SGFzaDx1aW50OF90
PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50OF90Pj47Ci0gICAgSGFz
aE1hcDxBWElELCBSZWxhdGlvbnM+IG1fcmVsYXRpb25zOworICAgIEhhc2hNYXA8QVhJRCwgQVhS
ZWxhdGlvbnM+IG1fcmVsYXRpb25zOwogICAgIGJvb2wgbV9yZWxhdGlvbnNOZWVkVXBkYXRlIHsg
dHJ1ZSB9OwogCiAjaWYgVVNFKEFUU1BJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggZTdiOTkyYTRmYTRhLi5jMjEz
OGI2ZjYxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMzkyOCw3ICszOTI4LDcgQEAgQVhDb3JlT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVsYXRlZE9i
amVjdHMoQVgKICAgICBpZiAoIWNhY2hlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0
byByZWxhdGVkT2JqZWN0SURzID0gY2FjaGUtPnJlbGF0ZWRPYmplY3RzRm9yKCp0aGlzLCByZWxh
dGlvblR5cGUpOworICAgIGF1dG8gcmVsYXRlZE9iamVjdElEcyA9IGNhY2hlLT5yZWxhdGVkT2Jq
ZWN0SURzRm9yKCp0aGlzLCByZWxhdGlvblR5cGUpOwogICAgIGlmICghcmVsYXRlZE9iamVjdElE
cykKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4gY2FjaGUtPm9iamVjdHNGb3JJRHMo
KnJlbGF0ZWRPYmplY3RJRHMpOwpAQCAtMzk0NSw4MSArMzk0NSw2IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFpbmVyKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjdGl2ZURlc2NlbmRhbnRPZk9iamVjdHMo
KSBjb25zdAotewotICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6QWN0
aXZlRGVzY2VuZGFudE9mKTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udHJvbGxlZE9iamVjdHMoKSBjb25zdAot
ewotICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6Q29udHJvbGxlckZv
cik7Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OmNvbnRyb2xsZXJzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcmVsYXRl
ZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkNvbnRyb2xsZWRCeSk7Ci19Ci0KLUFYQ29yZU9iamVj
dDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlc2Ny
aWJlZEJ5T2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVs
YXRpb25UeXBlOjpEZXNjcmliZWRCeSk7Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlc2NyaXB0aW9uRm9yT2JqZWN0
cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpE
ZXNjcmlwdGlvbkZvcik7Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRldGFpbGVkQnlPYmplY3RzKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRldGFpbHMpOwotfQot
Ci1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpkZXRhaWxzRm9yT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRP
YmplY3RzKEFYUmVsYXRpb25UeXBlOjpEZXRhaWxzRm9yKTsKLX0KLQotQVhDb3JlT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZXJyb3JNZXNz
YWdlT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRp
b25UeXBlOjpFcnJvck1lc3NhZ2UpOwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0OjplcnJvck1lc3NhZ2VGb3JPYmplY3Rz
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkVy
cm9yTWVzc2FnZUZvcik7Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmZsb3dUb09iamVjdHMoKSBjb25zdAotewotICAg
IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6Rmxvd3NUbyk7Ci19Ci0KLUFY
Q29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmZsb3dGcm9tT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3Rz
KEFYUmVsYXRpb25UeXBlOjpGbG93c0Zyb20pOwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsYWJlbGxlZEJ5T2JqZWN0
cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpM
YWJlbGxlZEJ5KTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGFiZWxGb3JPYmplY3RzKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkxhYmVsRm9yKTsKLX0KLQotQVhD
b3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVj
dDo6b3duZWRPYmplY3RzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhS
ZWxhdGlvblR5cGU6Ok93bmVyRm9yKTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6b3duZXJzKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6Ok93bmVkQnkpOwotfQotCiB2
b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hp
bGQoQVhDb3JlT2JqZWN0KiBjaGlsZCkKIHsKICAgICBpZiAoIWlzPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+KGNoaWxkKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggNWNlM2NlY2VlMjM2Li41M2M2M2NkY2Q1NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBA
IC0zMDIsMjIgKzMwMiw2IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzQVJJQU93bnMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY3RpdmVEZXNjZW5k
YW50T2ZGb2N1c2VkQ29udGFpbmVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IgYWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cygpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb250cm9sbGVkT2JqZWN0cygp
IGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb250cm9s
bGVycygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBk
ZXNjcmliZWRCeU9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgZGVzY3JpcHRpb25Gb3JPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRldGFpbGVkQnlPYmplY3RzKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRldGFpbHNGb3JPYmplY3Rz
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGVycm9y
TWVzc2FnZU9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3IgZXJyb3JNZXNzYWdlRm9yT2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBmbG93VG9PYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGZsb3dGcm9tT2JqZWN0cygpIGNvbnN0
IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBsYWJlbGxlZEJ5T2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBs
YWJlbEZvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3Igb3duZWRPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIG93bmVycygpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgYm9vbCBoYXNQ
b3B1cCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgU3RyaW5nIHBvcHVw
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGhhc0RhdGFsaXN0KCkgY29uc3Qgb3Zl
cnJpZGU7CkBAIC03ODUsNyArNzY5LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBkb2N1bWVudEVu
Y29kaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
IGRvY3VtZW50TGlua3MoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IoKTsgfQogCi0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJlbGF0ZWRPYmpl
Y3RzKEFYUmVsYXRpb25UeXBlKSBjb25zdDsKKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwogcHJvdGVj
dGVkOgogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QoKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFj
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmgKaW5kZXggZjc0Nzg0YTk1MGMzLi43MzBkYzM5NDk5YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCkBAIC03OTgsNiArNzk4LDcgQEAgZW51bSBjbGFzcyBBWFJlbGF0aW9uVHlwZSA6
IHVpbnQ4X3QgewogICAgIE93bmVkQnksCiAgICAgT3duZXJGb3IsCiB9OwordXNpbmcgQVhSZWxh
dGlvbnMgPSBIYXNoTWFwPEFYUmVsYXRpb25UeXBlLCBWZWN0b3I8QVhJRD4sIERlZmF1bHRIYXNo
PHVpbnQ4X3Q+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ4X3Q+PjsK
IAogLy8gVXNlIHRoaXMgc3RydWN0IHRvIHN0b3JlIHRoZSBpc0lnbm9yZWQgZGF0YSB0aGF0IGRl
cGVuZHMgb24gdGhlIHBhcmVudHMsIHNvIHRoYXQgaW4gYWRkQ2hpbGRyZW4oKQogLy8gd2UgYXZv
aWQgZ29pbmcgdXAgdGhlIHBhcmVudCBjaGFpbiBmb3IgZWFjaCBlbGVtZW50IHdoaWxlIHRyYXZl
cnNpbmcgdGhlIHRyZWUgd2l0aCB1c2VmdWwgaW5mb3JtYXRpb24gYWxyZWFkeS4KQEAgLTEwNzMs
MjEgKzEwNzQsMjIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZURlc2NlbmRh
bnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdCA9IDA7CiAKICAgICAvLyBSZXRyaWV2YWwgb2Yg
cmVsYXRlZCBvYmplY3RzLgotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
IGFjdGl2ZURlc2NlbmRhbnRPZk9iamVjdHMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29udHJvbGxlZE9iamVjdHMoKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29udHJvbGxlcnMoKSBjb25z
dCA9IDA7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVzY3JpYmVk
QnlPYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGRlc2NyaXB0aW9uRm9yT2JqZWN0cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXRhaWxlZEJ5T2JqZWN0cygpIGNvbnN0ID0gMDsK
LSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXRhaWxzRm9yT2JqZWN0
cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBl
cnJvck1lc3NhZ2VPYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGVycm9yTWVzc2FnZUZvck9iamVjdHMoKSBjb25zdCA9IDA7Ci0gICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZmxvd1RvT2JqZWN0cygpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBmbG93RnJvbU9i
amVjdHMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgbGFiZWxsZWRCeU9iamVjdHMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IgbGFiZWxGb3JPYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIG93bmVkT2JqZWN0cygpIGNvbnN0ID0gMDsK
LSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBvd25lcnMoKSBjb25zdCA9
IDA7CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGFjdGl2ZURlc2NlbmRhbnRPZk9i
amVjdHMoKSBjb25zdCB7IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6QWN0
aXZlRGVzY2VuZGFudE9mKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb250
cm9sbGVkT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25U
eXBlOjpDb250cm9sbGVyRm9yKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBj
b250cm9sbGVycygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBl
OjpDb250cm9sbGVkQnkpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRlc2Ny
aWJlZEJ5T2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25U
eXBlOjpEZXNjcmliZWRCeSk7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVz
Y3JpcHRpb25Gb3JPYmplY3RzKCkgY29uc3QgeyByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxh
dGlvblR5cGU6OkRlc2NyaXB0aW9uRm9yKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBkZXRhaWxlZEJ5T2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFY
UmVsYXRpb25UeXBlOjpEZXRhaWxzKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBkZXRhaWxzRm9yT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVs
YXRpb25UeXBlOjpEZXRhaWxzRm9yKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBlcnJvck1lc3NhZ2VPYmplY3RzKCkgY29uc3QgeyByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhS
ZWxhdGlvblR5cGU6OkVycm9yTWVzc2FnZSk7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IgZXJyb3JNZXNzYWdlRm9yT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmpl
Y3RzKEFYUmVsYXRpb25UeXBlOjpFcnJvck1lc3NhZ2VGb3IpOyB9CisgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGZsb3dUb09iamVjdHMoKSBjb25zdCB7IHJldHVybiByZWxhdGVkT2Jq
ZWN0cyhBWFJlbGF0aW9uVHlwZTo6Rmxvd3NUbyk7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3IgZmxvd0Zyb21PYmplY3RzKCkgY29uc3QgeyByZXR1cm4gcmVsYXRlZE9iamVjdHMo
QVhSZWxhdGlvblR5cGU6OkZsb3dzRnJvbSk7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IgbGFiZWxsZWRCeU9iamVjdHMoKSBjb25zdCB7IHJldHVybiByZWxhdGVkT2JqZWN0cyhB
WFJlbGF0aW9uVHlwZTo6TGFiZWxsZWRCeSk7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IgbGFiZWxGb3JPYmplY3RzKCkgY29uc3QgeyByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhS
ZWxhdGlvblR5cGU6OkxhYmVsRm9yKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBvd25lZE9iamVjdHMoKSBjb25zdCB7IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9u
VHlwZTo6T3duZXJGb3IpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIG93bmVy
cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpPd25lZEJ5
KTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJlbGF0ZWRPYmpl
Y3RzKEFYUmVsYXRpb25UeXBlKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzUG9w
dXAoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgcG9wdXBWYWx1ZSgpIGNvbnN0ID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggMGQ3MjRiZTg3NDE3Li5kYzRiOWI4
ODIxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0zMjgsMTMgKzMyOCw2IEBA
IHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoQVhDb3JlT2JqZWN0
JiBjb3JlT2JqZWN0LCBJc1Jvb3QgaXNSCiAKICAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6TGlua2VkT2JqZWN0cywgb2JqZWN0LmxpbmtlZE9iamVjdHMoKSk7CiAK
LSAgICAvLyBSZWxhdGlvbnMuCi0gICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkNvbnRyb2xsZWRPYmplY3RzLCBvYmplY3QuY29udHJvbGxlZE9iamVjdHMoKSk7Ci0g
ICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRldGFpbGVkQnlPYmpl
Y3RzLCBvYmplY3QuZGV0YWlsZWRCeU9iamVjdHMoKSk7Ci0gICAgc2V0T2JqZWN0VmVjdG9yUHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OkVycm9yTWVzc2FnZU9iamVjdHMsIG9iamVjdC5lcnJvck1l
c3NhZ2VPYmplY3RzKCkpOwotICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlO
YW1lOjpGbG93VG9PYmplY3RzLCBvYmplY3QuZmxvd1RvT2JqZWN0cygpKTsKLSAgICBzZXRPYmpl
Y3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6T3duZWRPYmplY3RzLCBvYmplY3Qub3du
ZWRPYmplY3RzKCkpOwotCiAgICAgLy8gU3BpbiBidXR0b24gc3VwcG9ydC4KICAgICBzZXRPYmpl
Y3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RGVjcmVtZW50QnV0dG9uLCBvYmplY3QuZGVjcmVt
ZW50QnV0dG9uKCkpOwogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJbmNy
ZW1lbnRCdXR0b24sIG9iamVjdC5pbmNyZW1lbnRCdXR0b24oKSk7CkBAIC0xODY1LDY2ICsxODU4
LDYgQEAgQVhDb3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjpzZWxlY3RlZExpc3RJdGVtKCkK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6YWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cygp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9i
amVjdDo6Y29udHJvbGxlcnMoKSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiB7IH07Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIEFYSXNvbGF0ZWRPYmplY3Q6OmRlc2NyaWJlZEJ5T2JqZWN0cygpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2Jq
ZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6ZGVzY3Jp
cHRpb25Gb3JPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBBWElzb2xhdGVkT2JqZWN0OjpkZXRhaWxzRm9yT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6ZXJyb3JNZXNz
YWdlRm9yT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIHsgfTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgQVhJc29sYXRlZE9iamVjdDo6Zmxvd0Zyb21PYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0OjpsYWJlbGxlZEJ5T2Jq
ZWN0cygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsg
fTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29s
YXRlZE9iamVjdDo6bGFiZWxGb3JPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0Ojpvd25lcnMoKSBjb25zdAotewotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIGJvb2wgQVhJc29s
YXRlZE9iamVjdDo6aGFzRGF0YWxpc3QoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMjE4Myw2ICsyMTE2LDEzIEBAIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6c2hvdWxk
Rm9jdXNBY3RpdmVEZXNjZW5kYW50KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FY
Q29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFYSXNvbGF0ZWRPYmplY3Q6
OnJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlIHJlbGF0aW9uVHlwZSkgY29uc3QKK3sKKyAg
ICBpZiAoYXV0byByZWxhdGVkT2JqZWN0SURzID0gdHJlZSgpLT5yZWxhdGVkT2JqZWN0SURzRm9y
KCp0aGlzLCByZWxhdGlvblR5cGUpKQorICAgICAgICByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9y
SURzKCpyZWxhdGVkT2JqZWN0SURzKTsKKyAgICByZXR1cm4geyB9OworfQorCiBBWENvcmVPYmpl
Y3QqIEFYSXNvbGF0ZWRPYmplY3Q6OmFjdGl2ZURlc2NlbmRhbnQoKSBjb25zdAogewogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDBlZDkwNGY5
MGQ3Ni4uNWFiY2U4ZmZhOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC01NDEsMjEg
KzU0MSw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgc3RlcFZhbHVlRm9yUmFuZ2UoKSBjb25zdCBv
dmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIHNlbGVjdGVkTGlzdEl0ZW0oKSBvdmVycmlkZTsK
IAotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBhY3RpdmVEZXNjZW5kYW50T2ZPYmpl
Y3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNv
bnRyb2xsZWRPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3Rz
Rm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpDb250cm9s
bGVkT2JqZWN0cykpOyB9Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbnRyb2xs
ZXJzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRl
c2NyaWJlZEJ5T2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBkZXNjcmlwdGlvbkZvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGV0YWlsZWRCeU9iamVjdHMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRlVmFsdWU8
QVhJRD4oQVhQcm9wZXJ0eU5hbWU6OkRldGFpbGVkQnlPYmplY3RzKSk7IH0KLSAgICBBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGV0YWlsc0Zvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsK
LSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZXJyb3JNZXNzYWdlT2JqZWN0cygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1
dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6RXJyb3JNZXNzYWdlT2JqZWN0cykpOyB9Ci0g
ICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGVycm9yTWVzc2FnZUZvck9iamVjdHMoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZmxvd1RvT2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0
b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6Rmxvd1RvT2JqZWN0cykpOyB9
Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGZsb3dGcm9tT2JqZWN0cygpIGNvbnN0
IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBsYWJlbGxlZEJ5T2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBs
YWJlbEZvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3Igb3duZWRPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5v
YmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpP
d25lZE9iamVjdHMpKTsgfQotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBvd25lcnMo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgcmVsYXRl
ZE9iamVjdHMoQVhSZWxhdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNE
YXRhbGlzdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNIYXNQb3B1cCgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IDUzNjY1YmJlZDNkMC4u
ZDFlMGVkY2UyODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC02MTEsNiArNjExLDI5
IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcChBWElEIG9i
amVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyCiAgICAgfQogfQogCitzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxBWElEPj4gQVhJc29sYXRlZFRyZWU6OnJlbGF0ZWRPYmplY3RJRHNGb3IoY29uc3QgQVhD
b3JlT2JqZWN0JiBvYmplY3QsIEFYUmVsYXRpb25UeXBlIHJlbGF0aW9uVHlwZSkKK3sKKyAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRhdGUp
IHsKKyAgICAgICAgbV9yZWxhdGlvbnMgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJv
bU1haW5UaHJlYWQ8SGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4+KFt0aGlzXSAoKSAtPiBIYXNo
TWFwPEFYSUQsIEFYUmVsYXRpb25zPiB7CisgICAgICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBh
eE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5yZWxhdGlvbnMo
KTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0pOworICAgICAgICBtX3JlbGF0
aW9uc05lZWRVcGRhdGUgPSBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIHJlbGF0aW9uc0l0ZXJh
dG9yID0gbV9yZWxhdGlvbnMuZmluZChvYmplY3Qub2JqZWN0SUQoKSk7CisgICAgaWYgKHJlbGF0
aW9uc0l0ZXJhdG9yID09IG1fcmVsYXRpb25zLmVuZCgpKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgYXV0byB0YXJnZXRzSXRlcmF0b3IgPSByZWxhdGlvbnNJdGVyYXRvci0+
dmFsdWUuZmluZChzdGF0aWNfY2FzdDx1aW50OF90PihyZWxhdGlvblR5cGUpKTsKKyAgICBpZiAo
dGFyZ2V0c0l0ZXJhdG9yID09IHJlbGF0aW9uc0l0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gdGFyZ2V0c0l0ZXJhdG9yLT52YWx1
ZTsKK30KKwogdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiB7CiAg
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMiX3MpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmgKaW5kZXggMDMzMTBlZjE3ZmE3Li41ZTYzYzVhMzlhNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaApAQCAtOTIsMTMgKzkyLDExIEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5h
bWUgOiB1aW50MTZfdCB7CiAgICAgQ29sdW1uSW5kZXhSYW5nZSwKICAgICBDb21wdXRlZFJvbGVT
dHJpbmcsCiAgICAgQ29udGVudHMsCi0gICAgQ29udHJvbGxlZE9iamVjdHMsCiAgICAgQ3VycmVu
dFN0YXRlLAogICAgIEN1cnJlbnRWYWx1ZSwKICAgICBEYXRldGltZUF0dHJpYnV0ZVZhbHVlLAog
ICAgIERlY3JlbWVudEJ1dHRvbiwKICAgICBEZXNjcmlwdGlvbiwKLSAgICBEZXRhaWxlZEJ5T2Jq
ZWN0cywKICAgICBEaXNjbG9zZWRCeVJvdywKICAgICBEaXNjbG9zZWRSb3dzLAogICAgIERvY3Vt
ZW50RW5jb2RpbmcsCkBAIC0xMDcsMTAgKzEwNSw4IEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5h
bWUgOiB1aW50MTZfdCB7CiAgICAgRHJvcEVmZmVjdHMsCiAgICAgRWRpdGFibGVBbmNlc3RvciwK
ICAgICBFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24sCi0gICAgRXJyb3JNZXNzYWdlT2JqZWN0cywK
ICAgICBFeHBhbmRlZFRleHRWYWx1ZSwKICAgICBGaWxlVXBsb2FkQnV0dG9uUmV0dXJuc1ZhbHVl
SW5UaXRsZSwKLSAgICBGbG93VG9PYmplY3RzLAogICAgIEZvY3VzYWJsZUFuY2VzdG9yLAogICAg
IEhhc0FSSUFWYWx1ZU5vdywKICAgICBIYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUsCkBA
IC0yNTAsNyArMjQ2LDYgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsK
ICAgICBNYXhWYWx1ZUZvclJhbmdlLAogICAgIE1pblZhbHVlRm9yUmFuZ2UsCiAgICAgTmFtZUF0
dHJpYnV0ZSwKLSAgICBPd25lZE9iamVjdHMsCiAgICAgT3JpZW50YXRpb24sCiAgICAgT3V0ZXJI
VE1MLAogICAgIFBhdGgsCkBAIC0zNzEsNiArMzY2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2NoYW5nZUxv
Z0xvY2spOwogICAgIHZvaWQgc2V0Rm9jdXNlZE5vZGVJRChBWElEKTsKIAorICAgIC8vIFJlbGF0
aW9uc2hpcHMgYmV0d2VlbiBvYmplY3RzLgorICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFYSUQ+
PiByZWxhdGVkT2JqZWN0SURzRm9yKGNvbnN0IEFYQ29yZU9iamVjdCYsIEFYUmVsYXRpb25UeXBl
KTsKKyAgICB2b2lkIHJlbGF0aW9uc05lZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKSB7IG1fcmVs
YXRpb25zTmVlZFVwZGF0ZSA9IG5lZWRVcGRhdGU7IH0KKwogICAgIC8vIENhbGxlZCBvbiBBWCB0
aHJlYWQgZnJvbSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBtZXRob2RzLgogICAgIC8v
IER1cmluZyBsYXlvdXQgdGVzdHMsIGl0IGlzIGNhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiAg
ICAgdm9pZCBhcHBseVBlbmRpbmdDaGFuZ2VzKCk7CkBAIC00MjcsNiArNDI2LDE0IEBAIHByaXZh
dGU6CiAgICAgQVhJRCBtX3BlbmRpbmdGb2N1c2VkTm9kZUlEIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9jaGFuZ2VMb2dMb2NrKTsKICAgICBBWElEIG1fZm9jdXNlZE5vZGVJRDsKICAgICBzdGQ6OmF0
b21pYzxkb3VibGU+IG1fbG9hZGluZ1Byb2dyZXNzIHsgMCB9OworCisgICAgLy8gUmVsYXRpb25z
aGlwcyBiZXR3ZWVuIG9iamVjdHMuCisgICAgLy8gQWNjZXNzZWQgb25seSBvbiB0aGUgQVggdGhy
ZWFkLgorICAgIEhhc2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+IG1fcmVsYXRpb25zOworICAgIC8v
IFNldCB0byB0cnVlIGJ5IHRoZSBBWE9iamVjdENhY2hlIG9uIHRoZSBtYWluIHRocmVhZC4KKyAg
ICAvLyBTZXQgdG8gZmFsc2Ugb24gdGhlIEFYIHRocmVhZCBieSByZWxhdGVkT2JqZWN0SURzRm9y
LgorICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fcmVsYXRpb25zTmVlZFVwZGF0ZSB7IHRydWUgfTsK
KwogICAgIExvY2sgbV9jaGFuZ2VMb2dMb2NrOwogfTsKIAotLSAKMi4zMi4wIChBcHBsZSBHaXQt
MTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459952</attachid>
            <date>2022-06-01 19:21:10 -0700</date>
            <delta_ts>2022-06-02 12:46:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240239-20220601222108.patch</filename>
            <type>text/plain</type>
            <size>23120</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSAxZDQxODU2MGU3MDMwZTc5NzNkZDgyZGIwNzg1Njc4YTczMjk1YjRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBNb24sIDkgTWF5IDIwMjIgMTI6MjM6MDcgLTA0MDAKU3ViamVjdDogW1BBVENIXSBB
WCBJVE06IENhY2hlIHNldmVyYWwgb2JqZWN0IHJlbGF0aW9uc2hpcHMgdGhhdCB3ZXJlIG5vdAog
Y2FjaGVkIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI0MDIzOQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbnN0ZWFk
IG9mIGNhY2hpbmcgaW5kaXZpZHVhbCByZWxhdGlvbnMgYXMgc2VwYXJhdGUgVmVjdG9ycyBvZiBB
WElzb2xhdGVkT2JqZWN0cywgdGhpcyBwYXRjaCB1c2VzIHRoZSBuZXcgcmVsYXRpb25zaGlwcyBp
bXBsZW1lbnRhdGlvbiB0byBjYWNoZSBhIGNvcHkgb2YgdGhlIEFYT2JqZWN0Q2FjaGU6Om1fcmVs
YXRpb25zIGluIHRoZSBBWElzb2xhdGVkVHJlZS4gVGhpcyBkYXRhIHN0cnVjdHVyZSBpcyB1cGRh
dGVkIHdoZW4gdGhlIEFYT2JqZWN0Q2FjaGUgc2V0cyB0aGUgZmxhZyBtX3JlbGF0aW9uc05lZWRV
cGRhdGUgYW5kIG9uZSBvZiB0aGUgcmVsYXRpb25zIHByb3BlcnRpZXMgaXMgcmVxdWVzdGVkIG9u
IHRoZSBBWCB0aHJlYWQuIFRoaXMgYWxsb3dzIGZvciBhIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBm
b3IgYWxsIHRoZSBtZXRob2RzIHRvIHJldHJpZXZlIGluZGl2aWR1YWwgcmVsYXRpb25zaGlwcywg
YW5kIHRoZSBtYWluIHR3byBkZXJpdmVkIGNsYXNzZXMgQVhPYmplY3QgYW5kIEFYSXNvbGF0ZWRP
YmplY3Qgb25seSBvdmVycmlkZSB0aGUgcmVsYXRlZE9iamVjdHMgbWV0aG9kLgotLS0KIC4uLi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDIyICsrKysrLQogU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggIHwgIDggKy0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwICAgICB8IDc3ICstLS0tLS0tLS0t
LS0tLS0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCAgICAgICB8
IDE4ICstLS0tCiAuLi4vQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oICAgICAgICAgICAg
fCAzMiArKysrLS0tLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgNzQgKystLS0tLS0tLS0tLS0tLS0tCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaCAgICAgICAgICAgfCAxNiArLS0tCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmNwcCAgICAgICAgICAgfCAyMyArKysrKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaCAgICAgICAgICAgICB8IDE3ICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0
aW9ucygrKSwgMjAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDcyMmUwODljZDIzYS4uZmMwZmRiZWYyMzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTM3NzEsNyArMzc3MSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YWRkUmVsYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogb3JpZ2luLCBBY2Nlc3NpYmlsaXR5T2JqZWN0CiAgICAgYXV0byByZWxh
dGlvbnNJdGVyYXRvciA9IG1fcmVsYXRpb25zLmZpbmQob3JpZ2luLT5vYmplY3RJRCgpKTsKICAg
ICBpZiAocmVsYXRpb25zSXRlcmF0b3IgPT0gbV9yZWxhdGlvbnMuZW5kKCkpIHsKICAgICAgICAg
Ly8gTm8gcmVsYXRpb25zIGZvciB0aGlzIG9iamVjdCwgYWRkIHRoZSBmaXJzdCBvbmUuCi0gICAg
ICAgIG1fcmVsYXRpb25zLmFkZChvcmlnaW4tPm9iamVjdElEKCksIFJlbGF0aW9ucyB7IHsgc3Rh
dGljX2Nhc3Q8dWludDhfdD4ocmVsYXRpb25UeXBlKSwgeyB0YXJnZXQtPm9iamVjdElEKCkgfSB9
IH0pOworICAgICAgICBtX3JlbGF0aW9ucy5hZGQob3JpZ2luLT5vYmplY3RJRCgpLCBBWFJlbGF0
aW9ucyB7IHsgc3RhdGljX2Nhc3Q8dWludDhfdD4ocmVsYXRpb25UeXBlKSwgeyB0YXJnZXQtPm9i
amVjdElEKCkgfSB9IH0pOwogICAgIH0gZWxzZSBpZiAoYXV0byB0YXJnZXRzSXRlcmF0b3IgPSBy
ZWxhdGlvbnNJdGVyYXRvci0+dmFsdWUuZmluZChzdGF0aWNfY2FzdDx1aW50OF90PihyZWxhdGlv
blR5cGUpKTsgdGFyZ2V0c0l0ZXJhdG9yID09IHJlbGF0aW9uc0l0ZXJhdG9yLT52YWx1ZS5lbmQo
KSkgewogICAgICAgICAvLyBObyByZWxhdGlvbiBvZiB0aGlzIHR5cGUgZm9yIHRoaXMgb2JqZWN0
LCBhZGQgdGhlIGZpcnN0IG9uZS4KICAgICAgICAgcmVsYXRpb25zSXRlcmF0b3ItPnZhbHVlLmFk
ZChzdGF0aWNfY2FzdDx1aW50OF90PihyZWxhdGlvblR5cGUpLCBWZWN0b3I8QVhJRD4geyB0YXJn
ZXQtPm9iamVjdElEKCkgfSk7CkBAIC0zODQyLDcgKzM4NDIsMjUgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjp1cGRhdGVSZWxhdGlvbnNJZk5lZWRlZCgpCiAgICAgfQogfQogCi1zdGQ6Om9wdGlvbmFs
PFZlY3RvcjxBWElEPj4gQVhPYmplY3RDYWNoZTo6cmVsYXRlZE9iamVjdHNGb3IoY29uc3QgQVhD
b3JlT2JqZWN0JiBvYmplY3QsIEFYUmVsYXRpb25UeXBlIHJlbGF0aW9uVHlwZSkKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cmVsYXRpb25zTmVlZFVwZGF0ZShib29sIG5lZWRVcGRhdGUpCit7CisgICAg
bV9yZWxhdGlvbnNOZWVkVXBkYXRlID0gbmVlZFVwZGF0ZTsKKworI2lmIEVOQUJMRShBQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgaWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0ZSAmJiBt
X3BhZ2VJRCkgeworICAgICAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVG
b3JQYWdlSUQoKm1fcGFnZUlEKSkKKyAgICAgICAgICAgIHRyZWUtPnJlbGF0aW9uc05lZWRVcGRh
dGUodHJ1ZSk7CisgICAgfQorI2VuZGlmCit9CisKK0hhc2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+
IEFYT2JqZWN0Q2FjaGU6OnJlbGF0aW9ucygpCit7CisgICAgdXBkYXRlUmVsYXRpb25zSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gbV9yZWxhdGlvbnM7Cit9CisKK3N0ZDo6b3B0aW9uYWw8VmVjdG9y
PEFYSUQ+PiBBWE9iamVjdENhY2hlOjpyZWxhdGVkT2JqZWN0SURzRm9yKGNvbnN0IEFYQ29yZU9i
amVjdCYgb2JqZWN0LCBBWFJlbGF0aW9uVHlwZSByZWxhdGlvblR5cGUpCiB7CiAgICAgdXBkYXRl
UmVsYXRpb25zSWZOZWVkZWQoKTsKICAgICBhdXRvIHJlbGF0aW9uc0l0ZXJhdG9yID0gbV9yZWxh
dGlvbnMuZmluZChvYmplY3Qub2JqZWN0SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGYwNzM5YjZiYmZkYy4uYjJjZWE2ODA4ZWRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMzgw
LDcgKzM4MCw3IEBAIHB1YmxpYzoKICAgICBBWFRyZWVEYXRhIHRyZWVEYXRhKCk7CiAKICAgICAv
LyBSZXR1cm5zIHRoZSBJRHMgb2YgdGhlIG9iamVjdHMgdGhhdCByZWxhdGUgdG8gdGhlIGdpdmVu
IG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVsYXRpb25zaGlwLgotICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEFYSUQ+PiByZWxhdGVkT2JqZWN0c0Zvcihjb25zdCBBWENvcmVPYmplY3QmLCBB
WFJlbGF0aW9uVHlwZSk7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8QVhJRD4+IHJlbGF0ZWRP
YmplY3RJRHNGb3IoY29uc3QgQVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUpOwogCiAjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgYm9vbCBpc0lzb2xhdGVkVHJlZUVuYWJsZWQoKTsKQEAgLTUwMCw3ICs1MDAsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgYWRkUmVsYXRpb24oRWxlbWVudCosIEVsZW1lbnQqLCBBWFJlbGF0
aW9uVHlwZSk7CiAgICAgdm9pZCBhZGRSZWxhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYUmVsYXRpb25UeXBlLCBBZGRpbmdTeW1tZXRyaWNSZWxhdGlv
biA9IEFkZGluZ1N5bW1ldHJpY1JlbGF0aW9uOjpObyk7CiAgICAgdm9pZCB1cGRhdGVSZWxhdGlv
bnNJZk5lZWRlZCgpOwotICAgIHZvaWQgcmVsYXRpb25zTmVlZFVwZGF0ZShib29sIG5lZWRVcGRh
dGUpIHsgbV9yZWxhdGlvbnNOZWVkVXBkYXRlID0gbmVlZFVwZGF0ZTsgfQorICAgIHZvaWQgcmVs
YXRpb25zTmVlZFVwZGF0ZShib29sKTsKKyAgICBIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPiBy
ZWxhdGlvbnMoKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG1fcGFnZUlEOyAvLyBjb25zdGFudCBmb3Igb2JqZWN0
J3MgbGlmZXRpbWUuCkBAIC01NTgsOCArNTU5LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9s
b2FkaW5nUHJvZ3Jlc3MgeyAwIH07CiAKICAgICAvLyBSZWxhdGlvbnNoaXBzIGJldHdlZW4gb2Jq
ZWN0cy4KLSAgICB1c2luZyBSZWxhdGlvbnMgPSBIYXNoTWFwPEFYUmVsYXRpb25UeXBlLCBWZWN0
b3I8QVhJRD4sIERlZmF1bHRIYXNoPHVpbnQ4X3Q+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlI
YXNoVHJhaXRzPHVpbnQ4X3Q+PjsKLSAgICBIYXNoTWFwPEFYSUQsIFJlbGF0aW9ucz4gbV9yZWxh
dGlvbnM7CisgICAgSGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4gbV9yZWxhdGlvbnM7CiAgICAg
Ym9vbCBtX3JlbGF0aW9uc05lZWRVcGRhdGUgeyB0cnVlIH07CiAKICNpZiBVU0UoQVRTUEkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcAppbmRleCA0ZmM3OTI4ZDY0ZjguLjdhNjk0MWM1NTcyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0zOTM2
LDcgKzM5MzYsNyBAQCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpyZWxhdGVkT2JqZWN0cyhBWAogICAgIGlmICghY2FjaGUpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHJlbGF0ZWRPYmplY3RJRHMgPSBjYWNoZS0+
cmVsYXRlZE9iamVjdHNGb3IoKnRoaXMsIHJlbGF0aW9uVHlwZSk7CisgICAgYXV0byByZWxhdGVk
T2JqZWN0SURzID0gY2FjaGUtPnJlbGF0ZWRPYmplY3RJRHNGb3IoKnRoaXMsIHJlbGF0aW9uVHlw
ZSk7CiAgICAgaWYgKCFyZWxhdGVkT2JqZWN0SURzKQogICAgICAgICByZXR1cm4geyB9OwogICAg
IHJldHVybiBjYWNoZS0+b2JqZWN0c0ZvcklEcygqcmVsYXRlZE9iamVjdElEcyk7CkBAIC0zOTUz
LDgxICszOTUzLDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FjdGl2ZURlc2NlbmRh
bnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQVhD
b3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVj
dDo6YWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0
ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpBY3RpdmVEZXNjZW5kYW50T2YpOwotfQotCi1BWENv
cmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpjb250cm9sbGVkT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3Rz
KEFYUmVsYXRpb25UeXBlOjpDb250cm9sbGVyRm9yKTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udHJvbGxlcnMo
KSBjb25zdAotewotICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6Q29u
dHJvbGxlZEJ5KTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVzY3JpYmVkQnlPYmplY3RzKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRlc2NyaWJlZEJ5KTsKLX0K
LQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0
eU9iamVjdDo6ZGVzY3JpcHRpb25Gb3JPYmplY3RzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcmVs
YXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRlc2NyaXB0aW9uRm9yKTsKLX0KLQotQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6
ZGV0YWlsZWRCeU9iamVjdHMoKSBjb25zdAotewotICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhB
WFJlbGF0aW9uVHlwZTo6RGV0YWlscyk7Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRldGFpbHNGb3JPYmplY3RzKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRldGFp
bHNGb3IpOwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjplcnJvck1lc3NhZ2VPYmplY3RzKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkVycm9yTWVzc2FnZSk7Ci19Ci0K
LUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmVycm9yTWVzc2FnZUZvck9iamVjdHMoKSBjb25zdAotewotICAgIHJldHVybiByZWxh
dGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6RXJyb3JNZXNzYWdlRm9yKTsKLX0KLQotQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6
Zmxvd1RvT2JqZWN0cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVs
YXRpb25UeXBlOjpGbG93c1RvKTsKLX0KLQotQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6Zmxvd0Zyb21PYmplY3RzKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkZsb3dzRnJvbSk7
Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmxhYmVsbGVkQnlPYmplY3RzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcmVs
YXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkxhYmVsbGVkQnkpOwotfQotCi1BWENvcmVPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsYWJl
bEZvck9iamVjdHMoKSBjb25zdAotewotICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0
aW9uVHlwZTo6TGFiZWxGb3IpOwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpvd25lZE9iamVjdHMoKSBjb25zdAotewot
ICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6T3duZXJGb3IpOwotfQot
Ci1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojpvd25lcnMoKSBjb25zdAotewotICAgIHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJl
bGF0aW9uVHlwZTo6T3duZWRCeSk7Ci19Ci0KIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0
SXNJZ25vcmVkRnJvbVBhcmVudERhdGFGb3JDaGlsZChBWENvcmVPYmplY3QqIGNoaWxkKQogewog
ICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eU9iamVjdD4oY2hpbGQpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAxOWVkOGQz
YzAwMjcuLjhhMWViZWE2NGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTMwNCwyMiArMzA0LDYgQEAgcHVibGljOgog
ICAgIGJvb2wgc3VwcG9ydHNBUklBT3ducygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgYm9vbCBpc0FjdGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBhY3RpdmVEZXNj
ZW5kYW50T2ZPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIGNvbnRyb2xsZWRPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbnRyb2xsZXJzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRlc2NyaWJlZEJ5T2JqZWN0cygpIGNvbnN0IG92
ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXNjcmlwdGlvbkZvck9i
amVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
ZGV0YWlsZWRCeU9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgZGV0YWlsc0Zvck9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZXJyb3JNZXNzYWdlT2JqZWN0cygpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBlcnJvck1lc3NhZ2VGb3JPYmpl
Y3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGZs
b3dUb09iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IgZmxvd0Zyb21PYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGxhYmVsbGVkQnlPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGxhYmVsRm9yT2JqZWN0cygpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBvd25lZE9iamVjdHMoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igb3duZXJzKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0KICAgICBib29sIGhhc1BvcHVwKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KICAgICBTdHJpbmcgcG9wdXBWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGJvb2wgaGFzRGF0YWxpc3QoKSBjb25zdCBvdmVycmlkZTsKQEAgLTc4Nyw3ICs3NzEsNyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIGRvY3VtZW50RW5jb2RpbmcoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZG9jdW1lbnRMaW5rcygpIG92ZXJyaWRlIHsg
cmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvcigpOyB9CiAKLSAgICBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IgcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGUpIGNvbnN0Owor
ICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9u
VHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiBwcm90ZWN0ZWQ6CiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCgpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCBmNzQ3ODRhOTUwYzMu
LjczMGRjMzk0OTliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTc5OCw2ICs3OTgsNyBA
QCBlbnVtIGNsYXNzIEFYUmVsYXRpb25UeXBlIDogdWludDhfdCB7CiAgICAgT3duZWRCeSwKICAg
ICBPd25lckZvciwKIH07Cit1c2luZyBBWFJlbGF0aW9ucyA9IEhhc2hNYXA8QVhSZWxhdGlvblR5
cGUsIFZlY3RvcjxBWElEPiwgRGVmYXVsdEhhc2g8dWludDhfdD4sIFdURjo6VW5zaWduZWRXaXRo
WmVyb0tleUhhc2hUcmFpdHM8dWludDhfdD4+OwogCiAvLyBVc2UgdGhpcyBzdHJ1Y3QgdG8gc3Rv
cmUgdGhlIGlzSWdub3JlZCBkYXRhIHRoYXQgZGVwZW5kcyBvbiB0aGUgcGFyZW50cywgc28gdGhh
dCBpbiBhZGRDaGlsZHJlbigpCiAvLyB3ZSBhdm9pZCBnb2luZyB1cCB0aGUgcGFyZW50IGNoYWlu
IGZvciBlYWNoIGVsZW1lbnQgd2hpbGUgdHJhdmVyc2luZyB0aGUgdHJlZSB3aXRoIHVzZWZ1bCBp
bmZvcm1hdGlvbiBhbHJlYWR5LgpAQCAtMTA3MywyMSArMTA3NCwyMiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lcigpIGNvbnN0
ID0gMDsKIAogICAgIC8vIFJldHJpZXZhbCBvZiByZWxhdGVkIG9iamVjdHMuCi0gICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgYWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cygp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb250
cm9sbGVkT2JqZWN0cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBjb250cm9sbGVycygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciBkZXNjcmliZWRCeU9iamVjdHMoKSBjb25zdCA9IDA7Ci0gICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVzY3JpcHRpb25Gb3JPYmplY3Rz
KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRl
dGFpbGVkQnlPYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yIGRldGFpbHNGb3JPYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGVycm9yTWVzc2FnZU9iamVjdHMoKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZXJyb3JNZXNzYWdl
Rm9yT2JqZWN0cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciBmbG93VG9PYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yIGZsb3dGcm9tT2JqZWN0cygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBsYWJlbGxlZEJ5T2JqZWN0cygpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBsYWJlbEZvck9i
amVjdHMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3Igb3duZWRPYmplY3RzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yIG93bmVycygpIGNvbnN0ID0gMDsKKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3IgYWN0aXZlRGVzY2VuZGFudE9mT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0
ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpBY3RpdmVEZXNjZW5kYW50T2YpOyB9CisgICAgQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbnRyb2xsZWRPYmplY3RzKCkgY29uc3QgeyByZXR1
cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkNvbnRyb2xsZXJGb3IpOyB9CisgICAg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbnRyb2xsZXJzKCkgY29uc3QgeyByZXR1cm4g
cmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkNvbnRyb2xsZWRCeSk7IH0KKyAgICBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVzY3JpYmVkQnlPYmplY3RzKCkgY29uc3QgeyByZXR1
cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRlc2NyaWJlZEJ5KTsgfQorICAgIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXNjcmlwdGlvbkZvck9iamVjdHMoKSBjb25zdCB7
IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6RGVzY3JpcHRpb25Gb3IpOyB9
CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRldGFpbGVkQnlPYmplY3RzKCkgY29u
c3QgeyByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRldGFpbHMpOyB9Cisg
ICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRldGFpbHNGb3JPYmplY3RzKCkgY29uc3Qg
eyByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkRldGFpbHNGb3IpOyB9Cisg
ICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGVycm9yTWVzc2FnZU9iamVjdHMoKSBjb25z
dCB7IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6RXJyb3JNZXNzYWdlKTsg
fQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBlcnJvck1lc3NhZ2VGb3JPYmplY3Rz
KCkgY29uc3QgeyByZXR1cm4gcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGU6OkVycm9yTWVz
c2FnZUZvcik7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZmxvd1RvT2JqZWN0
cygpIGNvbnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpGbG93c1Rv
KTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBmbG93RnJvbU9iamVjdHMoKSBj
b25zdCB7IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6Rmxvd3NGcm9tKTsg
fQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBsYWJlbGxlZEJ5T2JqZWN0cygpIGNv
bnN0IHsgcmV0dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpMYWJlbGxlZEJ5KTsg
fQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBsYWJlbEZvck9iamVjdHMoKSBjb25z
dCB7IHJldHVybiByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZTo6TGFiZWxGb3IpOyB9Cisg
ICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIG93bmVkT2JqZWN0cygpIGNvbnN0IHsgcmV0
dXJuIHJlbGF0ZWRPYmplY3RzKEFYUmVsYXRpb25UeXBlOjpPd25lckZvcik7IH0KKyAgICBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igb3duZXJzKCkgY29uc3QgeyByZXR1cm4gcmVsYXRlZE9i
amVjdHMoQVhSZWxhdGlvblR5cGU6Ok93bmVkQnkpOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IgcmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5cGUpIGNvbnN0ID0g
MDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNQb3B1cCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IFN0cmluZyBwb3B1cFZhbHVlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cAppbmRleCAwZDcyNGJlODc0MTcuLmRjNGI5Yjg4MjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKQEAgLTMyOCwxMyArMzI4LDYgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0
aWFsaXplUHJvcGVydGllcyhBWENvcmVPYmplY3QmIGNvcmVPYmplY3QsIElzUm9vdCBpc1IKIAog
ICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpMaW5rZWRPYmplY3Rz
LCBvYmplY3QubGlua2VkT2JqZWN0cygpKTsKIAotICAgIC8vIFJlbGF0aW9ucy4KLSAgICBzZXRP
YmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Q29udHJvbGxlZE9iamVjdHMsIG9i
amVjdC5jb250cm9sbGVkT2JqZWN0cygpKTsKLSAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6RGV0YWlsZWRCeU9iamVjdHMsIG9iamVjdC5kZXRhaWxlZEJ5T2JqZWN0
cygpKTsKLSAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RXJyb3JN
ZXNzYWdlT2JqZWN0cywgb2JqZWN0LmVycm9yTWVzc2FnZU9iamVjdHMoKSk7Ci0gICAgc2V0T2Jq
ZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkZsb3dUb09iamVjdHMsIG9iamVjdC5m
bG93VG9PYmplY3RzKCkpOwotICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlO
YW1lOjpPd25lZE9iamVjdHMsIG9iamVjdC5vd25lZE9iamVjdHMoKSk7Ci0KICAgICAvLyBTcGlu
IGJ1dHRvbiBzdXBwb3J0LgogICAgIHNldE9iamVjdFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpE
ZWNyZW1lbnRCdXR0b24sIG9iamVjdC5kZWNyZW1lbnRCdXR0b24oKSk7CiAgICAgc2V0T2JqZWN0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkluY3JlbWVudEJ1dHRvbiwgb2JqZWN0LmluY3JlbWVu
dEJ1dHRvbigpKTsKQEAgLTE4NjUsNjYgKzE4NTgsNiBAQCBBWENvcmVPYmplY3QqIEFYSXNvbGF0
ZWRPYmplY3Q6OnNlbGVjdGVkTGlzdEl0ZW0oKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1B
WENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0
OjphY3RpdmVEZXNjZW5kYW50T2ZPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0Ojpjb250cm9sbGVycygpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6ZGVz
Y3JpYmVkQnlPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBBWElzb2xhdGVkT2JqZWN0OjpkZXNjcmlwdGlvbkZvck9iamVjdHMoKSBjb25zdAotewot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUFYQ29yZU9i
amVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFYSXNvbGF0ZWRPYmplY3Q6OmRldGFp
bHNGb3JPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBBWElzb2xhdGVkT2JqZWN0OjplcnJvck1lc3NhZ2VGb3JPYmplY3RzKCkgY29uc3QKLXsKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0OjpmbG93RnJv
bU9iamVjdHMoKSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biB7IH07Ci19Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFY
SXNvbGF0ZWRPYmplY3Q6OmxhYmVsbGVkQnlPYmplY3RzKCkgY29uc3QKLXsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1BWENvcmVPYmplY3Q6OkFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0OjpsYWJlbEZvck9iamVjdHMo
KSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFYSXNvbGF0ZWRP
YmplY3Q6Om93bmVycygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIHsgfTsKLX0KLQogYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpoYXNEYXRhbGlzdCgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMTgzLDYgKzIxMTYsMTMgQEAg
Ym9vbCBBWElzb2xhdGVkT2JqZWN0OjpzaG91bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6cmVsYXRlZE9iamVjdHMoQVhSZWxhdGlvblR5
cGUgcmVsYXRpb25UeXBlKSBjb25zdAoreworICAgIGlmIChhdXRvIHJlbGF0ZWRPYmplY3RJRHMg
PSB0cmVlKCktPnJlbGF0ZWRPYmplY3RJRHNGb3IoKnRoaXMsIHJlbGF0aW9uVHlwZSkpCisgICAg
ICAgIHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHMoKnJlbGF0ZWRPYmplY3RJRHMpOworICAg
IHJldHVybiB7IH07Cit9CisKIEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6YWN0aXZl
RGVzY2VuZGFudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmgKaW5kZXggMGVkOTA0ZjkwZDc2Li41YWJjZThmZmE5YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKQEAgLTU0MSwyMSArNTQxLDcgQEAgcHJpdmF0ZToKICAgICBmbG9h
dCBzdGVwVmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFYQ29yZU9iamVjdCog
c2VsZWN0ZWRMaXN0SXRlbSgpIG92ZXJyaWRlOwogCi0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGFjdGl2ZURlc2NlbmRhbnRPZk9iamVjdHMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29udHJvbGxlZE9iamVjdHMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRlVmFsdWU8
QVhJRD4oQVhQcm9wZXJ0eU5hbWU6OkNvbnRyb2xsZWRPYmplY3RzKSk7IH0KLSAgICBBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29udHJvbGxlcnMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZGVzY3JpYmVkQnlPYmplY3RzKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGRlc2NyaXB0aW9uRm9yT2Jq
ZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBk
ZXRhaWxlZEJ5T2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0
c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6RGV0YWls
ZWRCeU9iamVjdHMpKTsgfQotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkZXRhaWxz
Rm9yT2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBlcnJvck1lc3NhZ2VPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgp
LT5vYmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1l
OjpFcnJvck1lc3NhZ2VPYmplY3RzKSk7IH0KLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgZXJyb3JNZXNzYWdlRm9yT2JqZWN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciBmbG93VG9PYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJv
cGVydHlOYW1lOjpGbG93VG9PYmplY3RzKSk7IH0KLSAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IgZmxvd0Zyb21PYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGxhYmVsbGVkQnlPYmplY3RzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGxhYmVsRm9yT2JqZWN0cygpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBvd25lZE9iamVjdHMoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRl
VmFsdWU8QVhJRD4oQVhQcm9wZXJ0eU5hbWU6Ok93bmVkT2JqZWN0cykpOyB9Ci0gICAgQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIG93bmVycygpIGNvbnN0IG92ZXJyaWRlOworICAgIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciByZWxhdGVkT2JqZWN0cyhBWFJlbGF0aW9uVHlwZSkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGhhc0RhdGFsaXN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBzdXBwb3J0c0hhc1BvcHVwKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5jcHAKaW5kZXggNTkzNmY2Mjc0YWE0Li4yMTVmNzk2M2Q4NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHAKQEAgLTYxNyw2ICs2MTcsMjkgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQgb2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXIK
ICAgICB9CiB9CiAKK3N0ZDo6b3B0aW9uYWw8VmVjdG9yPEFYSUQ+PiBBWElzb2xhdGVkVHJlZTo6
cmVsYXRlZE9iamVjdElEc0Zvcihjb25zdCBBWENvcmVPYmplY3QmIG9iamVjdCwgQVhSZWxhdGlv
blR5cGUgcmVsYXRpb25UeXBlKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworCisg
ICAgaWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0ZSkgeworICAgICAgICBtX3JlbGF0aW9ucyA9IEFj
Y2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxIYXNoTWFwPEFYSUQsIEFY
UmVsYXRpb25zPj4oW3RoaXNdICgpIC0+IEhhc2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+IHsKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gY2FjaGUtPnJlbGF0aW9ucygpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICAgICAgfSk7CisgICAgICAgIG1fcmVsYXRpb25zTmVlZFVwZGF0ZSA9IGZhbHNlOworICAg
IH0KKworICAgIGF1dG8gcmVsYXRpb25zSXRlcmF0b3IgPSBtX3JlbGF0aW9ucy5maW5kKG9iamVj
dC5vYmplY3RJRCgpKTsKKyAgICBpZiAocmVsYXRpb25zSXRlcmF0b3IgPT0gbV9yZWxhdGlvbnMu
ZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHRhcmdldHNJ
dGVyYXRvciA9IHJlbGF0aW9uc0l0ZXJhdG9yLT52YWx1ZS5maW5kKHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KHJlbGF0aW9uVHlwZSkpOworICAgIGlmICh0YXJnZXRzSXRlcmF0b3IgPT0gcmVsYXRpb25z
SXRlcmF0b3ItPnZhbHVlLmVuZCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IHJldHVybiB0YXJnZXRzSXRlcmF0b3ItPnZhbHVlOworfQorCiB2b2lkIEFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKIHsKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6
YXBwbHlQZW5kaW5nQ2hhbmdlcyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBhNWJiYWZm
OTIxMWIuLmFjNDAxOTZmOTk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC05MiwxMyArOTIs
MTEgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBDb2x1bW5J
bmRleFJhbmdlLAogICAgIENvbXB1dGVkUm9sZVN0cmluZywKICAgICBDb250ZW50cywKLSAgICBD
b250cm9sbGVkT2JqZWN0cywKICAgICBDdXJyZW50U3RhdGUsCiAgICAgQ3VycmVudFZhbHVlLAog
ICAgIERhdGV0aW1lQXR0cmlidXRlVmFsdWUsCiAgICAgRGVjcmVtZW50QnV0dG9uLAogICAgIERl
c2NyaXB0aW9uLAotICAgIERldGFpbGVkQnlPYmplY3RzLAogICAgIERpc2Nsb3NlZEJ5Um93LAog
ICAgIERpc2Nsb3NlZFJvd3MsCiAgICAgRG9jdW1lbnRFbmNvZGluZywKQEAgLTEwNywxMCArMTA1
LDggQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBEcm9wRWZm
ZWN0cywKICAgICBFZGl0YWJsZUFuY2VzdG9yLAogICAgIEVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlv
biwKLSAgICBFcnJvck1lc3NhZ2VPYmplY3RzLAogICAgIEV4cGFuZGVkVGV4dFZhbHVlLAogICAg
IEZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRpdGxlLAotICAgIEZsb3dUb09iamVjdHMs
CiAgICAgRm9jdXNhYmxlQW5jZXN0b3IsCiAgICAgSGFzQVJJQVZhbHVlTm93LAogICAgIEhhc0Fw
cGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSwKQEAgLTI1MCw3ICsyNDYsNiBAQCBlbnVtIGNsYXNz
IEFYUHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIE1heFZhbHVlRm9yUmFuZ2UsCiAgICAg
TWluVmFsdWVGb3JSYW5nZSwKICAgICBOYW1lQXR0cmlidXRlLAotICAgIE93bmVkT2JqZWN0cywK
ICAgICBPcmllbnRhdGlvbiwKICAgICBPdXRlckhUTUwsCiAgICAgUGF0aCwKQEAgLTM3MSw2ICsz
NjYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCop
IFdURl9SRVFVSVJFU19MT0NLKG1fY2hhbmdlTG9nTG9jayk7CiAgICAgdm9pZCBzZXRGb2N1c2Vk
Tm9kZUlEKEFYSUQpOwogCisgICAgLy8gUmVsYXRpb25zaGlwcyBiZXR3ZWVuIG9iamVjdHMuCisg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8QVhJRD4+IHJlbGF0ZWRPYmplY3RJRHNGb3IoY29uc3Qg
QVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUpOworICAgIHZvaWQgcmVsYXRpb25zTmVlZFVw
ZGF0ZShib29sIG5lZWRVcGRhdGUpIHsgbV9yZWxhdGlvbnNOZWVkVXBkYXRlID0gbmVlZFVwZGF0
ZTsgfQorCiAgICAgLy8gQ2FsbGVkIG9uIEFYIHRocmVhZCBmcm9tIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIG1ldGhvZHMuCiAgICAgLy8gRHVyaW5nIGxheW91dCB0ZXN0cywgaXQgaXMg
Y2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2b2lkIGFwcGx5UGVuZGluZ0NoYW5nZXMo
KTsKQEAgLTQyNyw2ICs0MjYsMTQgQEAgcHJpdmF0ZToKICAgICBBWElEIG1fcGVuZGluZ0ZvY3Vz
ZWROb2RlSUQgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOwogICAgIEFYSUQg
bV9mb2N1c2VkTm9kZUlEOwogICAgIHN0ZDo6YXRvbWljPGRvdWJsZT4gbV9sb2FkaW5nUHJvZ3Jl
c3MgeyAwIH07CisKKyAgICAvLyBSZWxhdGlvbnNoaXBzIGJldHdlZW4gb2JqZWN0cy4KKyAgICAv
LyBBY2Nlc3NlZCBvbmx5IG9uIHRoZSBBWCB0aHJlYWQuCisgICAgSGFzaE1hcDxBWElELCBBWFJl
bGF0aW9ucz4gbV9yZWxhdGlvbnM7CisgICAgLy8gU2V0IHRvIHRydWUgYnkgdGhlIEFYT2JqZWN0
Q2FjaGUgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIC8vIFNldCB0byBmYWxzZSBvbiB0aGUgQVgg
dGhyZWFkIGJ5IHJlbGF0ZWRPYmplY3RJRHNGb3IuCisgICAgc3RkOjphdG9taWM8Ym9vbD4gbV9y
ZWxhdGlvbnNOZWVkVXBkYXRlIHsgdHJ1ZSB9OworCiAgICAgTG9jayBtX2NoYW5nZUxvZ0xvY2s7
CiB9OwogCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>