<?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>222533</bug_id>
          
          <creation_ts>2021-02-28 17:30:27 -0800</creation_ts>
          <short_desc>Reduce promise reaction memory usage when there are multiple reactions</short_desc>
          <delta_ts>2021-03-01 18:15:16 -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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734315</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-02-28 17:30:27 -0800</bug_when>
    <thetext>Reduce promise reaction memory usage when there are multiple reactions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734316</commentid>
    <comment_count>1</comment_count>
      <attachid>421783</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-02-28 17:33:10 -0800</bug_when>
    <thetext>Created attachment 421783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734469</commentid>
    <comment_count>2</comment_count>
      <attachid>421839</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-03-01 09:50:28 -0800</bug_when>
    <thetext>Created attachment 421839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734671</commentid>
    <comment_count>3</comment_count>
      <attachid>421839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-01 16:15:00 -0800</bug_when>
    <thetext>Comment on attachment 421839
Patch

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

r=me with comment.

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        Previously, we would store each reaction in a linked list. This
&gt; +        meant each reaction required 8 bytes to point to the next
&gt; +        reaction.  Instead, this patch makes it so the first reaction is
&gt; +        store inline an object and any additional reactions are store into
&gt; +        index storage for that object. This doesn&apos;t save memory for the
&gt; +        first reaction since we now need to have a count of all the out of
&gt; +        line reactions but extra reactions use 8 bytes less each.

Does it show RAMification improvement?

&gt; Source/JavaScriptCore/builtins/PromiseOperations.js:153
&gt; +    var isResolved = state == @promiseStateFulfilled;

Use `===` instead of `==`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734687</commentid>
    <comment_count>4</comment_count>
      <attachid>421839</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-03-01 16:49:42 -0800</bug_when>
    <thetext>Comment on attachment 421839
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:14
&gt;&gt; +        line reactions but extra reactions use 8 bytes less each.
&gt; 
&gt; Does it show RAMification improvement?

