<?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>207581</bug_id>
          
          <creation_ts>2020-02-11 13:40:43 -0800</creation_ts>
          <short_desc>Support event notifications in IsolatedTree mode.</short_desc>
          <delta_ts>2020-03-07 07:57:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1617598</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-02-11 13:40:43 -0800</bug_when>
    <thetext>Support event notifications in IsolatedTree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617615</commentid>
    <comment_count>1</comment_count>
      <attachid>390420</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-02-11 14:08:04 -0800</bug_when>
    <thetext>Created attachment 390420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617888</commentid>
    <comment_count>2</comment_count>
      <attachid>390420</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-02-12 00:38:28 -0800</bug_when>
    <thetext>Comment on attachment 390420
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:3131
&gt; +        tree-&gt;removeNode(object-&gt;objectID());

is it ok to removeNode here directly, or do we need to append this to the node changes?

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:3139
&gt; +    };

this semi-colon after this line seems not needed

&gt; Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:37
&gt; +    [wrapper attachIsolatedObject:(AXCoreObject*)this];

is this cast necessary?
(AXCoreObject*)this];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617953</commentid>
    <comment_count>3</comment_count>
      <attachid>390510</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-02-12 07:00:21 -0800</bug_when>
    <thetext>Created attachment 390510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617987</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-02-12 07:38:39 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #2)
&gt; Comment on attachment 390420 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390420&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:3131
&gt; &gt; +        tree-&gt;removeNode(object-&gt;objectID());
&gt; 
&gt; is it ok to removeNode here directly, or do we need to append this to the
&gt; node changes?

