<?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>237040</bug_id>
          
          <creation_ts>2022-02-22 08:10:58 -0800</creation_ts>
          <short_desc>Share more code between dispatchSessionStorageEvents() and dispatchLocalStorageEvents()</short_desc>
          <delta_ts>2022-02-22 17:36:21 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=236985</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1844713</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 08:10:58 -0800</bug_when>
    <thetext>Share more code between dispatchSessionStorageEvents() and dispatchLocalStorageEvents().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844716</commentid>
    <comment_count>1</comment_count>
      <attachid>452872</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 08:16:56 -0800</bug_when>
    <thetext>Created attachment 452872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844818</commentid>
    <comment_count>2</comment_count>
      <attachid>452889</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 11:54:52 -0800</bug_when>
    <thetext>Created attachment 452889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844823</commentid>
    <comment_count>3</comment_count>
      <attachid>452891</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 12:09:49 -0800</bug_when>
    <thetext>Created attachment 452891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844873</commentid>
    <comment_count>4</comment_count>
      <attachid>452891</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-02-22 14:19:31 -0800</bug_when>
    <thetext>Comment on attachment 452891
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844890</commentid>
    <comment_count>5</comment_count>
      <attachid>452891</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-22 14:59:18 -0800</bug_when>
    <thetext>Comment on attachment 452891
Patch

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

&gt; Source/WebCore/storage/StorageEventDispatcher.cpp:52
&gt; +        if (!isRelevantPage(window.page()))

Love this the way it is already, but one note: Could put the null check in the shared code and pass a Page&amp; to the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844916</commentid>
    <comment_count>6</comment_count>
      <attachid>452911</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 16:16:37 -0800</bug_when>
    <thetext>Created attachment 452911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844959</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-22 17:35:16 -0800</bug_when>
    <thetext>Committed r290342 (247662@main): &lt;https://commits.webkit.org/247662@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452911.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844960</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-22 17:36:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/89326846&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452872</attachid>
            <date>2022-02-22 08:16:56 -0800</date>
            <delta_ts>2022-02-22 12:09:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237040-20220222081656.patch</filename>
            <type>text/plain</type>
            <size>6765</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNjOWVlMmI4MDFmNGYz
MjJkZGIwNmY4YTMwMzRlMTM4MGI5ZTllYi4uNzFjOWQ4NzUwYzI2MmU4YzYxMDRhZjBjNjQ3Yjc3
ZTdjNjMwOTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cygpIGFuZCBkaXNwYXRjaExvY2FsU3Rv
cmFnZUV2ZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzcwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwYXRjaFN0b3JhZ2VFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnRzVG9XaW5k
b3dzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZl
bnRzVG9XaW5kb3dzKTogRGVsZXRlZC4KKwogMjAyMi0wMi0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc2VydmljZSB3b3JrZXIgYW5kIHB1c2ggQVBJ
IHByZWZlcmVuY2UgZnJvbSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIHRvIFNldHRpbmdzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAppbmRl
eCBhYjRkZTY5Y2FiMjg4MTQ5N2Y5ZGU0MjBkNjM2Njc0YTRjZDJmMzliLi4zOWEyOGQ0YTUxNjU5
YmQ0Y2MzNzQzNmZhNzcyZTUwZjY5NTY2MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTQwLDY4ICs0MCw0OCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VF
dmVudHNUb1dpbmRvd3MoUGFnZSYgcGFnZSwgY29uc3QgVmVjdG9yPFJlZjxET01XaW5kb3c+PiYg
d2luZG93cywgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTZWN1cml0eU9yaWdp
biYgc2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRE
aXNwYXRjaERPTVN0b3JhZ2VFdmVudChwYWdlLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgU3Rv
cmFnZVR5cGU6OlNlc3Npb24sIHNlY3VyaXR5T3JpZ2luKTsKLQotICAgIGZvciAoYXV0byYgd2lu
ZG93IDogd2luZG93cykgewotICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3aW5kb3ctPmRvY3Vt
ZW50KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gd2luZG93LT5zZXNzaW9uU3RvcmFnZSgpOwot
ICAgICAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSkgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vic3RvcmFnZS5odG1sI3RoZS1zdG9yYWdlLWV2ZW50OmV2
ZW50LXN0b3JhZ2UKLSAgICAgICAgICAgIGRvY3VtZW50LT5xdWV1ZVRhc2tUb0Rpc3BhdGNoRXZl
bnRPbldpbmRvdyhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFN0b3JhZ2VFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1
cmwsIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwotICAgIH0KLX0KLQotc3RhdGljIHZv
aWQgZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudHNUb1dpbmRvd3MoUGFnZUdyb3VwJiBwYWdlR3Jv
dXAsIGNvbnN0IFZlY3RvcjxSZWY8RE9NV2luZG93Pj4mIHdpbmRvd3MsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKQotewot
ICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VHcm91cC5wYWdlcygpKQotICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KHBhZ2UsIGtleSwg
b2xkVmFsdWUsIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZTo6TG9jYWwsIHNlY3VyaXR5T3JpZ2luKTsK
LQotICAgIGZvciAoYXV0byYgd2luZG93IDogd2luZG93cykgewotICAgICAgICBSZWZQdHIgZG9j
dW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gd2luZG93
LT5sb2NhbFN0b3JhZ2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIC8v
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYnN0b3JhZ2UuaHRtbCN0
aGUtc3RvcmFnZS1ldmVudDpldmVudC1zdG9yYWdlCi0gICAgICAgICAgICBkb2N1bWVudC0+cXVl
dWVUYXNrVG9EaXNwYXRjaEV2ZW50T25XaW5kb3coVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9u
LCBTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgdXJsLCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgU3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3Rv
cmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgU3RyaW5nJiBuZXdWYWx1ZSwgUGFnZSYgcGFnZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNl
Y3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChTdG9y
YWdlJik+JiBpc1NvdXJjZVN0b3JhZ2UpCit0ZW1wbGF0ZTxTdG9yYWdlVHlwZSBzdG9yYWdlVHlw
ZT4KK3N0YXRpYyB2b2lkIGRpc3BhdGNoU3RvcmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVu
Y3Rpb248Ym9vbChTdG9yYWdlJik+JiBpc1NvdXJjZVN0b3JhZ2UsIGNvbnN0IEZ1bmN0aW9uPGJv
b2woUGFnZSopPiYgaXNSZWxldmFudFBhZ2UpCiB7CiAgICAgVmVjdG9yPFJlZjxET01XaW5kb3c+
PiB3aW5kb3dzOwogICAgIERPTVdpbmRvdzo6Zm9yRWFjaFdpbmRvd0ludGVyZXN0ZWRJblN0b3Jh
Z2VFdmVudHMoWyZdKGF1dG8mIHdpbmRvdykgewotICAgICAgICBpZiAoIXdpbmRvdy5vcHRpb25h
bFNlc3Npb25TdG9yYWdlKCkpCisgICAgICAgIGF1dG8gc3RvcmFnZSA9IGlzTG9jYWxTdG9yYWdl
KHN0b3JhZ2VUeXBlKSA/IHdpbmRvdy5vcHRpb25hbExvY2FsU3RvcmFnZSgpIDogd2luZG93Lm9w
dGlvbmFsU2Vzc2lvblN0b3JhZ2UoKTsKKyAgICAgICAgaWYgKCFzdG9yYWdlKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgotICAg
ICAgICBpZiAod2luZG93LnBhZ2UoKSAhPSAmcGFnZSkKKyAgICAgICAgaWYgKCFpc1JlbGV2YW50
UGFnZSh3aW5kb3cucGFnZSgpKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGlz
U291cmNlU3RvcmFnZSgqd2luZG93Lm9wdGlvbmFsU2Vzc2lvblN0b3JhZ2UoKSkpCisgICAgICAg
IGlmIChpc1NvdXJjZVN0b3JhZ2UoKnN0b3JhZ2UpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luLmVxdWFsKHdpbmRvdy5zZWN1cml0eU9yaWdpbigpKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgd2luZG93cy5hcHBlbmQod2luZG93KTsKICAg
ICB9KTsKIAotICAgIGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHNUb1dpbmRvd3MocGFnZSwg
d2luZG93cywga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybCwgc2VjdXJpdHlPcmlnaW4pOwor
ICAgIEhhc2hTZXQ8UGFnZSo+IHBhZ2VzOworICAgIGZvciAoYXV0byYgd2luZG93IDogd2luZG93
cykgeworICAgICAgICBpZiAocGFnZXMuYWRkKHdpbmRvdy0+cGFnZSgpKS5pc05ld0VudHJ5KQor
ICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3Jh
Z2VFdmVudCgqd2luZG93LT5wYWdlKCksIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzdG9yYWdl
VHlwZSwgc2VjdXJpdHlPcmlnaW4pOworICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3aW5kb3ct
PmRvY3VtZW50KCk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gaXNMb2NhbFN0b3JhZ2Uoc3RvcmFn
ZVR5cGUpID8gd2luZG93LT5sb2NhbFN0b3JhZ2UoKSA6IHdpbmRvdy0+c2Vzc2lvblN0b3JhZ2Uo
KTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIC8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYnN0b3JhZ2UuaHRtbCN0aGUtc3RvcmFnZS1ldmVu
dDpldmVudC1zdG9yYWdlCisgICAgICAgICAgICBkb2N1bWVudC0+cXVldWVUYXNrVG9EaXNwYXRj
aEV2ZW50T25XaW5kb3coVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBTdG9yYWdlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1
ZSwgdXJsLCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICB9Cit9CisKK3ZvaWQg
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyhjb25z
dCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdW
YWx1ZSwgUGFnZSYgcGFnZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChTdG9yYWdlJik+JiBpc1NvdXJj
ZVN0b3JhZ2UpCit7CisgICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnRzPFN0b3JhZ2VUeXBlOjpTZXNz
aW9uPihrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc2VjdXJpdHlPcmlnaW4sIHVybCwgaXNTb3Vy
Y2VTdG9yYWdlLCBbJl0oYXV0byogd2luZG93UGFnZSkgeworICAgICAgICByZXR1cm4gd2luZG93
UGFnZSA9PSAmcGFnZTsKKyAgICB9KTsKIH0KIAogdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgUGFnZUdyb3VwJiBwYWdlR3Jv
dXAsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IEZ1bmN0aW9uPGJvb2woU3RvcmFnZSYpPiYgaXNTb3VyY2VTdG9yYWdlKQogewog
ICAgIGF1dG8mIHBhZ2VzSW5Hcm91cCA9IHBhZ2VHcm91cC5wYWdlcygpOwotICAgIFZlY3RvcjxS
ZWY8RE9NV2luZG93Pj4gd2luZG93czsKLSAgICBET01XaW5kb3c6OmZvckVhY2hXaW5kb3dJbnRl
cmVzdGVkSW5TdG9yYWdlRXZlbnRzKFsmXShhdXRvJiB3aW5kb3cpIHsKLSAgICAgICAgaWYgKCF3
aW5kb3cub3B0aW9uYWxMb2NhbFN0b3JhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFnZSBpbiB0aGUgZ3JvdXAuCi0gICAgICAgIGlm
ICghd2luZG93LnBhZ2UoKSB8fCAhcGFnZXNJbkdyb3VwLmNvbnRhaW5zKCp3aW5kb3cucGFnZSgp
KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGlzU291cmNlU3RvcmFnZSgqd2lu
ZG93Lm9wdGlvbmFsTG9jYWxTdG9yYWdlKCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBpZiAoIXNlY3VyaXR5T3JpZ2luLmVxdWFsKHdpbmRvdy5zZWN1cml0eU9yaWdpbigpKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgd2luZG93cy5hcHBlbmQod2luZG93KTsKKyAgICBk
aXNwYXRjaFN0b3JhZ2VFdmVudHM8U3RvcmFnZVR5cGU6OkxvY2FsPihrZXksIG9sZFZhbHVlLCBu
ZXdWYWx1ZSwgc2VjdXJpdHlPcmlnaW4sIHVybCwgaXNTb3VyY2VTdG9yYWdlLCBbJl0oYXV0byog
cGFnZSkgeworICAgICAgICByZXR1cm4gcGFnZSAmJiBwYWdlc0luR3JvdXAuY29udGFpbnMoKnBh
Z2UpOwogICAgIH0pOwotCi0gICAgZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudHNUb1dpbmRvd3Mo
cGFnZUdyb3VwLCB3aW5kb3dzLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsLCBzZWN1cml0
eU9yaWdpbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452889</attachid>
            <date>2022-02-22 11:54:52 -0800</date>
            <delta_ts>2022-02-22 12:07:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237040-20220222115451.patch</filename>
            <type>text/plain</type>
            <size>37625</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzZWI5NDVmM2JjZWU0