No, sadly :(

&gt;&gt; Source/JavaScriptCore/builtins/PromiseOperations.js:153
&gt;&gt; +    var isResolved = state == @promiseStateFulfilled;
&gt; 
&gt; Use `===` instead of `==`.

Oof, done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734688</commentid>
    <comment_count>5</comment_count>
      <attachid>421887</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-03-01 16:56:23 -0800</bug_when>
    <thetext>Created attachment 421887
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734718</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-01 18:14:56 -0800</bug_when>
    <thetext>Committed r273718: &lt;https://commits.webkit.org/r273718&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421887.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734719</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-01 18:15:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/74903266&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421783</attachid>
            <date>2021-02-28 17:33:10 -0800</date>
            <delta_ts>2021-03-01 09:50:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222533-20210228173310.patch</filename>
            <type>text/plain</type>
            <size>15237</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzMxYTVlM2NjMWFjNzk4ZjAxMDNmYzIyNDg5Y2Y0ODRkYmZlNjQ4Li4yNTc4NzZjNzkwM2MyMDhh
YTI0OGJhNmFkYWFjZTljZTI5MjY0YzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMS0wMi0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWR1Y2UgcHJvbWlzZSByZWFjdGlvbiBtZW1vcnkgdXNhZ2Ugd2hl
biB0aGVyZSBhcmUgbXVsdGlwbGUgcmVhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3b3VsZCBzdG9yZSBlYWNoIHJl
YWN0aW9uIGluIGEgbGlua2VkIGxpc3QuIFRoaXMKKyAgICAgICAgbWVhbnQgZWFjaCByZWFjdGlv
biByZXF1aXJlZCA4IGJ5dGVzIHRvIHBvaW50IHRvIHRoZSBuZXh0CisgICAgICAgIHJlYWN0aW9u
LiAgSW5zdGVhZCwgdGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGUgZmlyc3QgcmVhY3Rpb24gaXMK
KyAgICAgICAgc3RvcmUgaW5saW5lIGFuIG9iamVjdCBhbmQgYW55IGFkZGl0aW9uYWwgcmVhY3Rp
b25zIGFyZSBzdG9yZSBpbnRvCisgICAgICAgIGluZGV4IHN0b3JhZ2UgZm9yIHRoYXQgb2JqZWN0
LiBUaGlzIGRvZXNuJ3Qgc2F2ZSBtZW1vcnkgZm9yIHRoZQorICAgICAgICBmaXJzdCByZWFjdGlv
biBzaW5jZSB3ZSBub3cgbmVlZCB0byBoYXZlIGEgY291bnQgb2YgYWxsIHRoZSBvdXQgb2YKKyAg
ICAgICAgbGluZSByZWFjdGlvbnMgYnV0IGV4dHJhIHJlYWN0aW9ucyB1c2UgOCBieXRlcyBsZXNz
IGVhY2guCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBi
dWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGdsb2JhbFByaXZhdGUucHVz
aE5ld1Byb21pc2VSZWFjdGlvbik6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnRyaWdnZXJQcm9t
aXNlUmVhY3Rpb25zKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUubmV3UHJvbWlzZVJlYWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucmVzb2x2ZVByb21pc2UpOiBEZWxl
dGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5yZWplY3RQcm9taXNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKGdsb2JhbFByaXZhdGUuZnVsZmlsbFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAo
Z2xvYmFsUHJpdmF0ZS5yZXNvbHZlUHJvbWlzZVdpdGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2Fs
bENoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUuZnVsZmlsbFByb21pc2VX
aXRoRmlyc3RSZXNvbHZpbmdGdW5jdGlvbkNhbGxDaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChn
bG9iYWxQcml2YXRlLnJlamVjdFByb21pc2VXaXRoRmlyc3RSZXNvbHZpbmdGdW5jdGlvbkNhbGxD
aGVjayk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLmNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLnByb21pc2VSZWFjdGlv
bkpvYldpdGhvdXRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucmVz
b2x2ZVdpdGhvdXRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucmVq
ZWN0V2l0aG91dFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5mdWxm
aWxsV2l0aG91dFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5jcmVh
dGVSZXNvbHZpbmdGdW5jdGlvbnNXaXRob3V0UHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChn
bG9iYWxQcml2YXRlLnByb21pc2VSZWFjdGlvbkpvYik6IERlbGV0ZWQuCisgICAgICAgIChnbG9i
YWxQcml2YXRlLnByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JGYXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKGdsb2JhbFByaXZhdGUucHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYldpdGhvdXRQcm9taXNl
RmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLnByb21pc2VSZXNvbHZlVGhl
bmFibGVKb2IpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5wcm9taXNlUmVzb2x2
ZVRoZW5hYmxlSm9iV2l0aERlcml2ZWRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKG9uRnVs
ZmlsbGVkKTogRGVsZXRlZC4KKyAgICAgICAgKG9uUmVqZWN0ZWQpOiBEZWxldGVkLgorICAgICAg
ICAoZ2xvYmFsUHJpdmF0ZS5wZXJmb3JtUHJvbWlzZVRoZW4pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSlNNaWNyb3Rhc2suY3BwOgorICAgICAg
ICAoSlNDOjpjcmVhdGVKU01pY3JvdGFzayk6CisgICAgICAgICogcnVudGltZS9KU01pY3JvdGFz
ay5oOgorCiAyMDIxLTAyLTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gRml4IHR5cG8gaW4gd2FzbSBlcnJvciBtZXNzYWdlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggN2JlNmM1ZGYyOTE4
NDdjMTQ5OGRmNjJiYjRiY2IwMWJmZGUzYWY5MC4uMzE5NDViZjNlMTZjZDMwNGU4ZDg4MjliMTk5
NzFkYTdjY2NlMzlhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluTmFtZXMuaApAQCAtMTc3LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3Jv
KHByaXZhdGVDbGFzc0JyYW5kKSBcCiAgICAgbWFjcm8oaGFzT3duUHJvcGVydHlGdW5jdGlvbikg
XAogICAgIG1hY3JvKGNyZWF0ZVByaXZhdGVTeW1ib2wpIFwKLSAgICBtYWNybyhlbnRyaWVzKQor
ICAgIG1hY3JvKGVudHJpZXMpIFwKKyAgICBtYWNybyhvdXRPZkxpbmVSZWFjdGlvbkNvdW50cykK
IAogCiBuYW1lc3BhY2UgU3ltYm9scyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKaW5kZXggMGVjOTNmMTk5ZWRiNTJjMWRhNjA2
OTYxYWZjNjMxZGJiYzEyM2Q3ZS4uMmZmYmE4OWIxNzNlZjA5YmE3MjkxNTBkZDJjYWQ4NDE1MTY3
OGE2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VP
cGVyYXRpb25zLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNl
T3BlcmF0aW9ucy5qcwpAQCAtMjcsMTYgKzI3LDI2IEBACiAvLyBAaW50ZXJuYWwKIAogQGdsb2Jh
bFByaXZhdGUKLWZ1bmN0aW9uIG5ld1Byb21pc2VSZWFjdGlvbihwcm9taXNlT3JDYXBhYmlsaXR5
LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCkKK2Z1bmN0aW9uIHB1c2hOZXdQcm9taXNlUmVhY3Rp
b24odGhlbmFibGUsIGV4aXN0aW5nUmVhY3Rpb25zLCBwcm9taXNlT3JDYXBhYmlsaXR5LCBvbkZ1
bGZpbGxlZCwgb25SZWplY3RlZCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4g
ewotICAgICAgICBAcHJvbWlzZU9yQ2FwYWJpbGl0eTogcHJvbWlzZU9yQ2FwYWJpbGl0eSwKLSAg
ICAgICAgQG9uRnVsZmlsbGVkOiBvbkZ1bGZpbGxlZCwKLSAgICAgICAgQG9uUmVqZWN0ZWQ6IG9u
UmVqZWN0ZWQsCi0gICAgICAgIEBuZXh0OiBAdW5kZWZpbmVkLAotICAgIH07CisgICAgaWYgKCFl
eGlzdGluZ1JlYWN0aW9ucykgeworICAgICAgICBleGlzdGluZ1JlYWN0aW9ucyA9IHsKKyAgICAg
ICAgICAgIEBwcm9taXNlT3JDYXBhYmlsaXR5OiBwcm9taXNlT3JDYXBhYmlsaXR5LAorICAgICAg
ICAgICAgQG9uRnVsZmlsbGVkOiBvbkZ1bGZpbGxlZCwKKyAgICAgICAgICAgIEBvblJlamVjdGVk
OiBvblJlamVjdGVkLAorICAgICAgICAgICAgLy8gVGhpcyBpcyAzeCB0aGVuIG51bWJlciBvZiBv
dXQgb2YgbGluZSByZWFjdGlvbnMgKHByb21pc2UsIGZ1bGZpbGwgY2FsbGJhY2ssIHJlamVjdCBj
YWxsYmFjaykuCisgICAgICAgICAgICBAb3V0T2ZMaW5lUmVhY3Rpb25Db3VudHM6IDAsCisgICAg
ICAgIH07CisgICAgICAgIEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21p
c2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0LCBleGlzdGluZ1JlYWN0aW9ucyk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdmFyIG91dE9mTGluZVJlYWN0aW9uQ291bnRzID0gZXhpc3RpbmdSZWFjdGlv
bnMuQG91dE9mTGluZVJlYWN0aW9uQ291bnRzOworICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZXhp
c3RpbmdSZWFjdGlvbnMsIG91dE9mTGluZVJlYWN0aW9uQ291bnRzKyssIHByb21pc2VPckNhcGFi
aWxpdHkpOworICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZXhpc3RpbmdSZWFjdGlvbnMsIG91dE9m
TGluZVJlYWN0aW9uQ291bnRzKyssIG9uRnVsZmlsbGVkKTsKKyAgICAgICAgQHB1dEJ5VmFsRGly
ZWN0KGV4aXN0aW5nUmVhY3Rpb25zLCBvdXRPZkxpbmVSZWFjdGlvbkNvdW50cysrLCBvblJlamVj
dGVkKTsKKyAgICAgICAgZXhpc3RpbmdSZWFjdGlvbnMuQG91dE9mTGluZVJlYWN0aW9uQ291bnRz
ID0gb3V0T2ZMaW5lUmVhY3Rpb25Db3VudHM7CisgICAgfQogfQogCiBAZ2xvYmFsUHJpdmF0ZQpA
QCAtMTM3LDIyICsxNDcsMTkgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMoc3Rh
dGUsIHJlYWN0aW9ucywgYXJndW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy8g
UmV2ZXJzZSB0aGUgb3JkZXIgb2Ygc2luZ2x5LWxpbmtlZC1saXN0LgotICAgIHZhciBwcmV2aW91
cyA9IEB1bmRlZmluZWQ7Ci0gICAgdmFyIGN1cnJlbnQgPSByZWFjdGlvbnM7Ci0gICAgd2hpbGUg
KGN1cnJlbnQpIHsKLSAgICAgICAgdmFyIG5leHQgPSBjdXJyZW50LkBuZXh0OwotICAgICAgICBj
dXJyZW50LkBuZXh0ID0gcHJldmlvdXM7Ci0gICAgICAgIHByZXZpb3VzID0gY3VycmVudDsKLSAg
ICAgICAgY3VycmVudCA9IG5leHQ7Ci0gICAgfQotICAgIHJlYWN0aW9ucyA9IHByZXZpb3VzOwor
ICAgIGlmICghcmVhY3Rpb25zKQorICAgICAgICByZXR1cm47CiAKLSAgICBjdXJyZW50ID0gcmVh
Y3Rpb25zOwotICAgIHdoaWxlIChjdXJyZW50KSB7Ci0gICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9t
aXNlUmVhY3Rpb25Kb2IsIHN0YXRlLCBjdXJyZW50LCBhcmd1bWVudCk7Ci0gICAgICAgIGN1cnJl
bnQgPSBjdXJyZW50LkBuZXh0OworICAgIHZhciBpc1Jlc29sdmVkID0gc3RhdGUgPT0gQHByb21p
c2VTdGF0ZUZ1bGZpbGxlZDsKKworICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVhY3Rpb25Kb2Is
IHN0YXRlLCByZWFjdGlvbnMuQHByb21pc2VPckNhcGFiaWxpdHksIGlzUmVzb2x2ZWQgPyByZWFj
dGlvbnMuQG9uRnVsZmlsbGVkIDogcmVhY3Rpb25zLkBvblJlamVjdGVkLCBhcmd1bWVudCk7CisK
KyAgICBmb3IgKHZhciBpID0gMCwgY291bnQgPSByZWFjdGlvbnMuQG91dE9mTGluZVJlYWN0aW9u
Q291bnRzOyBpIDwgY291bnQ7IGkgKz0gMykgeworICAgICAgICB2YXIgcHJvbWlzZSA9IEBnZXRC
eVZhbERpcmVjdChyZWFjdGlvbnMsIGk7CisgICAgICAgIHZhciBoYW5kbGVyID0gaXNSZXNvbHZl
ZCA/IEBnZXRCeVZhbERpcmVjdChyZWFjdGlvbnMsIGkgKyAxKSA6IEBnZXRCeVZhbERpcmVjdChy
ZWFjdGlvbnMsIGkgKyAyKTsKKyAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpv
Yiwgc3RhdGUsIHByb21pc2UsIGhhbmRsZXIsIGFyZ3VtZW50KTsKICAgICB9CisgICAgQGFzc2Vy
dChpID09PSBjb3VudCk7CiB9CiAKIEBnbG9iYWxQcml2YXRlCkBAIC0zNzIsNyArMzc5LDcgQEAg
ZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zV2l0aG91dFByb21pc2Uob25GdWxmaWxs
ZWQsIG9uUmVqZWN0ZWQpCiB9CiAKIEBnbG9iYWxQcml2YXRlCi1mdW5jdGlvbiBwcm9taXNlUmVh
Y3Rpb25Kb2Ioc3RhdGUsIHJlYWN0aW9uLCBhcmd1bWVudCkKK2Z1bmN0aW9uIHByb21pc2VSZWFj
dGlvbkpvYihzdGF0ZSwgcHJvbWlzZU9yQ2FwYWJpbGl0eSwgaGFuZGxlciwgYXJndW1lbnQpCiB7
CiAgICAgLy8gUHJvbWlzZSBSZWFjdGlvbiBoYXMgZm91ciB0eXBlcy4KICAgICAvLyAxLiBAcHJv
bWlzZU9yQ2FwYWJpbGl0eSBpcyBQcm9taXNlQ2FwYWJpbGl0eSwgYW5kIGhhdmluZyBoYW5kbGVy
cy4KQEAgLTM4NSwxMSArMzkyLDggQEAgZnVuY3Rpb24gcHJvbWlzZVJlYWN0aW9uSm9iKHN0YXRl
LCByZWFjdGlvbiwgYXJndW1lbnQpCiAgICAgLy8gICAgIEl0IGRvZXMgbm90IGhhdmUgcHJvbWlz
ZSBjYXBhYmlsaXR5LiBKdXN0IGhhbmRsZXJzIGFyZSBwYXNzZWQuCiAgICAgInVzZSBzdHJpY3Qi
OwogCi0gICAgdmFyIHByb21pc2VPckNhcGFiaWxpdHkgPSByZWFjdGlvbi5AcHJvbWlzZU9yQ2Fw
YWJpbGl0eTsKLQogICAgIC8vIENhc2UgKDMpLgotICAgIGlmIChAaXNVbmRlZmluZWRPck51bGwo
cmVhY3Rpb24uQG9uUmVqZWN0ZWQpKSB7Ci0gICAgICAgIEBhc3NlcnQoQGlzVW5kZWZpbmVkT3JO
dWxsKHJlYWN0aW9uLkBvbkZ1bGZpbGxlZCkpOworICAgIGlmIChAaXNVbmRlZmluZWRPck51bGwo
aGFuZGxlcikpIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIEBhc3NlcnQoQGlzUHJvbWlz
ZShwcm9taXNlT3JDYXBhYmlsaXR5KSk7CiAgICAgICAgICAgICBpZiAoc3RhdGUgPT09IEBwcm9t
aXNlU3RhdGVGdWxmaWxsZWQpCkBAIC00MDIsOCArNDA2LDYgQEAgZnVuY3Rpb24gcHJvbWlzZVJl
YWN0aW9uSm9iKHN0YXRlLCByZWFjdGlvbiwgYXJndW1lbnQpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICB2YXIgaGFuZGxlciA9IChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZUZ1bGZpbGxl
ZCkgPyByZWFjdGlvbi5Ab25GdWxmaWxsZWQ6IHJlYWN0aW9uLkBvblJlamVjdGVkOwotCiAgICAg
Ly8gQ2FzZSAoNCkuCiAgICAgaWYgKCFwcm9taXNlT3JDYXBhYmlsaXR5KSB7CiAgICAgICAgIEBw
cm9taXNlUmVhY3Rpb25Kb2JXaXRob3V0UHJvbWlzZShoYW5kbGVyLCBhcmd1bWVudCk7CkBAIC00
NDgsMTQgKzQ1MCwxMyBAQCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iRmFzdCh0
aGVuYWJsZSwgcHJvbWlzZVRvUmVzb2x2ZSkKIAogICAgIHZhciBmbGFncyA9IEBnZXRQcm9taXNl
SW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZEZsYWdzKTsKICAgICB2YXIgc3Rh
dGUgPSBmbGFncyAmIEBwcm9taXNlU3RhdGVNYXNrOwotICAgIHZhciByZWFjdGlvbiA9IEBuZXdQ
cm9taXNlUmVhY3Rpb24ocHJvbWlzZVRvUmVzb2x2ZSwgQHVuZGVmaW5lZCwgQHVuZGVmaW5lZCk7
Ci0gICAgaWYgKHN0YXRlID09PSBAcHJvbWlzZVN0YXRlUGVuZGluZykgewotICAgICAgICByZWFj
dGlvbi5AbmV4dCA9IEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VG
aWVsZFJlYWN0aW9uc09yUmVzdWx0KTsKLSAgICAgICAgQHB1dFByb21pc2VJbnRlcm5hbEZpZWxk
KHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQsIHJlYWN0aW9uKTsKLSAg
ICB9IGVsc2UgeworICAgIHZhciByZWFjdGlvbnNPclJlc3VsdCA9IEBnZXRQcm9taXNlSW50ZXJu
YWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0KTsKKyAgICBp
ZiAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVQZW5kaW5nKQorICAgICAgICBAcHVzaE5ld1Byb21p
c2VSZWFjdGlvbih0aGVuYWJsZSwgcmVhY3Rpb25zT3JSZXN1bHQsIHByb21pc2VUb1Jlc29sdmUs
IEB1bmRlZmluZWQsIEB1bmRlZmluZWQpOworICAgIGVsc2UgewogICAgICAgICBpZiAoc3RhdGUg
PT09IEBwcm9taXNlU3RhdGVSZWplY3RlZCAmJiAhKGZsYWdzICYgQHByb21pc2VGbGFnc0lzSGFu
ZGxlZCkpCiAgICAgICAgICAgICBAaG9zdFByb21pc2VSZWplY3Rpb25UcmFja2VyKHRoZW5hYmxl
LCBAcHJvbWlzZVJlamVjdGlvbkhhbmRsZSk7Ci0gICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNl
UmVhY3Rpb25Kb2IsIHN0YXRlLCByZWFjdGlvbiwgQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHRo
ZW5hYmxlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQpKTsKKyAgICAgICAgQGVucXVl
dWVKb2IoQHByb21pc2VSZWFjdGlvbkpvYiwgc3RhdGUsIHByb21pc2VUb1Jlc29sdmUsIEB1bmRl
ZmluZWQsIHJlYWN0aW9uc09yUmVzdWx0KTsKICAgICB9CiAgICAgQHB1dFByb21pc2VJbnRlcm5h
bEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkRmxhZ3MsIEBnZXRQcm9taXNlSW50ZXJuYWxG
aWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZEZsYWdzKSB8IEBwcm9taXNlRmxhZ3NJc0hhbmRs
ZWQpOwogfQpAQCAtNDc3LDE4ICs0NzgsMTYgQEAgZnVuY3Rpb24gcHJvbWlzZVJlc29sdmVUaGVu
YWJsZUpvYldpdGhvdXRQcm9taXNlRmFzdCh0aGVuYWJsZSwgb25GdWxmaWxsZWQsIG9uUmUKIAog
ICAgIHZhciBmbGFncyA9IEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21p
c2VGaWVsZEZsYWdzKTsKICAgICB2YXIgc3RhdGUgPSBmbGFncyAmIEBwcm9taXNlU3RhdGVNYXNr
OwotICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVBlbmRpbmcpIHsKLSAgICAgICAgdmFy
IHJlYWN0aW9uID0gQG5ld1Byb21pc2VSZWFjdGlvbihAdW5kZWZpbmVkLCBvbkZ1bGZpbGxlZCwg
b25SZWplY3RlZCk7Ci0gICAgICAgIHJlYWN0aW9uLkBuZXh0ID0gQGdldFByb21pc2VJbnRlcm5h
bEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQpOwotICAgICAg
ICBAcHV0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUsIEBwcm9taXNlRmllbGRSZWFjdGlv
bnNPclJlc3VsdCwgcmVhY3Rpb24pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciByZXN1bHQg
PSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUsIEBwcm9taXNlRmllbGRSZWFjdGlv
bnNPclJlc3VsdCk7CisgICAgdmFyIHJlYWN0aW9uc09yUmVzdWx0ID0gQGdldFByb21pc2VJbnRl
cm5hbEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQpOworICAg
IGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVBlbmRpbmcpCisgICAgICAgIEBwdXNoTmV3UHJv
bWlzZVJlYWN0aW9uKHRoZW5hYmxlLCByZWFjdGlvbnNPclJlc3VsdCwgQHVuZGVmaW5lZCwgb25G
dWxmaWxsZWQsIG9uUmVqZWN0ZWQpOworICAgIGVsc2UgewogICAgICAgICBpZiAoc3RhdGUgPT09
IEBwcm9taXNlU3RhdGVSZWplY3RlZCkgewogICAgICAgICAgICAgaWYgKCEoZmxhZ3MgJiBAcHJv
bWlzZUZsYWdzSXNIYW5kbGVkKSkKICAgICAgICAgICAgICAgICBAaG9zdFByb21pc2VSZWplY3Rp
b25UcmFja2VyKHRoZW5hYmxlLCBAcHJvbWlzZVJlamVjdGlvbkhhbmRsZSk7Ci0gICAgICAgICAg
ICBAcmVqZWN0V2l0aG91dFByb21pc2UocmVzdWx0LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCk7
CisgICAgICAgICAgICBAcmVqZWN0V2l0aG91dFByb21pc2UocmVhY3Rpb25zT3JSZXN1bHQsIG9u
RnVsZmlsbGVkLCBvblJlamVjdGVkKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBAZnVs
ZmlsbFdpdGhvdXRQcm9taXNlKHJlc3VsdCwgb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpOworICAg
ICAgICAgICAgQGZ1bGZpbGxXaXRob3V0UHJvbWlzZShyZWFjdGlvbnNPclJlc3VsdCwgb25GdWxm
aWxsZWQsIG9uUmVqZWN0ZWQpOwogICAgIH0KICAgICBAcHV0UHJvbWlzZUludGVybmFsRmllbGQo
dGhlbmFibGUsIEBwcm9taXNlRmllbGRGbGFncywgQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHRo
ZW5hYmxlLCBAcHJvbWlzZUZpZWxkRmxhZ3MpIHwgQHByb21pc2VGbGFnc0lzSGFuZGxlZCk7CiB9
CkBAIC01MzAsMTcgKzUyOSwyMSBAQCBmdW5jdGlvbiBwZXJmb3JtUHJvbWlzZVRoZW4ocHJvbWlz
ZSwgb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIHByb21pc2VPckNhcGFiaWxpdAogICAgIGlmICgh
QGlzQ2FsbGFibGUob25SZWplY3RlZCkpCiAgICAgICAgIG9uUmVqZWN0ZWQgPSBmdW5jdGlvbiAo
YXJndW1lbnQpIHsgdGhyb3cgYXJndW1lbnQ7IH07CiAKLSAgICB2YXIgcmVhY3Rpb24gPSBAbmV3
UHJvbWlzZVJlYWN0aW9uKHByb21pc2VPckNhcGFiaWxpdHksIG9uRnVsZmlsbGVkLCBvblJlamVj
dGVkKTsKLQorICAgIHZhciByZWFjdGlvbnNPclJlc3VsdCA9IEBnZXRQcm9taXNlSW50ZXJuYWxG
aWVsZChwcm9taXNlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQpOwogICAgIHZhciBm
bGFncyA9IEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBAcHJvbWlzZUZpZWxkRmxh
Z3MpOwogICAgIHZhciBzdGF0ZSA9IGZsYWdzICYgQHByb21pc2VTdGF0ZU1hc2s7Ci0gICAgaWYg
KHN0YXRlID09PSBAcHJvbWlzZVN0YXRlUGVuZGluZykgewotICAgICAgICByZWFjdGlvbi5AbmV4
dCA9IEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBAcHJvbWlzZUZpZWxkUmVhY3Rp
b25zT3JSZXN1bHQpOwotICAgICAgICBAcHV0UHJvbWlzZUludGVybmFsRmllbGQocHJvbWlzZSwg
QHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0LCByZWFjdGlvbik7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgaWYgKHN0YXRlID09PSBAcHJvbWlzZVN0YXRlUmVqZWN0ZWQgJiYgIShmbGFncyAm
IEBwcm9taXNlRmxhZ3NJc0hhbmRsZWQpKQotICAgICAgICAgICAgQGhvc3RQcm9taXNlUmVqZWN0
aW9uVHJhY2tlcihwcm9taXNlLCBAcHJvbWlzZVJlamVjdGlvbkhhbmRsZSk7Ci0gICAgICAgIEBl
bnF1ZXVlSm9iKEBwcm9taXNlUmVhY3Rpb25Kb2IsIHN0YXRlLCByZWFjdGlvbiwgQGdldFByb21p
c2VJbnRlcm5hbEZpZWxkKHByb21pc2UsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCkp
OworICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVBlbmRpbmcpCisgICAgICAgIEBwdXNo
TmV3UHJvbWlzZVJlYWN0aW9uKHByb21pc2UsIHJlYWN0aW9uc09yUmVzdWx0LCBwcm9taXNlT3JD
YXBhYmlsaXR5LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCk7CisgICAgZWxzZSB7CisgICAgICAg
IHZhciBoYW5kbGVyOworCisgICAgICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVJlamVj
dGVkKSB7CisgICAgICAgICAgICBoYW5kbGVyID0gb25SZWplY3RlZDsKKyAgICAgICAgICAgIGlm
ICghKGZsYWdzICYgQHByb21pc2VGbGFnc0lzSGFuZGxlZCkpCisgICAgICAgICAgICAgICAgQGhv
c3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcihwcm9taXNlLCBAcHJvbWlzZVJlamVjdGlvbkhhbmRs
ZSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaGFuZGxlciA9IG9uRnVsZmlsbGVkOwor
ICAgICAgICBAZW5xdWV1ZUpvYihAcHJvbWlzZVJlYWN0aW9uSm9iLCBzdGF0ZSwgcHJvbWlzZU9y
Q2FwYWJpbGl0eSwgaGFuZGxlciwgcmVhY3Rpb25zT3JSZXN1bHQpOwogICAgIH0KICAgICBAcHV0
UHJvbWlzZUludGVybmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VGaWVsZEZsYWdzLCBAZ2V0UHJv
bWlzZUludGVybmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VGaWVsZEZsYWdzKSB8IEBwcm9taXNl
RmxhZ3NJc0hhbmRsZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDM4NTMzZmE2NTM2MzFkNWViYTg0ZGMwODYzMGE0MTE0
NWIxNTc0MjcuLjc3MWVmOGQ5NjdhYmQ0MzE4OGM0ZmM5ODMxNGEyOTU0YWZjZThjM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAg
LTQ4MSwxMCArNDgxLDExIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihlbnF1ZXVlSm9iLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjCiAgICAgSlNWYWx1ZSBh
cmd1bWVudDAgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogICAgIEpTVmFsdWUgYXJndW1lbnQx
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgyKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50MiA9IGNhbGxG
cmFtZS0+YXJndW1lbnQoMyk7CisgICAgSlNWYWx1ZSBhcmd1bWVudDMgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KDQpOwogCi0gICAgZ2xvYmFsT2JqZWN0LT5xdWV1ZU1pY3JvdGFzayhjcmVhdGVKU01p
Y3JvdGFzayh2bSwgam9iLCBhcmd1bWVudDAsIGFyZ3VtZW50MSwgYXJndW1lbnQyKSk7CisgICAg
Z2xvYmFsT2JqZWN0LT5xdWV1ZU1pY3JvdGFzayhjcmVhdGVKU01pY3JvdGFzayh2bSwgam9iLCBh
cmd1bWVudDAsIGFyZ3VtZW50MSwgYXJndW1lbnQyLCBhcmd1bWVudDMpKTsKIAotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIGVuY29kZWRKU1Vu
ZGVmaW5lZCgpOwogfQogCiBKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUqIGdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNaWNyb3Rhc2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNN
aWNyb3Rhc2suY3BwCmluZGV4IDQ0Yjg5NDU2NzMwYmVlMzYzZWRjMTVlMTgyMmMzOTgwZTFiYmFi
NTkuLjNjN2FmMjJhOGJkZjUxZTY4MjgwYjg5NTNlNmZhOWYzODEwZmIwMDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90YXNrLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5jcHAKQEAgLTM3LDEzICszNywx
NCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNNaWNyb3Rhc2sgZmluYWwgOiBwdWJsaWMg
TWljcm90YXNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heEFy
Z3VtZW50cyA9IDM7Ci0gICAgSlNNaWNyb3Rhc2soVk0mIHZtLCBKU1ZhbHVlIGpvYiwgSlNWYWx1
ZSBhcmd1bWVudDAsIEpTVmFsdWUgYXJndW1lbnQxLCBKU1ZhbHVlIGFyZ3VtZW50MikKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heEFyZ3VtZW50cyA9IDQ7CisgICAgSlNNaWNyb3Rh
c2soVk0mIHZtLCBKU1ZhbHVlIGpvYiwgSlNWYWx1ZSBhcmd1bWVudDAsIEpTVmFsdWUgYXJndW1l
bnQxLCBKU1ZhbHVlIGFyZ3VtZW50MiwgSlNWYWx1ZSBhcmd1bWVudDMpCiAgICAgewogICAgICAg
ICBtX2pvYi5zZXQodm0sIGpvYik7CiAgICAgICAgIG1fYXJndW1lbnRzWzBdLnNldCh2bSwgYXJn
dW1lbnQwKTsKICAgICAgICAgbV9hcmd1bWVudHNbMV0uc2V0KHZtLCBhcmd1bWVudDEpOwogICAg
ICAgICBtX2FyZ3VtZW50c1syXS5zZXQodm0sIGFyZ3VtZW50Mik7CisgICAgICAgIG1fYXJndW1l
bnRzWzNdLnNldCh2bSwgYXJndW1lbnQzKTsKICAgICB9CiAKICAgICBKU01pY3JvdGFzayhWTSYg
dm0sIEpTVmFsdWUgam9iKQpAQCAtNjMsOSArNjQsOSBAQCBSZWY8TWljcm90YXNrPiBjcmVhdGVK
U01pY3JvdGFzayhWTSYgdm0sIEpTVmFsdWUgam9iKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEpTTWljcm90YXNrKHZtLCBqb2IpKTsKIH0KIAotUmVmPE1pY3JvdGFzaz4gY3JlYXRlSlNNaWNy
b3Rhc2soVk0mIHZtLCBKU1ZhbHVlIGpvYiwgSlNWYWx1ZSBhcmd1bWVudDAsIEpTVmFsdWUgYXJn
dW1lbnQxLCBKU1ZhbHVlIGFyZ3VtZW50MikKK1JlZjxNaWNyb3Rhc2s+IGNyZWF0ZUpTTWljcm90
YXNrKFZNJiB2bSwgSlNWYWx1ZSBqb2IsIEpTVmFsdWUgYXJndW1lbnQwLCBKU1ZhbHVlIGFyZ3Vt
ZW50MSwgSlNWYWx1ZSBhcmd1bWVudDIsIEpTVmFsdWUgYXJndW1lbnQzKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEpTTWljcm90YXNrKHZtLCBqb2IsIGFyZ3VtZW50MCwgYXJndW1lbnQx
LCBhcmd1bWVudDIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU01pY3JvdGFzayh2bSwg
am9iLCBhcmd1bWVudDAsIGFyZ3VtZW50MSwgYXJndW1lbnQyLCBhcmd1bWVudDMpKTsKIH0KIAog
dm9pZCBKU01pY3JvdGFzazo6cnVuKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suaAppbmRleCBhMzBkOTNkZDY3
NjZkM2RjNTlkNGY2ZjQ2NDAzNzcyNmI5NTUwNzcxLi5mMWI4NDhlYjRkYzQ1ZTc0NDJiM2MxNjU2
YWI3NGU0MTE1ZmE5ODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01pY3JvdGFzay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWlj
cm90YXNrLmgKQEAgLTM0LDYgKzM0LDYgQEAgY2xhc3MgTWljcm90YXNrOwogY2xhc3MgSlNBcnJh
eTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgUmVmPE1pY3JvdGFzaz4gY3JlYXRlSlNNaWNyb3Rhc2so
Vk0mLCBKU1ZhbHVlIGpvYik7Ci1KU19FWFBPUlRfUFJJVkFURSBSZWY8TWljcm90YXNrPiBjcmVh
dGVKU01pY3JvdGFzayhWTSYsIEpTVmFsdWUgam9iLCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVl
KTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZjxNaWNyb3Rhc2s+IGNyZWF0ZUpTTWljcm90YXNrKFZN
JiwgSlNWYWx1ZSBqb2IsIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421839</attachid>
            <date>2021-03-01 09:50:28 -0800</date>
            <delta_ts>2021-03-01 16:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222533-20210301095027.patch</filename>
            <type>text/plain</type>
            <size>15187</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YzMxYTVlM2NjMWFjNzk4ZjAxMDNmYzIyNDg5Y2Y0ODRkYmZlNjQ4Li4yNTc4NzZjNzkwM2MyMDhh
YTI0OGJhNmFkYWFjZTljZTI5MjY0YzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMS0wMi0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWR1Y2UgcHJvbWlzZSByZWFjdGlvbiBtZW1vcnkgdXNhZ2Ugd2hl
biB0aGVyZSBhcmUgbXVsdGlwbGUgcmVhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3b3VsZCBzdG9yZSBlYWNoIHJl
YWN0aW9uIGluIGEgbGlua2VkIGxpc3QuIFRoaXMKKyAgICAgICAgbWVhbnQgZWFjaCByZWFjdGlv
biByZXF1aXJlZCA4IGJ5dGVzIHRvIHBvaW50IHRvIHRoZSBuZXh0CisgICAgICAgIHJlYWN0aW9u
LiAgSW5zdGVhZCwgdGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGUgZmlyc3QgcmVhY3Rpb24gaXMK
KyAgICAgICAgc3RvcmUgaW5saW5lIGFuIG9iamVjdCBhbmQgYW55IGFkZGl0aW9uYWwgcmVhY3Rp
b25zIGFyZSBzdG9yZSBpbnRvCisgICAgICAgIGluZGV4IHN0b3JhZ2UgZm9yIHRoYXQgb2JqZWN0
LiBUaGlzIGRvZXNuJ3Qgc2F2ZSBtZW1vcnkgZm9yIHRoZQorICAgICAgICBmaXJzdCByZWFjdGlv
biBzaW5jZSB3ZSBub3cgbmVlZCB0byBoYXZlIGEgY291bnQgb2YgYWxsIHRoZSBvdXQgb2YKKyAg
ICAgICAgbGluZSByZWFjdGlvbnMgYnV0IGV4dHJhIHJlYWN0aW9ucyB1c2UgOCBieXRlcyBsZXNz
IGVhY2guCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBi
dWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGdsb2JhbFByaXZhdGUucHVz
aE5ld1Byb21pc2VSZWFjdGlvbik6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnRyaWdnZXJQcm9t
aXNlUmVhY3Rpb25zKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUubmV3UHJvbWlzZVJlYWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucmVzb2x2ZVByb21pc2UpOiBEZWxl
dGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5yZWplY3RQcm9taXNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKGdsb2JhbFByaXZhdGUuZnVsZmlsbFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAo
Z2xvYmFsUHJpdmF0ZS5yZXNvbHZlUHJvbWlzZVdpdGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2Fs
bENoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUuZnVsZmlsbFByb21pc2VX
aXRoRmlyc3RSZXNvbHZpbmdGdW5jdGlvbkNhbGxDaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChn
bG9iYWxQcml2YXRlLnJlamVjdFByb21pc2VXaXRoRmlyc3RSZXNvbHZpbmdGdW5jdGlvbkNhbGxD
aGVjayk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLmNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLnByb21pc2VSZWFjdGlv
bkpvYldpdGhvdXRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucmVz
b2x2ZVdpdGhvdXRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucmVq
ZWN0V2l0aG91dFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5mdWxm
aWxsV2l0aG91dFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5jcmVh
dGVSZXNvbHZpbmdGdW5jdGlvbnNXaXRob3V0UHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChn
bG9iYWxQcml2YXRlLnByb21pc2VSZWFjdGlvbkpvYik6IERlbGV0ZWQuCisgICAgICAgIChnbG9i
YWxQcml2YXRlLnByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JGYXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKGdsb2JhbFByaXZhdGUucHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYldpdGhvdXRQcm9taXNl
RmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLnByb21pc2VSZXNvbHZlVGhl
bmFibGVKb2IpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5wcm9taXNlUmVzb2x2
ZVRoZW5hYmxlSm9iV2l0aERlcml2ZWRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKG9uRnVs
ZmlsbGVkKTogRGVsZXRlZC4KKyAgICAgICAgKG9uUmVqZWN0ZWQpOiBEZWxldGVkLgorICAgICAg
ICAoZ2xvYmFsUHJpdmF0ZS5wZXJmb3JtUHJvbWlzZVRoZW4pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSlNNaWNyb3Rhc2suY3BwOgorICAgICAg
ICAoSlNDOjpjcmVhdGVKU01pY3JvdGFzayk6CisgICAgICAgICogcnVudGltZS9KU01pY3JvdGFz
ay5oOgorCiAyMDIxLTAyLTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gRml4IHR5cG8gaW4gd2FzbSBlcnJvciBtZXNzYWdlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggN2JlNmM1ZGYyOTE4
NDdjMTQ5OGRmNjJiYjRiY2IwMWJmZGUzYWY5MC4uMzE5NDViZjNlMTZjZDMwNGU4ZDg4MjliMTk5
NzFkYTdjY2NlMzlhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluTmFtZXMuaApAQCAtMTc3LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3Jv
KHByaXZhdGVDbGFzc0JyYW5kKSBcCiAgICAgbWFjcm8oaGFzT3duUHJvcGVydHlGdW5jdGlvbikg
XAogICAgIG1hY3JvKGNyZWF0ZVByaXZhdGVTeW1ib2wpIFwKLSAgICBtYWNybyhlbnRyaWVzKQor
ICAgIG1hY3JvKGVudHJpZXMpIFwKKyAgICBtYWNybyhvdXRPZkxpbmVSZWFjdGlvbkNvdW50cykK
IAogCiBuYW1lc3BhY2UgU3ltYm9scyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKaW5kZXggMGVjOTNmMTk5ZWRiNTJjMWRhNjA2
OTYxYWZjNjMxZGJiYzEyM2Q3ZS4uMGI1ZjI5OTM3YzA3YTk5YmE3ZmEyODQyMWY0YTI4Yzk4OTg0
NDIyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VP
cGVyYXRpb25zLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNl
T3BlcmF0aW9ucy5qcwpAQCAtMjcsMTYgKzI3LDI2IEBACiAvLyBAaW50ZXJuYWwKIAogQGdsb2Jh
bFByaXZhdGUKLWZ1bmN0aW9uIG5ld1Byb21pc2VSZWFjdGlvbihwcm9taXNlT3JDYXBhYmlsaXR5
LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCkKK2Z1bmN0aW9uIHB1c2hOZXdQcm9taXNlUmVhY3Rp
b24odGhlbmFibGUsIGV4aXN0aW5nUmVhY3Rpb25zLCBwcm9taXNlT3JDYXBhYmlsaXR5LCBvbkZ1
bGZpbGxlZCwgb25SZWplY3RlZCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4g
ewotICAgICAgICBAcHJvbWlzZU9yQ2FwYWJpbGl0eTogcHJvbWlzZU9yQ2FwYWJpbGl0eSwKLSAg
ICAgICAgQG9uRnVsZmlsbGVkOiBvbkZ1bGZpbGxlZCwKLSAgICAgICAgQG9uUmVqZWN0ZWQ6IG9u
UmVqZWN0ZWQsCi0gICAgICAgIEBuZXh0OiBAdW5kZWZpbmVkLAotICAgIH07CisgICAgaWYgKCFl
eGlzdGluZ1JlYWN0aW9ucykgeworICAgICAgICBleGlzdGluZ1JlYWN0aW9ucyA9IHsKKyAgICAg
ICAgICAgIEBwcm9taXNlT3JDYXBhYmlsaXR5OiBwcm9taXNlT3JDYXBhYmlsaXR5LAorICAgICAg
ICAgICAgQG9uRnVsZmlsbGVkOiBvbkZ1bGZpbGxlZCwKKyAgICAgICAgICAgIEBvblJlamVjdGVk
OiBvblJlamVjdGVkLAorICAgICAgICAgICAgLy8gVGhpcyBpcyAzeCB0aGVuIG51bWJlciBvZiBv
dXQgb2YgbGluZSByZWFjdGlvbnMgKHByb21pc2UsIGZ1bGZpbGwgY2FsbGJhY2ssIHJlamVjdCBj
YWxsYmFjaykuCisgICAgICAgICAgICBAb3V0T2ZMaW5lUmVhY3Rpb25Db3VudHM6IDAsCisgICAg
ICAgIH07CisgICAgICAgIEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21p
c2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0LCBleGlzdGluZ1JlYWN0aW9ucyk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdmFyIG91dE9mTGluZVJlYWN0aW9uQ291bnRzID0gZXhpc3RpbmdSZWFjdGlv
bnMuQG91dE9mTGluZVJlYWN0aW9uQ291bnRzOworICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZXhp
c3RpbmdSZWFjdGlvbnMsIG91dE9mTGluZVJlYWN0aW9uQ291bnRzKyssIHByb21pc2VPckNhcGFi
aWxpdHkpOworICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZXhpc3RpbmdSZWFjdGlvbnMsIG91dE9m
TGluZVJlYWN0aW9uQ291bnRzKyssIG9uRnVsZmlsbGVkKTsKKyAgICAgICAgQHB1dEJ5VmFsRGly
ZWN0KGV4aXN0aW5nUmVhY3Rpb25zLCBvdXRPZkxpbmVSZWFjdGlvbkNvdW50cysrLCBvblJlamVj
dGVkKTsKKyAgICAgICAgZXhpc3RpbmdSZWFjdGlvbnMuQG91dE9mTGluZVJlYWN0aW9uQ291bnRz
ID0gb3V0T2ZMaW5lUmVhY3Rpb25Db3VudHM7CisgICAgfQogfQogCiBAZ2xvYmFsUHJpdmF0ZQpA
QCAtMTM3LDIyICsxNDcsMTkgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMoc3Rh
dGUsIHJlYWN0aW9ucywgYXJndW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy8g
UmV2ZXJzZSB0aGUgb3JkZXIgb2Ygc2luZ2x5LWxpbmtlZC1saXN0LgotICAgIHZhciBwcmV2aW91
cyA9IEB1bmRlZmluZWQ7Ci0gICAgdmFyIGN1cnJlbnQgPSByZWFjdGlvbnM7Ci0gICAgd2hpbGUg
KGN1cnJlbnQpIHsKLSAgICAgICAgdmFyIG5leHQgPSBjdXJyZW50LkBuZXh0OwotICAgICAgICBj
dXJyZW50LkBuZXh0ID0gcHJldmlvdXM7Ci0gICAgICAgIHByZXZpb3VzID0gY3VycmVudDsKLSAg
ICAgICAgY3VycmVudCA9IG5leHQ7Ci0gICAgfQotICAgIHJlYWN0aW9ucyA9IHByZXZpb3VzOwor
ICAgIGlmICghcmVhY3Rpb25zKQorICAgICAgICByZXR1cm47CiAKLSAgICBjdXJyZW50ID0gcmVh
Y3Rpb25zOwotICAgIHdoaWxlIChjdXJyZW50KSB7Ci0gICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9t
aXNlUmVhY3Rpb25Kb2IsIHN0YXRlLCBjdXJyZW50LCBhcmd1bWVudCk7Ci0gICAgICAgIGN1cnJl
bnQgPSBjdXJyZW50LkBuZXh0OworICAgIHZhciBpc1Jlc29sdmVkID0gc3RhdGUgPT0gQHByb21p
c2VTdGF0ZUZ1bGZpbGxlZDsKKworICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVhY3Rpb25Kb2Is
IHN0YXRlLCByZWFjdGlvbnMuQHByb21pc2VPckNhcGFiaWxpdHksIGlzUmVzb2x2ZWQgPyByZWFj
dGlvbnMuQG9uRnVsZmlsbGVkIDogcmVhY3Rpb25zLkBvblJlamVjdGVkLCBhcmd1bWVudCk7CisK
KyAgICBmb3IgKHZhciBpID0gMCwgY291bnQgPSByZWFjdGlvbnMuQG91dE9mTGluZVJlYWN0aW9u
Q291bnRzOyBpIDwgY291bnQ7IGkgKz0gMykgeworICAgICAgICB2YXIgcHJvbWlzZSA9IHJlYWN0
aW9uc1tpXTsKKyAgICAgICAgdmFyIGhhbmRsZXIgPSBpc1Jlc29sdmVkID8gcmVhY3Rpb25zW2kg
KyAxXSA6IHJlYWN0aW9uc1tpICsgMl07CisgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVh
Y3Rpb25Kb2IsIHN0YXRlLCBwcm9taXNlLCBoYW5kbGVyLCBhcmd1bWVudCk7CiAgICAgfQorICAg
IEBhc3NlcnQoaSA9PT0gY291bnQpOwogfQogCiBAZ2xvYmFsUHJpdmF0ZQpAQCAtMzcyLDcgKzM3
OSw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc1dpdGhvdXRQcm9taXNlKG9u
RnVsZmlsbGVkLCBvblJlamVjdGVkKQogfQogCiBAZ2xvYmFsUHJpdmF0ZQotZnVuY3Rpb24gcHJv
bWlzZVJlYWN0aW9uSm9iKHN0YXRlLCByZWFjdGlvbiwgYXJndW1lbnQpCitmdW5jdGlvbiBwcm9t
aXNlUmVhY3Rpb25Kb2Ioc3RhdGUsIHByb21pc2VPckNhcGFiaWxpdHksIGhhbmRsZXIsIGFyZ3Vt
ZW50KQogewogICAgIC8vIFByb21pc2UgUmVhY3Rpb24gaGFzIGZvdXIgdHlwZXMuCiAgICAgLy8g
MS4gQHByb21pc2VPckNhcGFiaWxpdHkgaXMgUHJvbWlzZUNhcGFiaWxpdHksIGFuZCBoYXZpbmcg
aGFuZGxlcnMuCkBAIC0zODUsMTEgKzM5Miw4IEBAIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpv
YihzdGF0ZSwgcmVhY3Rpb24sIGFyZ3VtZW50KQogICAgIC8vICAgICBJdCBkb2VzIG5vdCBoYXZl
IHByb21pc2UgY2FwYWJpbGl0eS4gSnVzdCBoYW5kbGVycyBhcmUgcGFzc2VkLgogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHZhciBwcm9taXNlT3JDYXBhYmlsaXR5ID0gcmVhY3Rpb24uQHByb21p
c2VPckNhcGFiaWxpdHk7Ci0KICAgICAvLyBDYXNlICgzKS4KLSAgICBpZiAoQGlzVW5kZWZpbmVk
T3JOdWxsKHJlYWN0aW9uLkBvblJlamVjdGVkKSkgewotICAgICAgICBAYXNzZXJ0KEBpc1VuZGVm
aW5lZE9yTnVsbChyZWFjdGlvbi5Ab25GdWxmaWxsZWQpKTsKKyAgICBpZiAoQGlzVW5kZWZpbmVk
T3JOdWxsKGhhbmRsZXIpKSB7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBAYXNzZXJ0KEBp
c1Byb21pc2UocHJvbWlzZU9yQ2FwYWJpbGl0eSkpOwogICAgICAgICAgICAgaWYgKHN0YXRlID09
PSBAcHJvbWlzZVN0YXRlRnVsZmlsbGVkKQpAQCAtNDAyLDggKzQwNiw2IEBAIGZ1bmN0aW9uIHBy
b21pc2VSZWFjdGlvbkpvYihzdGF0ZSwgcmVhY3Rpb24sIGFyZ3VtZW50KQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgdmFyIGhhbmRsZXIgPSAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVG
dWxmaWxsZWQpID8gcmVhY3Rpb24uQG9uRnVsZmlsbGVkOiByZWFjdGlvbi5Ab25SZWplY3RlZDsK
LQogICAgIC8vIENhc2UgKDQpLgogICAgIGlmICghcHJvbWlzZU9yQ2FwYWJpbGl0eSkgewogICAg
ICAgICBAcHJvbWlzZVJlYWN0aW9uSm9iV2l0aG91dFByb21pc2UoaGFuZGxlciwgYXJndW1lbnQp
OwpAQCAtNDQ4LDE0ICs0NTAsMTMgQEAgZnVuY3Rpb24gcHJvbWlzZVJlc29sdmVUaGVuYWJsZUpv
YkZhc3QodGhlbmFibGUsIHByb21pc2VUb1Jlc29sdmUpCiAKICAgICB2YXIgZmxhZ3MgPSBAZ2V0
UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUsIEBwcm9taXNlRmllbGRGbGFncyk7CiAgICAg
dmFyIHN0YXRlID0gZmxhZ3MgJiBAcHJvbWlzZVN0YXRlTWFzazsKLSAgICB2YXIgcmVhY3Rpb24g
PSBAbmV3UHJvbWlzZVJlYWN0aW9uKHByb21pc2VUb1Jlc29sdmUsIEB1bmRlZmluZWQsIEB1bmRl
ZmluZWQpOwotICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVBlbmRpbmcpIHsKLSAgICAg
ICAgcmVhY3Rpb24uQG5leHQgPSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUsIEBw
cm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCk7Ci0gICAgICAgIEBwdXRQcm9taXNlSW50ZXJu
YWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0LCByZWFjdGlv
bik7Ci0gICAgfSBlbHNlIHsKKyAgICB2YXIgcmVhY3Rpb25zT3JSZXN1bHQgPSBAZ2V0UHJvbWlz
ZUludGVybmFsRmllbGQodGhlbmFibGUsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCk7
CisgICAgaWYgKHN0YXRlID09PSBAcHJvbWlzZVN0YXRlUGVuZGluZykKKyAgICAgICAgQHB1c2hO
ZXdQcm9taXNlUmVhY3Rpb24odGhlbmFibGUsIHJlYWN0aW9uc09yUmVzdWx0LCBwcm9taXNlVG9S
ZXNvbHZlLCBAdW5kZWZpbmVkLCBAdW5kZWZpbmVkKTsKKyAgICBlbHNlIHsKICAgICAgICAgaWYg
KHN0YXRlID09PSBAcHJvbWlzZVN0YXRlUmVqZWN0ZWQgJiYgIShmbGFncyAmIEBwcm9taXNlRmxh
Z3NJc0hhbmRsZWQpKQogICAgICAgICAgICAgQGhvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcih0
aGVuYWJsZSwgQHByb21pc2VSZWplY3Rpb25IYW5kbGUpOwotICAgICAgICBAZW5xdWV1ZUpvYihA
cHJvbWlzZVJlYWN0aW9uSm9iLCBzdGF0ZSwgcmVhY3Rpb24sIEBnZXRQcm9taXNlSW50ZXJuYWxG
aWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0KSk7CisgICAgICAg
IEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVhY3Rpb25Kb2IsIHN0YXRlLCBwcm9taXNlVG9SZXNvbHZl
LCBAdW5kZWZpbmVkLCByZWFjdGlvbnNPclJlc3VsdCk7CiAgICAgfQogICAgIEBwdXRQcm9taXNl
SW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZEZsYWdzLCBAZ2V0UHJvbWlzZUlu
dGVybmFsRmllbGQodGhlbmFibGUsIEBwcm9taXNlRmllbGRGbGFncykgfCBAcHJvbWlzZUZsYWdz
SXNIYW5kbGVkKTsKIH0KQEAgLTQ3NywxOCArNDc4LDE2IEBAIGZ1bmN0aW9uIHByb21pc2VSZXNv
bHZlVGhlbmFibGVKb2JXaXRob3V0UHJvbWlzZUZhc3QodGhlbmFibGUsIG9uRnVsZmlsbGVkLCBv
blJlCiAKICAgICB2YXIgZmxhZ3MgPSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUs
IEBwcm9taXNlRmllbGRGbGFncyk7CiAgICAgdmFyIHN0YXRlID0gZmxhZ3MgJiBAcHJvbWlzZVN0
YXRlTWFzazsKLSAgICBpZiAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVQZW5kaW5nKSB7Ci0gICAg
ICAgIHZhciByZWFjdGlvbiA9IEBuZXdQcm9taXNlUmVhY3Rpb24oQHVuZGVmaW5lZCwgb25GdWxm
aWxsZWQsIG9uUmVqZWN0ZWQpOwotICAgICAgICByZWFjdGlvbi5AbmV4dCA9IEBnZXRQcm9taXNl
SW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0KTsK
LSAgICAgICAgQHB1dFByb21pc2VJbnRlcm5hbEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxk
UmVhY3Rpb25zT3JSZXN1bHQsIHJlYWN0aW9uKTsKLSAgICB9IGVsc2UgewotICAgICAgICB2YXIg
cmVzdWx0ID0gQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxk
UmVhY3Rpb25zT3JSZXN1bHQpOworICAgIHZhciByZWFjdGlvbnNPclJlc3VsdCA9IEBnZXRQcm9t
aXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0
KTsKKyAgICBpZiAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVQZW5kaW5nKQorICAgICAgICBAcHVz
aE5ld1Byb21pc2VSZWFjdGlvbih0aGVuYWJsZSwgcmVhY3Rpb25zT3JSZXN1bHQsIEB1bmRlZmlu
ZWQsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKTsKKyAgICBlbHNlIHsKICAgICAgICAgaWYgKHN0
YXRlID09PSBAcHJvbWlzZVN0YXRlUmVqZWN0ZWQpIHsKICAgICAgICAgICAgIGlmICghKGZsYWdz
ICYgQHByb21pc2VGbGFnc0lzSGFuZGxlZCkpCiAgICAgICAgICAgICAgICAgQGhvc3RQcm9taXNl
UmVqZWN0aW9uVHJhY2tlcih0aGVuYWJsZSwgQHByb21pc2VSZWplY3Rpb25IYW5kbGUpOwotICAg
ICAgICAgICAgQHJlamVjdFdpdGhvdXRQcm9taXNlKHJlc3VsdCwgb25GdWxmaWxsZWQsIG9uUmVq
ZWN0ZWQpOworICAgICAgICAgICAgQHJlamVjdFdpdGhvdXRQcm9taXNlKHJlYWN0aW9uc09yUmVz
dWx0LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgQGZ1bGZpbGxXaXRob3V0UHJvbWlzZShyZXN1bHQsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVk
KTsKKyAgICAgICAgICAgIEBmdWxmaWxsV2l0aG91dFByb21pc2UocmVhY3Rpb25zT3JSZXN1bHQs
IG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKTsKICAgICB9CiAgICAgQHB1dFByb21pc2VJbnRlcm5h
bEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkRmxhZ3MsIEBnZXRQcm9taXNlSW50ZXJuYWxG
aWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZEZsYWdzKSB8IEBwcm9taXNlRmxhZ3NJc0hhbmRs
ZWQpOwogfQpAQCAtNTMwLDE3ICs1MjksMjEgQEAgZnVuY3Rpb24gcGVyZm9ybVByb21pc2VUaGVu
KHByb21pc2UsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkLCBwcm9taXNlT3JDYXBhYmlsaXQKICAg
ICBpZiAoIUBpc0NhbGxhYmxlKG9uUmVqZWN0ZWQpKQogICAgICAgICBvblJlamVjdGVkID0gZnVu
Y3Rpb24gKGFyZ3VtZW50KSB7IHRocm93IGFyZ3VtZW50OyB9OwogCi0gICAgdmFyIHJlYWN0aW9u
ID0gQG5ld1Byb21pc2VSZWFjdGlvbihwcm9taXNlT3JDYXBhYmlsaXR5LCBvbkZ1bGZpbGxlZCwg
b25SZWplY3RlZCk7Ci0KKyAgICB2YXIgcmVhY3Rpb25zT3JSZXN1bHQgPSBAZ2V0UHJvbWlzZUlu
dGVybmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0KTsKICAg
ICB2YXIgZmxhZ3MgPSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VG
aWVsZEZsYWdzKTsKICAgICB2YXIgc3RhdGUgPSBmbGFncyAmIEBwcm9taXNlU3RhdGVNYXNrOwot
ICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVBlbmRpbmcpIHsKLSAgICAgICAgcmVhY3Rp
b24uQG5leHQgPSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VGaWVs
ZFJlYWN0aW9uc09yUmVzdWx0KTsKLSAgICAgICAgQHB1dFByb21pc2VJbnRlcm5hbEZpZWxkKHBy
b21pc2UsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCwgcmVhY3Rpb24pOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0ZVJlamVjdGVkICYmICEo
ZmxhZ3MgJiBAcHJvbWlzZUZsYWdzSXNIYW5kbGVkKSkKLSAgICAgICAgICAgIEBob3N0UHJvbWlz
ZVJlamVjdGlvblRyYWNrZXIocHJvbWlzZSwgQHByb21pc2VSZWplY3Rpb25IYW5kbGUpOwotICAg
ICAgICBAZW5xdWV1ZUpvYihAcHJvbWlzZVJlYWN0aW9uSm9iLCBzdGF0ZSwgcmVhY3Rpb24sIEBn
ZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JS
ZXN1bHQpKTsKKyAgICBpZiAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVQZW5kaW5nKQorICAgICAg
ICBAcHVzaE5ld1Byb21pc2VSZWFjdGlvbihwcm9taXNlLCByZWFjdGlvbnNPclJlc3VsdCwgcHJv
bWlzZU9yQ2FwYWJpbGl0eSwgb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpOworICAgIGVsc2Ugewor
ICAgICAgICB2YXIgaGFuZGxlcjsKKworICAgICAgICBpZiAoc3RhdGUgPT09IEBwcm9taXNlU3Rh
dGVSZWplY3RlZCkgeworICAgICAgICAgICAgaGFuZGxlciA9IG9uUmVqZWN0ZWQ7CisgICAgICAg
ICAgICBpZiAoIShmbGFncyAmIEBwcm9taXNlRmxhZ3NJc0hhbmRsZWQpKQorICAgICAgICAgICAg
ICAgIEBob3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIocHJvbWlzZSwgQHByb21pc2VSZWplY3Rp
b25IYW5kbGUpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGhhbmRsZXIgPSBvbkZ1bGZp
bGxlZDsKKyAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpvYiwgc3RhdGUsIHBy
b21pc2VPckNhcGFiaWxpdHksIGhhbmRsZXIsIHJlYWN0aW9uc09yUmVzdWx0KTsKICAgICB9CiAg
ICAgQHB1dFByb21pc2VJbnRlcm5hbEZpZWxkKHByb21pc2UsIEBwcm9taXNlRmllbGRGbGFncywg
QGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHByb21pc2UsIEBwcm9taXNlRmllbGRGbGFncykgfCBA
cHJvbWlzZUZsYWdzSXNIYW5kbGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzODUzM2ZhNjUzNjMxZDVlYmE4NGRjMDg2
MzBhNDExNDViMTU3NDI3Li43NzFlZjhkOTY3YWJkNDMxODhjNGZjOTgzMTRhMjk1NGFmY2U4YzNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCkBAIC00ODEsMTAgKzQ4MSwxMSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZW5xdWV1
ZUpvYiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogYwogICAgIEpT
VmFsdWUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKICAgICBKU1ZhbHVlIGFy
Z3VtZW50MSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMik7CiAgICAgSlNWYWx1ZSBhcmd1bWVudDIg
PSBjYWxsRnJhbWUtPmFyZ3VtZW50KDMpOworICAgIEpTVmFsdWUgYXJndW1lbnQzID0gY2FsbEZy
YW1lLT5hcmd1bWVudCg0KTsKIAotICAgIGdsb2JhbE9iamVjdC0+cXVldWVNaWNyb3Rhc2soY3Jl
YXRlSlNNaWNyb3Rhc2sodm0sIGpvYiwgYXJndW1lbnQwLCBhcmd1bWVudDEsIGFyZ3VtZW50Mikp
OworICAgIGdsb2JhbE9iamVjdC0+cXVldWVNaWNyb3Rhc2soY3JlYXRlSlNNaWNyb3Rhc2sodm0s
IGpvYiwgYXJndW1lbnQwLCBhcmd1bWVudDEsIGFyZ3VtZW50MiwgYXJndW1lbnQzKSk7CiAKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBlbmNv
ZGVkSlNVbmRlZmluZWQoKTsKIH0KIAogSlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
KiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTWljcm90YXNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTWljcm90YXNrLmNwcAppbmRleCA0NGI4OTQ1NjczMGJlZTM2M2VkYzE1ZTE4MjJjMzk4
MGUxYmJhYjU5Li4zYzdhZjIyYThiZGY1MWU2ODI4MGI4OTUzZTZmYTlmMzgxMGZiMDA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suY3BwCkBAIC0zNywx
MyArMzcsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTTWljcm90YXNrIGZpbmFsIDog
cHVibGljIE1pY3JvdGFzayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBtYXhBcmd1bWVudHMgPSAzOwotICAgIEpTTWljcm90YXNrKFZNJiB2bSwgSlNWYWx1ZSBqb2Is
IEpTVmFsdWUgYXJndW1lbnQwLCBKU1ZhbHVlIGFyZ3VtZW50MSwgSlNWYWx1ZSBhcmd1bWVudDIp
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhBcmd1bWVudHMgPSA0OworICAgIEpT
TWljcm90YXNrKFZNJiB2bSwgSlNWYWx1ZSBqb2IsIEpTVmFsdWUgYXJndW1lbnQwLCBKU1ZhbHVl
IGFyZ3VtZW50MSwgSlNWYWx1ZSBhcmd1bWVudDIsIEpTVmFsdWUgYXJndW1lbnQzKQogICAgIHsK
ICAgICAgICAgbV9qb2Iuc2V0KHZtLCBqb2IpOwogICAgICAgICBtX2FyZ3VtZW50c1swXS5zZXQo
dm0sIGFyZ3VtZW50MCk7CiAgICAgICAgIG1fYXJndW1lbnRzWzFdLnNldCh2bSwgYXJndW1lbnQx
KTsKICAgICAgICAgbV9hcmd1bWVudHNbMl0uc2V0KHZtLCBhcmd1bWVudDIpOworICAgICAgICBt
X2FyZ3VtZW50c1szXS5zZXQodm0sIGFyZ3VtZW50Myk7CiAgICAgfQogCiAgICAgSlNNaWNyb3Rh
c2soVk0mIHZtLCBKU1ZhbHVlIGpvYikKQEAgLTYzLDkgKzY0LDkgQEAgUmVmPE1pY3JvdGFzaz4g
Y3JlYXRlSlNNaWNyb3Rhc2soVk0mIHZtLCBKU1ZhbHVlIGpvYikKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBKU01pY3JvdGFzayh2bSwgam9iKSk7CiB9CiAKLVJlZjxNaWNyb3Rhc2s+IGNyZWF0
ZUpTTWljcm90YXNrKFZNJiB2bSwgSlNWYWx1ZSBqb2IsIEpTVmFsdWUgYXJndW1lbnQwLCBKU1Zh
bHVlIGFyZ3VtZW50MSwgSlNWYWx1ZSBhcmd1bWVudDIpCitSZWY8TWljcm90YXNrPiBjcmVhdGVK
U01pY3JvdGFzayhWTSYgdm0sIEpTVmFsdWUgam9iLCBKU1ZhbHVlIGFyZ3VtZW50MCwgSlNWYWx1
ZSBhcmd1bWVudDEsIEpTVmFsdWUgYXJndW1lbnQyLCBKU1ZhbHVlIGFyZ3VtZW50MykKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU01pY3JvdGFzayh2bSwgam9iLCBhcmd1bWVudDAsIGFy
Z3VtZW50MSwgYXJndW1lbnQyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNNaWNyb3Rh
c2sodm0sIGpvYiwgYXJndW1lbnQwLCBhcmd1bWVudDEsIGFyZ3VtZW50MiwgYXJndW1lbnQzKSk7
CiB9CiAKIHZvaWQgSlNNaWNyb3Rhc2s6OnJ1bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2su
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90YXNrLmgKaW5kZXggYTMw
ZDkzZGQ2NzY2ZDNkYzU5ZDRmNmY0NjQwMzc3MjZiOTU1MDc3MS4uZjFiODQ4ZWI0ZGM0NWU3NDQy
YjNjMTY1NmFiNzRlNDExNWZhOTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNaWNyb3Rhc2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01pY3JvdGFzay5oCkBAIC0zNCw2ICszNCw2IEBAIGNsYXNzIE1pY3JvdGFzazsKIGNsYXNz
IEpTQXJyYXk7CiAKIEpTX0VYUE9SVF9QUklWQVRFIFJlZjxNaWNyb3Rhc2s+IGNyZWF0ZUpTTWlj
cm90YXNrKFZNJiwgSlNWYWx1ZSBqb2IpOwotSlNfRVhQT1JUX1BSSVZBVEUgUmVmPE1pY3JvdGFz
az4gY3JlYXRlSlNNaWNyb3Rhc2soVk0mLCBKU1ZhbHVlIGpvYiwgSlNWYWx1ZSwgSlNWYWx1ZSwg
SlNWYWx1ZSk7CitKU19FWFBPUlRfUFJJVkFURSBSZWY8TWljcm90YXNrPiBjcmVhdGVKU01pY3Jv
dGFzayhWTSYsIEpTVmFsdWUgam9iLCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVl
KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421887</attachid>
            <date>2021-03-01 16:56:23 -0800</date>
            <delta_ts>2021-03-01 18:14:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222533-20210301165623.patch</filename>
            <type>text/plain</type>
            <size>15214</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjY2NWIxZmJmNzA5ZmFkYTZhMjdmYTg3MTRlZDMxYzYyNTQyOTQ1Li5lMThkZGZjMzQ0NGE1N2Uy
MTI1YTQ1MDdmNjk0MTQ1NzIwZDQ2MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMS0wMy0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWR1Y2UgcHJvbWlzZSByZWFjdGlvbiBtZW1vcnkgdXNhZ2Ugd2hl
biB0aGVyZSBhcmUgbXVsdGlwbGUgcmVhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzMKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1
a2UgU3V6dWtpLgorCisgICAgICAgIFByZXZpb3VzbHksIHdlIHdvdWxkIHN0b3JlIGVhY2ggcmVh
Y3Rpb24gaW4gYSBsaW5rZWQgbGlzdC4gVGhpcworICAgICAgICBtZWFudCBlYWNoIHJlYWN0aW9u
IHJlcXVpcmVkIDggYnl0ZXMgdG8gcG9pbnQgdG8gdGhlIG5leHQKKyAgICAgICAgcmVhY3Rpb24u
ICBJbnN0ZWFkLCB0aGlzIHBhdGNoIG1ha2VzIGl0IHNvIHRoZSBmaXJzdCByZWFjdGlvbiBpcwor
ICAgICAgICBzdG9yZSBpbmxpbmUgYW4gb2JqZWN0IGFuZCBhbnkgYWRkaXRpb25hbCByZWFjdGlv
bnMgYXJlIHN0b3JlIGludG8KKyAgICAgICAgaW5kZXggc3RvcmFnZSBmb3IgdGhhdCBvYmplY3Qu
IFRoaXMgZG9lc24ndCBzYXZlIG1lbW9yeSBmb3IgdGhlCisgICAgICAgIGZpcnN0IHJlYWN0aW9u
IHNpbmNlIHdlIG5vdyBuZWVkIHRvIGhhdmUgYSBjb3VudCBvZiBhbGwgdGhlIG91dCBvZgorICAg
ICAgICBsaW5lIHJlYWN0aW9ucyBidXQgZXh0cmEgcmVhY3Rpb25zIHVzZSA4IGJ5dGVzIGxlc3Mg
ZWFjaC4KKworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1
aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5wdXNo
TmV3UHJvbWlzZVJlYWN0aW9uKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUudHJpZ2dlclByb21p
c2VSZWFjdGlvbnMpOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5uZXdQcm9taXNlUmVhY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5yZXNvbHZlUHJvbWlzZSk6IERlbGV0
ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLnJlamVjdFByb21pc2UpOiBEZWxldGVkLgorICAg
ICAgICAoZ2xvYmFsUHJpdmF0ZS5mdWxmaWxsUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChn
bG9iYWxQcml2YXRlLnJlc29sdmVQcm9taXNlV2l0aEZpcnN0UmVzb2x2aW5nRnVuY3Rpb25DYWxs
Q2hlY2spOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5mdWxmaWxsUHJvbWlzZVdp
dGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2FsbENoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGds
b2JhbFByaXZhdGUucmVqZWN0UHJvbWlzZVdpdGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2FsbENo
ZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUuY3JlYXRlUmVzb2x2aW5nRnVu
Y3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucHJvbWlzZVJlYWN0aW9u
Sm9iV2l0aG91dFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5yZXNv
bHZlV2l0aG91dFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5yZWpl
Y3RXaXRob3V0UHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLmZ1bGZp
bGxXaXRob3V0UHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLmNyZWF0
ZVJlc29sdmluZ0Z1bmN0aW9uc1dpdGhvdXRQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKGds
b2JhbFByaXZhdGUucHJvbWlzZVJlYWN0aW9uSm9iKTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2Jh
bFByaXZhdGUucHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkZhc3QpOiBEZWxldGVkLgorICAgICAg
ICAoZ2xvYmFsUHJpdmF0ZS5wcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iV2l0aG91dFByb21pc2VG
YXN0KTogRGVsZXRlZC4KKyAgICAgICAgKGdsb2JhbFByaXZhdGUucHJvbWlzZVJlc29sdmVUaGVu
YWJsZUpvYik6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLnByb21pc2VSZXNvbHZl
VGhlbmFibGVKb2JXaXRoRGVyaXZlZFByb21pc2UpOiBEZWxldGVkLgorICAgICAgICAob25GdWxm
aWxsZWQpOiBEZWxldGVkLgorICAgICAgICAob25SZWplY3RlZCk6IERlbGV0ZWQuCisgICAgICAg
IChnbG9iYWxQcml2YXRlLnBlcmZvcm1Qcm9taXNlVGhlbik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9KU01pY3JvdGFzay5jcHA6CisgICAgICAg
IChKU0M6OmNyZWF0ZUpTTWljcm90YXNrKToKKyAgICAgICAgKiBydW50aW1lL0pTTWljcm90YXNr
Lmg6CisKIDIwMjEtMDMtMDEgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29t
PgogCiAgICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yOjpmdXNlQ29tcGFyZUFuZEp1bXAoKSBmYWls
cyBmb3Igc29tZSBsYW5ndWFnZSBjb25zdHJ1Y3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggN2JlNmM1ZGYyOTE4NDdjMTQ5OGRmNjJiYjRi
Y2IwMWJmZGUzYWY5MC4uMzE5NDViZjNlMTZjZDMwNGU4ZDg4MjliMTk5NzFkYTdjY2NlMzlhMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAt
MTc3LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKHByaXZhdGVDbGFzc0Jy
YW5kKSBcCiAgICAgbWFjcm8oaGFzT3duUHJvcGVydHlGdW5jdGlvbikgXAogICAgIG1hY3JvKGNy
ZWF0ZVByaXZhdGVTeW1ib2wpIFwKLSAgICBtYWNybyhlbnRyaWVzKQorICAgIG1hY3JvKGVudHJp
ZXMpIFwKKyAgICBtYWNybyhvdXRPZkxpbmVSZWFjdGlvbkNvdW50cykKIAogCiBuYW1lc3BhY2Ug
U3ltYm9scyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJv
bWlzZU9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlz
ZU9wZXJhdGlvbnMuanMKaW5kZXggNzVmZmYxN2NhYWM3YTY4MWIxOTU0MThhNGYzYTgwYzE5ZjMx
ZWYxNi4uOGFjMDhiMWFhODZjYjhjYWMzNWQ5NmM4ZjgzNDkwYzQxNjkzZmY5MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qcwpA
QCAtMjcsMTYgKzI3LDI2IEBACiAvLyBAaW50ZXJuYWwKIAogQGdsb2JhbFByaXZhdGUKLWZ1bmN0
aW9uIG5ld1Byb21pc2VSZWFjdGlvbihwcm9taXNlT3JDYXBhYmlsaXR5LCBvbkZ1bGZpbGxlZCwg
b25SZWplY3RlZCkKK2Z1bmN0aW9uIHB1c2hOZXdQcm9taXNlUmVhY3Rpb24odGhlbmFibGUsIGV4
aXN0aW5nUmVhY3Rpb25zLCBwcm9taXNlT3JDYXBhYmlsaXR5LCBvbkZ1bGZpbGxlZCwgb25SZWpl
Y3RlZCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4gewotICAgICAgICBAcHJv
bWlzZU9yQ2FwYWJpbGl0eTogcHJvbWlzZU9yQ2FwYWJpbGl0eSwKLSAgICAgICAgQG9uRnVsZmls
bGVkOiBvbkZ1bGZpbGxlZCwKLSAgICAgICAgQG9uUmVqZWN0ZWQ6IG9uUmVqZWN0ZWQsCi0gICAg
ICAgIEBuZXh0OiBAdW5kZWZpbmVkLAotICAgIH07CisgICAgaWYgKCFleGlzdGluZ1JlYWN0aW9u
cykgeworICAgICAgICBleGlzdGluZ1JlYWN0aW9ucyA9IHsKKyAgICAgICAgICAgIEBwcm9taXNl
T3JDYXBhYmlsaXR5OiBwcm9taXNlT3JDYXBhYmlsaXR5LAorICAgICAgICAgICAgQG9uRnVsZmls
bGVkOiBvbkZ1bGZpbGxlZCwKKyAgICAgICAgICAgIEBvblJlamVjdGVkOiBvblJlamVjdGVkLAor
ICAgICAgICAgICAgLy8gVGhpcyBpcyAzeCB0aGVuIG51bWJlciBvZiBvdXQgb2YgbGluZSByZWFj
dGlvbnMgKHByb21pc2UsIGZ1bGZpbGwgY2FsbGJhY2ssIHJlamVjdCBjYWxsYmFjaykuCisgICAg
ICAgICAgICBAb3V0T2ZMaW5lUmVhY3Rpb25Db3VudHM6IDAsCisgICAgICAgIH07CisgICAgICAg
IEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9u
c09yUmVzdWx0LCBleGlzdGluZ1JlYWN0aW9ucyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFy
IG91dE9mTGluZVJlYWN0aW9uQ291bnRzID0gZXhpc3RpbmdSZWFjdGlvbnMuQG91dE9mTGluZVJl
YWN0aW9uQ291bnRzOworICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZXhpc3RpbmdSZWFjdGlvbnMs
IG91dE9mTGluZVJlYWN0aW9uQ291bnRzKyssIHByb21pc2VPckNhcGFiaWxpdHkpOworICAgICAg
ICBAcHV0QnlWYWxEaXJlY3QoZXhpc3RpbmdSZWFjdGlvbnMsIG91dE9mTGluZVJlYWN0aW9uQ291
bnRzKyssIG9uRnVsZmlsbGVkKTsKKyAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGV4aXN0aW5nUmVh
Y3Rpb25zLCBvdXRPZkxpbmVSZWFjdGlvbkNvdW50cysrLCBvblJlamVjdGVkKTsKKyAgICAgICAg
ZXhpc3RpbmdSZWFjdGlvbnMuQG91dE9mTGluZVJlYWN0aW9uQ291bnRzID0gb3V0T2ZMaW5lUmVh
Y3Rpb25Db3VudHM7CisgICAgfQogfQogCiBAZ2xvYmFsUHJpdmF0ZQpAQCAtMTM3LDIyICsxNDcs
MTkgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMoc3RhdGUsIHJlYWN0aW9ucywg
YXJndW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy8gUmV2ZXJzZSB0aGUgb3Jk
ZXIgb2Ygc2luZ2x5LWxpbmtlZC1saXN0LgotICAgIHZhciBwcmV2aW91cyA9IEB1bmRlZmluZWQ7
Ci0gICAgdmFyIGN1cnJlbnQgPSByZWFjdGlvbnM7Ci0gICAgd2hpbGUgKGN1cnJlbnQpIHsKLSAg
ICAgICAgdmFyIG5leHQgPSBjdXJyZW50LkBuZXh0OwotICAgICAgICBjdXJyZW50LkBuZXh0ID0g
cHJldmlvdXM7Ci0gICAgICAgIHByZXZpb3VzID0gY3VycmVudDsKLSAgICAgICAgY3VycmVudCA9
IG5leHQ7Ci0gICAgfQotICAgIHJlYWN0aW9ucyA9IHByZXZpb3VzOworICAgIGlmICghcmVhY3Rp
b25zKQorICAgICAgICByZXR1cm47CiAKLSAgICBjdXJyZW50ID0gcmVhY3Rpb25zOwotICAgIHdo
aWxlIChjdXJyZW50KSB7Ci0gICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVhY3Rpb25Kb2Is
IHN0YXRlLCBjdXJyZW50LCBhcmd1bWVudCk7Ci0gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LkBu
ZXh0OworICAgIHZhciBpc1Jlc29sdmVkID0gc3RhdGUgPT09IEBwcm9taXNlU3RhdGVGdWxmaWxs
ZWQ7CisKKyAgICBAZW5xdWV1ZUpvYihAcHJvbWlzZVJlYWN0aW9uSm9iLCBzdGF0ZSwgcmVhY3Rp
b25zLkBwcm9taXNlT3JDYXBhYmlsaXR5LCBpc1Jlc29sdmVkID8gcmVhY3Rpb25zLkBvbkZ1bGZp
bGxlZCA6IHJlYWN0aW9ucy5Ab25SZWplY3RlZCwgYXJndW1lbnQpOworCisgICAgZm9yICh2YXIg
aSA9IDAsIGNvdW50ID0gcmVhY3Rpb25zLkBvdXRPZkxpbmVSZWFjdGlvbkNvdW50czsgaSA8IGNv
dW50OyBpICs9IDMpIHsKKyAgICAgICAgdmFyIHByb21pc2UgPSByZWFjdGlvbnNbaV07CisgICAg
ICAgIHZhciBoYW5kbGVyID0gaXNSZXNvbHZlZCA/IHJlYWN0aW9uc1tpICsgMV0gOiByZWFjdGlv
bnNbaSArIDJdOworICAgICAgICBAZW5xdWV1ZUpvYihAcHJvbWlzZVJlYWN0aW9uSm9iLCBzdGF0
ZSwgcHJvbWlzZSwgaGFuZGxlciwgYXJndW1lbnQpOwogICAgIH0KKyAgICBAYXNzZXJ0KGkgPT09
IGNvdW50KTsKIH0KIAogQGdsb2JhbFByaXZhdGUKQEAgLTM3Miw3ICszNzksNyBAQCBmdW5jdGlv
biBjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNXaXRob3V0UHJvbWlzZShvbkZ1bGZpbGxlZCwgb25S
ZWplY3RlZCkKIH0KIAogQGdsb2JhbFByaXZhdGUKLWZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpv
YihzdGF0ZSwgcmVhY3Rpb24sIGFyZ3VtZW50KQorZnVuY3Rpb24gcHJvbWlzZVJlYWN0aW9uSm9i
KHN0YXRlLCBwcm9taXNlT3JDYXBhYmlsaXR5LCBoYW5kbGVyLCBhcmd1bWVudCkKIHsKICAgICAv
LyBQcm9taXNlIFJlYWN0aW9uIGhhcyBmb3VyIHR5cGVzLgogICAgIC8vIDEuIEBwcm9taXNlT3JD
YXBhYmlsaXR5IGlzIFByb21pc2VDYXBhYmlsaXR5LCBhbmQgaGF2aW5nIGhhbmRsZXJzLgpAQCAt
Mzg1LDExICszOTIsOCBAQCBmdW5jdGlvbiBwcm9taXNlUmVhY3Rpb25Kb2Ioc3RhdGUsIHJlYWN0
aW9uLCBhcmd1bWVudCkKICAgICAvLyAgICAgSXQgZG9lcyBub3QgaGF2ZSBwcm9taXNlIGNhcGFi
aWxpdHkuIEp1c3QgaGFuZGxlcnMgYXJlIHBhc3NlZC4KICAgICAidXNlIHN0cmljdCI7CiAKLSAg
ICB2YXIgcHJvbWlzZU9yQ2FwYWJpbGl0eSA9IHJlYWN0aW9uLkBwcm9taXNlT3JDYXBhYmlsaXR5
OwotCiAgICAgLy8gQ2FzZSAoMykuCi0gICAgaWYgKEBpc1VuZGVmaW5lZE9yTnVsbChyZWFjdGlv
bi5Ab25SZWplY3RlZCkpIHsKLSAgICAgICAgQGFzc2VydChAaXNVbmRlZmluZWRPck51bGwocmVh
Y3Rpb24uQG9uRnVsZmlsbGVkKSk7CisgICAgaWYgKEBpc1VuZGVmaW5lZE9yTnVsbChoYW5kbGVy
KSkgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgQGFzc2VydChAaXNQcm9taXNlKHByb21p
c2VPckNhcGFiaWxpdHkpKTsKICAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0
ZUZ1bGZpbGxlZCkKQEAgLTQwMiw4ICs0MDYsNiBAQCBmdW5jdGlvbiBwcm9taXNlUmVhY3Rpb25K
b2Ioc3RhdGUsIHJlYWN0aW9uLCBhcmd1bWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHZhciBoYW5kbGVyID0gKHN0YXRlID09PSBAcHJvbWlzZVN0YXRlRnVsZmlsbGVkKSA/IHJl
YWN0aW9uLkBvbkZ1bGZpbGxlZDogcmVhY3Rpb24uQG9uUmVqZWN0ZWQ7Ci0KICAgICAvLyBDYXNl
ICg0KS4KICAgICBpZiAoIXByb21pc2VPckNhcGFiaWxpdHkpIHsKICAgICAgICAgQHByb21pc2VS
ZWFjdGlvbkpvYldpdGhvdXRQcm9taXNlKGhhbmRsZXIsIGFyZ3VtZW50KTsKQEAgLTQ0OCwxNCAr
NDUwLDEzIEBAIGZ1bmN0aW9uIHByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JGYXN0KHRoZW5hYmxl
LCBwcm9taXNlVG9SZXNvbHZlKQogCiAgICAgdmFyIGZsYWdzID0gQGdldFByb21pc2VJbnRlcm5h
bEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkRmxhZ3MpOwogICAgIHZhciBzdGF0ZSA9IGZs
YWdzICYgQHByb21pc2VTdGF0ZU1hc2s7Ci0gICAgdmFyIHJlYWN0aW9uID0gQG5ld1Byb21pc2VS
ZWFjdGlvbihwcm9taXNlVG9SZXNvbHZlLCBAdW5kZWZpbmVkLCBAdW5kZWZpbmVkKTsKLSAgICBp
ZiAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVQZW5kaW5nKSB7Ci0gICAgICAgIHJlYWN0aW9uLkBu
ZXh0ID0gQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkUmVh
Y3Rpb25zT3JSZXN1bHQpOwotICAgICAgICBAcHV0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFi
bGUsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCwgcmVhY3Rpb24pOwotICAgIH0gZWxz
ZSB7CisgICAgdmFyIHJlYWN0aW9uc09yUmVzdWx0ID0gQGdldFByb21pc2VJbnRlcm5hbEZpZWxk
KHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQpOworICAgIGlmIChzdGF0
ZSA9PT0gQHByb21pc2VTdGF0ZVBlbmRpbmcpCisgICAgICAgIEBwdXNoTmV3UHJvbWlzZVJlYWN0
aW9uKHRoZW5hYmxlLCByZWFjdGlvbnNPclJlc3VsdCwgcHJvbWlzZVRvUmVzb2x2ZSwgQHVuZGVm
aW5lZCwgQHVuZGVmaW5lZCk7CisgICAgZWxzZSB7CiAgICAgICAgIGlmIChzdGF0ZSA9PT0gQHBy
b21pc2VTdGF0ZVJlamVjdGVkICYmICEoZmxhZ3MgJiBAcHJvbWlzZUZsYWdzSXNIYW5kbGVkKSkK
ICAgICAgICAgICAgIEBob3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIodGhlbmFibGUsIEBwcm9t
aXNlUmVqZWN0aW9uSGFuZGxlKTsKLSAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlv
bkpvYiwgc3RhdGUsIHJlYWN0aW9uLCBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUs
IEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCkpOworICAgICAgICBAZW5xdWV1ZUpvYihA
cHJvbWlzZVJlYWN0aW9uSm9iLCBzdGF0ZSwgcHJvbWlzZVRvUmVzb2x2ZSwgQHVuZGVmaW5lZCwg
cmVhY3Rpb25zT3JSZXN1bHQpOwogICAgIH0KICAgICBAcHV0UHJvbWlzZUludGVybmFsRmllbGQo
dGhlbmFibGUsIEBwcm9taXNlRmllbGRGbGFncywgQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHRo
ZW5hYmxlLCBAcHJvbWlzZUZpZWxkRmxhZ3MpIHwgQHByb21pc2VGbGFnc0lzSGFuZGxlZCk7CiB9
CkBAIC00NzcsMTggKzQ3OCwxNiBAQCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9i
V2l0aG91dFByb21pc2VGYXN0KHRoZW5hYmxlLCBvbkZ1bGZpbGxlZCwgb25SZQogCiAgICAgdmFy
IGZsYWdzID0gQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHRoZW5hYmxlLCBAcHJvbWlzZUZpZWxk
RmxhZ3MpOwogICAgIHZhciBzdGF0ZSA9IGZsYWdzICYgQHByb21pc2VTdGF0ZU1hc2s7Ci0gICAg
aWYgKHN0YXRlID09PSBAcHJvbWlzZVN0YXRlUGVuZGluZykgewotICAgICAgICB2YXIgcmVhY3Rp
b24gPSBAbmV3UHJvbWlzZVJlYWN0aW9uKEB1bmRlZmluZWQsIG9uRnVsZmlsbGVkLCBvblJlamVj
dGVkKTsKLSAgICAgICAgcmVhY3Rpb24uQG5leHQgPSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQo
dGhlbmFibGUsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCk7Ci0gICAgICAgIEBwdXRQ
cm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVz
dWx0LCByZWFjdGlvbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IEBnZXRQ
cm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJsZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVz
dWx0KTsKKyAgICB2YXIgcmVhY3Rpb25zT3JSZXN1bHQgPSBAZ2V0UHJvbWlzZUludGVybmFsRmll
bGQodGhlbmFibGUsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNPclJlc3VsdCk7CisgICAgaWYgKHN0
YXRlID09PSBAcHJvbWlzZVN0YXRlUGVuZGluZykKKyAgICAgICAgQHB1c2hOZXdQcm9taXNlUmVh
Y3Rpb24odGhlbmFibGUsIHJlYWN0aW9uc09yUmVzdWx0LCBAdW5kZWZpbmVkLCBvbkZ1bGZpbGxl
ZCwgb25SZWplY3RlZCk7CisgICAgZWxzZSB7CiAgICAgICAgIGlmIChzdGF0ZSA9PT0gQHByb21p
c2VTdGF0ZVJlamVjdGVkKSB7CiAgICAgICAgICAgICBpZiAoIShmbGFncyAmIEBwcm9taXNlRmxh
Z3NJc0hhbmRsZWQpKQogICAgICAgICAgICAgICAgIEBob3N0UHJvbWlzZVJlamVjdGlvblRyYWNr
ZXIodGhlbmFibGUsIEBwcm9taXNlUmVqZWN0aW9uSGFuZGxlKTsKLSAgICAgICAgICAgIEByZWpl
Y3RXaXRob3V0UHJvbWlzZShyZXN1bHQsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKTsKKyAgICAg
ICAgICAgIEByZWplY3RXaXRob3V0UHJvbWlzZShyZWFjdGlvbnNPclJlc3VsdCwgb25GdWxmaWxs
ZWQsIG9uUmVqZWN0ZWQpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIEBmdWxmaWxsV2l0
aG91dFByb21pc2UocmVzdWx0LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCk7CisgICAgICAgICAg
ICBAZnVsZmlsbFdpdGhvdXRQcm9taXNlKHJlYWN0aW9uc09yUmVzdWx0LCBvbkZ1bGZpbGxlZCwg
b25SZWplY3RlZCk7CiAgICAgfQogICAgIEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZCh0aGVuYWJs
ZSwgQHByb21pc2VGaWVsZEZsYWdzLCBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQodGhlbmFibGUs
IEBwcm9taXNlRmllbGRGbGFncykgfCBAcHJvbWlzZUZsYWdzSXNIYW5kbGVkKTsKIH0KQEAgLTU0
NiwxNyArNTQ1LDIxIEBAIGZ1bmN0aW9uIHBlcmZvcm1Qcm9taXNlVGhlbihwcm9taXNlLCBvbkZ1
bGZpbGxlZCwgb25SZWplY3RlZCwgcHJvbWlzZU9yQ2FwYWJpbGl0CiAgICAgaWYgKCFAaXNDYWxs
YWJsZShvblJlamVjdGVkKSkKICAgICAgICAgb25SZWplY3RlZCA9IEBwcm9taXNlRW1wdHlPblJl
amVjdGVkOwogCi0gICAgdmFyIHJlYWN0aW9uID0gQG5ld1Byb21pc2VSZWFjdGlvbihwcm9taXNl
T3JDYXBhYmlsaXR5LCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCk7Ci0KKyAgICB2YXIgcmVhY3Rp
b25zT3JSZXN1bHQgPSBAZ2V0UHJvbWlzZUludGVybmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VG
aWVsZFJlYWN0aW9uc09yUmVzdWx0KTsKICAgICB2YXIgZmxhZ3MgPSBAZ2V0UHJvbWlzZUludGVy
bmFsRmllbGQocHJvbWlzZSwgQHByb21pc2VGaWVsZEZsYWdzKTsKICAgICB2YXIgc3RhdGUgPSBm
bGFncyAmIEBwcm9taXNlU3RhdGVNYXNrOwotICAgIGlmIChzdGF0ZSA9PT0gQHByb21pc2VTdGF0
ZVBlbmRpbmcpIHsKLSAgICAgICAgcmVhY3Rpb24uQG5leHQgPSBAZ2V0UHJvbWlzZUludGVybmFs
RmllbGQocHJvbWlzZSwgQHByb21pc2VGaWVsZFJlYWN0aW9uc09yUmVzdWx0KTsKLSAgICAgICAg
QHB1dFByb21pc2VJbnRlcm5hbEZpZWxkKHByb21pc2UsIEBwcm9taXNlRmllbGRSZWFjdGlvbnNP
clJlc3VsdCwgcmVhY3Rpb24pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzdGF0ZSA9PT0g
QHByb21pc2VTdGF0ZVJlamVjdGVkICYmICEoZmxhZ3MgJiBAcHJvbWlzZUZsYWdzSXNIYW5kbGVk
KSkKLSAgICAgICAgICAgIEBob3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIocHJvbWlzZSwgQHBy
b21pc2VSZWplY3Rpb25IYW5kbGUpOwotICAgICAgICBAZW5xdWV1ZUpvYihAcHJvbWlzZVJlYWN0
aW9uSm9iLCBzdGF0ZSwgcmVhY3Rpb24sIEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNl
LCBAcHJvbWlzZUZpZWxkUmVhY3Rpb25zT3JSZXN1bHQpKTsKKyAgICBpZiAoc3RhdGUgPT09IEBw
cm9taXNlU3RhdGVQZW5kaW5nKQorICAgICAgICBAcHVzaE5ld1Byb21pc2VSZWFjdGlvbihwcm9t
aXNlLCByZWFjdGlvbnNPclJlc3VsdCwgcHJvbWlzZU9yQ2FwYWJpbGl0eSwgb25GdWxmaWxsZWQs
IG9uUmVqZWN0ZWQpOworICAgIGVsc2UgeworICAgICAgICB2YXIgaGFuZGxlcjsKKworICAgICAg
ICBpZiAoc3RhdGUgPT09IEBwcm9taXNlU3RhdGVSZWplY3RlZCkgeworICAgICAgICAgICAgaGFu
ZGxlciA9IG9uUmVqZWN0ZWQ7CisgICAgICAgICAgICBpZiAoIShmbGFncyAmIEBwcm9taXNlRmxh
Z3NJc0hhbmRsZWQpKQorICAgICAgICAgICAgICAgIEBob3N0UHJvbWlzZVJlamVjdGlvblRyYWNr
ZXIocHJvbWlzZSwgQHByb21pc2VSZWplY3Rpb25IYW5kbGUpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGhhbmRsZXIgPSBvbkZ1bGZpbGxlZDsKKyAgICAgICAgQGVucXVldWVKb2IoQHBy
b21pc2VSZWFjdGlvbkpvYiwgc3RhdGUsIHByb21pc2VPckNhcGFiaWxpdHksIGhhbmRsZXIsIHJl
YWN0aW9uc09yUmVzdWx0KTsKICAgICB9CiAgICAgQHB1dFByb21pc2VJbnRlcm5hbEZpZWxkKHBy
b21pc2UsIEBwcm9taXNlRmllbGRGbGFncywgQGdldFByb21pc2VJbnRlcm5hbEZpZWxkKHByb21p
c2UsIEBwcm9taXNlRmllbGRGbGFncykgfCBAcHJvbWlzZUZsYWdzSXNIYW5kbGVkKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCAzODUzM2ZhNjUzNjMxZDVlYmE4NGRjMDg2MzBhNDExNDViMTU3NDI3Li43NzFlZjhkOTY3YWJk
NDMxODhjNGZjOTgzMTRhMjk1NGFmY2U4YzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC00ODEsMTAgKzQ4MSwxMSBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZW5xdWV1ZUpvYiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogYwogICAgIEpTVmFsdWUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgxKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50MSA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
Mik7CiAgICAgSlNWYWx1ZSBhcmd1bWVudDIgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDMpOworICAg
IEpTVmFsdWUgYXJndW1lbnQzID0gY2FsbEZyYW1lLT5hcmd1bWVudCg0KTsKIAotICAgIGdsb2Jh
bE9iamVjdC0+cXVldWVNaWNyb3Rhc2soY3JlYXRlSlNNaWNyb3Rhc2sodm0sIGpvYiwgYXJndW1l
bnQwLCBhcmd1bWVudDEsIGFyZ3VtZW50MikpOworICAgIGdsb2JhbE9iamVjdC0+cXVldWVNaWNy
b3Rhc2soY3JlYXRlSlNNaWNyb3Rhc2sodm0sIGpvYiwgYXJndW1lbnQwLCBhcmd1bWVudDEsIGFy
Z3VtZW50MiwgYXJndW1lbnQzKSk7CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKIH0KIAogSlNHbG9i
YWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNv
bnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90YXNrLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90YXNrLmNwcAppbmRleCA0NGI4
OTQ1NjczMGJlZTM2M2VkYzE1ZTE4MjJjMzk4MGUxYmJhYjU5Li4zYzdhZjIyYThiZGY1MWU2ODI4
MGI4OTUzZTZmYTlmMzgxMGZiMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU01pY3JvdGFzay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNaWNyb3Rhc2suY3BwCkBAIC0zNywxMyArMzcsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IGNsYXNzIEpTTWljcm90YXNrIGZpbmFsIDogcHVibGljIE1pY3JvdGFzayB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhBcmd1bWVudHMgPSAzOwotICAgIEpTTWlj
cm90YXNrKFZNJiB2bSwgSlNWYWx1ZSBqb2IsIEpTVmFsdWUgYXJndW1lbnQwLCBKU1ZhbHVlIGFy
Z3VtZW50MSwgSlNWYWx1ZSBhcmd1bWVudDIpCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBtYXhBcmd1bWVudHMgPSA0OworICAgIEpTTWljcm90YXNrKFZNJiB2bSwgSlNWYWx1ZSBqb2Is
IEpTVmFsdWUgYXJndW1lbnQwLCBKU1ZhbHVlIGFyZ3VtZW50MSwgSlNWYWx1ZSBhcmd1bWVudDIs
IEpTVmFsdWUgYXJndW1lbnQzKQogICAgIHsKICAgICAgICAgbV9qb2Iuc2V0KHZtLCBqb2IpOwog
ICAgICAgICBtX2FyZ3VtZW50c1swXS5zZXQodm0sIGFyZ3VtZW50MCk7CiAgICAgICAgIG1fYXJn
dW1lbnRzWzFdLnNldCh2bSwgYXJndW1lbnQxKTsKICAgICAgICAgbV9hcmd1bWVudHNbMl0uc2V0
KHZtLCBhcmd1bWVudDIpOworICAgICAgICBtX2FyZ3VtZW50c1szXS5zZXQodm0sIGFyZ3VtZW50
Myk7CiAgICAgfQogCiAgICAgSlNNaWNyb3Rhc2soVk0mIHZtLCBKU1ZhbHVlIGpvYikKQEAgLTYz
LDkgKzY0LDkgQEAgUmVmPE1pY3JvdGFzaz4gY3JlYXRlSlNNaWNyb3Rhc2soVk0mIHZtLCBKU1Zh
bHVlIGpvYikKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU01pY3JvdGFzayh2bSwgam9iKSk7
CiB9CiAKLVJlZjxNaWNyb3Rhc2s+IGNyZWF0ZUpTTWljcm90YXNrKFZNJiB2bSwgSlNWYWx1ZSBq
b2IsIEpTVmFsdWUgYXJndW1lbnQwLCBKU1ZhbHVlIGFyZ3VtZW50MSwgSlNWYWx1ZSBhcmd1bWVu
dDIpCitSZWY8TWljcm90YXNrPiBjcmVhdGVKU01pY3JvdGFzayhWTSYgdm0sIEpTVmFsdWUgam9i
LCBKU1ZhbHVlIGFyZ3VtZW50MCwgSlNWYWx1ZSBhcmd1bWVudDEsIEpTVmFsdWUgYXJndW1lbnQy
LCBKU1ZhbHVlIGFyZ3VtZW50MykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU01pY3Jv
dGFzayh2bSwgam9iLCBhcmd1bWVudDAsIGFyZ3VtZW50MSwgYXJndW1lbnQyKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSlNNaWNyb3Rhc2sodm0sIGpvYiwgYXJndW1lbnQwLCBhcmd1bWVu
dDEsIGFyZ3VtZW50MiwgYXJndW1lbnQzKSk7CiB9CiAKIHZvaWQgSlNNaWNyb3Rhc2s6OnJ1bihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTWljcm90YXNrLmgKaW5kZXggYTMwZDkzZGQ2NzY2ZDNkYzU5ZDRmNmY0NjQwMzc3MjZi
OTU1MDc3MS4uZjFiODQ4ZWI0ZGM0NWU3NDQyYjNjMTY1NmFiNzRlNDExNWZhOTg0NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5oCkBAIC0zNCw2ICszNCw2
IEBAIGNsYXNzIE1pY3JvdGFzazsKIGNsYXNzIEpTQXJyYXk7CiAKIEpTX0VYUE9SVF9QUklWQVRF
IFJlZjxNaWNyb3Rhc2s+IGNyZWF0ZUpTTWljcm90YXNrKFZNJiwgSlNWYWx1ZSBqb2IpOwotSlNf
RVhQT1JUX1BSSVZBVEUgUmVmPE1pY3JvdGFzaz4gY3JlYXRlSlNNaWNyb3Rhc2soVk0mLCBKU1Zh
bHVlIGpvYiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CitKU19FWFBPUlRfUFJJVkFURSBS
ZWY8TWljcm90YXNrPiBjcmVhdGVKU01pY3JvdGFzayhWTSYsIEpTVmFsdWUgam9iLCBKU1ZhbHVl
LCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>