AXIsolatedTree::removeNode appends the AXID to the m_pendingRemovals under lock, which will be applied on the next call to applyPendingChanges on the AX thread.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:3139
&gt; &gt; +    };
&gt; 
&gt; this semi-colon after this line seems not needed

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:37
&gt; &gt; +    [wrapper attachIsolatedObject:(AXCoreObject*)this];
&gt; 
&gt; is this cast necessary?
&gt; (AXCoreObject*)this];

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617992</commentid>
    <comment_count>5</comment_count>
      <attachid>390510</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-02-12 07:42:13 -0800</bug_when>
    <thetext>Comment on attachment 390510
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:3139
&gt; +    default: {

{ } for default are unnecessary here since there&apos;s no code inside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617998</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-02-12 07:47:42 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #5)
&gt; Comment on attachment 390510 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390510&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:3139
&gt; &gt; +    default: {
&gt; 
&gt; { } for default are unnecessary here since there&apos;s no code inside

It is needed, otherwise you get:

./accessibility/AXObjectCache.cpp:3127:13: error: 30 enumeration values not handled in switch: &apos;AXActiveDescendantChanged&apos;, &apos;AXAutocorrectionOccured&apos;, &apos;AXCurrentChanged&apos;... [-Werror,-Wswitch]
    switch (notification) {
            ^
./accessibility/AXObjectCache.cpp:3127:13: note: add missing switch cases
    switch (notification) {
            ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618016</commentid>
    <comment_count>7</comment_count>
      <attachid>390525</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-02-12 08:27:39 -0800</bug_when>
    <thetext>Created attachment 390525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618044</commentid>
    <comment_count>8</comment_count>
      <attachid>390525</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-12 09:31:08 -0800</bug_when>
    <thetext>Comment on attachment 390525
Patch

Clearing flags on attachment: 390525

Committed r256442: &lt;https://trac.webkit.org/changeset/256442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618045</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-12 09:31:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618046</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-12 09:32:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59389335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627207</commentid>
    <comment_count>11</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-07 07:57:56 -0800</bug_when>
    <thetext>*** Bug 206596 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390420</attachid>
            <date>2020-02-11 14:08:04 -0800</date>
            <delta_ts>2020-02-12 07:00:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207581-20200211170803.patch</filename>
            <type>text/plain</type>
            <size>20807</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM2NzBhZGMwYTljODk4
MTBmZjkxNGM2NDZhMzU4N2VkNTU0NzY1NS4uMWIwYWI2N2JhZGNjZjZhZDYxYmM2MjM2MDkzYWJl
MzFlMWJjZDVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTExICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGV2
ZW50IG5vdGlmaWNhdGlvbnMgaW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc1ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIERPTS9SZW5kZXIgdHJlZXMgbm90aWZp
Y2F0aW9ucyBhcmUgbGlzdGVuZWQgdG8gYnkgQVhPYmplY3RDYWNoZSBhbmQKKyAgICAgICAgdGhl
IGNvcnJlc3BvbmRpbmcgSXNvbGF0ZWRUcmVlIGlzIHVwZGF0ZWQuCisgICAgICAgIC0gVGhlIHVw
ZGF0ZSBpcyBub3cgaGFwcGVuaW5nIGZvciBzdGF0ZSwgdmFsdWUgYW5kIGNoaWxkcmVuIGNoYW5n
ZQorICAgICAgICBub3RpZmljYXRpb25zLgorICAgICAgICAtIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZSByZS1nZW5lcmF0ZXMgdGhlIHN1YnRyZWUgcm9vdGVkIGF0CisgICAgICAg
IHRoZSBub2RlIHJlY2VpdmluZyB0aGUgbm90aWZpY2F0aW9uLgorICAgICAgICAtIENvbnNvbGlk
YXRlZCBjcmVhdGlvbiBvZiBBWElzb2xhdGVkT2JqZWN0cyBieSBwYXNzaW5nIHRyZWVJRCBhbmQK
KyAgICAgICAgcGFyZW50SUQgdG8gdGhlIGNyZWF0ZSBtZXRob2QgYW5kIGNvbnN0cnVjdG9yLgor
ICAgICAgICAtIENoYW5nZXMgdG8gdGhlIElzb2xhdGVkVHJlZSBhcmUgc2V0IG9uIHRoZSBtYWlu
IHRocmVhZCB1c2luZyB0aGUKKyAgICAgICAgTm9kZUNoYW5nZSBzdHJ1Y3R1cmUsIGFuZCBhcHBs
aWVkIHRvIHRoZSB0cmVlIG9uIHRoZSBBWCB0aHJlYWQuCisgICAgICAgIC0gVGhlIHVwZGF0ZWQg
SXNvbGF0ZWRPYmplY3RzIGFyZSBhdHRhY2hlZCB0byB0aGVpciBjb3JyZXNwb25kaW5nCisgICAg
ICAgIHBsYXRmb3JtIHdyYXBwZXJzIG9uIHRoZSBBWCB0aHJlYWQsIHNvIHRoYXQgYWZ0ZXIgY3Jl
YXRpb24gdGhleSBhcmUgb25seQorICAgICAgICBhY2Nlc3NlZCBvbiB0aGUgc2Vjb25kYXJ5IHRo
cmVhZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKTogSW52b2tlcyB1
cGRhdGVJc29sYXRlZFRyZWUuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJc29sYXRlZFRyZWVI
aWVyYXJjaHkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2VuZXJhdGVJc29s
YXRlZFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0
ZWRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNyZWF0ZUlzb2xhdGVk
VHJlZUhpZXJhcmNoeSk6IEJlY2FtZSBhIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkT2JqZWN0OjpBWElzb2xhdGVkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
SXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2Jq
ZWN0OjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpz
ZXRQYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoRnJv
bVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRUcmVlSWRl
bnRpZmllcik6IERlbGV0ZWQsIHRoZSB0cmVlIGlkZW50aWZpZXIgaXMgc2V0IGluIHRoZSBjb25z
dHJ1Y3Rvci4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U6
Ok5vZGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFwcGVuZE5v
ZGVDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRp
bmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElz
b2xhdGVkT2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6
YXR0YWNoUGxhdGZvcm1XcmFwcGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgorCiAyMDIwLTAyLTA2ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8
YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NhaXJvXSBEbyBub3QgdXNlIG9sZC1zdHls
ZSBHTlUgZmllbGQgaW5pdGlhbGl6ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAzMjhhNWViMjQwMjk5YTMyOWU2MDg0MGRjZWJkMDQ4
NjBiMmI4YjE0Li42YjI2ODk5Mzk4MTA4M2NjMmY5YzQ0ZjAxMDg3NjBjNzZlN2RlM2VjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEx
MTgsNiArMTExOCwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQVhD
b3JlT2JqZWN0KiBvYmplY3QsIERvY3VtZW50KiBkb2N1bWVudCwgQQogICAgIGlmICghb2JqZWN0
KQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKQorICAgIHVwZGF0ZUlzb2xhdGVkVHJlZShvYmplY3QsIG5vdGlmaWNhdGlvbik7CisjZW5k
aWYKKwogICAgIGlmIChwb3N0VHlwZSA9PSBQb3N0QXN5bmNocm9ub3VzbHkpIHsKICAgICAgICAg
bV9ub3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfcGFpcihvYmplY3QsIG5vdGlm
aWNhdGlvbikpOwogICAgICAgICBpZiAoIW1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZl
KCkpCkBAIC0zMDY4LDIxICszMDcyLDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURl
ZmVycmVkQ2FjaGVVcGRhdGUoKQogfQogICAgIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCi1SZWY8QVhJc29sYXRlZE9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3JlYXRl
SXNvbGF0ZWRUcmVlSGllcmFyY2h5KEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWElEIHBhcmVudElE
LCBBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlLCBBWElzb2xhdGVkVHJlZSYgdHJlZSwgVmVj
dG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4mIG5vZGVDaGFuZ2VzLCBib29sIGlzUm9vdCkKK3N0
YXRpYyBSZWY8QVhJc29sYXRlZE9iamVjdD4gY3JlYXRlSXNvbGF0ZWRUcmVlSGllcmFyY2h5KEFY
Q29yZU9iamVjdCYgb2JqZWN0LCBBWElzb2xhdGVkVHJlZUlEIHRyZWVJRCwgQVhJRCBwYXJlbnRJ
RCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U+
JiBub2RlQ2hhbmdlcykKIHsKLSAgICBhdXRvIGlzb2xhdGVkVHJlZU5vZGUgPSBBWElzb2xhdGVk
T2JqZWN0OjpjcmVhdGUob2JqZWN0LCBpc1Jvb3QpOwotICAgIG5vZGVDaGFuZ2VzLmFwcGVuZChp
c29sYXRlZFRyZWVOb2RlLmNvcHlSZWYoKSk7Ci0KLSAgICBpc29sYXRlZFRyZWVOb2RlLT5zZXRU
cmVlSWRlbnRpZmllcih0cmVlLnRyZWVJZGVudGlmaWVyKCkpOwotICAgIGlzb2xhdGVkVHJlZU5v
ZGUtPnNldFBhcmVudChwYXJlbnRJRCk7Ci0gICAgYXhPYmplY3RDYWNoZS0+YXR0YWNoV3JhcHBl
cigmaXNvbGF0ZWRUcmVlTm9kZS5nZXQoKSwgb2JqZWN0LndyYXBwZXIoKSk7CisgICAgYXV0byBp
c29sYXRlZE9iamVjdCA9IEFYSXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZShvYmplY3QsIHRyZWVJRCwg
cGFyZW50SUQpOworICAgIG5vZGVDaGFuZ2VzLmFwcGVuZChBWElzb2xhdGVkVHJlZTo6Tm9kZUNo
YW5nZShpc29sYXRlZE9iamVjdCwgb2JqZWN0LndyYXBwZXIoKSkpOworICAgIGlmIChhdHRhY2hX
cmFwcGVyKQorICAgICAgICBpc29sYXRlZE9iamVjdC0+YXR0YWNoUGxhdGZvcm1XcmFwcGVyKG9i
amVjdC53cmFwcGVyKCkpOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IG9iamVjdC5j
aGlsZHJlbigpKSB7Ci0gICAgICAgIGF1dG8gc3RhdGljQ2hpbGQgPSBjcmVhdGVJc29sYXRlZFRy
ZWVIaWVyYXJjaHkoKmNoaWxkLCBpc29sYXRlZFRyZWVOb2RlLT5vYmplY3RJRCgpLCBheE9iamVj
dENhY2hlLCB0cmVlLCBub2RlQ2hhbmdlcywgZmFsc2UpOwotICAgICAgICBpc29sYXRlZFRyZWVO
b2RlLT5hcHBlbmRDaGlsZChzdGF0aWNDaGlsZC0+b2JqZWN0SUQoKSk7CisgICAgICAgIGF1dG8g
c3RhdGljQ2hpbGQgPSBjcmVhdGVJc29sYXRlZFRyZWVIaWVyYXJjaHkoKmNoaWxkLCB0cmVlSUQs
IGlzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgpLCBhdHRhY2hXcmFwcGVyLCBub2RlQ2hhbmdlcyk7
CisgICAgICAgIGlzb2xhdGVkT2JqZWN0LT5hcHBlbmRDaGlsZChzdGF0aWNDaGlsZC0+b2JqZWN0
SUQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGlzb2xhdGVkVHJlZU5vZGU7CisgICAgcmV0dXJu
IGlzb2xhdGVkT2JqZWN0OwogfQogCiBSZWY8QVhJc29sYXRlZFRyZWU+IEFYT2JqZWN0Q2FjaGU6
OmdlbmVyYXRlSXNvbGF0ZWRUcmVlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRG9jdW1lbnQmIGRv
Y3VtZW50KQpAQCAtMzEwMCw4ICszMTAyLDggQEAgUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWE9iamVj
dENhY2hlOjpnZW5lcmF0ZUlzb2xhdGVkVHJlZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEQKIAog
ICAgIGF1dG8qIGF4Um9vdCA9IGF4T2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKGRvY3VtZW50LnZp
ZXcoKSk7CiAgICAgaWYgKGF4Um9vdCkgewotICAgICAgICBWZWN0b3I8UmVmPEFYSXNvbGF0ZWRP
YmplY3Q+PiBub2RlQ2hhbmdlczsKLSAgICAgICAgYXV0byBpc29sYXRlZFJvb3QgPSBjcmVhdGVJ
c29sYXRlZFRyZWVIaWVyYXJjaHkoKmF4Um9vdCwgSW52YWxpZEFYSUQsIGF4T2JqZWN0Q2FjaGUs
ICp0cmVlLCBub2RlQ2hhbmdlcywgdHJ1ZSk7CisgICAgICAgIFZlY3RvcjxBWElzb2xhdGVkVHJl
ZTo6Tm9kZUNoYW5nZT4gbm9kZUNoYW5nZXM7CisgICAgICAgIGF1dG8gaXNvbGF0ZWRSb290ID0g
Y3JlYXRlSXNvbGF0ZWRUcmVlSGllcmFyY2h5KCpheFJvb3QsIHRyZWUtPnRyZWVJZGVudGlmaWVy
KCksIEludmFsaWRBWElELCB0cnVlLCBub2RlQ2hhbmdlcyk7CiAgICAgICAgIHRyZWUtPnNldFJv
b3ROb2RlKGlzb2xhdGVkUm9vdCk7CiAgICAgICAgIHRyZWUtPmFwcGVuZE5vZGVDaGFuZ2VzKG5v
ZGVDaGFuZ2VzKTsKICAgICB9CkBAIC0zMTEyLDYgKzMxMTQsMzAgQEAgUmVmPEFYSXNvbGF0ZWRU
cmVlPiBBWE9iamVjdENhY2hlOjpnZW5lcmF0ZUlzb2xhdGVkVHJlZShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIEQKIAogICAgIHJldHVybiBtYWtlUmVmKCp0cmVlKTsKIH0KKwordm9pZCBBWE9iamVj
dENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFYTm90aWZp
Y2F0aW9uIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW1fcGFnZUlEKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIHRyZWUgPSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9w
YWdlSUQpOworICAgIGlmICghdHJlZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChu
b3RpZmljYXRpb24pIHsKKyAgICBjYXNlIEFYQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKKyAgICBjYXNl
IEFYQ2hpbGRyZW5DaGFuZ2VkOgorICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6IHsKKyAgICAgICAg
dHJlZS0+cmVtb3ZlTm9kZShvYmplY3QtPm9iamVjdElEKCkpOworICAgICAgICBhdXRvKiBwYXJl
bnQgPSBvYmplY3QtPnBhcmVudE9iamVjdCgpOworICAgICAgICBBWElEIHBhcmVudElEID0gcGFy
ZW50ID8gcGFyZW50LT5vYmplY3RJRCgpIDogSW52YWxpZEFYSUQ7CisgICAgICAgIFZlY3RvcjxB
WElzb2xhdGVkVHJlZTo6Tm9kZUNoYW5nZT4gbm9kZUNoYW5nZXM7CisgICAgICAgIGF1dG8gaXNv
bGF0ZWRPYmplY3QgPSBjcmVhdGVJc29sYXRlZFRyZWVIaWVyYXJjaHkoKm9iamVjdCwgdHJlZS0+
dHJlZUlkZW50aWZpZXIoKSwgcGFyZW50SUQsIGZhbHNlLCBub2RlQ2hhbmdlcyk7CisgICAgICAg
IHRyZWUtPmFwcGVuZE5vZGVDaGFuZ2VzKG5vZGVDaGFuZ2VzKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIH07Cit9CiAjZW5kaWYKICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJS
ZWNvbXB1dGVJc0lnbm9yZWRJZk5lZWRlZChFbGVtZW50KiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA1OTBkZTUyZGEyMmI1MTJm
N2JmYTIwYTViMDkzMWY2NmY0OTA2MjY2Li5iZWU5YmExY2E2NmZjNWU3MjNjYzQ2ZjY4NjJjMzQ0
NGY1MmI0YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFYSXNv
bGF0ZWRUcmVlLmgiCiAjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTQzLDEw
ICs0NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpCi1jbGFzcyBBWElzb2xhdGVkT2JqZWN0OwotY2xhc3MgQVhJc29s
YXRlZFRyZWU7Ci0jZW5kaWYKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTEFyZWFFbGVtZW50
OwogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ7CkBAIC0xNzgsOSArMTc1LDYgQEAg
cHJpdmF0ZToKICAgICB1c2luZyBET01PYmplY3RWYXJpYW50ID0gVmFyaWFudDxzdGQ6Om51bGxw
dHJfdCwgUmVuZGVyT2JqZWN0KiwgTm9kZSosIFdpZGdldCo+OwogICAgIHZvaWQgY2FjaGVBbmRJ
bml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRE9NT2JqZWN0VmFyaWFudCA9
IG51bGxwdHIpOwogICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBWENvcmVPYmplY3QqKTsKLSNpZiBF
TkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotICAgIHZvaWQgYXR0YWNoV3JhcHBl
cihBWElzb2xhdGVkT2JqZWN0KiwgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqKTsKLSNl
bmRpZgogCiBwdWJsaWM6CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5vZGUqIG5l
d0NoaWxkID0gbnVsbHB0cik7CkBAIC0xOTksMTcgKzE5Myw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRlZmVyQXR0cmlidXRlQ2hhbmdlSWZOZWVkZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1l
bnQqKTsKICAgICB2b2lkIHJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KTsKIAotI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGJvb2wgY2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKTsKLXByaXZh
dGU6Ci0gICAgQVhDb3JlT2JqZWN0KiBpc29sYXRlZFRyZWVSb290T2JqZWN0KCk7Ci0gICAgc3Rh
dGljIEFYQ29yZU9iamVjdCogaXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChEb2N1bWVudCYpOwot
ICAgIHZvaWQgc2V0SXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChOb2RlKik7Ci0gICAgc3RhdGlj
IFJlZjxBWElzb2xhdGVkVHJlZT4gZ2VuZXJhdGVJc29sYXRlZFRyZWUoUGFnZUlkZW50aWZpZXIs
IERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZjxBWElzb2xhdGVkT2JqZWN0PiBjcmVhdGVJc29s
YXRlZFRyZWVIaWVyYXJjaHkoQVhDb3JlT2JqZWN0JiwgQVhJRCwgQVhPYmplY3RDYWNoZSosIEFY
SXNvbGF0ZWRUcmVlJiwgVmVjdG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4mLCBib29sIGlzUm9v
dCk7Ci0jZW5kaWYKLQotcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FuVXNlU2Vj
b25kYXJ5QVhUaHJlYWQoKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKQpAQCAtMzY3LDcg
KzM1MCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWZlclRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbkZvclRleHRDb250cm9sKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiwgY29uc3QgU3Ry
aW5nJiBwcmV2aW91c1ZhbHVlKTsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VNYXRjaGVzVGV4
dE5lYXJSYW5nZShSZWZQdHI8UmFuZ2U+LCBjb25zdCBTdHJpbmcmKTsKLSAgICAKKworI2lmIEVO
QUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgY2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKTsKK3ByaXZhdGU6CisgICAgQVhD
b3JlT2JqZWN0KiBpc29sYXRlZFRyZWVSb290T2JqZWN0KCk7CisgICAgc3RhdGljIEFYQ29yZU9i
amVjdCogaXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChEb2N1bWVudCYpOworICAgIHZvaWQgc2V0
SXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChOb2RlKik7CisgICAgc3RhdGljIFJlZjxBWElzb2xh
dGVkVHJlZT4gZ2VuZXJhdGVJc29sYXRlZFRyZWUoUGFnZUlkZW50aWZpZXIsIERvY3VtZW50Jik7
CisgICAgdm9pZCB1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0KiwgQVhOb3RpZmljYXRp
b24pOworI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CmluZGV4IGM3YWI2YzRiZGJjZGVlOGYxODU1MWYyOTdlZjcwNTljOGExMmUxMzYuLjNlYmM0ZmU2
YTE5MDRjMDU0YjRlN2Y1MzdmODRlNTNhOTJjNDY1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CkBAIC03MCw3ICs3MCw2IEBAIHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9uczsKIAog
dHlwZWRlZiB1bnNpZ25lZCBBWElEOwogZXh0ZXJuIGNvbnN0IEFYSUQgSW52YWxpZEFYSUQ7Ci10
eXBlZGVmIHVuc2lnbmVkIEFYSXNvbGF0ZWRUcmVlSUQ7ICAgIAogCiBlbnVtIGNsYXNzIEFjY2Vz
c2liaWxpdHlSb2xlIHsKICAgICBBbm5vdGF0aW9uID0gMSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAKaW5kZXggOWZiNzAwYTBhYzZlNWVkNGU3Yjk4NjE4NDk5NTUzY2Q1MmZiNmFhNC4uMTk3
ZGY0NTQwNzQzNWI3NTc1NzBjYjhhODdmZWRhOWUzNDhiMTVjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAKQEAgLTMyLDE3ICszMiwyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUFYSXNvbGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QoQVhDb3JlT2JqZWN0JiBvYmplY3Qs
IGJvb2wgaXNSb290KQotICAgIDogbV9pZChvYmplY3Qub2JqZWN0SUQoKSkKK0FYSXNvbGF0ZWRP
YmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYSXNvbGF0ZWRU
cmVlSUQgdHJlZUlELCBBWElEIHBhcmVudElEKQorICAgIDogbV90cmVlSUQodHJlZUlEKQorICAg
ICwgbV9wYXJlbnRJRChwYXJlbnRJRCkKKyAgICAsIG1faWQob2JqZWN0Lm9iamVjdElEKCkpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpbml0aWFsaXplQXR0cmlidXRlRGF0
YShvYmplY3QsIGlzUm9vdCk7Ci0gICAgbV9pbml0aWFsaXplZCA9IHRydWU7CisgICAgaWYgKGF1
dG8gdHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQobV90cmVlSUQpKQorICAgICAgICBt
X2NhY2hlZFRyZWUgPSB0cmVlOworICAgIGluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKG9iamVjdCwg
cGFyZW50SUQgPT0gSW52YWxpZEFYSUQpOwogfQogCi1SZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJ
c29sYXRlZE9iamVjdDo6Y3JlYXRlKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBib29sIGlzUm9vdCkK
K1JlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkT2JqZWN0OjpjcmVhdGUoQVhDb3JlT2Jq
ZWN0JiBvYmplY3QsIEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlELCBBWElEIHBhcmVudElEKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFYSXNvbGF0ZWRPYmplY3Qob2JqZWN0LCBpc1Jvb3Qp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBWElzb2xhdGVkT2JqZWN0KG9iamVjdCwgdHJl
ZUlELCBwYXJlbnRJRCkpOwogfQogCiBBWElzb2xhdGVkT2JqZWN0Ojp+QVhJc29sYXRlZE9iamVj
dCgpID0gZGVmYXVsdDsKQEAgLTM4Niw3ICszODksNiBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6
OnNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgQWNj
ZQogCiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgQXR0cmlidXRlVmFsdWVWYXJpYW50JiYgdmFsdWUsIGJvb2wgc2hvdWxkUmVt
b3ZlKQogewotICAgIEFTU0VSVCghbV9pbml0aWFsaXplZCk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAogICAgIGlmIChzaG91bGRSZW1vdmUpCkBAIC00MDQsNyArNDA2LDcgQEAgdm9p
ZCBBWElzb2xhdGVkT2JqZWN0OjphcHBlbmRDaGlsZChBWElEIGF4SUQpCiB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OnNldFBhcmVudChBWElEIHBhcmVudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fcGFyZW50ID0gcGFyZW50OworICAgIG1fcGFyZW50SUQgPSBwYXJlbnQ7
CiB9CiAKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoUmVtb3RlUGFydHMoQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlIGRldGFjaG1lbnRUeXBlKQpAQCAtNDI1LDE0ICs0MjcsNyBAQCBi
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWQoKSBjb25zdAogCiB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQoKQogewotICAgIG1fcGFyZW50ID0gSW52YWxpZEFY
SUQ7Ci19Ci0KLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0VHJlZUlkZW50aWZpZXIoQVhJc29s
YXRlZFRyZWVJRCB0cmVlSWRlbnRpZmllcikKLXsKLSAgICBtX3RyZWVJZGVudGlmaWVyID0gdHJl
ZUlkZW50aWZpZXI7Ci0gICAgaWYgKGF1dG8gdHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9y
SUQobV90cmVlSWRlbnRpZmllcikpCi0gICAgICAgIG1fY2FjaGVkVHJlZSA9IHRyZWU7CisgICAg
bV9wYXJlbnRJRCA9IEludmFsaWRBWElEOwogfQogCiBjb25zdCBBWENvcmVPYmplY3Q6OkFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciYgQVhJc29sYXRlZE9iamVjdDo6Y2hpbGRyZW4oYm9vbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCAzYWE5Njk5ZDRmOTYxNDdjNWViZjczMWRjNTg0
NjdjNTcxODNmOWUwLi43MWMxYzJjNTJjOWQ5ZTUyNWQ0ODFmYWE4MTMwZDkxYzUzMWY3NThmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC00NywxNiArNDcsMTYgQEAgY2xhc3MgQVhJc29s
YXRlZFRyZWU7CiAKIGNsYXNzIEFYSXNvbGF0ZWRPYmplY3QgZmluYWwgOiBwdWJsaWMgQVhDb3Jl
T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IGNyZWF0
ZShBWENvcmVPYmplY3QmLCBib29sIGlzUm9vdCk7CisgICAgc3RhdGljIFJlZjxBWElzb2xhdGVk
T2JqZWN0PiBjcmVhdGUoQVhDb3JlT2JqZWN0JiwgQVhJc29sYXRlZFRyZWVJRCwgQVhJRCBwYXJl
bnRJRCk7CiAgICAgfkFYSXNvbGF0ZWRPYmplY3QoKTsKIAogICAgIHZvaWQgc2V0T2JqZWN0SUQo
QVhJRCBpZCkgb3ZlcnJpZGUgeyBtX2lkID0gaWQ7IH0KICAgICBBWElEIG9iamVjdElEKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQogICAgIHZvaWQgaW5pdCgpIG92ZXJyaWRlIHsg
fQogCisgICAgdm9pZCBhdHRhY2hQbGF0Zm9ybVdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIqKTsKICAgICBib29sIGlzRGV0YWNoZWQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZv
aWQgc2V0VHJlZUlkZW50aWZpZXIoQVhJc29sYXRlZFRyZWVJRCk7CiAgICAgdm9pZCBzZXRQYXJl
bnQoQVhJRCk7CiAgICAgdm9pZCBhcHBlbmRDaGlsZChBWElEKTsKIApAQCAtNjQsMTMgKzY0LDEz
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXRhY2hSZW1vdGVQYXJ0cyhBY2Nlc3NpYmlsaXR5RGV0
YWNobWVudFR5cGUpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNoUGxhdGZvcm1XcmFwcGVyKEFj
Y2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSkgb3ZlcnJpZGU7CiAKLSAgICBBWElEIHBhcmVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CisgICAgQVhJRCBwYXJlbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmVudElEOyB9CiAKLSAgICBBWElzb2xhdGVkVHJlZUlEIHRyZWVJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV90cmVlSWRlbnRpZmllcjsgfQorICAgIEFYSXNvbGF0ZWRUcmVl
SUQgdHJlZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RyZWVJRDsgfQogICAgIEFYSXNv
bGF0ZWRUcmVlKiB0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRUcmVlLmdldCgpOyB9CiAK
ICAgICBBWElzb2xhdGVkT2JqZWN0KCkgPSBkZWZhdWx0OwotICAgIEFYSXNvbGF0ZWRPYmplY3Qo
QVhDb3JlT2JqZWN0JiwgYm9vbCBpc1Jvb3QpOworICAgIEFYSXNvbGF0ZWRPYmplY3QoQVhDb3Jl
T2JqZWN0JiwgQVhJc29sYXRlZFRyZWVJRCwgQVhJRCBwYXJlbnRJRCk7CiAgICAgdm9pZCBpbml0
aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmLCBib29sIGlzUm9vdCk7CiAgICAgQVhD
b3JlT2JqZWN0KiBhc3NvY2lhdGVkQVhPYmplY3QoKSBjb25zdAogICAgIHsKQEAgLTgyMSwxMSAr
ODIxLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIG92ZXJy
aWRlOwogCi0gICAgQVhJRCBtX3BhcmVudCB7IEludmFsaWRBWElEIH07Ci0gICAgQVhJRCBtX2lk
IHsgSW52YWxpZEFYSUQgfTsKLSAgICBib29sIG1faW5pdGlhbGl6ZWQgeyBmYWxzZSB9OwotICAg
IEFYSXNvbGF0ZWRUcmVlSUQgbV90cmVlSWRlbnRpZmllcjsKKyAgICBBWElzb2xhdGVkVHJlZUlE
IG1fdHJlZUlEOwogICAgIFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gbV9jYWNoZWRUcmVlOworICAg
IEFYSUQgbV9wYXJlbnRJRCB7IEludmFsaWRBWElEIH07CisgICAgQVhJRCBtX2lkIHsgSW52YWxp
ZEFYSUQgfTsKICAgICBWZWN0b3I8QVhJRD4gbV9jaGlsZHJlbklEczsKICAgICBWZWN0b3I8UmVm
UHRyPEFYQ29yZU9iamVjdD4+IG1fY2hpbGRyZW47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApp
bmRleCBiNmZlN2QyYTJjZTcyNGVjYzI0ZjM5NTA1NTY2OTVkNGVkM2RhZmI1Li5hMzA5MGQyN2Ux
MGM1ZGJkNWJkMmM3NmI5NDE1NTIwMTNiZWYwOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
CkBAIC00Miw2ICs0MiwxOCBAQCBzdGF0aWMgdW5zaWduZWQgbmV3VHJlZUlEKCkKICAgICByZXR1
cm4gKytzX2N1cnJlbnRUcmVlSUQ7CiB9CiAKK0FYSXNvbGF0ZWRUcmVlOjpOb2RlQ2hhbmdlOjpO
b2RlQ2hhbmdlKGNvbnN0IFJlZjxBWElzb2xhdGVkT2JqZWN0PiYgaXNvbGF0ZWRPYmplY3QsIEFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiB3cmFwcGVyKQorICAgIDogbV9pc29sYXRlZE9iamVj
dChpc29sYXRlZE9iamVjdC5jb3B5UmVmKCkpCisgICAgLCBtX3dyYXBwZXIod3JhcHBlcikKK3sK
K30KKworQVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U6Ok5vZGVDaGFuZ2UoY29uc3QgTm9kZUNo
YW5nZSYgb3RoZXIpCisgICAgOiBtX2lzb2xhdGVkT2JqZWN0KG90aGVyLm1faXNvbGF0ZWRPYmpl
Y3QuY29weVJlZigpKQorICAgICwgbV93cmFwcGVyKG90aGVyLm1fd3JhcHBlcikKK3sKK30KKwog
SGFzaE1hcDxQYWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4mIEFYSXNvbGF0ZWRU
cmVlOjp0cmVlUGFnZUNhY2hlKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1h
cDxQYWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4+IG1hcDsKQEAgLTE1NSwxMSAr
MTY3LDExIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoQVhJRCBheElEKQogICAg
IG1fcGVuZGluZ1JlbW92YWxzLmFwcGVuZChheElEKTsKIH0KIAotdm9pZCBBWElzb2xhdGVkVHJl
ZTo6YXBwZW5kTm9kZUNoYW5nZXMoVmVjdG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4mIGxvZykK
K3ZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGVuZE5vZGVDaGFuZ2VzKGNvbnN0IFZlY3RvcjxOb2Rl
Q2hhbmdlPiYgbG9nKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2Nr
IH07Ci0gICAgZm9yIChhdXRvJiBub2RlIDogbG9nKQotICAgICAgICBtX3BlbmRpbmdBcHBlbmRz
LmFwcGVuZChub2RlLmNvcHlSZWYoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBub2RlIDogbG9n
KQorICAgICAgICBtX3BlbmRpbmdBcHBlbmRzLmFwcGVuZChub2RlKTsKIH0KIAogdm9pZCBBWElz
b2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCkBAIC0xNjcsMjIgKzE3OSwyMyBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKICAgICBSRUxFQVNFX0FT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIExvY2tIb2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VM
b2dMb2NrIH07CiAKLSAgICAvLyBXZSBkb24ndCBjbGVhciB0aGUgcGVuZGluZyBJRHMgYmVhY2F1
c2UgaWYgdGhlIG5leHQgcm91bmQgb2YgdXBkYXRlcyBkb2VzIG5vdCBtb2RpZnkgdGhlbSwgdGhl
biB0aGV5IHN0YXkgdGhlIHNhbWUKLSAgICAvLyB2YWx1ZSB3aXRob3V0IGV4dHJhIGJvb2trZWVw
aW5nLgogICAgIG1fZm9jdXNlZE5vZGVJRCA9IG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQ7CiAKLSAg
ICBmb3IgKGF1dG8mIGl0ZW0gOiBtX3BlbmRpbmdBcHBlbmRzKQotICAgICAgICBtX3JlYWRlclRo
cmVhZE5vZGVNYXAuYWRkKGl0ZW0tPm9iamVjdElEKCksIFdURk1vdmUoaXRlbSkpOwotICAgIG1f
cGVuZGluZ0FwcGVuZHMuY2xlYXIoKTsKLQotICAgIGZvciAoYXV0byYgaXRlbSA6IG1fcGVuZGlu
Z1JlbW92YWxzKSB7CisgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogbV9wZW5kaW5nUmVtb3Zh
bHMpIHsKICAgICAgICAgaWYgKGF1dG8gb2JqZWN0ID0gbm9kZUZvcklEKGl0ZW0pKQogICAgICAg
ICAgICAgb2JqZWN0LT5kZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50
RGVzdHJveWVkKTsKICAgICAgICAgbV9yZWFkZXJUaHJlYWROb2RlTWFwLnJlbW92ZShpdGVtKTsK
ICAgICB9CiAgICAgbV9wZW5kaW5nUmVtb3ZhbHMuY2xlYXIoKTsKKworICAgIGZvciAoYXV0byYg
aXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpIHsKKyAgICAgICAgQVNTRVJUKGl0ZW0ubV93cmFwcGVy
KTsKKyAgICAgICAgaXRlbS5tX2lzb2xhdGVkT2JqZWN0LT5hdHRhY2hQbGF0Zm9ybVdyYXBwZXIo
aXRlbS5tX3dyYXBwZXIpOworICAgICAgICBtX3JlYWRlclRocmVhZE5vZGVNYXAuYWRkKGl0ZW0u
bV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSwgaXRlbS5tX2lzb2xhdGVkT2JqZWN0LmNvcHlS
ZWYoKSk7CisgICAgfQorICAgIG1fcGVuZGluZ0FwcGVuZHMuY2xlYXIoKTsKIH0KLSAgICAKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFlf
SVNPTEFURURfVFJFRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IDY5Zjc3OGJjNzQ4MGYwOGVk
NzYxMWVmYzRkNTBhYWUxMDRhNzBjZjkuLjAwMTg3ZDA5NzU0MzIyNTA4NDc4MTVkNmVkYWM5MzM3
ZjE3MGQxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKIAorI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzQsOCAr
MzUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBWElzb2xhdGVkT2JqZWN0
OworY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIFBhZ2U7CiAKK3R5cGVkZWYgdW5zaWduZWQg
QVhJc29sYXRlZFRyZWVJRDsKKwogY2xhc3MgQVhJc29sYXRlZFRyZWUgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8QVhJc29sYXRlZFRyZWU+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShBWElzb2xhdGVkVHJlZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCkBAIC01Niw4ICs2
MSwxNSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG5vZGVGb3JJRChB
WElEKSBjb25zdDsKICAgICBzdGF0aWMgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG5vZGVJblRy
ZWVGb3JJRChBWElzb2xhdGVkVHJlZUlELCBBWElEKTsKIAorICAgIHN0cnVjdCBOb2RlQ2hhbmdl
IHsKKyAgICAgICAgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IG1faXNvbGF0ZWRPYmplY3Q7CisgICAg
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiBtX3dyYXBwZXI7CisgICAgICAgIE5vZGVD
aGFuZ2UoY29uc3QgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+JiwgQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIqKTsKKyAgICAgICAgTm9kZUNoYW5nZShjb25zdCBOb2RlQ2hhbmdlJik7CisgICAgfTsK
KwogICAgIC8vIENhbGwgb24gbWFpbiB0aHJlYWQKLSAgICB2b2lkIGFwcGVuZE5vZGVDaGFuZ2Vz
KFZlY3RvcjxSZWY8QVhJc29sYXRlZE9iamVjdD4+Jik7CisgICAgdm9pZCBhcHBlbmROb2RlQ2hh
bmdlcyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mKTsKICAgICB2b2lkIHJlbW92ZU5vZGUoQVhJ
RCk7CiAKICAgICB2b2lkIHNldFJvb3ROb2RlKFJlZjxBWElzb2xhdGVkT2JqZWN0PiYpOwpAQCAt
ODAsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8QVhJRCwgUmVmPEFYSXNvbGF0ZWRP
YmplY3Q+PiBtX3JlYWRlclRocmVhZE5vZGVNYXA7CiAKICAgICAvLyBXcml0dGVuIHRvIGJ5IG1h
aW4gdGhyZWFkIHVuZGVyIGxvY2ssIGFjY2Vzc2VkIGFuZCBhcHBsaWVkIGJ5IEFYIHRocmVhZC4K
LSAgICBWZWN0b3I8UmVmPEFYSXNvbGF0ZWRPYmplY3Q+PiBtX3BlbmRpbmdBcHBlbmRzOworICAg
IFZlY3RvcjxOb2RlQ2hhbmdlPiBtX3BlbmRpbmdBcHBlbmRzOwogICAgIFZlY3RvcjxBWElEPiBt
X3BlbmRpbmdSZW1vdmFsczsKICAgICBBWElEIG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQ7CiAgICAg
TG9jayBtX2NoYW5nZUxvZ0xvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2JqZWN0TWFj
Lm1tCmluZGV4IDYxZWMyODhiOTkxM2M1ZjM1NmViYzA1Mjc4MDVmYWRlMTlkZDQyODkuLjYwYmNl
NzRmMzMyZjcwYmUzNzk5OGVlNGQ5NDY4ZTJiYTUxZGM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2JqZWN0TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9B
WElzb2xhdGVkT2JqZWN0TWFjLm1tCkBAIC0zMiw2ICszMiwxMiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6YXR0YWNoUGxhdGZvcm1XcmFwcGVyKEFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiB3cmFwcGVyKQoreworICAgIFt3cmFwcGVyIGF0dGFj
aElzb2xhdGVkT2JqZWN0OihBWENvcmVPYmplY3QqKXRoaXNdOworICAgIHNldFdyYXBwZXIod3Jh
cHBlcik7Cit9CisKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoUGxhdGZvcm1XcmFwcGVy
KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSkKIHsKICAgICBbd3JhcHBlcigpIGRldGFjaF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQppbmRleCBhYTFmOGY0YzI0ZTYxNjczMGQ3NzA5NWRmMWU3MDY3ZjYzZjg2NjZjLi45
ZDQ5NGYxYjUzYWViNmI3ODNmYWZkZDJhNTYzMmIwNTBiN2EzNTgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTIz
OCwxNCArMjM4LDYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFYQ29yZU9i
amVjdCogb2JqKQogICAgIG9iai0+c2V0V3JhcHBlcih3cmFwcGVyLmdldCgpKTsKIH0KIAotI2lm
IEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi12b2lkIEFYT2JqZWN0Q2FjaGU6
OmF0dGFjaFdyYXBwZXIoQVhJc29sYXRlZE9iamVjdCogaXNvbGF0ZWRPYmplY3QsIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyKiB3cmFwcGVyKQotewotICAgIFt3cmFwcGVyIGF0dGFjaElz
b2xhdGVkT2JqZWN0OihBWENvcmVPYmplY3QqKWlzb2xhdGVkT2JqZWN0XTsKLSAgICBpc29sYXRl
ZE9iamVjdC0+c2V0V3JhcHBlcih3cmFwcGVyKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgQk9PTCBh
eFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyA9IGZhbHNlOwogCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVl
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390510</attachid>
            <date>2020-02-12 07:00:21 -0800</date>
            <delta_ts>2020-02-12 08:27:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207581-20200212100019.patch</filename>
            <type>text/plain</type>
            <size>20782</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4YWM1NzEyYzE2MDVk
MzdlNjk0N2UyNzNjNzIyODZjMzdjN2FhNi4uZDE5MDE5M2I4YjY3YTViODYwZTViNmU5YWQxNzI2
ZTFjZGI4NDUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEyICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGV2
ZW50IG5vdGlmaWNhdGlvbnMgaW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc1ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIERPTS9SZW5kZXIgdHJlZXMgbm90aWZp
Y2F0aW9ucyBhcmUgbGlzdGVuZWQgdG8gYnkgQVhPYmplY3RDYWNoZSBhbmQKKyAgICAgICAgdGhl
IGNvcnJlc3BvbmRpbmcgSXNvbGF0ZWRUcmVlIGlzIHVwZGF0ZWQuCisgICAgICAgIC0gVGhlIHVw
ZGF0ZSBpcyBub3cgaGFwcGVuaW5nIGZvciBzdGF0ZSwgdmFsdWUgYW5kIGNoaWxkcmVuIGNoYW5n
ZQorICAgICAgICBub3RpZmljYXRpb25zLgorICAgICAgICAtIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZSByZS1nZW5lcmF0ZXMgdGhlIHN1YnRyZWUgcm9vdGVkIGF0CisgICAgICAg
IHRoZSBub2RlIHJlY2VpdmluZyB0aGUgbm90aWZpY2F0aW9uLgorICAgICAgICAtIENvbnNvbGlk
YXRlZCBjcmVhdGlvbiBvZiBBWElzb2xhdGVkT2JqZWN0cyBieSBwYXNzaW5nIHRyZWVJRCBhbmQK
KyAgICAgICAgcGFyZW50SUQgdG8gdGhlIGNyZWF0ZSBtZXRob2QgYW5kIGNvbnN0cnVjdG9yLgor
ICAgICAgICAtIENoYW5nZXMgdG8gdGhlIElzb2xhdGVkVHJlZSBhcmUgc2V0IG9uIHRoZSBtYWlu
IHRocmVhZCB1c2luZyB0aGUKKyAgICAgICAgTm9kZUNoYW5nZSBzdHJ1Y3R1cmUsIGFuZCBhcHBs
aWVkIHRvIHRoZSB0cmVlIG9uIHRoZSBBWCB0aHJlYWQuCisgICAgICAgIC0gVGhlIHVwZGF0ZWQg
SXNvbGF0ZWRPYmplY3RzIGFyZSBhdHRhY2hlZCB0byB0aGVpciBjb3JyZXNwb25kaW5nCisgICAg
ICAgIHBsYXRmb3JtIHdyYXBwZXJzIG9uIHRoZSBBWCB0aHJlYWQsIHNvIHRoYXQgYWZ0ZXIgY3Jl
YXRpb24gdGhleSBhcmUgb25seQorICAgICAgICBhY2Nlc3NlZCBvbiB0aGUgc2Vjb25kYXJ5IHRo
cmVhZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKTogSW52b2tlcyB1
cGRhdGVJc29sYXRlZFRyZWUuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJc29sYXRlZFRyZWVI
aWVyYXJjaHkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2VuZXJhdGVJc29s
YXRlZFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0
ZWRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNyZWF0ZUlzb2xhdGVk
VHJlZUhpZXJhcmNoeSk6IEJlY2FtZSBhIHN0YXRpYyBoZWxwZXIuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
T2JqZWN0OjpBWElzb2xhdGVkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRP
YmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRQYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoRnJvbVBhcmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRUcmVlSWRlbnRpZmllcik6
IERlbGV0ZWQsIHRoZSB0cmVlIGlkZW50aWZpZXIgaXMgc2V0IGluIHRoZSBjb25zdHJ1Y3Rvci4K
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U6Ok5vZGVDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFwcGVuZE5vZGVDaGFuZ2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2Vz
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2Jq
ZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YXR0YWNoUGxh
dGZvcm1XcmFwcGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tOgorCiAyMDIwLTAyLTEyICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbRU1FXVtHU3RyZWFtZXJdIEludHJvZHVjZSBDRE1Qcm94eQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMzI4YTVl
YjI0MDI5OWEzMjllNjA4NDBkY2ViZDA0ODYwYjJiOGIxNC4uNzkyODRiZjgwMDAxZWE2ZDI4MTY1
NjJmYzgxNzNiMDJiYTQ2ZGMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xMTE4LDYgKzExMTgsMTAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9j
dW1lbnQsIEEKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxF
KEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRhdGVJc29sYXRlZFRyZWUob2Jq
ZWN0LCBub3RpZmljYXRpb24pOworI2VuZGlmCisKICAgICBpZiAocG9zdFR5cGUgPT0gUG9zdEFz
eW5jaHJvbm91c2x5KSB7CiAgICAgICAgIG1fbm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3Rk
OjptYWtlX3BhaXIob2JqZWN0LCBub3RpZmljYXRpb24pKTsKICAgICAgICAgaWYgKCFtX25vdGlm
aWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQpAQCAtMzA2OCwyMSArMzA3MiwxOSBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKCkKIH0KICAgICAKICNp
ZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotUmVmPEFYSXNvbGF0ZWRPYmpl
Y3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZUlzb2xhdGVkVHJlZUhpZXJhcmNoeShBWENvcmVPYmpl
Y3QmIG9iamVjdCwgQVhJRCBwYXJlbnRJRCwgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSwg
QVhJc29sYXRlZFRyZWUmIHRyZWUsIFZlY3RvcjxSZWY8QVhJc29sYXRlZE9iamVjdD4+JiBub2Rl
Q2hhbmdlcywgYm9vbCBpc1Jvb3QpCitzdGF0aWMgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IGNyZWF0
ZUlzb2xhdGVkVHJlZUhpZXJhcmNoeShBWENvcmVPYmplY3QmIG9iamVjdCwgQVhJc29sYXRlZFRy
ZWVJRCB0cmVlSUQsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPEFY
SXNvbGF0ZWRUcmVlOjpOb2RlQ2hhbmdlPiYgbm9kZUNoYW5nZXMpCiB7Ci0gICAgYXV0byBpc29s
YXRlZFRyZWVOb2RlID0gQVhJc29sYXRlZE9iamVjdDo6Y3JlYXRlKG9iamVjdCwgaXNSb290KTsK
LSAgICBub2RlQ2hhbmdlcy5hcHBlbmQoaXNvbGF0ZWRUcmVlTm9kZS5jb3B5UmVmKCkpOwotCi0g
ICAgaXNvbGF0ZWRUcmVlTm9kZS0+c2V0VHJlZUlkZW50aWZpZXIodHJlZS50cmVlSWRlbnRpZmll
cigpKTsKLSAgICBpc29sYXRlZFRyZWVOb2RlLT5zZXRQYXJlbnQocGFyZW50SUQpOwotICAgIGF4
T2JqZWN0Q2FjaGUtPmF0dGFjaFdyYXBwZXIoJmlzb2xhdGVkVHJlZU5vZGUuZ2V0KCksIG9iamVj
dC53cmFwcGVyKCkpOworICAgIGF1dG8gaXNvbGF0ZWRPYmplY3QgPSBBWElzb2xhdGVkT2JqZWN0
OjpjcmVhdGUob2JqZWN0LCB0cmVlSUQsIHBhcmVudElEKTsKKyAgICBub2RlQ2hhbmdlcy5hcHBl
bmQoQVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2UoaXNvbGF0ZWRPYmplY3QsIG9iamVjdC53cmFw
cGVyKCkpKTsKKyAgICBpZiAoYXR0YWNoV3JhcHBlcikKKyAgICAgICAgaXNvbGF0ZWRPYmplY3Qt
PmF0dGFjaFBsYXRmb3JtV3JhcHBlcihvYmplY3Qud3JhcHBlcigpKTsKIAogICAgIGZvciAoY29u
c3QgYXV0byYgY2hpbGQgOiBvYmplY3QuY2hpbGRyZW4oKSkgewotICAgICAgICBhdXRvIHN0YXRp
Y0NoaWxkID0gY3JlYXRlSXNvbGF0ZWRUcmVlSGllcmFyY2h5KCpjaGlsZCwgaXNvbGF0ZWRUcmVl
Tm9kZS0+b2JqZWN0SUQoKSwgYXhPYmplY3RDYWNoZSwgdHJlZSwgbm9kZUNoYW5nZXMsIGZhbHNl
KTsKLSAgICAgICAgaXNvbGF0ZWRUcmVlTm9kZS0+YXBwZW5kQ2hpbGQoc3RhdGljQ2hpbGQtPm9i
amVjdElEKCkpOworICAgICAgICBhdXRvIHN0YXRpY0NoaWxkID0gY3JlYXRlSXNvbGF0ZWRUcmVl
SGllcmFyY2h5KCpjaGlsZCwgdHJlZUlELCBpc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSwgYXR0
YWNoV3JhcHBlciwgbm9kZUNoYW5nZXMpOworICAgICAgICBpc29sYXRlZE9iamVjdC0+YXBwZW5k
Q2hpbGQoc3RhdGljQ2hpbGQtPm9iamVjdElEKCkpOwogICAgIH0KIAotICAgIHJldHVybiBpc29s
YXRlZFRyZWVOb2RlOworICAgIHJldHVybiBpc29sYXRlZE9iamVjdDsKIH0KIAogUmVmPEFYSXNv
bGF0ZWRUcmVlPiBBWE9iamVjdENhY2hlOjpnZW5lcmF0ZUlzb2xhdGVkVHJlZShQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTMxMDAsOCArMzEwMiw4IEBAIFJl
ZjxBWElzb2xhdGVkVHJlZT4gQVhPYmplY3RDYWNoZTo6Z2VuZXJhdGVJc29sYXRlZFRyZWUoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBECiAKICAgICBhdXRvKiBheFJvb3QgPSBheE9iamVjdENhY2hl
LT5nZXRPckNyZWF0ZShkb2N1bWVudC52aWV3KCkpOwogICAgIGlmIChheFJvb3QpIHsKLSAgICAg
ICAgVmVjdG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4gbm9kZUNoYW5nZXM7Ci0gICAgICAgIGF1
dG8gaXNvbGF0ZWRSb290ID0gY3JlYXRlSXNvbGF0ZWRUcmVlSGllcmFyY2h5KCpheFJvb3QsIElu
dmFsaWRBWElELCBheE9iamVjdENhY2hlLCAqdHJlZSwgbm9kZUNoYW5nZXMsIHRydWUpOworICAg
ICAgICBWZWN0b3I8QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U+IG5vZGVDaGFuZ2VzOworICAg
ICAgICBhdXRvIGlzb2xhdGVkUm9vdCA9IGNyZWF0ZUlzb2xhdGVkVHJlZUhpZXJhcmNoeSgqYXhS
b290LCB0cmVlLT50cmVlSWRlbnRpZmllcigpLCBJbnZhbGlkQVhJRCwgdHJ1ZSwgbm9kZUNoYW5n
ZXMpOwogICAgICAgICB0cmVlLT5zZXRSb290Tm9kZShpc29sYXRlZFJvb3QpOwogICAgICAgICB0
cmVlLT5hcHBlbmROb2RlQ2hhbmdlcyhub2RlQ2hhbmdlcyk7CiAgICAgfQpAQCAtMzExMiw2ICsz
MTE0LDMyIEBAIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhPYmplY3RDYWNoZTo6Z2VuZXJhdGVJc29s
YXRlZFRyZWUoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBECiAKICAgICByZXR1cm4gbWFrZVJlZigq
dHJlZSk7CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29y
ZU9iamVjdCogb2JqZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCit7CisgICAgaWYg
KCFtX3BhZ2VJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB0cmVlID0gQVhJc29sYXRl
ZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICBpZiAoIXRyZWUpCisgICAgICAg
IHJldHVybjsKKworICAgIHN3aXRjaCAobm90aWZpY2F0aW9uKSB7CisgICAgY2FzZSBBWENoZWNr
ZWRTdGF0ZUNoYW5nZWQ6CisgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdlZDoKKyAgICBjYXNlIEFY
VmFsdWVDaGFuZ2VkOiB7CisgICAgICAgIHRyZWUtPnJlbW92ZU5vZGUob2JqZWN0LT5vYmplY3RJ
RCgpKTsKKyAgICAgICAgYXV0byogcGFyZW50ID0gb2JqZWN0LT5wYXJlbnRPYmplY3QoKTsKKyAg
ICAgICAgQVhJRCBwYXJlbnRJRCA9IHBhcmVudCA/IHBhcmVudC0+b2JqZWN0SUQoKSA6IEludmFs
aWRBWElEOworICAgICAgICBWZWN0b3I8QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U+IG5vZGVD
aGFuZ2VzOworICAgICAgICBhdXRvIGlzb2xhdGVkT2JqZWN0ID0gY3JlYXRlSXNvbGF0ZWRUcmVl
SGllcmFyY2h5KCpvYmplY3QsIHRyZWUtPnRyZWVJZGVudGlmaWVyKCksIHBhcmVudElELCBmYWxz
ZSwgbm9kZUNoYW5nZXMpOworICAgICAgICB0cmVlLT5hcHBlbmROb2RlQ2hhbmdlcyhub2RlQ2hh
bmdlcyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OiB7CisgICAgfQorICAg
IH0KK30KICNlbmRpZgogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlclJlY29tcHV0ZUlz
SWdub3JlZElmTmVlZGVkKEVsZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDU5MGRlNTJkYTIyYjUxMmY3YmZhMjBhNWIw
OTMxZjY2ZjQ5MDYyNjYuLmJlZTliYTFjYTY2ZmM1ZTcyM2NjNDZmNjg2MmMzNDQ0ZjUyYjRiZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0y
NSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQVhJc29sYXRlZFRyZWUu
aCIKICNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJSYW5nZS5oIgpAQCAtNDMsMTAgKzQ0LDYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkKLWNsYXNzIEFYSXNvbGF0ZWRPYmplY3Q7Ci1jbGFzcyBBWElzb2xhdGVkVHJlZTsK
LSNlbmRpZgogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MQXJlYUVsZW1lbnQ7CiBjbGFzcyBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDsKQEAgLTE3OCw5ICsxNzUsNiBAQCBwcml2YXRlOgog
ICAgIHVzaW5nIERPTU9iamVjdFZhcmlhbnQgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZW5k
ZXJPYmplY3QqLCBOb2RlKiwgV2lkZ2V0Kj47CiAgICAgdm9pZCBjYWNoZUFuZEluaXRpYWxpemVX
cmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBET01PYmplY3RWYXJpYW50ID0gbnVsbHB0cik7
CiAgICAgdm9pZCBhdHRhY2hXcmFwcGVyKEFYQ29yZU9iamVjdCopOwotI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAgdm9pZCBhdHRhY2hXcmFwcGVyKEFYSXNvbGF0
ZWRPYmplY3QqLCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciopOwotI2VuZGlmCiAKIHB1
YmxpYzoKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChOb2RlKiwgTm9kZSogbmV3Q2hpbGQgPSBu
dWxscHRyKTsKQEAgLTE5OSwxNyArMTkzLDYgQEAgcHVibGljOgogICAgIHZvaWQgZGVmZXJBdHRy
aWJ1dGVDaGFuZ2VJZk5lZWRlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopOwogICAg
IHZvaWQgcmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpOwogCi0jaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgYm9vbCBjbGllbnRTdXBwb3J0c0lzb2xhdGVkVHJlZSgpOwotcHJpdmF0ZToKLSAgICBB
WENvcmVPYmplY3QqIGlzb2xhdGVkVHJlZVJvb3RPYmplY3QoKTsKLSAgICBzdGF0aWMgQVhDb3Jl
T2JqZWN0KiBpc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KERvY3VtZW50Jik7Ci0gICAgdm9pZCBz
ZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KE5vZGUqKTsKLSAgICBzdGF0aWMgUmVmPEFYSXNv
bGF0ZWRUcmVlPiBnZW5lcmF0ZUlzb2xhdGVkVHJlZShQYWdlSWRlbnRpZmllciwgRG9jdW1lbnQm
KTsKLSAgICBzdGF0aWMgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IGNyZWF0ZUlzb2xhdGVkVHJlZUhp
ZXJhcmNoeShBWENvcmVPYmplY3QmLCBBWElELCBBWE9iamVjdENhY2hlKiwgQVhJc29sYXRlZFRy
ZWUmLCBWZWN0b3I8UmVmPEFYSXNvbGF0ZWRPYmplY3Q+PiYsIGJvb2wgaXNSb290KTsKLSNlbmRp
ZgotCi1wdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5Vc2VTZWNvbmRhcnlBWFRo
cmVhZCgpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpCkBAIC0zNjcsNyArMzUwLDE2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRlZmVyVGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uRm9yVGV4
dENvbnRyb2woSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHByZXZp
b3VzVmFsdWUpOwogCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZU1hdGNoZXNUZXh0TmVhclJhbmdl
KFJlZlB0cjxSYW5nZT4sIGNvbnN0IFN0cmluZyYpOwotICAgIAorCisjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBj
bGllbnRTdXBwb3J0c0lzb2xhdGVkVHJlZSgpOworcHJpdmF0ZToKKyAgICBBWENvcmVPYmplY3Qq
IGlzb2xhdGVkVHJlZVJvb3RPYmplY3QoKTsKKyAgICBzdGF0aWMgQVhDb3JlT2JqZWN0KiBpc29s
YXRlZFRyZWVGb2N1c2VkT2JqZWN0KERvY3VtZW50Jik7CisgICAgdm9pZCBzZXRJc29sYXRlZFRy
ZWVGb2N1c2VkT2JqZWN0KE5vZGUqKTsKKyAgICBzdGF0aWMgUmVmPEFYSXNvbGF0ZWRUcmVlPiBn
ZW5lcmF0ZUlzb2xhdGVkVHJlZShQYWdlSWRlbnRpZmllciwgRG9jdW1lbnQmKTsKKyAgICB2b2lk
IHVwZGF0ZUlzb2xhdGVkVHJlZShBWENvcmVPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CisjZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29y
ZU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggMmQ4
MTE3NjYwMmY2Y2FhNjk3MjVhMDVkZTM1OTM3Nzc5MTZiZjFjNy4uODE1MTdjYTdmYTZhYmMyOTk2
NjEzNTZmYjFiNmEwZTQyNGYzOTNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTcwLDcg
KzcwLDYgQEAgc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zOwogCiB0eXBlZGVmIHVu
c2lnbmVkIEFYSUQ7CiBleHRlcm4gY29uc3QgQVhJRCBJbnZhbGlkQVhJRDsKLXR5cGVkZWYgdW5z
aWduZWQgQVhJc29sYXRlZFRyZWVJRDsgICAgCiAKIGVudW0gY2xhc3MgQWNjZXNzaWJpbGl0eVJv
bGUgewogICAgIEFubm90YXRpb24gPSAxLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRl
eCA5ZmI3MDBhMGFjNmU1ZWQ0ZTdiOTg2MTg0OTk1NTNjZDUyZmI2YWE0Li4xOTdkZjQ1NDA3NDM1
Yjc1NzU3MGNiOGE4N2ZlZGE5ZTM0OGIxNWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cApAQCAtMzIsMTcgKzMyLDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQVhJc29sYXRl
ZE9iamVjdDo6QVhJc29sYXRlZE9iamVjdChBWENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jv
b3QpCi0gICAgOiBtX2lkKG9iamVjdC5vYmplY3RJRCgpKQorQVhJc29sYXRlZE9iamVjdDo6QVhJ
c29sYXRlZE9iamVjdChBWENvcmVPYmplY3QmIG9iamVjdCwgQVhJc29sYXRlZFRyZWVJRCB0cmVl
SUQsIEFYSUQgcGFyZW50SUQpCisgICAgOiBtX3RyZWVJRCh0cmVlSUQpCisgICAgLCBtX3BhcmVu
dElEKHBhcmVudElEKQorICAgICwgbV9pZChvYmplY3Qub2JqZWN0SUQoKSkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKG9iamVjdCwg
aXNSb290KTsKLSAgICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKKyAgICBpZiAoYXV0byB0cmVlID0g
QVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRChtX3RyZWVJRCkpCisgICAgICAgIG1fY2FjaGVkVHJl
ZSA9IHRyZWU7CisgICAgaW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEob2JqZWN0LCBwYXJlbnRJRCA9
PSBJbnZhbGlkQVhJRCk7CiB9CiAKLVJlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkT2Jq
ZWN0OjpjcmVhdGUoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290KQorUmVmPEFYSXNv
bGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZShBWENvcmVPYmplY3QmIG9iamVj
dCwgQVhJc29sYXRlZFRyZWVJRCB0cmVlSUQsIEFYSUQgcGFyZW50SUQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQVhJc29sYXRlZE9iamVjdChvYmplY3QsIGlzUm9vdCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFYSXNvbGF0ZWRPYmplY3Qob2JqZWN0LCB0cmVlSUQsIHBhcmVu
dElEKSk7CiB9CiAKIEFYSXNvbGF0ZWRPYmplY3Q6On5BWElzb2xhdGVkT2JqZWN0KCkgPSBkZWZh
dWx0OwpAQCAtMzg2LDcgKzM4OSw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0T2JqZWN0
VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBBY2NlCiAKIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBBdHRyaWJ1dGVWYWx1ZVZhcmlhbnQmJiB2YWx1ZSwgYm9vbCBzaG91bGRSZW1vdmUpCiB7Ci0g
ICAgQVNTRVJUKCFtX2luaXRpYWxpemVkKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
CiAgICAgaWYgKHNob3VsZFJlbW92ZSkKQEAgLTQwNCw3ICs0MDYsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmFwcGVuZENoaWxkKEFYSUQgYXhJRCkKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6
c2V0UGFyZW50KEFYSUQgcGFyZW50KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0g
ICAgbV9wYXJlbnQgPSBwYXJlbnQ7CisgICAgbV9wYXJlbnRJRCA9IHBhcmVudDsKIH0KIAogdm9p
ZCBBWElzb2xhdGVkT2JqZWN0OjpkZXRhY2hSZW1vdGVQYXJ0cyhBY2Nlc3NpYmlsaXR5RGV0YWNo
bWVudFR5cGUgZGV0YWNobWVudFR5cGUpCkBAIC00MjUsMTQgKzQyNyw3IEBAIGJvb2wgQVhJc29s
YXRlZE9iamVjdDo6aXNEZXRhY2hlZCgpIGNvbnN0CiAKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6
ZGV0YWNoRnJvbVBhcmVudCgpCiB7Ci0gICAgbV9wYXJlbnQgPSBJbnZhbGlkQVhJRDsKLX0KLQot
dm9pZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRUcmVlSWRlbnRpZmllcihBWElzb2xhdGVkVHJlZUlE
IHRyZWVJZGVudGlmaWVyKQotewotICAgIG1fdHJlZUlkZW50aWZpZXIgPSB0cmVlSWRlbnRpZmll
cjsKLSAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRChtX3RyZWVJ
ZGVudGlmaWVyKSkKLSAgICAgICAgbV9jYWNoZWRUcmVlID0gdHJlZTsKKyAgICBtX3BhcmVudElE
ID0gSW52YWxpZEFYSUQ7CiB9CiAKIGNvbnN0IEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJiBBWElzb2xhdGVkT2JqZWN0OjpjaGlsZHJlbihib29sKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCmluZGV4IDNhYTk2OTlkNGY5NjE0N2M1ZWJmNzMxZGM1ODQ2N2M1NzE4M2Y5
ZTAuLjcxYzFjMmM1MmM5ZDllNTI1ZDQ4MWZhYTgxMzBkOTFjNTMxZjc1OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmgKQEAgLTQ3LDE2ICs0NywxNiBAQCBjbGFzcyBBWElzb2xhdGVkVHJlZTsK
IAogY2xhc3MgQVhJc29sYXRlZE9iamVjdCBmaW5hbCA6IHB1YmxpYyBBWENvcmVPYmplY3Qgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8QVhJc29sYXRlZE9iamVjdD4gY3JlYXRlKEFYQ29yZU9i
amVjdCYsIGJvb2wgaXNSb290KTsKKyAgICBzdGF0aWMgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IGNy
ZWF0ZShBWENvcmVPYmplY3QmLCBBWElzb2xhdGVkVHJlZUlELCBBWElEIHBhcmVudElEKTsKICAg
ICB+QVhJc29sYXRlZE9iamVjdCgpOwogCiAgICAgdm9pZCBzZXRPYmplY3RJRChBWElEIGlkKSBv
dmVycmlkZSB7IG1faWQgPSBpZDsgfQogICAgIEFYSUQgb2JqZWN0SUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2lkOyB9CiAgICAgdm9pZCBpbml0KCkgb3ZlcnJpZGUgeyB9CiAKKyAgICB2
b2lkIGF0dGFjaFBsYXRmb3JtV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciopOwog
ICAgIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRUcmVl
SWRlbnRpZmllcihBWElzb2xhdGVkVHJlZUlEKTsKICAgICB2b2lkIHNldFBhcmVudChBWElEKTsK
ICAgICB2b2lkIGFwcGVuZENoaWxkKEFYSUQpOwogCkBAIC02NCwxMyArNjQsMTMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRldGFjaFJlbW90ZVBhcnRzKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlw
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRhY2hQbGF0Zm9ybVdyYXBwZXIoQWNjZXNzaWJpbGl0
eURldGFjaG1lbnRUeXBlKSBvdmVycmlkZTsKIAotICAgIEFYSUQgcGFyZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJlbnQ7IH0KKyAgICBBWElEIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFy
ZW50SUQ7IH0KIAotICAgIEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3RyZWVJZGVudGlmaWVyOyB9CisgICAgQVhJc29sYXRlZFRyZWVJRCB0cmVlSWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZUlEOyB9CiAgICAgQVhJc29sYXRlZFRyZWUq
IHRyZWUoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFRyZWUuZ2V0KCk7IH0KIAogICAgIEFYSXNv
bGF0ZWRPYmplY3QoKSA9IGRlZmF1bHQ7Ci0gICAgQVhJc29sYXRlZE9iamVjdChBWENvcmVPYmpl
Y3QmLCBib29sIGlzUm9vdCk7CisgICAgQVhJc29sYXRlZE9iamVjdChBWENvcmVPYmplY3QmLCBB
WElzb2xhdGVkVHJlZUlELCBBWElEIHBhcmVudElEKTsKICAgICB2b2lkIGluaXRpYWxpemVBdHRy
aWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYsIGJvb2wgaXNSb290KTsKICAgICBBWENvcmVPYmplY3Qq
IGFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0CiAgICAgewpAQCAtODIxLDExICs4MjEsMTAgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCkgb3ZlcnJpZGU7CiAKLSAg
ICBBWElEIG1fcGFyZW50IHsgSW52YWxpZEFYSUQgfTsKLSAgICBBWElEIG1faWQgeyBJbnZhbGlk
QVhJRCB9OwotICAgIGJvb2wgbV9pbml0aWFsaXplZCB7IGZhbHNlIH07Ci0gICAgQVhJc29sYXRl
ZFRyZWVJRCBtX3RyZWVJZGVudGlmaWVyOworICAgIEFYSXNvbGF0ZWRUcmVlSUQgbV90cmVlSUQ7
CiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiBtX2NhY2hlZFRyZWU7CisgICAgQVhJRCBtX3Bh
cmVudElEIHsgSW52YWxpZEFYSUQgfTsKKyAgICBBWElEIG1faWQgeyBJbnZhbGlkQVhJRCB9Owog
ICAgIFZlY3RvcjxBWElEPiBtX2NoaWxkcmVuSURzOwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3Jl
T2JqZWN0Pj4gbV9jaGlsZHJlbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGI2ZmU3
ZDJhMmNlNzI0ZWNjMjRmMzk1MDU1NjY5NWQ0ZWQzZGFmYjUuLmEzMDkwZDI3ZTEwYzVkYmQ1YmQy
Yzc2Yjk0MTU1MjAxM2JlZjA5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTQyLDYg
KzQyLDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBuZXdUcmVlSUQoKQogICAgIHJldHVybiArK3NfY3Vy
cmVudFRyZWVJRDsKIH0KIAorQVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U6Ok5vZGVDaGFuZ2Uo
Y29uc3QgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+JiBpc29sYXRlZE9iamVjdCwgQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIpCisgICAgOiBtX2lzb2xhdGVkT2JqZWN0KGlzb2xhdGVk
T2JqZWN0LmNvcHlSZWYoKSkKKyAgICAsIG1fd3JhcHBlcih3cmFwcGVyKQoreworfQorCitBWElz
b2xhdGVkVHJlZTo6Tm9kZUNoYW5nZTo6Tm9kZUNoYW5nZShjb25zdCBOb2RlQ2hhbmdlJiBvdGhl
cikKKyAgICA6IG1faXNvbGF0ZWRPYmplY3Qob3RoZXIubV9pc29sYXRlZE9iamVjdC5jb3B5UmVm
KCkpCisgICAgLCBtX3dyYXBwZXIob3RoZXIubV93cmFwcGVyKQoreworfQorCiBIYXNoTWFwPFBh
Z2VJZGVudGlmaWVyLCBSZWY8QVhJc29sYXRlZFRyZWU+PiYgQVhJc29sYXRlZFRyZWU6OnRyZWVQ
YWdlQ2FjaGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFBhZ2VJZGVu
dGlmaWVyLCBSZWY8QVhJc29sYXRlZFRyZWU+Pj4gbWFwOwpAQCAtMTU1LDExICsxNjcsMTEgQEAg
dm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShBWElEIGF4SUQpCiAgICAgbV9wZW5kaW5n
UmVtb3ZhbHMuYXBwZW5kKGF4SUQpOwogfQogCi12b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBlbmRO
b2RlQ2hhbmdlcyhWZWN0b3I8UmVmPEFYSXNvbGF0ZWRPYmplY3Q+PiYgbG9nKQordm9pZCBBWElz
b2xhdGVkVHJlZTo6YXBwZW5kTm9kZUNoYW5nZXMoY29uc3QgVmVjdG9yPE5vZGVDaGFuZ2U+JiBs
b2cpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKLSAgICBm
b3IgKGF1dG8mIG5vZGUgOiBsb2cpCi0gICAgICAgIG1fcGVuZGluZ0FwcGVuZHMuYXBwZW5kKG5v
ZGUuY29weVJlZigpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vZGUgOiBsb2cpCisgICAgICAg
IG1fcGVuZGluZ0FwcGVuZHMuYXBwZW5kKG5vZGUpOwogfQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKQEAgLTE2NywyMiArMTc5LDIzIEBAIHZvaWQgQVhJc29s
YXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogICAgIFJFTEVBU0VfQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsK
IAotICAgIC8vIFdlIGRvbid0IGNsZWFyIHRoZSBwZW5kaW5nIElEcyBiZWFjYXVzZSBpZiB0aGUg
bmV4dCByb3VuZCBvZiB1cGRhdGVzIGRvZXMgbm90IG1vZGlmeSB0aGVtLCB0aGVuIHRoZXkgc3Rh
eSB0aGUgc2FtZQotICAgIC8vIHZhbHVlIHdpdGhvdXQgZXh0cmEgYm9va2tlZXBpbmcuCiAgICAg
bV9mb2N1c2VkTm9kZUlEID0gbV9wZW5kaW5nRm9jdXNlZE5vZGVJRDsKIAotICAgIGZvciAoYXV0
byYgaXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpCi0gICAgICAgIG1fcmVhZGVyVGhyZWFkTm9kZU1h
cC5hZGQoaXRlbS0+b2JqZWN0SUQoKSwgV1RGTW92ZShpdGVtKSk7Ci0gICAgbV9wZW5kaW5nQXBw
ZW5kcy5jbGVhcigpOwotCi0gICAgZm9yIChhdXRvJiBpdGVtIDogbV9wZW5kaW5nUmVtb3ZhbHMp
IHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX3BlbmRpbmdSZW1vdmFscykgewogICAg
ICAgICBpZiAoYXV0byBvYmplY3QgPSBub2RlRm9ySUQoaXRlbSkpCiAgICAgICAgICAgICBvYmpl
Y3QtPmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGU6OkVsZW1lbnREZXN0cm95ZWQp
OwogICAgICAgICBtX3JlYWRlclRocmVhZE5vZGVNYXAucmVtb3ZlKGl0ZW0pOwogICAgIH0KICAg
ICBtX3BlbmRpbmdSZW1vdmFscy5jbGVhcigpOworCisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9w
ZW5kaW5nQXBwZW5kcykgeworICAgICAgICBBU1NFUlQoaXRlbS5tX3dyYXBwZXIpOworICAgICAg
ICBpdGVtLm1faXNvbGF0ZWRPYmplY3QtPmF0dGFjaFBsYXRmb3JtV3JhcHBlcihpdGVtLm1fd3Jh
cHBlcik7CisgICAgICAgIG1fcmVhZGVyVGhyZWFkTm9kZU1hcC5hZGQoaXRlbS5tX2lzb2xhdGVk
T2JqZWN0LT5vYmplY3RJRCgpLCBpdGVtLm1faXNvbGF0ZWRPYmplY3QuY29weVJlZigpKTsKKyAg
ICB9CisgICAgbV9wZW5kaW5nQXBwZW5kcy5jbGVhcigpOwogfQotICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggNjlmNzc4YmM3NDgwZjA4ZWQ3NjExZWZjNGQ1
MGFhZTEwNGE3MGNmOS4uMDAxODdkMDk3NTQzMjI1MDg0NzgxNWQ2ZWRhYzkzMzdmMTcwZDFjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNCw4ICszNSwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFYSXNvbGF0ZWRPYmplY3Q7CitjbGFzcyBB
WE9iamVjdENhY2hlOwogY2xhc3MgUGFnZTsKIAordHlwZWRlZiB1bnNpZ25lZCBBWElzb2xhdGVk
VHJlZUlEOworCiBjbGFzcyBBWElzb2xhdGVkVHJlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxBWElzb2xhdGVkVHJlZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFYSXNvbGF0
ZWRUcmVlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKQEAgLTU2LDggKzYxLDE1IEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gbm9kZUZvcklEKEFYSUQpIGNvbnN0
OwogICAgIHN0YXRpYyBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gbm9kZUluVHJlZUZvcklEKEFY
SXNvbGF0ZWRUcmVlSUQsIEFYSUQpOwogCisgICAgc3RydWN0IE5vZGVDaGFuZ2UgeworICAgICAg
ICBSZWY8QVhJc29sYXRlZE9iamVjdD4gbV9pc29sYXRlZE9iamVjdDsKKyAgICAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIqIG1fd3JhcHBlcjsKKyAgICAgICAgTm9kZUNoYW5nZShjb25z
dCBSZWY8QVhJc29sYXRlZE9iamVjdD4mLCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciopOwor
ICAgICAgICBOb2RlQ2hhbmdlKGNvbnN0IE5vZGVDaGFuZ2UmKTsKKyAgICB9OworCiAgICAgLy8g
Q2FsbCBvbiBtYWluIHRocmVhZAotICAgIHZvaWQgYXBwZW5kTm9kZUNoYW5nZXMoVmVjdG9yPFJl
ZjxBWElzb2xhdGVkT2JqZWN0Pj4mKTsKKyAgICB2b2lkIGFwcGVuZE5vZGVDaGFuZ2VzKGNvbnN0
IFZlY3RvcjxOb2RlQ2hhbmdlPiYpOwogICAgIHZvaWQgcmVtb3ZlTm9kZShBWElEKTsKIAogICAg
IHZvaWQgc2V0Um9vdE5vZGUoUmVmPEFYSXNvbGF0ZWRPYmplY3Q+Jik7CkBAIC04MCw3ICs5Miw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxBWElELCBSZWY8QVhJc29sYXRlZE9iamVjdD4+IG1f
cmVhZGVyVGhyZWFkTm9kZU1hcDsKIAogICAgIC8vIFdyaXR0ZW4gdG8gYnkgbWFpbiB0aHJlYWQg
dW5kZXIgbG9jaywgYWNjZXNzZWQgYW5kIGFwcGxpZWQgYnkgQVggdGhyZWFkLgotICAgIFZlY3Rv
cjxSZWY8QVhJc29sYXRlZE9iamVjdD4+IG1fcGVuZGluZ0FwcGVuZHM7CisgICAgVmVjdG9yPE5v
ZGVDaGFuZ2U+IG1fcGVuZGluZ0FwcGVuZHM7CiAgICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGluZ1Jl
bW92YWxzOwogICAgIEFYSUQgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRDsKICAgICBMb2NrIG1fY2hh
bmdlTG9nTG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0KaW5kZXgg
NjFlYzI4OGI5OTEzYzVmMzU2ZWJjMDUyNzgwNWZhZGUxOWRkNDI4OS4uNTZiMjgwM2YxY2YwM2Rh
ZjkwMzdmNDViMzQ5OTE0MDI4ZWYwZThmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmplY3RNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRP
YmplY3RNYWMubW0KQEAgLTMyLDYgKzMyLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
dm9pZCBBWElzb2xhdGVkT2JqZWN0OjphdHRhY2hQbGF0Zm9ybVdyYXBwZXIoQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIpCit7CisgICAgW3dyYXBwZXIgYXR0YWNoSXNvbGF0ZWRP
YmplY3Q6dGhpc107CisgICAgc2V0V3JhcHBlcih3cmFwcGVyKTsKK30KKwogdm9pZCBBWElzb2xh
dGVkT2JqZWN0OjpkZXRhY2hQbGF0Zm9ybVdyYXBwZXIoQWNjZXNzaWJpbGl0eURldGFjaG1lbnRU
eXBlKQogewogICAgIFt3cmFwcGVyKCkgZGV0YWNoXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGFhMWY4ZjRjMjRl
NjE2NzMwZDc3MDk1ZGYxZTcwNjdmNjNmODY2NmMuLjlkNDk0ZjFiNTNhZWI2Yjc4M2ZhZmRkMmE1
NjMyYjA1MGI3YTM1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtMjM4LDE0ICsyMzgsNiBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIoQVhDb3JlT2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRX
cmFwcGVyKHdyYXBwZXIuZ2V0KCkpOwogfQogCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkKLXZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBWElzb2xhdGVk
T2JqZWN0KiBpc29sYXRlZE9iamVjdCwgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdy
YXBwZXIpCi17Ci0gICAgW3dyYXBwZXIgYXR0YWNoSXNvbGF0ZWRPYmplY3Q6KEFYQ29yZU9iamVj
dCopaXNvbGF0ZWRPYmplY3RdOwotICAgIGlzb2xhdGVkT2JqZWN0LT5zZXRXcmFwcGVyKHdyYXBw
ZXIpOwotfQotI2VuZGlmCi0KIHN0YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9u
c0ZvclRlc3RzID0gZmFsc2U7CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390525</attachid>
            <date>2020-02-12 08:27:39 -0800</date>
            <delta_ts>2020-02-12 09:31:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207581-20200212112737.patch</filename>
            <type>text/plain</type>
            <size>20798</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4YWM1NzEyYzE2MDVk
MzdlNjk0N2UyNzNjNzIyODZjMzdjN2FhNi4uYjYxODAzMDY0MWQ4YzEwNTVlZjhlYTk3Y2E5NDU5
MDc2YjljZDhlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEyICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGV2
ZW50IG5vdGlmaWNhdGlvbnMgaW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc1ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIERPTS9SZW5kZXIgdHJlZXMgbm90aWZp
Y2F0aW9ucyBhcmUgbGlzdGVuZWQgdG8gYnkgQVhPYmplY3RDYWNoZSBhbmQKKyAgICAgICAgdGhl
IGNvcnJlc3BvbmRpbmcgSXNvbGF0ZWRUcmVlIGlzIHVwZGF0ZWQuCisgICAgICAgIC0gVGhlIHVw
ZGF0ZSBpcyBub3cgaGFwcGVuaW5nIGZvciBzdGF0ZSwgdmFsdWUgYW5kIGNoaWxkcmVuIGNoYW5n
ZQorICAgICAgICBub3RpZmljYXRpb25zLgorICAgICAgICAtIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZSByZS1nZW5lcmF0ZXMgdGhlIHN1YnRyZWUgcm9vdGVkIGF0CisgICAgICAg
IHRoZSBub2RlIHJlY2VpdmluZyB0aGUgbm90aWZpY2F0aW9uLgorICAgICAgICAtIENvbnNvbGlk
YXRlZCBjcmVhdGlvbiBvZiBBWElzb2xhdGVkT2JqZWN0cyBieSBwYXNzaW5nIHRyZWVJRCBhbmQK
KyAgICAgICAgcGFyZW50SUQgdG8gdGhlIGNyZWF0ZSBtZXRob2QgYW5kIGNvbnN0cnVjdG9yLgor
ICAgICAgICAtIENoYW5nZXMgdG8gdGhlIElzb2xhdGVkVHJlZSBhcmUgc2V0IG9uIHRoZSBtYWlu
IHRocmVhZCB1c2luZyB0aGUKKyAgICAgICAgTm9kZUNoYW5nZSBzdHJ1Y3R1cmUsIGFuZCBhcHBs
aWVkIHRvIHRoZSB0cmVlIG9uIHRoZSBBWCB0aHJlYWQuCisgICAgICAgIC0gVGhlIHVwZGF0ZWQg
SXNvbGF0ZWRPYmplY3RzIGFyZSBhdHRhY2hlZCB0byB0aGVpciBjb3JyZXNwb25kaW5nCisgICAg
ICAgIHBsYXRmb3JtIHdyYXBwZXJzIG9uIHRoZSBBWCB0aHJlYWQsIHNvIHRoYXQgYWZ0ZXIgY3Jl
YXRpb24gdGhleSBhcmUgb25seQorICAgICAgICBhY2Nlc3NlZCBvbiB0aGUgc2Vjb25kYXJ5IHRo
cmVhZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKTogSW52b2tlcyB1
cGRhdGVJc29sYXRlZFRyZWUuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJc29sYXRlZFRyZWVI
aWVyYXJjaHkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2VuZXJhdGVJc29s
YXRlZFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0
ZWRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNyZWF0ZUlzb2xhdGVk
VHJlZUhpZXJhcmNoeSk6IEJlY2FtZSBhIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkT2JqZWN0OjpBWElzb2xhdGVkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
SXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2Jq
ZWN0OjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpz
ZXRQYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoRnJv
bVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpzZXRUcmVlSWRl
bnRpZmllcik6IERlbGV0ZWQsIHRoZSB0cmVlIGlkZW50aWZpZXIgaXMgc2V0IGluIHRoZSBjb25z
dHJ1Y3Rvci4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U6
Ok5vZGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFwcGVuZE5v
ZGVDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRp
bmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElz
b2xhdGVkT2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6
YXR0YWNoUGxhdGZvcm1XcmFwcGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgorCiAyMDIwLTAyLTEyICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbRU1FXVtHU3RyZWFtZXJdIEludHJvZHVjZSBDRE1Qcm94
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5k
ZXggMzI4YTVlYjI0MDI5OWEzMjllNjA4NDBkY2ViZDA0ODYwYjJiOGIxNC4uMDg2ZWY0NDlkOWMx
MmViNjhmNjlkZWQ4YjM5ODVmYWY4MDU4MDEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xMTE4LDYgKzExMTgsMTAgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBEb2N1
bWVudCogZG9jdW1lbnQsIEEKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRhdGVJc29sYXRl
ZFRyZWUob2JqZWN0LCBub3RpZmljYXRpb24pOworI2VuZGlmCisKICAgICBpZiAocG9zdFR5cGUg
PT0gUG9zdEFzeW5jaHJvbm91c2x5KSB7CiAgICAgICAgIG1fbm90aWZpY2F0aW9uc1RvUG9zdC5h
cHBlbmQoc3RkOjptYWtlX3BhaXIob2JqZWN0LCBub3RpZmljYXRpb24pKTsKICAgICAgICAgaWYg
KCFtX25vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQpAQCAtMzA2OCwyMSArMzA3Miwx
OSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKCkKIH0K
ICAgICAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotUmVmPEFYSXNv
bGF0ZWRPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZUlzb2xhdGVkVHJlZUhpZXJhcmNoeShB
WENvcmVPYmplY3QmIG9iamVjdCwgQVhJRCBwYXJlbnRJRCwgQVhPYmplY3RDYWNoZSogYXhPYmpl
Y3RDYWNoZSwgQVhJc29sYXRlZFRyZWUmIHRyZWUsIFZlY3RvcjxSZWY8QVhJc29sYXRlZE9iamVj
dD4+JiBub2RlQ2hhbmdlcywgYm9vbCBpc1Jvb3QpCitzdGF0aWMgUmVmPEFYSXNvbGF0ZWRPYmpl
Y3Q+IGNyZWF0ZUlzb2xhdGVkVHJlZUhpZXJhcmNoeShBWENvcmVPYmplY3QmIG9iamVjdCwgQVhJ
c29sYXRlZFRyZWVJRCB0cmVlSUQsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwg
VmVjdG9yPEFYSXNvbGF0ZWRUcmVlOjpOb2RlQ2hhbmdlPiYgbm9kZUNoYW5nZXMpCiB7Ci0gICAg
YXV0byBpc29sYXRlZFRyZWVOb2RlID0gQVhJc29sYXRlZE9iamVjdDo6Y3JlYXRlKG9iamVjdCwg
aXNSb290KTsKLSAgICBub2RlQ2hhbmdlcy5hcHBlbmQoaXNvbGF0ZWRUcmVlTm9kZS5jb3B5UmVm
KCkpOwotCi0gICAgaXNvbGF0ZWRUcmVlTm9kZS0+c2V0VHJlZUlkZW50aWZpZXIodHJlZS50cmVl
SWRlbnRpZmllcigpKTsKLSAgICBpc29sYXRlZFRyZWVOb2RlLT5zZXRQYXJlbnQocGFyZW50SUQp
OwotICAgIGF4T2JqZWN0Q2FjaGUtPmF0dGFjaFdyYXBwZXIoJmlzb2xhdGVkVHJlZU5vZGUuZ2V0
KCksIG9iamVjdC53cmFwcGVyKCkpOworICAgIGF1dG8gaXNvbGF0ZWRPYmplY3QgPSBBWElzb2xh
dGVkT2JqZWN0OjpjcmVhdGUob2JqZWN0LCB0cmVlSUQsIHBhcmVudElEKTsKKyAgICBub2RlQ2hh
bmdlcy5hcHBlbmQoQVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2UoaXNvbGF0ZWRPYmplY3QsIG9i
amVjdC53cmFwcGVyKCkpKTsKKyAgICBpZiAoYXR0YWNoV3JhcHBlcikKKyAgICAgICAgaXNvbGF0
ZWRPYmplY3QtPmF0dGFjaFBsYXRmb3JtV3JhcHBlcihvYmplY3Qud3JhcHBlcigpKTsKIAogICAg
IGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBvYmplY3QuY2hpbGRyZW4oKSkgewotICAgICAgICBh
dXRvIHN0YXRpY0NoaWxkID0gY3JlYXRlSXNvbGF0ZWRUcmVlSGllcmFyY2h5KCpjaGlsZCwgaXNv
bGF0ZWRUcmVlTm9kZS0+b2JqZWN0SUQoKSwgYXhPYmplY3RDYWNoZSwgdHJlZSwgbm9kZUNoYW5n
ZXMsIGZhbHNlKTsKLSAgICAgICAgaXNvbGF0ZWRUcmVlTm9kZS0+YXBwZW5kQ2hpbGQoc3RhdGlj
Q2hpbGQtPm9iamVjdElEKCkpOworICAgICAgICBhdXRvIHN0YXRpY0NoaWxkID0gY3JlYXRlSXNv
bGF0ZWRUcmVlSGllcmFyY2h5KCpjaGlsZCwgdHJlZUlELCBpc29sYXRlZE9iamVjdC0+b2JqZWN0
SUQoKSwgYXR0YWNoV3JhcHBlciwgbm9kZUNoYW5nZXMpOworICAgICAgICBpc29sYXRlZE9iamVj
dC0+YXBwZW5kQ2hpbGQoc3RhdGljQ2hpbGQtPm9iamVjdElEKCkpOwogICAgIH0KIAotICAgIHJl
dHVybiBpc29sYXRlZFRyZWVOb2RlOworICAgIHJldHVybiBpc29sYXRlZE9iamVjdDsKIH0KIAog
UmVmPEFYSXNvbGF0ZWRUcmVlPiBBWE9iamVjdENhY2hlOjpnZW5lcmF0ZUlzb2xhdGVkVHJlZShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTMxMDAsOCArMzEw
Miw4IEBAIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhPYmplY3RDYWNoZTo6Z2VuZXJhdGVJc29sYXRl
ZFRyZWUoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBECiAKICAgICBhdXRvKiBheFJvb3QgPSBheE9i
amVjdENhY2hlLT5nZXRPckNyZWF0ZShkb2N1bWVudC52aWV3KCkpOwogICAgIGlmIChheFJvb3Qp
IHsKLSAgICAgICAgVmVjdG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4gbm9kZUNoYW5nZXM7Ci0g
ICAgICAgIGF1dG8gaXNvbGF0ZWRSb290ID0gY3JlYXRlSXNvbGF0ZWRUcmVlSGllcmFyY2h5KCph
eFJvb3QsIEludmFsaWRBWElELCBheE9iamVjdENhY2hlLCAqdHJlZSwgbm9kZUNoYW5nZXMsIHRy
dWUpOworICAgICAgICBWZWN0b3I8QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U+IG5vZGVDaGFu
Z2VzOworICAgICAgICBhdXRvIGlzb2xhdGVkUm9vdCA9IGNyZWF0ZUlzb2xhdGVkVHJlZUhpZXJh
cmNoeSgqYXhSb290LCB0cmVlLT50cmVlSWRlbnRpZmllcigpLCBJbnZhbGlkQVhJRCwgdHJ1ZSwg
bm9kZUNoYW5nZXMpOwogICAgICAgICB0cmVlLT5zZXRSb290Tm9kZShpc29sYXRlZFJvb3QpOwog
ICAgICAgICB0cmVlLT5hcHBlbmROb2RlQ2hhbmdlcyhub2RlQ2hhbmdlcyk7CiAgICAgfQpAQCAt
MzExMiw2ICszMTE0LDMyIEBAIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhPYmplY3RDYWNoZTo6Z2Vu
ZXJhdGVJc29sYXRlZFRyZWUoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBECiAKICAgICByZXR1cm4g
bWFrZVJlZigqdHJlZSk7CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRU
cmVlKEFYQ29yZU9iamVjdCogb2JqZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCit7
CisgICAgaWYgKCFtX3BhZ2VJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB0cmVlID0g
QVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICBpZiAoIXRyZWUp
CisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAobm90aWZpY2F0aW9uKSB7CisgICAgY2Fz
ZSBBWENoZWNrZWRTdGF0ZUNoYW5nZWQ6CisgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdlZDoKKyAg
ICBjYXNlIEFYVmFsdWVDaGFuZ2VkOiB7CisgICAgICAgIHRyZWUtPnJlbW92ZU5vZGUob2JqZWN0
LT5vYmplY3RJRCgpKTsKKyAgICAgICAgYXV0byogcGFyZW50ID0gb2JqZWN0LT5wYXJlbnRPYmpl
Y3QoKTsKKyAgICAgICAgQVhJRCBwYXJlbnRJRCA9IHBhcmVudCA/IHBhcmVudC0+b2JqZWN0SUQo
KSA6IEludmFsaWRBWElEOworICAgICAgICBWZWN0b3I8QVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFu
Z2U+IG5vZGVDaGFuZ2VzOworICAgICAgICBhdXRvIGlzb2xhdGVkT2JqZWN0ID0gY3JlYXRlSXNv
bGF0ZWRUcmVlSGllcmFyY2h5KCpvYmplY3QsIHRyZWUtPnRyZWVJZGVudGlmaWVyKCksIHBhcmVu
dElELCBmYWxzZSwgbm9kZUNoYW5nZXMpOworICAgICAgICB0cmVlLT5hcHBlbmROb2RlQ2hhbmdl
cyhub2RlQ2hhbmdlcyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKKyAgICB9Cit9CiAjZW5kaWYKICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5lZWRlZChFbGVtZW50KiBlbGVtZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA1OTBkZTUyZGEy
MmI1MTJmN2JmYTIwYTViMDkzMWY2NmY0OTA2MjY2Li5iZWU5YmExY2E2NmZjNWU3MjNjYzQ2ZjY4
NjJjMzQ0NGY1MmI0YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkFYSXNvbGF0ZWRUcmVlLmgiCiAjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIK
ICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAg
LTQzLDEwICs0NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi1jbGFzcyBBWElzb2xhdGVkT2JqZWN0OwotY2xhc3Mg
QVhJc29sYXRlZFRyZWU7Ci0jZW5kaWYKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTEFyZWFF
bGVtZW50OwogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ7CkBAIC0xNzgsOSArMTc1
LDYgQEAgcHJpdmF0ZToKICAgICB1c2luZyBET01PYmplY3RWYXJpYW50ID0gVmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgUmVuZGVyT2JqZWN0KiwgTm9kZSosIFdpZGdldCo+OwogICAgIHZvaWQgY2Fj
aGVBbmRJbml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRE9NT2JqZWN0VmFy
aWFudCA9IG51bGxwdHIpOwogICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBWENvcmVPYmplY3QqKTsK
LSNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotICAgIHZvaWQgYXR0YWNo
V3JhcHBlcihBWElzb2xhdGVkT2JqZWN0KiwgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIq
KTsKLSNlbmRpZgogCiBwdWJsaWM6CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5v
ZGUqIG5ld0NoaWxkID0gbnVsbHB0cik7CkBAIC0xOTksMTcgKzE5Myw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRlZmVyQXR0cmlidXRlQ2hhbmdlSWZOZWVkZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKTsKICAgICB2b2lkIHJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKTsKIAotI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKTsK
LXByaXZhdGU6Ci0gICAgQVhDb3JlT2JqZWN0KiBpc29sYXRlZFRyZWVSb290T2JqZWN0KCk7Ci0g
ICAgc3RhdGljIEFYQ29yZU9iamVjdCogaXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChEb2N1bWVu
dCYpOwotICAgIHZvaWQgc2V0SXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChOb2RlKik7Ci0gICAg
c3RhdGljIFJlZjxBWElzb2xhdGVkVHJlZT4gZ2VuZXJhdGVJc29sYXRlZFRyZWUoUGFnZUlkZW50
aWZpZXIsIERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZjxBWElzb2xhdGVkT2JqZWN0PiBjcmVh
dGVJc29sYXRlZFRyZWVIaWVyYXJjaHkoQVhDb3JlT2JqZWN0JiwgQVhJRCwgQVhPYmplY3RDYWNo
ZSosIEFYSXNvbGF0ZWRUcmVlJiwgVmVjdG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4mLCBib29s
IGlzUm9vdCk7Ci0jZW5kaWYKLQotcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2Fu
VXNlU2Vjb25kYXJ5QVhUaHJlYWQoKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKQpAQCAt
MzY3LDcgKzM1MCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWZlclRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbkZvclRleHRDb250cm9sKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiwgY29u
c3QgU3RyaW5nJiBwcmV2aW91c1ZhbHVlKTsKIAogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VNYXRj
aGVzVGV4dE5lYXJSYW5nZShSZWZQdHI8UmFuZ2U+LCBjb25zdCBTdHJpbmcmKTsKLSAgICAKKwor
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGJvb2wgY2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKTsKK3ByaXZhdGU6Cisg
ICAgQVhDb3JlT2JqZWN0KiBpc29sYXRlZFRyZWVSb290T2JqZWN0KCk7CisgICAgc3RhdGljIEFY
Q29yZU9iamVjdCogaXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChEb2N1bWVudCYpOworICAgIHZv
aWQgc2V0SXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdChOb2RlKik7CisgICAgc3RhdGljIFJlZjxB
WElzb2xhdGVkVHJlZT4gZ2VuZXJhdGVJc29sYXRlZFRyZWUoUGFnZUlkZW50aWZpZXIsIERvY3Vt
ZW50Jik7CisgICAgdm9pZCB1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0KiwgQVhOb3Rp
ZmljYXRpb24pOworI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBWENvcmVPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oCmluZGV4IDJkODExNzY2MDJmNmNhYTY5NzI1YTA1ZGUzNTkzNzc3OTE2YmYxYzcuLjgx
NTE3Y2E3ZmE2YWJjMjk5NjYxMzU2ZmIxYjZhMGU0MjRmMzkzYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oCkBAIC03MCw3ICs3MCw2IEBAIHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9u
czsKIAogdHlwZWRlZiB1bnNpZ25lZCBBWElEOwogZXh0ZXJuIGNvbnN0IEFYSUQgSW52YWxpZEFY
SUQ7Ci10eXBlZGVmIHVuc2lnbmVkIEFYSXNvbGF0ZWRUcmVlSUQ7ICAgIAogCiBlbnVtIGNsYXNz
IEFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBBbm5vdGF0aW9uID0gMSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAKaW5kZXggOWZiNzAwYTBhYzZlNWVkNGU3Yjk4NjE4NDk5NTUzY2Q1MmZiNmFh
NC4uMTk3ZGY0NTQwNzQzNWI3NTc1NzBjYjhhODdmZWRhOWUzNDhiMTVjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHAKQEAgLTMyLDE3ICszMiwyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUFYSXNvbGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QoQVhDb3JlT2JqZWN0JiBv
YmplY3QsIGJvb2wgaXNSb290KQotICAgIDogbV9pZChvYmplY3Qub2JqZWN0SUQoKSkKK0FYSXNv
bGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYSXNv
bGF0ZWRUcmVlSUQgdHJlZUlELCBBWElEIHBhcmVudElEKQorICAgIDogbV90cmVlSUQodHJlZUlE
KQorICAgICwgbV9wYXJlbnRJRChwYXJlbnRJRCkKKyAgICAsIG1faWQob2JqZWN0Lm9iamVjdElE
KCkpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpbml0aWFsaXplQXR0cmli
dXRlRGF0YShvYmplY3QsIGlzUm9vdCk7Ci0gICAgbV9pbml0aWFsaXplZCA9IHRydWU7CisgICAg
aWYgKGF1dG8gdHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQobV90cmVlSUQpKQorICAg
ICAgICBtX2NhY2hlZFRyZWUgPSB0cmVlOworICAgIGluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKG9i
amVjdCwgcGFyZW50SUQgPT0gSW52YWxpZEFYSUQpOwogfQogCi1SZWY8QVhJc29sYXRlZE9iamVj
dD4gQVhJc29sYXRlZE9iamVjdDo6Y3JlYXRlKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBib29sIGlz
Um9vdCkKK1JlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkT2JqZWN0OjpjcmVhdGUoQVhD
b3JlT2JqZWN0JiBvYmplY3QsIEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlELCBBWElEIHBhcmVudElE
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFYSXNvbGF0ZWRPYmplY3Qob2JqZWN0LCBp
c1Jvb3QpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBWElzb2xhdGVkT2JqZWN0KG9iamVj
dCwgdHJlZUlELCBwYXJlbnRJRCkpOwogfQogCiBBWElzb2xhdGVkT2JqZWN0Ojp+QVhJc29sYXRl
ZE9iamVjdCgpID0gZGVmYXVsdDsKQEAgLTM4Niw3ICszODksNiBAQCB2b2lkIEFYSXNvbGF0ZWRP
YmplY3Q6OnNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgQWNjZQogCiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFByb3BlcnR5KEFYUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgQXR0cmlidXRlVmFsdWVWYXJpYW50JiYgdmFsdWUsIGJvb2wgc2hv
dWxkUmVtb3ZlKQogewotICAgIEFTU0VSVCghbV9pbml0aWFsaXplZCk7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIAogICAgIGlmIChzaG91bGRSZW1vdmUpCkBAIC00MDQsNyArNDA2LDcg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0OjphcHBlbmRDaGlsZChBWElEIGF4SUQpCiB2b2lkIEFY
SXNvbGF0ZWRPYmplY3Q6OnNldFBhcmVudChBWElEIHBhcmVudCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwotICAgIG1fcGFyZW50ID0gcGFyZW50OworICAgIG1fcGFyZW50SUQgPSBw
YXJlbnQ7CiB9CiAKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoUmVtb3RlUGFydHMoQWNj
ZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlIGRldGFjaG1lbnRUeXBlKQpAQCAtNDI1LDE0ICs0Mjcs
NyBAQCBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWQoKSBjb25zdAogCiB2b2lkIEFY
SXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQoKQogewotICAgIG1fcGFyZW50ID0gSW52
YWxpZEFYSUQ7Ci19Ci0KLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0VHJlZUlkZW50aWZpZXIo
QVhJc29sYXRlZFRyZWVJRCB0cmVlSWRlbnRpZmllcikKLXsKLSAgICBtX3RyZWVJZGVudGlmaWVy
ID0gdHJlZUlkZW50aWZpZXI7Ci0gICAgaWYgKGF1dG8gdHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0
cmVlRm9ySUQobV90cmVlSWRlbnRpZmllcikpCi0gICAgICAgIG1fY2FjaGVkVHJlZSA9IHRyZWU7
CisgICAgbV9wYXJlbnRJRCA9IEludmFsaWRBWElEOwogfQogCiBjb25zdCBBWENvcmVPYmplY3Q6
OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgQVhJc29sYXRlZE9iamVjdDo6Y2hpbGRyZW4o
Ym9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCAzYWE5Njk5ZDRmOTYxNDdjNWViZjcz
MWRjNTg0NjdjNTcxODNmOWUwLi43MWMxYzJjNTJjOWQ5ZTUyNWQ0ODFmYWE4MTMwZDkxYzUzMWY3
NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC00NywxNiArNDcsMTYgQEAgY2xhc3Mg
QVhJc29sYXRlZFRyZWU7CiAKIGNsYXNzIEFYSXNvbGF0ZWRPYmplY3QgZmluYWwgOiBwdWJsaWMg
QVhDb3JlT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+
IGNyZWF0ZShBWENvcmVPYmplY3QmLCBib29sIGlzUm9vdCk7CisgICAgc3RhdGljIFJlZjxBWElz
b2xhdGVkT2JqZWN0PiBjcmVhdGUoQVhDb3JlT2JqZWN0JiwgQVhJc29sYXRlZFRyZWVJRCwgQVhJ
RCBwYXJlbnRJRCk7CiAgICAgfkFYSXNvbGF0ZWRPYmplY3QoKTsKIAogICAgIHZvaWQgc2V0T2Jq
ZWN0SUQoQVhJRCBpZCkgb3ZlcnJpZGUgeyBtX2lkID0gaWQ7IH0KICAgICBBWElEIG9iamVjdElE
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQogICAgIHZvaWQgaW5pdCgpIG92ZXJy
aWRlIHsgfQogCisgICAgdm9pZCBhdHRhY2hQbGF0Zm9ybVdyYXBwZXIoQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIqKTsKICAgICBib29sIGlzRGV0YWNoZWQoKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIHZvaWQgc2V0VHJlZUlkZW50aWZpZXIoQVhJc29sYXRlZFRyZWVJRCk7CiAgICAgdm9pZCBz
ZXRQYXJlbnQoQVhJRCk7CiAgICAgdm9pZCBhcHBlbmRDaGlsZChBWElEKTsKIApAQCAtNjQsMTMg
KzY0LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXRhY2hSZW1vdGVQYXJ0cyhBY2Nlc3NpYmls
aXR5RGV0YWNobWVudFR5cGUpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNoUGxhdGZvcm1XcmFw
cGVyKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSkgb3ZlcnJpZGU7CiAKLSAgICBBWElEIHBh
cmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CisgICAgQVhJRCBwYXJlbnQoKSBjb25z
dCB7IHJldHVybiBtX3BhcmVudElEOyB9CiAKLSAgICBBWElzb2xhdGVkVHJlZUlEIHRyZWVJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV90cmVlSWRlbnRpZmllcjsgfQorICAgIEFYSXNvbGF0
ZWRUcmVlSUQgdHJlZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3RyZWVJRDsgfQogICAg
IEFYSXNvbGF0ZWRUcmVlKiB0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRUcmVlLmdldCgp
OyB9CiAKICAgICBBWElzb2xhdGVkT2JqZWN0KCkgPSBkZWZhdWx0OwotICAgIEFYSXNvbGF0ZWRP
YmplY3QoQVhDb3JlT2JqZWN0JiwgYm9vbCBpc1Jvb3QpOworICAgIEFYSXNvbGF0ZWRPYmplY3Qo
QVhDb3JlT2JqZWN0JiwgQVhJc29sYXRlZFRyZWVJRCwgQVhJRCBwYXJlbnRJRCk7CiAgICAgdm9p
ZCBpbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmLCBib29sIGlzUm9vdCk7CiAg
ICAgQVhDb3JlT2JqZWN0KiBhc3NvY2lhdGVkQVhPYmplY3QoKSBjb25zdAogICAgIHsKQEAgLTgy
MSwxMSArODIxLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgp
IG92ZXJyaWRlOwogCi0gICAgQVhJRCBtX3BhcmVudCB7IEludmFsaWRBWElEIH07Ci0gICAgQVhJ
RCBtX2lkIHsgSW52YWxpZEFYSUQgfTsKLSAgICBib29sIG1faW5pdGlhbGl6ZWQgeyBmYWxzZSB9
OwotICAgIEFYSXNvbGF0ZWRUcmVlSUQgbV90cmVlSWRlbnRpZmllcjsKKyAgICBBWElzb2xhdGVk
VHJlZUlEIG1fdHJlZUlEOwogICAgIFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gbV9jYWNoZWRUcmVl
OworICAgIEFYSUQgbV9wYXJlbnRJRCB7IEludmFsaWRBWElEIH07CisgICAgQVhJRCBtX2lkIHsg
SW52YWxpZEFYSUQgfTsKICAgICBWZWN0b3I8QVhJRD4gbV9jaGlsZHJlbklEczsKICAgICBWZWN0
b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IG1fY2hpbGRyZW47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcAppbmRleCBiNmZlN2QyYTJjZTcyNGVjYzI0ZjM5NTA1NTY2OTVkNGVkM2RhZmI1Li5hMzA5
MGQyN2UxMGM1ZGJkNWJkMmM3NmI5NDE1NTIwMTNiZWYwOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCkBAIC00Miw2ICs0MiwxOCBAQCBzdGF0aWMgdW5zaWduZWQgbmV3VHJlZUlEKCkKICAg
ICByZXR1cm4gKytzX2N1cnJlbnRUcmVlSUQ7CiB9CiAKK0FYSXNvbGF0ZWRUcmVlOjpOb2RlQ2hh
bmdlOjpOb2RlQ2hhbmdlKGNvbnN0IFJlZjxBWElzb2xhdGVkT2JqZWN0PiYgaXNvbGF0ZWRPYmpl
Y3QsIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiB3cmFwcGVyKQorICAgIDogbV9pc29sYXRl
ZE9iamVjdChpc29sYXRlZE9iamVjdC5jb3B5UmVmKCkpCisgICAgLCBtX3dyYXBwZXIod3JhcHBl
cikKK3sKK30KKworQVhJc29sYXRlZFRyZWU6Ok5vZGVDaGFuZ2U6Ok5vZGVDaGFuZ2UoY29uc3Qg
Tm9kZUNoYW5nZSYgb3RoZXIpCisgICAgOiBtX2lzb2xhdGVkT2JqZWN0KG90aGVyLm1faXNvbGF0
ZWRPYmplY3QuY29weVJlZigpKQorICAgICwgbV93cmFwcGVyKG90aGVyLm1fd3JhcHBlcikKK3sK
K30KKwogSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4mIEFYSXNv
bGF0ZWRUcmVlOjp0cmVlUGFnZUNhY2hlKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDxQYWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4+IG1hcDsKQEAgLTE1
NSwxMSArMTY3LDExIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoQVhJRCBheElE
KQogICAgIG1fcGVuZGluZ1JlbW92YWxzLmFwcGVuZChheElEKTsKIH0KIAotdm9pZCBBWElzb2xh
dGVkVHJlZTo6YXBwZW5kTm9kZUNoYW5nZXMoVmVjdG9yPFJlZjxBWElzb2xhdGVkT2JqZWN0Pj4m
IGxvZykKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGVuZE5vZGVDaGFuZ2VzKGNvbnN0IFZlY3Rv
cjxOb2RlQ2hhbmdlPiYgbG9nKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyIHsgbV9jaGFuZ2VM
b2dMb2NrIH07Ci0gICAgZm9yIChhdXRvJiBub2RlIDogbG9nKQotICAgICAgICBtX3BlbmRpbmdB
cHBlbmRzLmFwcGVuZChub2RlLmNvcHlSZWYoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBub2Rl
IDogbG9nKQorICAgICAgICBtX3BlbmRpbmdBcHBlbmRzLmFwcGVuZChub2RlKTsKIH0KIAogdm9p
ZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCkBAIC0xNjcsMjIgKzE3OSwy
MyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKICAgICBSRUxF
QVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIExvY2tIb2xkZXIgbG9ja2VyIHsgbV9j
aGFuZ2VMb2dMb2NrIH07CiAKLSAgICAvLyBXZSBkb24ndCBjbGVhciB0aGUgcGVuZGluZyBJRHMg
YmVhY2F1c2UgaWYgdGhlIG5leHQgcm91bmQgb2YgdXBkYXRlcyBkb2VzIG5vdCBtb2RpZnkgdGhl
bSwgdGhlbiB0aGV5IHN0YXkgdGhlIHNhbWUKLSAgICAvLyB2YWx1ZSB3aXRob3V0IGV4dHJhIGJv
b2trZWVwaW5nLgogICAgIG1fZm9jdXNlZE5vZGVJRCA9IG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQ7
CiAKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX3BlbmRpbmdBcHBlbmRzKQotICAgICAgICBtX3Jl
YWRlclRocmVhZE5vZGVNYXAuYWRkKGl0ZW0tPm9iamVjdElEKCksIFdURk1vdmUoaXRlbSkpOwot
ICAgIG1fcGVuZGluZ0FwcGVuZHMuY2xlYXIoKTsKLQotICAgIGZvciAoYXV0byYgaXRlbSA6IG1f
cGVuZGluZ1JlbW92YWxzKSB7CisgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogbV9wZW5kaW5n
UmVtb3ZhbHMpIHsKICAgICAgICAgaWYgKGF1dG8gb2JqZWN0ID0gbm9kZUZvcklEKGl0ZW0pKQog
ICAgICAgICAgICAgb2JqZWN0LT5kZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlOjpF
bGVtZW50RGVzdHJveWVkKTsKICAgICAgICAgbV9yZWFkZXJUaHJlYWROb2RlTWFwLnJlbW92ZShp
dGVtKTsKICAgICB9CiAgICAgbV9wZW5kaW5nUmVtb3ZhbHMuY2xlYXIoKTsKKworICAgIGZvciAo
YXV0byYgaXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpIHsKKyAgICAgICAgQVNTRVJUKGl0ZW0ubV93
cmFwcGVyKTsKKyAgICAgICAgaXRlbS5tX2lzb2xhdGVkT2JqZWN0LT5hdHRhY2hQbGF0Zm9ybVdy
YXBwZXIoaXRlbS5tX3dyYXBwZXIpOworICAgICAgICBtX3JlYWRlclRocmVhZE5vZGVNYXAuYWRk
KGl0ZW0ubV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSwgaXRlbS5tX2lzb2xhdGVkT2JqZWN0
LmNvcHlSZWYoKSk7CisgICAgfQorICAgIG1fcGVuZGluZ0FwcGVuZHMuY2xlYXIoKTsKIH0KLSAg
ICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFDQ0VTU0lC
SUxJVFlfSVNPTEFURURfVFJFRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IDY5Zjc3OGJjNzQ4
MGYwOGVkNzYxMWVmYzRkNTBhYWUxMDRhNzBjZjkuLjAwMTg3ZDA5NzU0MzIyNTA4NDc4MTVkNmVk
YWM5MzM3ZjE3MGQxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMjcsNiArMjcsNyBAQAog
CiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKIAorI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAt
MzQsOCArMzUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBWElzb2xhdGVk
T2JqZWN0OworY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIFBhZ2U7CiAKK3R5cGVkZWYgdW5z
aWduZWQgQVhJc29sYXRlZFRyZWVJRDsKKwogY2xhc3MgQVhJc29sYXRlZFRyZWUgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8QVhJc29sYXRlZFRyZWU+IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBWElzb2xhdGVkVHJlZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCkBAIC01
Niw4ICs2MSwxNSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG5vZGVG
b3JJRChBWElEKSBjb25zdDsKICAgICBzdGF0aWMgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG5v
ZGVJblRyZWVGb3JJRChBWElzb2xhdGVkVHJlZUlELCBBWElEKTsKIAorICAgIHN0cnVjdCBOb2Rl
Q2hhbmdlIHsKKyAgICAgICAgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IG1faXNvbGF0ZWRPYmplY3Q7
CisgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiBtX3dyYXBwZXI7CisgICAgICAg
IE5vZGVDaGFuZ2UoY29uc3QgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+JiwgQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIqKTsKKyAgICAgICAgTm9kZUNoYW5nZShjb25zdCBOb2RlQ2hhbmdlJik7Cisg
ICAgfTsKKwogICAgIC8vIENhbGwgb24gbWFpbiB0aHJlYWQKLSAgICB2b2lkIGFwcGVuZE5vZGVD
aGFuZ2VzKFZlY3RvcjxSZWY8QVhJc29sYXRlZE9iamVjdD4+Jik7CisgICAgdm9pZCBhcHBlbmRO
b2RlQ2hhbmdlcyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mKTsKICAgICB2b2lkIHJlbW92ZU5v
ZGUoQVhJRCk7CiAKICAgICB2b2lkIHNldFJvb3ROb2RlKFJlZjxBWElzb2xhdGVkT2JqZWN0PiYp
OwpAQCAtODAsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8QVhJRCwgUmVmPEFYSXNv
bGF0ZWRPYmplY3Q+PiBtX3JlYWRlclRocmVhZE5vZGVNYXA7CiAKICAgICAvLyBXcml0dGVuIHRv
IGJ5IG1haW4gdGhyZWFkIHVuZGVyIGxvY2ssIGFjY2Vzc2VkIGFuZCBhcHBsaWVkIGJ5IEFYIHRo
cmVhZC4KLSAgICBWZWN0b3I8UmVmPEFYSXNvbGF0ZWRPYmplY3Q+PiBtX3BlbmRpbmdBcHBlbmRz
OworICAgIFZlY3RvcjxOb2RlQ2hhbmdlPiBtX3BlbmRpbmdBcHBlbmRzOwogICAgIFZlY3RvcjxB
WElEPiBtX3BlbmRpbmdSZW1vdmFsczsKICAgICBBWElEIG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQ7
CiAgICAgTG9jayBtX2NoYW5nZUxvZ0xvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2Jq
ZWN0TWFjLm1tCmluZGV4IDYxZWMyODhiOTkxM2M1ZjM1NmViYzA1Mjc4MDVmYWRlMTlkZDQyODku
LjU2YjI4MDNmMWNmMDNkYWY5MDM3ZjQ1YjM0OTkxNDAyOGVmMGU4ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2Jq
ZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tCkBAIC0zMiw2ICszMiwxMiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6YXR0YWNoUGxhdGZvcm1XcmFw
cGVyKEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiB3cmFwcGVyKQoreworICAgIFt3cmFwcGVy
IGF0dGFjaElzb2xhdGVkT2JqZWN0OnRoaXNdOworICAgIHNldFdyYXBwZXIod3JhcHBlcik7Cit9
CisKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6ZGV0YWNoUGxhdGZvcm1XcmFwcGVyKEFjY2Vzc2li
aWxpdHlEZXRhY2htZW50VHlwZSkKIHsKICAgICBbd3JhcHBlcigpIGRldGFjaF07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpp
bmRleCBhYTFmOGY0YzI0ZTYxNjczMGQ3NzA5NWRmMWU3MDY3ZjYzZjg2NjZjLi45ZDQ5NGYxYjUz
YWViNmI3ODNmYWZkZDJhNTYzMmIwNTBiN2EzNTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTIzOCwxNCArMjM4
LDYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFYQ29yZU9iamVjdCogb2Jq
KQogICAgIG9iai0+c2V0V3JhcHBlcih3cmFwcGVyLmdldCgpKTsKIH0KIAotI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi12b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdy
YXBwZXIoQVhJc29sYXRlZE9iamVjdCogaXNvbGF0ZWRPYmplY3QsIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyKiB3cmFwcGVyKQotewotICAgIFt3cmFwcGVyIGF0dGFjaElzb2xhdGVkT2Jq
ZWN0OihBWENvcmVPYmplY3QqKWlzb2xhdGVkT2JqZWN0XTsKLSAgICBpc29sYXRlZE9iamVjdC0+
c2V0V3JhcHBlcih3cmFwcGVyKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgQk9PTCBheFNob3VsZFJl
cG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyA9IGZhbHNlOwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>