ZDQyZDk2OGJkMjJlMDY2NzBjNTMzNmVhNC4uMjM5MjNlMTJiOTA2MGZjNWFmM2U1NzQxYTVjZDc2
MGNkZDhlNjg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAyLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cygpIGFuZCBkaXNwYXRjaExvY2FsU3Rv
cmFnZUV2ZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzcwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwYXRjaFN0b3JhZ2VFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnRzVG9XaW5k
b3dzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZl
bnRzVG9XaW5kb3dzKTogRGVsZXRlZC4KKworMjAyMi0wMi0yMiAgTmlrb2xhcyBaaW1tZXJtYW5u
ICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KKworICAgICAgICBbTEJTRV0gUmVuYW1lIFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIgLT4gTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MDIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9iIEJ1aXMuCisKKyAgICAgICAgRm9s
bG93aW5nIHRoZSBlc3RhYmxpc2hlZCBwcm9jZWR1cmU6IHJlbmFtZSBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyIC0+IExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
CisgICAgICAgIEluIGEgZm9sbG93LXVwIHBhdGNoIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIgd2lsbCBiZSByZWludHJvZHVjZWQgZm9yIExCU0UsIGluaGVyaXRpbmcgZnJvbQorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIgaW5zdGVhZCBvZiBMZWdhY3lSZW5kZXJTVkdDb250YWlu
ZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJl
aGF2aW91ci4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzTGVnYWN5U1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omlz
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9MZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyOjpMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmNhbGN1
bGF0ZUxvY2FsVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXI6OmdyYXBoaWNzRWxlbWVudCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuaC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdDb250YWluZXJMYXlvdXQuY3Bw
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0Ojp0cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKwogMjAyMi0wMi0yMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gU3dpdGNoIG1lZGlhIHBs
YXllciB0byBwbGF5YmluMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBjYWM0ZGRlY2FkZjI0MTU4ZmYxNDlh
NDAxOWRhZWUyOWVmNjc1MTczLi5lZjYzYjU0MmNjYmYxOTBjYmI1MWUxYzQ1ZjVlOWE4MjM2MzVk
Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjQ4MSw2ICsyNDgxLDcgQEAgcmVuZGVyaW5nL3N2Zy9M
ZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKIHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVy
U1ZHUmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKIHJlbmRl
cmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwCityZW5kZXJpbmcvc3ZnL0xlZ2FjeVJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0Jsb2NrLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0VsbGlwc2UuY3BwCkBAIC0yNTEwLDcgKzI1MTEsNiBAQCByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5j
cHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dFBhdGguY3BwCi1yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAog
cmVuZGVyaW5nL3N2Zy9TVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcAogcmVuZGVyaW5nL3N2
Zy9TVkdDb250YWluZXJMYXlvdXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhmY2JiMDc3Yjc1MTI2OTM2NmIyNGZjNzVm
YTRlMTg5ZDE0NzYxZC4uYmMzNmZjZmEwMTEwZDFlODEyYTQ1NjE0ZGMxZGU2ZDUzMTE0Y2MzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTI2Myw3ICsxMjYzLDcgQEAKIAkJNDM2NzA4RTMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJl
bmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4QTQxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jl
c291cmNlU29saWRDb2xvci5oICovOyB9OwogCQk0MzY3MDhFNTEyRDlDQTRCMDAwNDQyMzQgLyog
TGVnYWN5UmVuZGVyU1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDM2NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Jv
b3QuaCAqLzsgfTsKIAkJNDM2NzA4RTUxMkQ5REI0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jvb3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEE2
MTJEOURCNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSb290LmggKi87IH07Ci0JCTQzNjcwOEU5MTJE
OUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDhBQTEyRDlDQTRC
MDAwNDQyMzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovOyB9OworCQk0
MzY3MDhFOTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNv
bnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDM2NzA4QUExMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RUIxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MzY3MDhBQzEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtl
ckRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQz
NjcwOEFGMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRhLmggKi87IH07CiAJCTQzNjcw
OEYyMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZW5kZXJTdXBwb3J0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDhCMzEyRDlDQTRCMDAwNDQyMzQg
LyogU1ZHUmVuZGVyU3VwcG9ydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC05MDkxLDggKzkwOTEsOCBAQAogCQk0MzY3MDhBNTEyRDlDQTVDMDAw
NDQyMzQgLyogUmVuZGVyU1ZHUm9vdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW5kZXJTVkdSb290LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDM2NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHUm9vdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MzY3MDhBNjEyRDlEQjRCMDAwNDQyMzQgLyogUmVuZGVy
U1ZHUm9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSb290
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzNjcwOEE5MTJEOUNBNEIwMDA0NDIz
NCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MzY3MDhBQTEyRDlDQTRCMDAwNDQyMzQg
LyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzNjcwOEE5MTJEOUNBNEIwMDA0NDIzNCAvKiBMZWdhY3lS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzY3MDhBQTEyRDlDQTRCMDAwNDQyMzQg
LyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNjcwOEFCMTJEOUNBNEIwMDA0NDIz
NCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNjcwOEFDMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MzY3MDhBRjEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdNYXJrZXJEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xOTA1Nyw2ICsxOTA1Nyw4IEBACiAJCQkJQTEwQkI1ODgxNDg0RTNCMzAw
QjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlLmNwcCAqLywKIAkJCQlBMTBCQjU4OTE0ODRF
M0IzMDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGUuaCAqLywKIAkJCQlDREY3NDdGNjI3
MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8sCisJCQkJ
NDM2NzA4QTkxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuY3BwICovLAorCQkJCTQzNjcwOEFBMTJEOUNBNEIwMDA0NDIzNCAvKiBMZWdhY3lS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggKi8sCiAJCQkJNDM2NzA4ODExMkQ5Q0E0
QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0Jsb2NrLmNwcCAqLywKIAkJCQk0MzY3MDg4MjEyRDlDQTRB
MDAwNDQyMzQgLyogUmVuZGVyU1ZHQmxvY2suaCAqLywKIAkJCQlDREY3NDdFQTI3MEY2RDg4MDA4
RkVFRUMgLyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVzLmggKi8sCkBAIC0xOTEyNCw4ICsxOTEyNiw2
IEBACiAJCQkJMDg1NEIwMDcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHQuaCAqLywK
IAkJCQkwODU0QjAwODEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguY3BwICov
LAogCQkJCTA4NTRCMDA5MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0UGF0aC5oICov
LAotCQkJCTQzNjcwOEE5MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyLmNwcCAqLywKLQkJCQk0MzY3MDhBQTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovLAogCQkJCTA4NTRCMDBCMTI1NUU0RTYwMEI5
Q0REMCAvKiBSZW5kZXJTVkdUU3Bhbi5oICovLAogCQkJCTQzNjcwOEFCMTJEOUNBNEIwMDA0NDIz
NCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAgKi8sCiAJCQkJNDM2NzA4QUMxMkQ5
Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggKi8sCkBAIC0zNjEz
Myw2ICszNjEzMyw3IEBACiAJCQkJNDM2NzA4RTUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJl
bmRlclNWR1Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEJCNThCMTQ4NEUzQjMwMEIyRTg3
QSAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNzQ3Rjcy
NzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDM2NzA4RTkxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUxMEExNTVB
MDUwMDBBNDIzNCAvKiBMZWdhY3lSb290SW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogTGVnYWN5U2NoZW1lUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0QzNCMUZBMEYwRTQxNjEwMDk2OTNGNiAvKiBMZWdhY3lUaWxlQ2FjaGUu
aCBpbiBIZWFkZXJzICovLApAQCAtMzY5NzUsNyArMzY5NzYsNiBAQAogCQkJCUNERjc0N0Y3Mjcw
RjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4NTRCMDE5MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwODU0QjAxQjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGgu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQzNjcwOEU5MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxRDEy
NTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNwYW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQz
NjcwOEVCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThERjRBRUIwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxl
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApp
bmRleCBkMGY0Y2VjNGJhZGM1MmE2ZTc0YTBmYzgxYjc4MGYyZDI1M2FiZjY5Li5mMGVlYWFlYzk4
NGQ4M2I2YWQ2ZDE5YWVlOTY1OWUzYjM2M2Y0ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC0zMzAsNyArMzMwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1NWR1Jvb3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc1NWR0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzTGVnYWN5U1ZHQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMZWdhY3lTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdWaWV3
cG9ydENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzU1ZHR3JhZGllbnRTdG9wKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNTVkdIaWRkZW5Db250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250
YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdD
b250YWluZXIuY3BwCmluZGV4IGIyNjEyMjNlMzU4MTA2M2MzODc3NmQyNmI1M2I0OWQ2MzIxMjhl
YTYuLjkzZWY5MzExMmZlYzUyMGU1ODQzOGYxN2M4ODdhN2JkYjQxMjRjNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR0NvbnRh
aW5lci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBMZWdhY3lSZW5kZXJTVkdDb250YWluZXI6
OmxheW91dCgpCiAgICAgLy8gQWxsb3cgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgdG8gdXBk
YXRlIGl0cyB2aWV3cG9ydC4KICAgICBjYWxjVmlld3BvcnQoKTsKIAotICAgIC8vIEFsbG93IFJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIgdG8gdXBkYXRlIGl0cyB0cmFuc2Zvcm0uCisg
ICAgLy8gQWxsb3cgTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciB0byB1cGRh
dGUgaXRzIHRyYW5zZm9ybS4KICAgICBib29sIHVwZGF0ZWRUcmFuc2Zvcm0gPSBjYWxjdWxhdGVM
b2NhbFRyYW5zZm9ybSgpOwogCiAgICAgLy8gUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgbmVl
ZHMgdG8gc2V0IHRoZSAnbGF5b3V0IHNpemUgY2hhbmdlZCcgZmxhZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oCmlu
ZGV4IGJiZjc3ZDg5NjJkNjhjODM5YjZiYzRhMjMzNjM5YjI4OGYwM2UwODguLmE3YWU4NTllYmY3
ZmNlMDc4ZjUxZDVhM2VlZTY2NjdhZDNjMTBlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaApAQCAtNTYsNyAr
NTYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBh
cmVudCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKLSAgICAvLyBBbGxvdyBSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyIHRvIGhvb2sgaW4gYXQgdGhlIHJpZ2h0IHRpbWUgaW4gbGF5
b3V0KCkKKyAgICAvLyBBbGxvdyBMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
IHRvIGhvb2sgaW4gYXQgdGhlIHJpZ2h0IHRpbWUgaW4gbGF5b3V0KCkKICAgICB2aXJ0dWFsIGJv
b2wgY2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8g
QWxsb3cgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgdG8gaG9vayBpbiBhdCB0aGUgcmlnaHQg
dGltZXMgaW4gbGF5b3V0KCksIHBhaW50KCkgYW5kIG5vZGVBdEZsb2F0UG9pbnQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFiNGQwNGRm
Yzk1ZTE0OGE3OTM0YjU1YWU3NmVlMDkwZTVhYmM3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGVn
YWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgorCisjaW5jbHVkZSAiU1ZHRWxl
bWVudFR5cGVIZWxwZXJzLmgiCisjaW5jbHVkZSAiU1ZHR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdHcmFwaGljc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lcik7CisKK0xlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OkxlZ2FjeVJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIoU1ZHR3JhcGhpY3NFbGVtZW50JiBlbGVtZW50
LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQorICAgIDogTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyKGVs
ZW1lbnQsIFdURk1vdmUoc3R5bGUpKQorICAgICwgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSh0cnVl
KQorICAgICwgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoZmFsc2UpCit7Cit9CisKK2Jvb2wg
TGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6Y2FsY3VsYXRlTG9jYWxUcmFu
c2Zvcm0oKQoreworICAgIFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCA9IGdyYXBoaWNzRWxl
bWVudCgpOworCisgICAgLy8gSWYgd2UncmUgZWl0aGVyIHRoZSByZW5kZXJlciBmb3IgYSA8dXNl
PiBlbGVtZW50LCBvciBmb3IgYW55IDxnPiBlbGVtZW50IGluc2lkZSB0aGUgc2hhZG93CisgICAg
Ly8gdHJlZSwgdGhhdCB3YXMgY3JlYXRlZCBkdXJpbmcgdGhlIHVzZS9zeW1ib2wvc3ZnIGV4cGFu
c2lvbiBpbiBTVkdVc2VFbGVtZW50LiBUaGVzZSBjb250YWluZXJzCisgICAgLy8gbmVlZCB0byBy
ZXNwZWN0IHRoZSB0cmFuc2xhdGlvbnMgaW5kdWNlZCBieSB0aGVpciBjb3JyZXNwb25kaW5nIHVz
ZSBlbGVtZW50cyB4L3kgYXR0cmlidXRlcy4KKyAgICBTVkdVc2VFbGVtZW50KiB1c2VFbGVtZW50
ID0gbnVsbHB0cjsKKyAgICBpZiAoaXM8U1ZHVXNlRWxlbWVudD4oZWxlbWVudCkpCisgICAgICAg
IHVzZUVsZW1lbnQgPSAmZG93bmNhc3Q8U1ZHVXNlRWxlbWVudD4oZWxlbWVudCk7CisgICAgZWxz
ZSBpZiAoZWxlbWVudC5pc0luU2hhZG93VHJlZSgpICYmIGlzPFNWR0dFbGVtZW50PihlbGVtZW50
KSkgeworICAgICAgICBTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxlbWVudCA9IGVsZW1lbnQu
Y29ycmVzcG9uZGluZ0VsZW1lbnQoKTsKKyAgICAgICAgaWYgKGlzPFNWR1VzZUVsZW1lbnQ+KGNv
cnJlc3BvbmRpbmdFbGVtZW50KSkKKyAgICAgICAgICAgIHVzZUVsZW1lbnQgPSBkb3duY2FzdDxT
VkdVc2VFbGVtZW50Pihjb3JyZXNwb25kaW5nRWxlbWVudCk7CisgICAgfQorCisgICAgaWYgKHVz
ZUVsZW1lbnQpIHsKKyAgICAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KHVzZUVs
ZW1lbnQpOworICAgICAgICBGbG9hdFNpemUgdHJhbnNsYXRpb24odXNlRWxlbWVudC0+eCgpLnZh
bHVlKGxlbmd0aENvbnRleHQpLCB1c2VFbGVtZW50LT55KCkudmFsdWUobGVuZ3RoQ29udGV4dCkp
OworICAgICAgICBpZiAodHJhbnNsYXRpb24gIT0gbV9sYXN0VHJhbnNsYXRpb24pCisgICAgICAg
ICAgICBtX25lZWRzVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsKKyAgICAgICAgbV9sYXN0VHJhbnNs
YXRpb24gPSB0cmFuc2xhdGlvbjsKKyAgICB9CisKKyAgICBtX2RpZFRyYW5zZm9ybVRvUm9vdFVw
ZGF0ZSA9IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6dHJhbnNm
b3JtVG9Sb290Q2hhbmdlZChwYXJlbnQoKSk7CisgICAgaWYgKCFtX25lZWRzVHJhbnNmb3JtVXBk
YXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2xvY2FsVHJhbnNmb3JtID0gZWxl
bWVudC5hbmltYXRlZExvY2FsVHJhbnNmb3JtKCk7CisgICAgbV9sb2NhbFRyYW5zZm9ybS50cmFu
c2xhdGUobV9sYXN0VHJhbnNsYXRpb24pOworICAgIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSBm
YWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU1ZHR3JhcGhpY3NFbGVtZW50JiBMZWdhY3lS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpncmFwaGljc0VsZW1lbnQoKQoreworICAg
IHJldHVybiBkb3duY2FzdDxTVkdHcmFwaGljc0VsZW1lbnQ+KExlZ2FjeVJlbmRlclNWR0NvbnRh
aW5lcjo6ZWxlbWVudCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MGNlZmY0ZWQxNDQzZDk3OTEwMTNhOWIzMjRjMTRmYWM1NmQ4
YWIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdh
Y3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkxlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitjbGFzcyBTVkdHcmFwaGljc0VsZW1lbnQ7CisKK2NsYXNzIExlZ2FjeVJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXIgZmluYWwgOiBwdWJsaWMgTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVy
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIpOworcHVibGljOgorICAgIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIoU1ZHR3JhcGhpY3NFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CisKKyAgICBib29s
IGlzTGVnYWN5U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFu
c2Zvcm0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CisgICAg
dm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIG92ZXJyaWRlIHsgbV9uZWVkc1RyYW5zZm9y
bVVwZGF0ZSA9IHRydWU7IH0KKyAgICBib29sIGRpZFRyYW5zZm9ybVRvUm9vdFVwZGF0ZSgpIG92
ZXJyaWRlIHsgcmV0dXJuIG1fZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlOyB9CisKK3ByaXZhdGU6
CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50JiBncmFwaGljc0VsZW1lbnQoKTsKKworICAgIHZvaWQg
ZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOworICAgIGJvb2wgY2FsY3VsYXRlTG9jYWxUcmFuc2Zv
cm0oKSBvdmVycmlkZTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CisKKyAgICBib29sIG1fbmVl
ZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOworICAgIGJvb2wgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRh
dGUgOiAxOworICAgIEFmZmluZVRyYW5zZm9ybSBtX2xvY2FsVHJhbnNmb3JtOworICAgIEZsb2F0
U2l6ZSBtX2xhc3RUcmFuc2xhdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19SRU5ERVJfT0JKRUNUKExlZ2FjeVJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXIsIGlzTGVnYWN5U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGUxODg3ZDQ5ZDkyYThmOTUwMDdhMmE1NDRkNTYwNzc1NDliNDkxNTkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUsIEluYy4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCIKLQotI2luY2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVscGVy
cy5oIgotI2luY2x1ZGUgIlNWR0dFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIpOwotCi1SZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKFNW
R0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKLSAgICA6IExl
Z2FjeVJlbmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLSAgICAsIG1f
bmVlZHNUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKLSAgICAsIG1fZGlkVHJhbnNmb3JtVG9Sb290VXBk
YXRlKGZhbHNlKQotewotfQotCi1ib29sIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6
OmNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkKLXsKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQmIGVs
ZW1lbnQgPSBncmFwaGljc0VsZW1lbnQoKTsKLQotICAgIC8vIElmIHdlJ3JlIGVpdGhlciB0aGUg
cmVuZGVyZXIgZm9yIGEgPHVzZT4gZWxlbWVudCwgb3IgZm9yIGFueSA8Zz4gZWxlbWVudCBpbnNp
ZGUgdGhlIHNoYWRvdwotICAgIC8vIHRyZWUsIHRoYXQgd2FzIGNyZWF0ZWQgZHVyaW5nIHRoZSB1
c2Uvc3ltYm9sL3N2ZyBleHBhbnNpb24gaW4gU1ZHVXNlRWxlbWVudC4gVGhlc2UgY29udGFpbmVy
cwotICAgIC8vIG5lZWQgdG8gcmVzcGVjdCB0aGUgdHJhbnNsYXRpb25zIGluZHVjZWQgYnkgdGhl
aXIgY29ycmVzcG9uZGluZyB1c2UgZWxlbWVudHMgeC95IGF0dHJpYnV0ZXMuCi0gICAgU1ZHVXNl
RWxlbWVudCogdXNlRWxlbWVudCA9IG51bGxwdHI7Ci0gICAgaWYgKGlzPFNWR1VzZUVsZW1lbnQ+
KGVsZW1lbnQpKQotICAgICAgICB1c2VFbGVtZW50ID0gJmRvd25jYXN0PFNWR1VzZUVsZW1lbnQ+
KGVsZW1lbnQpOwotICAgIGVsc2UgaWYgKGVsZW1lbnQuaXNJblNoYWRvd1RyZWUoKSAmJiBpczxT
VkdHRWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgU1ZHRWxlbWVudCogY29ycmVzcG9uZGlu
Z0VsZW1lbnQgPSBlbGVtZW50LmNvcnJlc3BvbmRpbmdFbGVtZW50KCk7Ci0gICAgICAgIGlmIChp
czxTVkdVc2VFbGVtZW50Pihjb3JyZXNwb25kaW5nRWxlbWVudCkpCi0gICAgICAgICAgICB1c2VF
bGVtZW50ID0gZG93bmNhc3Q8U1ZHVXNlRWxlbWVudD4oY29ycmVzcG9uZGluZ0VsZW1lbnQpOwot
ICAgIH0KLQotICAgIGlmICh1c2VFbGVtZW50KSB7Ci0gICAgICAgIFNWR0xlbmd0aENvbnRleHQg
bGVuZ3RoQ29udGV4dCh1c2VFbGVtZW50KTsKLSAgICAgICAgRmxvYXRTaXplIHRyYW5zbGF0aW9u
KHVzZUVsZW1lbnQtPngoKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgdXNlRWxlbWVudC0+eSgpLnZh
bHVlKGxlbmd0aENvbnRleHQpKTsKLSAgICAgICAgaWYgKHRyYW5zbGF0aW9uICE9IG1fbGFzdFRy
YW5zbGF0aW9uKQotICAgICAgICAgICAgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7Ci0g
ICAgICAgIG1fbGFzdFRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb247Ci0gICAgfQotCi0gICAgbV9k
aWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUgPSBtX25lZWRzVHJhbnNmb3JtVXBkYXRlIHx8IFNWR1Jl
bmRlclN1cHBvcnQ6OnRyYW5zZm9ybVRvUm9vdENoYW5nZWQocGFyZW50KCkpOwotICAgIGlmICgh
bV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9s
b2NhbFRyYW5zZm9ybSA9IGVsZW1lbnQuYW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpOwotICAgIG1f
bG9jYWxUcmFuc2Zvcm0udHJhbnNsYXRlKG1fbGFzdFRyYW5zbGF0aW9uKTsKLSAgICBtX25lZWRz
VHJhbnNmb3JtVXBkYXRlID0gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVNWR0dyYXBo
aWNzRWxlbWVudCYgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6Z3JhcGhpY3NFbGVt
ZW50KCkKLXsKLSAgICByZXR1cm4gZG93bmNhc3Q8U1ZHR3JhcGhpY3NFbGVtZW50PihMZWdhY3lS
ZW5kZXJTVkdDb250YWluZXI6OmVsZW1lbnQoKSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29u
dGFpbmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiOWFlYTllYzI3NmVhYWQ1
Njc3OGE5NTBiZDk1MTUwYjJhZWQ0YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
TGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAK
LWNsYXNzIFNWR0dyYXBoaWNzRWxlbWVudDsKLQotY2xhc3MgUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lciBmaW5hbCA6IHB1YmxpYyBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIgewotICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcik7
Ci1wdWJsaWM6Ci0gICAgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcihTVkdHcmFwaGlj
c0VsZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKLQotICAgIGJvb2wgaXNTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KLSAgICB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBk
YXRlKCkgb3ZlcnJpZGUgeyBtX25lZWRzVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQotICAgIGJv
b2wgZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9kaWRUcmFu
c2Zvcm1Ub1Jvb3RVcGRhdGU7IH0KLQotcHJpdmF0ZToKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQm
IGdyYXBoaWNzRWxlbWVudCgpOwotCi0gICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7
Ci0gICAgYm9vbCBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpIG92ZXJyaWRlOwotICAgIEFmZmlu
ZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbG9j
YWxUcmFuc2Zvcm07IH0KLQotICAgIGJvb2wgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA6IDE7Ci0g
ICAgYm9vbCBtX2RpZFRyYW5zZm9ybVRvUm9vdFVwZGF0ZSA6IDE7Ci0gICAgQWZmaW5lVHJhbnNm
b3JtIG1fbG9jYWxUcmFuc2Zvcm07Ci0gICAgRmxvYXRTaXplIG1fbGFzdFRyYW5zbGF0aW9uOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1JF
TkRFUl9PQkpFQ1QoUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciwgaXNTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmgKaW5kZXggZmM3MTM4ODg3YzkyZDI4
Yjk0ZWFlOTk1OTdmNjU1Zjk0MjY0ZDQ5NS4uM2VlM2JjMTQ2OWQ0ZjQyZWJhODhmNDc1OTQ1ZTc4
NGVjZmUzYWFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaApAQCAtMjcsNyArMjcsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBUaGlzIGlzIHVzZWQgZm9yIG5vbi1yb290IDxzdmc+IGVsZW1l
bnRzIGFuZCA8bWFya2VyPiBlbGVtZW50cywgbmVpdGhlciBvZiB3aGljaCBhcmUgU1ZHVHJhbnNm
b3JtYWJsZQotLy8gdGh1cyB3ZSBpbmhlcml0IGZyb20gTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVy
IGluc3RlYWQgb2YgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcgorLy8gdGh1cyB3ZSBp
bmhlcml0IGZyb20gTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyIGluc3RlYWQgb2YgTGVnYWN5UmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcgogY2xhc3MgUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIgZmluYWwgOiBwdWJsaWMgTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKTsKIHB1YmxpYzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHQ29udGFpbmVyTGF5
b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHQ29udGFpbmVyTGF5b3V0
LmNwcAppbmRleCBjNTNiM2ZjMzY2MmRhZjZiMGU5ZDU5ODA1NDQ4NmVjOGQ0NGYyMmMyLi5iNTM0
YjA4YzU0YTQxNDBhOWU2MmI3ZjNlYmY1Y2Q1NzM0NzA4YWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0NvbnRhaW5lckxheW91dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdDb250YWluZXJMYXlvdXQuY3BwCkBAIC0zOSw3ICsz
OSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1No
YXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dC5oIgotI2luY2x1ZGUgIlJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKICNpbmNsdWRlICJTVkdSZW5k
ZXJpbmdDb250ZXh0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0LmNwcAppbmRleCAyMDlkNGRmOWQwNmRhNTE5ODFhZWU0YThlNjVmMjA2MDdl
NDZhMzg5Li5jYzM4ZWM3MDMwZTYwY2UxNzU5YjEzMjg3ZGUyNWY3M2Q1NjVjODU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdT
aGFwZS5oIgorI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
aCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJDaGlsZEl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgpAQCAtNDQsNyArNDUsNiBAQAog
I2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdTaGFwZS5oIgog
I2luY2x1ZGUgIlJlbmRlclNWR1RleHQuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCIK
ICNpbmNsdWRlICJTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIKICNpbmNsdWRlICJTVkdHZW9tZXRy
eUVsZW1lbnQuaCIKQEAgLTIyNCw4ICsyMjQsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbGF5b3V0
U2l6ZU9mTmVhcmVzdFZpZXdwb3J0Q2hhbmdlZChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZQog
Ym9vbCBTVkdSZW5kZXJTdXBwb3J0Ojp0cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKFJlbmRlckVsZW1l
bnQqIGFuY2VzdG9yKQogewogICAgIHdoaWxlIChhbmNlc3RvciAmJiAhYW5jZXN0b3ItPmlzU1ZH
Um9vdE9yTGVnYWN5U1ZHUm9vdCgpKSB7Ci0gICAgICAgIGlmIChpczxSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyPigqYW5jZXN0b3IpKQotICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCphbmNlc3RvcikuZGlkVHJhbnNmb3Jt
VG9Sb290VXBkYXRlKCk7CisgICAgICAgIGlmIChpczxMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyPigqYW5jZXN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PExl
Z2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCphbmNlc3RvcikuZGlkVHJhbnNm
b3JtVG9Sb290VXBkYXRlKCk7CiAgICAgICAgIGlmIChpczxSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lcj4oKmFuY2VzdG9yKSkKICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJTVkdW
aWV3cG9ydENvbnRhaW5lcj4oKmFuY2VzdG9yKS5kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoKTsK
ICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBhYjRkZTY5Y2Fi
Mjg4MTQ5N2Y5ZGU0MjBkNjM2Njc0YTRjZDJmMzliLi5lNjhiY2ZmODE3MTY0ZTYxMjIxMWYxNThm
MWU1MmY1M2U0ZGU0NzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VFdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUV2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTQwLDY4ICs0MCw0OCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyB2b2lkIGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHNUb1dpbmRv
d3MoUGFnZSYgcGFnZSwgY29uc3QgVmVjdG9yPFJlZjxET01XaW5kb3c+PiYgd2luZG93cywgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4pCi17Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0
b3JhZ2VFdmVudChwYWdlLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgU3RvcmFnZVR5cGU6OlNl
c3Npb24sIHNlY3VyaXR5T3JpZ2luKTsKLQotICAgIGZvciAoYXV0byYgd2luZG93IDogd2luZG93
cykgewotICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7Ci0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gd2luZG93LT5zZXNzaW9uU3RvcmFnZSgpOwotICAgICAgICBpZiAo
IXJlc3VsdC5oYXNFeGNlcHRpb24oKSkgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2Uvd2Vic3RvcmFnZS5odG1sI3RoZS1zdG9yYWdlLWV2ZW50OmV2ZW50LXN0b3JhZ2UK
LSAgICAgICAgICAgIGRvY3VtZW50LT5xdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnRPbldpbmRvdyhU
YXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmwsIHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgZGlzcGF0Y2hM
b2NhbFN0b3JhZ2VFdmVudHNUb1dpbmRvd3MoUGFnZUdyb3VwJiBwYWdlR3JvdXAsIGNvbnN0IFZl
Y3RvcjxSZWY8RE9NV2luZG93Pj4mIHdpbmRvd3MsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKQotewotICAgIGZvciAoYXV0
byYgcGFnZSA6IHBhZ2VHcm91cC5wYWdlcygpKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KHBhZ2UsIGtleSwgb2xkVmFsdWUsIG5l
d1ZhbHVlLCBTdG9yYWdlVHlwZTo6TG9jYWwsIHNlY3VyaXR5T3JpZ2luKTsKLQotICAgIGZvciAo
YXV0byYgd2luZG93IDogd2luZG93cykgewotICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3aW5k
b3ctPmRvY3VtZW50KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gd2luZG93LT5sb2NhbFN0b3Jh
Z2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIC8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYnN0b3JhZ2UuaHRtbCN0aGUtc3RvcmFnZS1l
dmVudDpldmVudC1zdG9yYWdlCi0gICAgICAgICAgICBkb2N1bWVudC0+cXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50T25XaW5kb3coVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBTdG9yYWdlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdW
YWx1ZSwgdXJsLCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKLSAgICB9Ci19Ci0KLXZv
aWQgU3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyhj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBu
ZXdWYWx1ZSwgUGFnZSYgcGFnZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChTdG9yYWdlJik+JiBpc1Nv
dXJjZVN0b3JhZ2UpCit0ZW1wbGF0ZTxTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZT4KK3N0YXRpYyB2
b2lkIGRpc3BhdGNoU3RvcmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChT
dG9yYWdlJik+JiBpc1NvdXJjZVN0b3JhZ2UsIGNvbnN0IEZ1bmN0aW9uPGJvb2woUGFnZSopPiYg
aXNSZWxldmFudFBhZ2UpCiB7CiAgICAgVmVjdG9yPFJlZjxET01XaW5kb3c+PiB3aW5kb3dzOwog
ICAgIERPTVdpbmRvdzo6Zm9yRWFjaFdpbmRvd0ludGVyZXN0ZWRJblN0b3JhZ2VFdmVudHMoWyZd
KGF1dG8mIHdpbmRvdykgewotICAgICAgICBpZiAoIXdpbmRvdy5vcHRpb25hbFNlc3Npb25TdG9y
YWdlKCkpCisgICAgICAgIGF1dG8gc3RvcmFnZSA9IGlzTG9jYWxTdG9yYWdlKHN0b3JhZ2VUeXBl
KSA/IHdpbmRvdy5vcHRpb25hbExvY2FsU3RvcmFnZSgpIDogd2luZG93Lm9wdGlvbmFsU2Vzc2lv
blN0b3JhZ2UoKTsKKyAgICAgICAgaWYgKCFzdG9yYWdlKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAvLyBTZW5kIGV2ZW50cyBvbmx5IHRvIG91ciBwYWdlLgotICAgICAgICBpZiAod2lu
ZG93LnBhZ2UoKSAhPSAmcGFnZSkKKyAgICAgICAgaWYgKCFpc1JlbGV2YW50UGFnZSh3aW5kb3cu
cGFnZSgpKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGlzU291cmNlU3RvcmFn
ZSgqd2luZG93Lm9wdGlvbmFsU2Vzc2lvblN0b3JhZ2UoKSkpCisgICAgICAgIGlmIChpc1NvdXJj
ZVN0b3JhZ2UoKnN0b3JhZ2UpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIXNl
Y3VyaXR5T3JpZ2luLmVxdWFsKHdpbmRvdy5zZWN1cml0eU9yaWdpbigpKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgd2luZG93cy5hcHBlbmQod2luZG93KTsKICAgICB9KTsKIAotICAg
IGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHNUb1dpbmRvd3MocGFnZSwgd2luZG93cywga2V5
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybCwgc2VjdXJpdHlPcmlnaW4pOworICAgIGZvciAoYXV0
byYgd2luZG93IDogd2luZG93cykgeworICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3aW5kb3ct
PmRvY3VtZW50KCk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gaXNMb2NhbFN0b3JhZ2Uoc3RvcmFn
ZVR5cGUpID8gd2luZG93LT5sb2NhbFN0b3JhZ2UoKSA6IHdpbmRvdy0+c2Vzc2lvblN0b3JhZ2Uo
KTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIC8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYnN0b3JhZ2UuaHRtbCN0aGUtc3RvcmFnZS1ldmVu
dDpldmVudC1zdG9yYWdlCisgICAgICAgICAgICBkb2N1bWVudC0+cXVldWVUYXNrVG9EaXNwYXRj
aEV2ZW50T25XaW5kb3coVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBTdG9yYWdlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1
ZSwgdXJsLCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICB9Cit9CisKK3ZvaWQg
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyhjb25z
dCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdW
YWx1ZSwgUGFnZSYgcGFnZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChTdG9yYWdlJik+JiBpc1NvdXJj
ZVN0b3JhZ2UpCit7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERP
TVN0b3JhZ2VFdmVudCgqcGFnZSwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHN0b3JhZ2VUeXBl
LCBzZWN1cml0eU9yaWdpbik7CisgICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnRzPFN0b3JhZ2VUeXBl
OjpTZXNzaW9uPihrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc2VjdXJpdHlPcmlnaW4sIHVybCwg
aXNTb3VyY2VTdG9yYWdlLCBbJl0oYXV0byogd2luZG93UGFnZSkgeworICAgICAgICByZXR1cm4g
d2luZG93UGFnZSA9PSAmcGFnZTsKKyAgICB9KTsKIH0KIAogdm9pZCBTdG9yYWdlRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgUGFnZUdyb3VwJiBw
YWdlR3JvdXAsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IEZ1bmN0aW9uPGJvb2woU3RvcmFnZSYpPiYgaXNTb3VyY2VTdG9yYWdl
KQogewogICAgIGF1dG8mIHBhZ2VzSW5Hcm91cCA9IHBhZ2VHcm91cC5wYWdlcygpOwotICAgIFZl
Y3RvcjxSZWY8RE9NV2luZG93Pj4gd2luZG93czsKLSAgICBET01XaW5kb3c6OmZvckVhY2hXaW5k
b3dJbnRlcmVzdGVkSW5TdG9yYWdlRXZlbnRzKFsmXShhdXRvJiB3aW5kb3cpIHsKLSAgICAgICAg
aWYgKCF3aW5kb3cub3B0aW9uYWxMb2NhbFN0b3JhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFnZSBpbiB0aGUgZ3JvdXAuCi0gICAg
ICAgIGlmICghd2luZG93LnBhZ2UoKSB8fCAhcGFnZXNJbkdyb3VwLmNvbnRhaW5zKCp3aW5kb3cu
cGFnZSgpKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGlzU291cmNlU3RvcmFn
ZSgqd2luZG93Lm9wdGlvbmFsTG9jYWxTdG9yYWdlKCkpKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luLmVxdWFsKHdpbmRvdy5zZWN1cml0eU9yaWdpbigp
KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgd2luZG93cy5hcHBlbmQod2luZG93KTsK
KyAgICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdlc0luR3JvdXApCisgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQocGFnZSwga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIHN0b3JhZ2VUeXBlLCBzZWN1cml0eU9yaWdpbik7CisgICAgZGlzcGF0
Y2hTdG9yYWdlRXZlbnRzPFN0b3JhZ2VUeXBlOjpMb2NhbD4oa2V5LCBvbGRWYWx1ZSwgbmV3VmFs
dWUsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIGlzU291cmNlU3RvcmFnZSwgWyZdKGF1dG8qIHBhZ2Up
IHsKKyAgICAgICAgcmV0dXJuIHBhZ2UgJiYgcGFnZXNJbkdyb3VwLmNvbnRhaW5zKCpwYWdlKTsK
ICAgICB9KTsKLQotICAgIGRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnRzVG9XaW5kb3dzKHBhZ2VH
cm91cCwgd2luZG93cywga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybCwgc2VjdXJpdHlPcmln
aW4pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50
LmNwcAppbmRleCAxODA1M2I4NWJlMDk2MWUyZWM0M2I1ZTkxNmEyNmYwYzRjMWQzYmU1Li5jNGVj
NjA4MjYyZWIzNDVjNmY5MWI0ZDdjM2E2MTM0MmRmMTEwZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
RWxlbWVudC5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIktleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Rl
eHQuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIKQEAgLTExMCw3ICsxMTAsNyBAQCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmIHN0eWxlLAogewogICAgIGlmIChpczxTVkdFbGVtZW50PihwYXJlbnRO
b2RlKCkpICYmIGRvd25jYXN0PFNWR0VsZW1lbnQ+KCpwYXJlbnROb2RlKCkpLmlzVGV4dENvbnRl
bnQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRo
aXMsIFdURk1vdmUoc3R5bGUpKTsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKKyAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8TGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4o
KnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBTVkdBRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAppbmRl
eCBkZGMxNzk5ZWJhNmU3ZTliYTg5NzM3YTg4ZTJkN2FiYjNhMjE4MzY1Li40MmNiOWMzYzMzZWUx
M2Q5NzY1OTk4ZmRmYjlhMTVmYTExMDE0YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5j
cHAKQEAgLTIyLDkgKzIyLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdH
RWxlbWVudC5oIgogCisjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oIgogI2luY2x1ZGUg
IlJlbmRlclNWR1Jlc291cmNlLmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNv
bnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTU4LDcgKzU4
LDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwKICAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09
IERpc3BsYXlUeXBlOjpOb25lKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBX
VEZNb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPExlZ2FjeVJlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKIGJv
b2wgU1ZHR0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCmluZGV4IGZiZmFhY2RjNjI0YzI1NWM0
NTM4ZDYyZTczOTBjOTMxMzg4N2M2MzAuLjUxNzVhZjljZmFmZmEyMTMwMWI3MWRhZTZmNTQyMGE0
NGU2OWM2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKQEAgLTIz
LDcgKzIzLDcgQEAKICNpbmNsdWRlICJTVkdTd2l0Y2hFbGVtZW50LmgiCiAKICNpbmNsdWRlICJF
bGVtZW50SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyLmgiCisjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVscGVycy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBTVkdTd2l0Y2hFbGVtZW50
OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogCiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7
Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXI+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPExl
Z2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEZNb3ZlKHN0eWxl
KSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA3NDlmMTlk
YmE4ZDY3ODBiMzFjMmY0OWFmOTlmNDJlY2M2YjU3NGUwLi4wNTQ3Y2NhOWQyNmZiZDBmMzk1OTUz
YWFhNDllZGJhNTIyMjA2NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBA
IC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiTGVnYWN5UmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNl
LmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2luY2x1
ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVs
cGVycy5oIgogI2luY2x1ZGUgIlNWR0dFbGVtZW50LmgiCkBAIC0yNjYsNyArMjY2LDcgQEAgUmVm
UHRyPFNWR0VsZW1lbnQ+IFNWR1VzZUVsZW1lbnQ6OnRhcmdldENsb25lKCkgY29uc3QKIAogUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewotICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigq
dGhpcywgV1RGTW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxMZWdhY3lS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwog
fQogCiBzdGF0aWMgYm9vbCBpc0RpcmVjdFJlZmVyZW5jZShjb25zdCBTVkdFbGVtZW50JiBlbGVt
ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452891</attachid>
            <date>2022-02-22 12:09:49 -0800</date>
            <delta_ts>2022-02-22 16:16:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237040-20220222120948.patch</filename>
            <type>text/plain</type>
            <size>6860</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg2ZDJjNjAyMDNkZGYy
OTFkNzg1N2FkMzZmYjhjOGI5YzRmYjUzZC4uMjM5MjNlMTJiOTA2MGZjNWFmM2U1NzQxYTVjZDc2
MGNkZDhlNjg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cygpIGFuZCBkaXNwYXRjaExvY2FsU3Rv
cmFnZUV2ZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzcwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwYXRjaFN0b3JhZ2VFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnRzVG9XaW5k
b3dzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZl
bnRzVG9XaW5kb3dzKTogRGVsZXRlZC4KKwogMjAyMi0wMi0yMiAgTmlrb2xhcyBaaW1tZXJtYW5u
ICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gUmVuYW1lIFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIgLT4gTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZl
bnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlz
cGF0Y2hlci5jcHAKaW5kZXggYWI0ZGU2OWNhYjI4ODE0OTdmOWRlNDIwZDYzNjY3NGE0Y2QyZjM5
Yi4uYmM0MjQyN2E2YWJhM2VhZDllYzBmNDdjNzg5OGUzZjk5MDg5MDljZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCkBAIC00MCw2
OCArNDAsNDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdm9pZCBkaXNwYXRj
aFNlc3Npb25TdG9yYWdlRXZlbnRzVG9XaW5kb3dzKFBhZ2UmIHBhZ2UsIGNvbnN0IFZlY3RvcjxS
ZWY8RE9NV2luZG93Pj4mIHdpbmRvd3MsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKQotewotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQocGFnZSwga2V5LCBvbGRWYWx1
ZSwgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlOjpTZXNzaW9uLCBzZWN1cml0eU9yaWdpbik7Ci0KLSAg
ICBmb3IgKGF1dG8mIHdpbmRvdyA6IHdpbmRvd3MpIHsKLSAgICAgICAgUmVmUHRyIGRvY3VtZW50
ID0gd2luZG93LT5kb2N1bWVudCgpOwotICAgICAgICBhdXRvIHJlc3VsdCA9IHdpbmRvdy0+c2Vz
c2lvblN0b3JhZ2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIC8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYnN0b3JhZ2UuaHRtbCN0aGUt
c3RvcmFnZS1ldmVudDpldmVudC1zdG9yYWdlCi0gICAgICAgICAgICBkb2N1bWVudC0+cXVldWVU
YXNrVG9EaXNwYXRjaEV2ZW50T25XaW5kb3coVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBT
dG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZh
bHVlLCBuZXdWYWx1ZSwgdXJsLCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKLSAgICB9
Ci19Ci0KLXN0YXRpYyB2b2lkIGRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnRzVG9XaW5kb3dzKFBh
Z2VHcm91cCYgcGFnZUdyb3VwLCBjb25zdCBWZWN0b3I8UmVmPERPTVdpbmRvdz4+JiB3aW5kb3dz
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5n
JiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1
cml0eU9yaWdpbikKLXsKLSAgICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdlR3JvdXAucGFnZXMoKSkK
LSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VF
dmVudChwYWdlLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgU3RvcmFnZVR5cGU6OkxvY2FsLCBz
ZWN1cml0eU9yaWdpbik7Ci0KLSAgICBmb3IgKGF1dG8mIHdpbmRvdyA6IHdpbmRvd3MpIHsKLSAg
ICAgICAgUmVmUHRyIGRvY3VtZW50ID0gd2luZG93LT5kb2N1bWVudCgpOwotICAgICAgICBhdXRv
IHJlc3VsdCA9IHdpbmRvdy0+bG9jYWxTdG9yYWdlKCk7Ci0gICAgICAgIGlmICghcmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93
ZWJzdG9yYWdlLmh0bWwjdGhlLXN0b3JhZ2UtZXZlbnQ6ZXZlbnQtc3RvcmFnZQotICAgICAgICAg
ICAgZG9jdW1lbnQtPnF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2U6
OkRPTU1hbmlwdWxhdGlvbiwgU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3Jh
Z2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybCwgcmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKSk7Ci0gICAgfQotfQotCi12b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRp
c3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFBhZ2UmIHBhZ2UsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IEZ1
bmN0aW9uPGJvb2woU3RvcmFnZSYpPiYgaXNTb3VyY2VTdG9yYWdlKQordGVtcGxhdGU8U3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGU+CitzdGF0aWMgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVudHMoY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IEZ1bmN0aW9uPGJvb2woU3RvcmFnZSYpPiYgaXNTb3VyY2VTdG9yYWdlLCBj
b25zdCBGdW5jdGlvbjxib29sKFBhZ2UqKT4mIGlzUmVsZXZhbnRQYWdlKQogewogICAgIFZlY3Rv
cjxSZWY8RE9NV2luZG93Pj4gd2luZG93czsKICAgICBET01XaW5kb3c6OmZvckVhY2hXaW5kb3dJ
bnRlcmVzdGVkSW5TdG9yYWdlRXZlbnRzKFsmXShhdXRvJiB3aW5kb3cpIHsKLSAgICAgICAgaWYg
KCF3aW5kb3cub3B0aW9uYWxTZXNzaW9uU3RvcmFnZSgpKQorICAgICAgICBhdXRvIHN0b3JhZ2Ug
PSBpc0xvY2FsU3RvcmFnZShzdG9yYWdlVHlwZSkgPyB3aW5kb3cub3B0aW9uYWxMb2NhbFN0b3Jh
Z2UoKSA6IHdpbmRvdy5vcHRpb25hbFNlc3Npb25TdG9yYWdlKCk7CisgICAgICAgIGlmICghc3Rv
cmFnZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgLy8gU2VuZCBldmVudHMgb25seSB0
byBvdXIgcGFnZS4KLSAgICAgICAgaWYgKHdpbmRvdy5wYWdlKCkgIT0gJnBhZ2UpCisgICAgICAg
IGlmICghaXNSZWxldmFudFBhZ2Uod2luZG93LnBhZ2UoKSkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmIChpc1NvdXJjZVN0b3JhZ2UoKndpbmRvdy5vcHRpb25hbFNlc3Npb25TdG9y
YWdlKCkpKQorICAgICAgICBpZiAoaXNTb3VyY2VTdG9yYWdlKCpzdG9yYWdlKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgaWYgKCFzZWN1cml0eU9yaWdpbi5lcXVhbCh3aW5kb3cuc2Vj
dXJpdHlPcmlnaW4oKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHdpbmRvd3MuYXBw
ZW5kKHdpbmRvdyk7CiAgICAgfSk7CiAKLSAgICBkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnRz
VG9XaW5kb3dzKHBhZ2UsIHdpbmRvd3MsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmwsIHNl
Y3VyaXR5T3JpZ2luKTsKKyAgICBmb3IgKGF1dG8mIHdpbmRvdyA6IHdpbmRvd3MpIHsKKyAgICAg
ICAgUmVmUHRyIGRvY3VtZW50ID0gd2luZG93LT5kb2N1bWVudCgpOworICAgICAgICBhdXRvIHJl
c3VsdCA9IGlzTG9jYWxTdG9yYWdlKHN0b3JhZ2VUeXBlKSA/IHdpbmRvdy0+bG9jYWxTdG9yYWdl
KCkgOiB3aW5kb3ctPnNlc3Npb25TdG9yYWdlKCk7CisgICAgICAgIGlmICghcmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJz
dG9yYWdlLmh0bWwjdGhlLXN0b3JhZ2UtZXZlbnQ6ZXZlbnQtc3RvcmFnZQorICAgICAgICAgICAg
ZG9jdW1lbnQtPnF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2U6OkRP
TU1hbmlwdWxhdGlvbiwgU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VF
dmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybCwgcmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKSk7CisgICAgfQorfQorCit2b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3Bh
dGNoU2Vzc2lvblN0b3JhZ2VFdmVudHMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFBhZ2UmIHBhZ2UsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IEZ1bmN0
aW9uPGJvb2woU3RvcmFnZSYpPiYgaXNTb3VyY2VTdG9yYWdlKQoreworICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQocGFnZSwga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlOjpTZXNzaW9uLCBzZWN1cml0eU9yaWdpbik7Cisg
ICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnRzPFN0b3JhZ2VUeXBlOjpTZXNzaW9uPihrZXksIG9sZFZh
bHVlLCBuZXdWYWx1ZSwgc2VjdXJpdHlPcmlnaW4sIHVybCwgaXNTb3VyY2VTdG9yYWdlLCBbJl0o
YXV0byogd2luZG93UGFnZSkgeworICAgICAgICByZXR1cm4gd2luZG93UGFnZSA9PSAmcGFnZTsK
KyAgICB9KTsKIH0KIAogdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaExvY2Fs
U3RvcmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgUGFnZUdyb3VwJiBwYWdlR3JvdXAsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IEZ1bmN0
aW9uPGJvb2woU3RvcmFnZSYpPiYgaXNTb3VyY2VTdG9yYWdlKQogewogICAgIGF1dG8mIHBhZ2Vz
SW5Hcm91cCA9IHBhZ2VHcm91cC5wYWdlcygpOwotICAgIFZlY3RvcjxSZWY8RE9NV2luZG93Pj4g
d2luZG93czsKLSAgICBET01XaW5kb3c6OmZvckVhY2hXaW5kb3dJbnRlcmVzdGVkSW5TdG9yYWdl
RXZlbnRzKFsmXShhdXRvJiB3aW5kb3cpIHsKLSAgICAgICAgaWYgKCF3aW5kb3cub3B0aW9uYWxM
b2NhbFN0b3JhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgLy8gU2VuZCBldmVu
dHMgdG8gZXZlcnkgcGFnZSBpbiB0aGUgZ3JvdXAuCi0gICAgICAgIGlmICghd2luZG93LnBhZ2Uo
KSB8fCAhcGFnZXNJbkdyb3VwLmNvbnRhaW5zKCp3aW5kb3cucGFnZSgpKSkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgaWYgKGlzU291cmNlU3RvcmFnZSgqd2luZG93Lm9wdGlvbmFsTG9j
YWxTdG9yYWdlKCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoIXNlY3VyaXR5
T3JpZ2luLmVxdWFsKHdpbmRvdy5zZWN1cml0eU9yaWdpbigpKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgd2luZG93cy5hcHBlbmQod2luZG93KTsKKyAgICBmb3IgKGF1dG8mIHBhZ2Ug
OiBwYWdlc0luR3JvdXApCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlz
cGF0Y2hET01TdG9yYWdlRXZlbnQocGFnZSwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIFN0b3Jh
Z2VUeXBlOjpMb2NhbCwgc2VjdXJpdHlPcmlnaW4pOworICAgIGRpc3BhdGNoU3RvcmFnZUV2ZW50
czxTdG9yYWdlVHlwZTo6TG9jYWw+KGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzZWN1cml0eU9y
aWdpbiwgdXJsLCBpc1NvdXJjZVN0b3JhZ2UsIFsmXShhdXRvKiBwYWdlKSB7CisgICAgICAgIHJl
dHVybiBwYWdlICYmIHBhZ2VzSW5Hcm91cC5jb250YWlucygqcGFnZSk7CiAgICAgfSk7Ci0KLSAg
ICBkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50c1RvV2luZG93cyhwYWdlR3JvdXAsIHdpbmRvd3Ms
IGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmwsIHNlY3VyaXR5T3JpZ2luKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452911</attachid>
            <date>2022-02-22 16:16:37 -0800</date>
            <delta_ts>2022-02-22 17:35:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237040-20220222161636.patch</filename>
            <type>text/plain</type>
            <size>6832</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGJjZWUxYTYwMzAwYzMz
YzMzMzM1Y2E1N2ZlOTY4ZTQ5Y2MzNGFmNy4uYjljZjcwODRkMTRkYmVmNDU4NzI1NzdlNzkyZDdm
YjYxMzZlNjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cygpIGFuZCBkaXNwYXRjaExvY2FsU3Rv
cmFnZUV2ZW50cygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzcwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwYXRjaFN0b3JhZ2VFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnRzVG9XaW5k
b3dzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZl
bnRzVG9XaW5kb3dzKTogRGVsZXRlZC4KKwogMjAyMi0wMi0yMiAgRnLDqWTDqXJpYyBXYW5nICA8
ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBudWxsIHB0ciBkZXJlZiB2aWEgV2ViWFJTeXN0
ZW06OnJlcXVlc3RTZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBhYjRkZTY5Y2FiMjg4MTQ5N2Y5ZGU0MjBkNjM2Njc0
YTRjZDJmMzliLi4yYzFjNGJhZmQ1NjNjNjdhNTZkNjVmZjk0ZmNiM2JjMDRhZmRlMDU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAK
QEAgLTQwLDY4ICs0MCw0OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lk
IGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHNUb1dpbmRvd3MoUGFnZSYgcGFnZSwgY29uc3Qg
VmVjdG9yPFJlZjxET01XaW5kb3c+PiYgd2luZG93cywgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChwYWdlLCBrZXks
IG9sZFZhbHVlLCBuZXdWYWx1ZSwgU3RvcmFnZVR5cGU6OlNlc3Npb24sIHNlY3VyaXR5T3JpZ2lu
KTsKLQotICAgIGZvciAoYXV0byYgd2luZG93IDogd2luZG93cykgewotICAgICAgICBSZWZQdHIg
ZG9jdW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gd2lu
ZG93LT5zZXNzaW9uU3RvcmFnZSgpOwotICAgICAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRpb24o
KSkgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vic3RvcmFnZS5o
dG1sI3RoZS1zdG9yYWdlLWV2ZW50OmV2ZW50LXN0b3JhZ2UKLSAgICAgICAgICAgIGRvY3VtZW50
LT5xdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnRPbldpbmRvdyhUYXNrU291cmNlOjpET01NYW5pcHVs
YXRpb24sIFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtl
eSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmwsIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkp
OwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudHNUb1dp
bmRvd3MoUGFnZUdyb3VwJiBwYWdlR3JvdXAsIGNvbnN0IFZlY3RvcjxSZWY8RE9NV2luZG93Pj4m
IHdpbmRvd3MsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHNlY3VyaXR5T3JpZ2luKQotewotICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VHcm91cC5w
YWdlcygpKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRE9N
U3RvcmFnZUV2ZW50KHBhZ2UsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZTo6
TG9jYWwsIHNlY3VyaXR5T3JpZ2luKTsKLQotICAgIGZvciAoYXV0byYgd2luZG93IDogd2luZG93
cykgewotICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7Ci0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gd2luZG93LT5sb2NhbFN0b3JhZ2UoKTsKLSAgICAgICAgaWYgKCFy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL3dlYnN0b3JhZ2UuaHRtbCN0aGUtc3RvcmFnZS1ldmVudDpldmVudC1zdG9yYWdlCi0g
ICAgICAgICAgICBkb2N1bWVudC0+cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50T25XaW5kb3coVGFz
a1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsLCByZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpKTsKLSAgICB9Ci19Ci0KLXZvaWQgU3RvcmFnZUV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgUGFnZSYgcGFnZSwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgRnVuY3Rpb248Ym9vbChTdG9yYWdlJik+JiBpc1NvdXJjZVN0b3JhZ2UpCit0ZW1wbGF0
ZTxTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZT4KK3N0YXRpYyB2b2lkIGRpc3BhdGNoU3RvcmFnZUV2
ZW50cyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3Ry
aW5nJiBuZXdWYWx1ZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChTdG9yYWdlJik+JiBpc1NvdXJjZVN0
b3JhZ2UsIGNvbnN0IEZ1bmN0aW9uPGJvb2woUGFnZSYpPiYgaXNSZWxldmFudFBhZ2UpCiB7CiAg
ICAgVmVjdG9yPFJlZjxET01XaW5kb3c+PiB3aW5kb3dzOwogICAgIERPTVdpbmRvdzo6Zm9yRWFj
aFdpbmRvd0ludGVyZXN0ZWRJblN0b3JhZ2VFdmVudHMoWyZdKGF1dG8mIHdpbmRvdykgewotICAg
ICAgICBpZiAoIXdpbmRvdy5vcHRpb25hbFNlc3Npb25TdG9yYWdlKCkpCisgICAgICAgIGF1dG8g
c3RvcmFnZSA9IGlzTG9jYWxTdG9yYWdlKHN0b3JhZ2VUeXBlKSA/IHdpbmRvdy5vcHRpb25hbExv
Y2FsU3RvcmFnZSgpIDogd2luZG93Lm9wdGlvbmFsU2Vzc2lvblN0b3JhZ2UoKTsKKyAgICAgICAg
aWYgKCFzdG9yYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBTZW5kIGV2ZW50
cyBvbmx5IHRvIG91ciBwYWdlLgotICAgICAgICBpZiAod2luZG93LnBhZ2UoKSAhPSAmcGFnZSkK
KyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3aW5kb3cucGFnZSgpOyAhcGFnZSB8fCAhaXNSZWxl
dmFudFBhZ2UoKnBhZ2UpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoaXNTb3Vy
Y2VTdG9yYWdlKCp3aW5kb3cub3B0aW9uYWxTZXNzaW9uU3RvcmFnZSgpKSkKKyAgICAgICAgaWYg
KGlzU291cmNlU3RvcmFnZSgqc3RvcmFnZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGlmICghc2VjdXJpdHlPcmlnaW4uZXF1YWwod2luZG93LnNlY3VyaXR5T3JpZ2luKCkpKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB3aW5kb3dzLmFwcGVuZCh3aW5kb3cpOwogICAgIH0p
OwogCi0gICAgZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50c1RvV2luZG93cyhwYWdlLCB3aW5k
b3dzLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsLCBzZWN1cml0eU9yaWdpbik7CisgICAg
Zm9yIChhdXRvJiB3aW5kb3cgOiB3aW5kb3dzKSB7CisgICAgICAgIFJlZlB0ciBkb2N1bWVudCA9
IHdpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBpc0xvY2FsU3RvcmFn
ZShzdG9yYWdlVHlwZSkgPyB3aW5kb3ctPmxvY2FsU3RvcmFnZSgpIDogd2luZG93LT5zZXNzaW9u
U3RvcmFnZSgpOworICAgICAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSkgLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vic3RvcmFnZS5odG1sI3RoZS1zdG9y
YWdlLWV2ZW50OmV2ZW50LXN0b3JhZ2UKKyAgICAgICAgICAgIGRvY3VtZW50LT5xdWV1ZVRhc2tU
b0Rpc3BhdGNoRXZlbnRPbldpbmRvdyhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFN0b3Jh
Z2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUs
IG5ld1ZhbHVlLCB1cmwsIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOworICAgIH0KK30K
Kwordm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZl
bnRzKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJp
bmcmIG5ld1ZhbHVlLCBQYWdlJiBwYWdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4sIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBGdW5jdGlvbjxib29sKFN0b3JhZ2UmKT4m
IGlzU291cmNlU3RvcmFnZSkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERp
c3BhdGNoRE9NU3RvcmFnZUV2ZW50KHBhZ2UsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBTdG9y
YWdlVHlwZTo6U2Vzc2lvbiwgc2VjdXJpdHlPcmlnaW4pOworICAgIGRpc3BhdGNoU3RvcmFnZUV2
ZW50czxTdG9yYWdlVHlwZTo6U2Vzc2lvbj4oa2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNlY3Vy
aXR5T3JpZ2luLCB1cmwsIGlzU291cmNlU3RvcmFnZSwgWyZdKGF1dG8mIHdpbmRvd1BhZ2UpIHsK
KyAgICAgICAgcmV0dXJuICZ3aW5kb3dQYWdlID09ICZwYWdlOworICAgIH0pOwogfQogCiB2b2lk
IFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnRzKGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1Zh
bHVlLCBQYWdlR3JvdXAmIHBhZ2VHcm91cCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5
T3JpZ2luLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgRnVuY3Rpb248Ym9vbChTdG9yYWdlJik+
JiBpc1NvdXJjZVN0b3JhZ2UpCiB7CiAgICAgYXV0byYgcGFnZXNJbkdyb3VwID0gcGFnZUdyb3Vw
LnBhZ2VzKCk7Ci0gICAgVmVjdG9yPFJlZjxET01XaW5kb3c+PiB3aW5kb3dzOwotICAgIERPTVdp
bmRvdzo6Zm9yRWFjaFdpbmRvd0ludGVyZXN0ZWRJblN0b3JhZ2VFdmVudHMoWyZdKGF1dG8mIHdp
bmRvdykgewotICAgICAgICBpZiAoIXdpbmRvdy5vcHRpb25hbExvY2FsU3RvcmFnZSgpKQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAvLyBTZW5kIGV2ZW50cyB0byBldmVyeSBwYWdlIGlu
IHRoZSBncm91cC4KLSAgICAgICAgaWYgKCF3aW5kb3cucGFnZSgpIHx8ICFwYWdlc0luR3JvdXAu
Y29udGFpbnMoKndpbmRvdy5wYWdlKCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBp
ZiAoaXNTb3VyY2VTdG9yYWdlKCp3aW5kb3cub3B0aW9uYWxMb2NhbFN0b3JhZ2UoKSkpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICghc2VjdXJpdHlPcmlnaW4uZXF1YWwod2luZG93
LnNlY3VyaXR5T3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB3aW5kb3dz
LmFwcGVuZCh3aW5kb3cpOworICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VzSW5Hcm91cCkKKyAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVu
dChwYWdlLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgU3RvcmFnZVR5cGU6OkxvY2FsLCBzZWN1
cml0eU9yaWdpbik7CisgICAgZGlzcGF0Y2hTdG9yYWdlRXZlbnRzPFN0b3JhZ2VUeXBlOjpMb2Nh
bD4oa2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNlY3VyaXR5T3JpZ2luLCB1cmwsIGlzU291cmNl
U3RvcmFnZSwgWyZdKGF1dG8mIHBhZ2UpIHsKKyAgICAgICAgcmV0dXJuIHBhZ2VzSW5Hcm91cC5j
b250YWlucyhwYWdlKTsKICAgICB9KTsKLQotICAgIGRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnRz
VG9XaW5kb3dzKHBhZ2VHcm91cCwgd2luZG93cywga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVy
bCwgc2VjdXJpdHlPcmlnaW4pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>