<?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>280090</bug_id>
          
          <creation_ts>2024-09-20 15:02:06 -0700</creation_ts>
          <short_desc>[Cleanup] Use block flow and writing mode consistently in BoxGeometryUpdater</short_desc>
          <delta_ts>2024-09-25 09:16:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2061953</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-09-20 15:02:06 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2061957</commentid>
    <comment_count>1</comment_count>
      <attachid>472618</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-09-20 15:04:56 -0700</bug_when>
    <thetext>Created attachment 472618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062301</commentid>
    <comment_count>2</comment_count>
      <attachid>472641</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-09-23 05:51:11 -0700</bug_when>
    <thetext>Created attachment 472641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062796</commentid>
    <comment_count>3</comment_count>
      <attachid>472667</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-09-24 12:11:33 -0700</bug_when>
    <thetext>Created attachment 472667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062860</commentid>
    <comment_count>4</comment_count>
      <attachid>472672</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-09-24 15:12:43 -0700</bug_when>
    <thetext>Created attachment 472672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2063014</commentid>
    <comment_count>5</comment_count>
      <attachid>472676</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-09-25 07:06:55 -0700</bug_when>
    <thetext>Created attachment 472676
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2063027</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-09-25 09:05:57 -0700</bug_when>
    <thetext>Committed 284223@main (8bcc71f6c32c): &lt;https://commits.webkit.org/284223@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 472676.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2063028</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-09-25 09:06:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/136679432&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472618</attachid>
            <date>2024-09-20 15:04:56 -0700</date>
            <delta_ts>2024-09-23 05:51:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-280090-20240920150455.patch</filename>
            <type>text/plain</type>
            <size>19788</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4NTE5MDZlNTZmNGM0NDU3ODMwZDMzMjg5ODY2ZDdjOWFkNzE5Y2U3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjAgU2VwIDIwMjQgMTU6MDI6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gVXNlIGJsb2NrIGZsb3cgYW5kIHdyaXRpbmcgbW9kZSBjb25zaXN0ZW50bHkgaW4KIEJveEdl
b21ldHJ5VXBkYXRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjgw
MDkwCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClJvb3QgY29udGFpbmVyIGRlZmluZXMg
Ym90aCB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgZmxvdyBkaXJlY3Rpb24gKHdoaWNoIGlzIGRl
cml2ZWQgZnJvbSB0aGUgd3JpdGluZyBtb2RlKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRhdGVyOjpob3Jpem9u
dGFsTG9naWNhbE1hcmdpbik6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0
cnlVcGRhdGVyOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4pOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6bG9naWNhbEJvcmRlcik6CihXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRhdGVyOjpsb2dpY2FsUGFkZGluZyk6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVMYXlvdXRC
b3hEaW1lbnNpb25zKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVw
ZGF0ZXI6OnVwZGF0ZUlubGluZUJveERpbWVuc2lvbnMpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQ29udGVudENvbnN0cmFpbnRz
KToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpC
b3hHZW9tZXRyeVVwZGF0ZXI6OmJsb2NrRmxvd0RpcmVjdGlvbiBjb25zdCk6CihXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6Y29udGVudExvZ2ljYWxXaWR0aEZvclJlbmRlcmVyKTogRGVsZXRl
ZC4KKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpjb250ZW50TG9naWNhbEhlaWdodEZvclJl
bmRlcmVyKTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpob3Jpem9udGFs
TG9naWNhbE1hcmdpbik6IERlbGV0ZWQuCihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6dmVy
dGljYWxMb2dpY2FsTWFyZ2luKTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
Ojpsb2dpY2FsQm9yZGVyKTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjps
b2dpY2FsUGFkZGluZyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5oOgotLS0KIC4u
Li9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAgICB8IDgzICsrKysrKysr
Ky0tLS0tLS0tLS0KIC4uLi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5oICAg
ICB8IDEwICsrKwogMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5s
aW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwCmluZGV4IDg2ZWU4ZDZhYzk0NS4uYjQwNGFhNmUwN2MzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0
aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApA
QCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgiCiAj
aW5jbHVkZSAiSW5saW5lV2Fsa2VyLmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIK
ICNpbmNsdWRlICJSZW5kZXJBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94SW5saW5lcy5oIgpAQCAtMTMxLDIyICsxMzAsMTIgQEAg
dm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxpc3RNYXJrZXJEaW1lbnNpb25zKGNvbnN0
IFJlbmRlckxpc3RNYXJrZXImIGxpc3QKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbFdpZHRoRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJlcikKLXsKLSAgICByZXR1cm4gcmVuZGVyZXIucGFyZW50KCktPnN0eWxlKCkuaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IHJlbmRlcmVyLmNvbnRlbnRXaWR0aCgpIDogcmVuZGVyZXIuY29u
dGVudEhlaWdodCgpOwotfQotCi1zdGF0aWMgaW5saW5lIExheW91dFVuaXQgY29udGVudExvZ2lj
YWxIZWlnaHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyKQotewotICAgIHJl
dHVybiByZW5kZXJlci5wYXJlbnQoKS0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gcmVuZGVyZXIuY29udGVudEhlaWdodCgpIDogcmVuZGVyZXIuY29udGVudFdpZHRoKCk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhv
cml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJl
ciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRU
b1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlLCBib29s
IHJldGFpbk1hcmdpblN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKQor
TGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6
aG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRl
cmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sICBib29sIHJldGFpbk1hcmdpblN0YXJ0LCBib29sIHJl
dGFpbk1hcmdpbkVuZCkKIHsKICAgICBhdXRvJiBzdHlsZSA9IHJlbmRlcmVyLnN0eWxlKCk7CiAg
ICAgYXV0byBtYXJnaW5MZWZ0ID0gdXNlZFZhbHVlT3JaZXJvKHN0eWxlLm1hcmdpbkxlZnQoKSwg
YXZhaWxhYmxlV2lkdGgpOwogICAgIGF1dG8gbWFyZ2luUmlnaHQgPSB1c2VkVmFsdWVPclplcm8o
c3R5bGUubWFyZ2luUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGgpOwotICAgIGlmIChpc0hvcml6b250
YWxXcml0aW5nTW9kZSkgeworICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CiAg
ICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKQogICAgICAgICAgICAgcmV0
dXJuIHsgcmV0YWluTWFyZ2luU3RhcnQgPyBtYXJnaW5MZWZ0IDogMF9sdSwgcmV0YWluTWFyZ2lu
RW5kID8gbWFyZ2luUmlnaHQgOiAwX2x1IH07CiAgICAgICAgIHJldHVybiB7IHJldGFpbk1hcmdp
blN0YXJ0ID8gbWFyZ2luUmlnaHQgOiAwX2x1LCByZXRhaW5NYXJnaW5FbmQgPyBtYXJnaW5MZWZ0
IDogMF9sdSB9OwpAQCAtMTU5LDkgKzE0OCw5IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hH
ZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhvcml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0CiAg
ICAgcmV0dXJuIHsgcmV0YWluTWFyZ2luU3RhcnQgPyBtYXJnaW5Cb3R0b20gOiAwX2x1LCByZXRh
aW5NYXJnaW5FbmQgPyBtYXJnaW5Ub3AgOiAwX2x1IH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgTGF5
b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29u
c3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxv
d0RpcmVjdGlvbikKK0xheW91dDo6Qm94R2VvbWV0cnk6OlZlcnRpY2FsRWRnZXMgQm94R2VvbWV0
cnlVcGRhdGVyOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QmIHJlbmRlcmVyKQogewotICAgIHN3aXRjaCAoYmxvY2tGbG93RGlyZWN0aW9uKSB7CisgICAg
c3dpdGNoIChibG9ja0Zsb3dEaXJlY3Rpb24oKSkgewogICAgIGNhc2UgRmxvd0RpcmVjdGlvbjo6
VG9wVG9Cb3R0b206CiAgICAgY2FzZSBGbG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcDoKICAgICAg
ICAgcmV0dXJuIHsgcmVuZGVyZXIubWFyZ2luVG9wKCksIHJlbmRlcmVyLm1hcmdpbkJvdHRvbSgp
IH07CkBAIC0xNzUsNyArMTY0LDcgQEAgc3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5
OjpWZXJ0aWNhbEVkZ2VzIHZlcnRpY2FsTG9naWNhbE1hcmdpbihjb25zdCBSZW4KIH0KIAogZW51
bSBjbGFzcyBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0
YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbEJvcmRlcihjb25z
dCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmVuZGVyZXIsIGJvb2wgaXNMZWZ0VG9SaWdodElubGlu
ZURpcmVjdGlvbiwgRmxvd0RpcmVjdGlvbiBibG9ja0Zsb3dEaXJlY3Rpb24sIElzUGFydE9mRm9y
bWF0dGluZ0NvbnRleHQgaXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCA9IElzUGFydE9mRm9ybWF0
dGluZ0NvbnRleHQ6Ok5vLCBib29sIHJldGFpbkJvcmRlclN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRh
aW5Cb3JkZXJFbmQgPSB0cnVlKQorTGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgQm94R2VvbWV0
cnlVcGRhdGVyOjpsb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5k
ZXJlciwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBJc1BhcnRPZkZvcm1hdHRp
bmdDb250ZXh0IGlzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQsIGJvb2wgcmV0YWluQm9yZGVyU3Rh
cnQsIGJvb2wgcmV0YWluQm9yZGVyRW5kKQogewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIu
c3R5bGUoKTsKICAgICBhdXRvIGJvcmRlckxlZnQgPSBMYXlvdXRVbml0IHsgc3R5bGUuYm9yZGVy
TGVmdFdpZHRoKCkgfTsKQEAgLTE5Niw2ICsxODUsNyBAQCBzdGF0aWMgaW5saW5lIExheW91dDo6
Qm94R2VvbWV0cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
YwogICAgICAgICBib3JkZXJCb3R0b20gKz0gZmllbGRzZXRCb3JkZXI7CiAgICAgfQogCisgICAg
YXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSB0aGlzLT5ibG9ja0Zsb3dEaXJlY3Rpb24oKTsKICAg
ICBpZiAoYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8
IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcCkgewogICAg
ICAgICBpZiAoaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbikKICAgICAgICAgICAgIHJldHVy
biB7IHsgcmV0YWluQm9yZGVyU3RhcnQgPyBib3JkZXJMZWZ0IDogMF9sdSwgcmV0YWluQm9yZGVy
RW5kID8gYm9yZGVyUmlnaHQgOiAwX2x1IH0sIHsgYm9yZGVyVG9wLCBib3JkZXJCb3R0b20gfSB9
OwpAQCAtMjEwLDcgKzIwMCw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6
RWRnZXMgbG9naWNhbEJvcmRlcihjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjCiAgICAgcmV0dXJu
IHsgeyBib3JkZXJMb2dpY2FsTGVmdCwgYm9yZGVyTG9naWNhbFJpZ2h0IH0sIHsgYm9yZGVyTG9n
aWNhbFRvcCwgYm9yZGVyTG9naWNhbEJvdHRvbSB9IH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgTGF5
b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdp
ZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24gYmxv
Y2tGbG93RGlyZWN0aW9uLCBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0IGlzUGFydE9mRm9ybWF0
dGluZ0NvbnRleHQgPSBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0OjpObywgYm9vbCByZXRhaW5Q
YWRkaW5nU3RhcnQgPSB0cnVlLCBib29sIHJldGFpblBhZGRpbmdFbmQgPSB0cnVlKQorTGF5b3V0
OjpCb3hHZW9tZXRyeTo6RWRnZXMgQm94R2VvbWV0cnlVcGRhdGVyOjpsb2dpY2FsUGFkZGluZyhj
b25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmVuZGVyZXIsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gYXZhaWxhYmxlV2lkdGgsIGJvb2wgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwg
SXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCBpc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0LCBib29s
IHJldGFpblBhZGRpbmdTdGFydCwgYm9vbCByZXRhaW5QYWRkaW5nRW5kKQogewogICAgIGF1dG8m
IHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKIApAQCAtMjI2LDYgKzIxNiw3IEBAIHN0YXRpYyBp
bmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVu
ZGVyQm94TW9kZWxPYmplCiAgICAgICAgIGludHJpbnNpY1BhZGRpbmdBZnRlciA9IHRhYmxlQ2Vs
bC0+aW50cmluc2ljUGFkZGluZ0FmdGVyKCk7CiAgICAgfQogCisgICAgYXV0byBibG9ja0Zsb3dE
aXJlY3Rpb24gPSB0aGlzLT5ibG9ja0Zsb3dEaXJlY3Rpb24oKTsKICAgICBpZiAoYmxvY2tGbG93
RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVj
dGlvbiA9PSBGbG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcCkgewogICAgICAgICBpZiAoaXNMZWZ0
VG9SaWdodElubGluZURpcmVjdGlvbikKICAgICAgICAgICAgIHJldHVybiB7IHsgcmV0YWluUGFk
ZGluZ1N0YXJ0ID8gcGFkZGluZ0xlZnQgOiAwX2x1LCByZXRhaW5QYWRkaW5nRW5kID8gcGFkZGlu
Z1JpZ2h0IDogMF9sdSB9LCB7IHBhZGRpbmdUb3AgKyBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlLCBw
YWRkaW5nQm90dG9tICsgaW50cmluc2ljUGFkZGluZ0FmdGVyIH0gfTsKQEAgLTI1MywxNCArMjQ0
LDEyIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0U2l6ZSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShjb25z
dCBSZW5kZXJCb3gmIHJlbmRlcmVyKQogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxh
eW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJbnRy
aW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKIHsKICAgICBhdXRvJiBsYXlvdXRC
b3ggPSBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94
KCkpOwotICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA9IHJlbmRlckJveC5w
YXJlbnQoKS0+c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7Ci0gICAgYXV0byBibG9j
a0Zsb3dEaXJlY3Rpb24gPSB3cml0aW5nTW9kZVRvQmxvY2tGbG93RGlyZWN0aW9uKHJlbmRlckJv
eC5wYXJlbnQoKS0+c3R5bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICBhdXRvIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlID0gYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OlRvcFRv
Qm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpCb3R0b21Ub1Rv
cDsKKyAgICBhdXRvIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24gPSBsYXlvdXRCb3gucGFy
ZW50KCkuc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAKICAgICBhdXRvJiBib3hH
ZW9tZXRyeSA9IGxheW91dFN0YXRlKCkuZW5zdXJlR2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsK
LSAgICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6b250YWxMb2dpY2FsTWFyZ2luKHJlbmRlckJv
eCwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKTsKLSAgICBhdXRvIGJvcmRlciA9IGxvZ2ljYWxCb3JkZXIocmVuZGVy
Qm94LCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBibG9ja0Zsb3dEaXJlY3Rpb24pOwot
ICAgIGF1dG8gcGFkZGluZyA9IGxvZ2ljYWxQYWRkaW5nKHJlbmRlckJveCwgYXZhaWxhYmxlV2lk
dGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2NrRmxvd0RpcmVjdGlvbik7Cisg
ICAgYXV0byBpbmxpbmVNYXJnaW4gPSBob3Jpem9udGFsTG9naWNhbE1hcmdpbihyZW5kZXJCb3gs
IGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKKyAgICBhdXRv
IGJvcmRlciA9IGxvZ2ljYWxCb3JkZXIocmVuZGVyQm94LCBpc0xlZnRUb1JpZ2h0SW5saW5lRGly
ZWN0aW9uKTsKKyAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJCb3gsIGF2
YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKICAgICBhdXRvIHNj
cm9sbGJhclNpemUgPSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShyZW5kZXJCb3gpOwogCiAgICAgaWYg
KGludHJpbnNpY1dpZHRoTW9kZSkgewpAQCAtMjY5LDIzICsyNTgsMjEgQEAgdm9pZCBCb3hHZW9t
ZXRyeVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiBy
ZW5kZXJCb3gsIHMKICAgICAgICAgICAgIGF1dG8gcHJlZmVycmVkV2lkdGggPSAqaW50cmluc2lj
V2lkdGhNb2RlID09IExheW91dDo6SW50cmluc2ljV2lkdGhNb2RlOjpNaW5pbXVtID8gcmVuZGVy
Qm94Lm1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIDogcmVuZGVyQm94Lm1heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgcmV0dXJuIHByZWZlcnJlZFdpZHRoIC0gKGJvcmRl
ci5ob3Jpem9udGFsLnN0YXJ0ICsgYm9yZGVyLmhvcml6b250YWwuZW5kICsgcGFkZGluZy5ob3Jp
em9udGFsLnN0YXJ0ICsgcGFkZGluZy5ob3Jpem9udGFsLmVuZCk7CiAgICAgICAgIH07Ci0gICAg
ICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hXaWR0aChjb250ZW50Qm94TG9naWNhbFdpZHRo
KCkpOwogICAgICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGlubGluZU1hcmdp
bik7CiAgICAgICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250YWxCb3JkZXIoYm9yZGVyLmhvcml6
b250YWwpOwogICAgICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsUGFkZGluZyhwYWRkaW5n
Lmhvcml6b250YWwpOworICAgICAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94V2lkdGgoY29u
dGVudEJveExvZ2ljYWxXaWR0aCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGJv
eEdlb21ldHJ5LnNldEhvcml6b250YWxTcGFjZUZvclNjcm9sbGJhcihzY3JvbGxiYXJTaXplLndp
ZHRoKCkpOwogICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsU3BhY2VGb3JTY3JvbGxiYXIoc2Ny
b2xsYmFyU2l6ZS5oZWlnaHQoKSk7CiAKLSAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94V2lk
dGgoY29udGVudExvZ2ljYWxXaWR0aEZvclJlbmRlcmVyKHJlbmRlckJveCkpOwotICAgIGJveEdl
b21ldHJ5LnNldENvbnRlbnRCb3hIZWlnaHQoY29udGVudExvZ2ljYWxIZWlnaHRGb3JSZW5kZXJl
cihyZW5kZXJCb3gpKTsKLQotICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRp
Y2FsTG9naWNhbE1hcmdpbihyZW5kZXJCb3gsIGJsb2NrRmxvd0RpcmVjdGlvbikpOworICAgIGJv
eEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTG9naWNhbE1hcmdpbihyZW5kZXJC
b3gpKTsKICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGlubGluZU1hcmdpbik7
CiAgICAgYm94R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRlcik7CiAgICAgYm94R2VvbWV0cnkuc2V0
UGFkZGluZyhwYWRkaW5nKTsKKyAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94U2l6ZShpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gTGF5b3V0U2l6ZSB7IHJlbmRlckJveC5jb250ZW50V2lk
dGgoKSwgcmVuZGVyQm94LmNvbnRlbnRIZWlnaHQoKSB9IDogTGF5b3V0U2l6ZSB7IHJlbmRlckJv
eC5jb250ZW50SGVpZ2h0KCksIHJlbmRlckJveC5jb250ZW50V2lkdGgoKSB9KTsKIAogICAgIGF1
dG8gaGFzTm9uU3ludGhldGljQmFzZWxpbmUgPSBbJl0gewogICAgICAgICBpZiAoYXV0byogcmVu
ZGVyTGlzdE1hcmtlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPihyZW5kZXJC
b3gpKQpAQCAtMzE2LDcgKzMwMyw3IEBAIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVM
YXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBzCiAgICAgICAg
IHJldHVybiBoYXNBcHBhcmVhbmNlIHx8ICFibG9ja0Zsb3ctPmNoaWxkcmVuSW5saW5lKCkgfHwg
YmxvY2tGbG93LT5oYXNMaW5lcygpIHx8IGJsb2NrRmxvdy0+aGFzTGluZUlmRW1wdHkoKTsKICAg
ICB9KCk7CiAgICAgaWYgKGhhc05vblN5bnRoZXRpY0Jhc2VsaW5lKSB7Ci0gICAgICAgIGF1dG8g
YmFzZWxpbmUgPSByZW5kZXJCb3guYmFzZWxpbmVQb3NpdGlvbihBbHBoYWJldGljQmFzZWxpbmUs
IGZhbHNlIC8qIGZpcnN0TGluZSAqLywgYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rp
b246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpC
b3R0b21Ub1RvcCA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpOworICAgICAgICBhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94LmJhc2VsaW5l
UG9zaXRpb24oQWxwaGFiZXRpY0Jhc2VsaW5lLCBmYWxzZSAvKiBmaXJzdExpbmUgKi8sIGJsb2Nr
Rmxvd0RpcmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxv
d0RpcmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wID8gSG9yaXpvbnRhbExp
bmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CiAgICAgICAgIGxh
eW91dEJveC5zZXRCYXNlbGluZUZvckludGVncmF0aW9uKGJhc2VsaW5lKTsKICAgICB9CiAKQEAg
LTM0MCwxOSArMzI3LDE4IEBAIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVMaW5lQnJl
YWtCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckxpbmVCcmVhayYgbGluCiAKIHZvaWQgQm94R2Vv
bWV0cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlcklubGlu
ZSYgcmVuZGVySW5saW5lLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRo
LCBzdGQ6Om9wdGlvbmFsPExheW91dDo6SW50cmluc2ljV2lkdGhNb2RlPiBpbnRyaW5zaWNXaWR0
aE1vZGUpCiB7Ci0gICAgYXV0byYgYm94R2VvbWV0cnkgPSBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdl
b21ldHJ5Rm9yQm94KCpyZW5kZXJJbmxpbmUubGF5b3V0Qm94KCkpOworICAgIGF1dG8mIGxheW91
dEJveCA9IGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50Qm94Jj4oKnJlbmRlcklubGluZS5sYXlv
dXRCb3goKSk7CisgICAgYXV0byYgYm94R2VvbWV0cnkgPSBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdl
b21ldHJ5Rm9yQm94KGxheW91dEJveCk7CiAKICAgICAvLyBDaGVjayBpZiB0aGlzIHJlbmRlcmVy
IGlzIHBhcnQgb2YgYSBjb250aW51YXRpb24gYW5kIGFkanVzdCBob3Jpem9udGFsIG1hcmdpbi9i
b3JkZXIvcGFkZGluZyBhY2NvcmRpbmdseS4KICAgICBhdXRvIHNob3VsZE5vdFJldGFpbkJvcmRl
clBhZGRpbmdBbmRNYXJnaW5TdGFydCA9IHJlbmRlcklubGluZS5pc0NvbnRpbnVhdGlvbigpOwog
ICAgIGF1dG8gc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCA9ICFyZW5k
ZXJJbmxpbmUuaXNDb250aW51YXRpb24oKSAmJiByZW5kZXJJbmxpbmUuaW5saW5lQ29udGludWF0
aW9uKCk7CiAKLSAgICBhdXRvIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24gPSByZW5kZXJJ
bmxpbmUuc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7Ci0gICAgYXV0byBibG9ja0Zs
b3dEaXJlY3Rpb24gPSB3cml0aW5nTW9kZVRvQmxvY2tGbG93RGlyZWN0aW9uKHJlbmRlcklubGlu
ZS5zdHlsZSgpLndyaXRpbmdNb2RlKCkpOwotICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPSBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwg
YmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wOworICAgIGF1
dG8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA9IGxheW91dEJveC5zdHlsZSgpLmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKTsKIAotICAgIGF1dG8gaW5saW5lTWFyZ2luID0gaG9yaXpvbnRh
bExvZ2ljYWxNYXJnaW4ocmVuZGVySW5saW5lLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdo
dElubGluZURpcmVjdGlvbiwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUsICFzaG91bGROb3RSZXRh
aW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRk
aW5nQW5kTWFyZ2luRW5kKTsKLSAgICBhdXRvIGJvcmRlciA9IGxvZ2ljYWxCb3JkZXIocmVuZGVy
SW5saW5lLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBibG9ja0Zsb3dEaXJlY3Rpb24s
IElzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQ6OlllcywgIXNob3VsZE5vdFJldGFpbkJvcmRlclBh
ZGRpbmdBbmRNYXJnaW5TdGFydCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRpbmdBbmRNYXJn
aW5FbmQpOwotICAgIGF1dG8gcGFkZGluZyA9IGxvZ2ljYWxQYWRkaW5nKHJlbmRlcklubGluZSwg
YXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2NrRmxvd0Rp
cmVjdGlvbiwgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6WWVzLCAhc2hvdWxkTm90UmV0YWlu
Qm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGlu
Z0FuZE1hcmdpbkVuZCk7CisgICAgYXV0byBpbmxpbmVNYXJnaW4gPSBob3Jpem9udGFsTG9naWNh
bE1hcmdpbihyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5l
RGlyZWN0aW9uLCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAh
c2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7CisgICAgYXV0byBib3Jk
ZXIgPSBsb2dpY2FsQm9yZGVyKHJlbmRlcklubGluZSwgaXNMZWZ0VG9SaWdodElubGluZURpcmVj
dGlvbiwgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6WWVzLCAhc2hvdWxkTm90UmV0YWluQm9y
ZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0Fu
ZE1hcmdpbkVuZCk7CisgICAgYXV0byBwYWRkaW5nID0gbG9naWNhbFBhZGRpbmcocmVuZGVySW5s
aW5lLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgSXNQYXJ0
T2ZGb3JtYXR0aW5nQ29udGV4dDo6WWVzLCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0Fu
ZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7
CiAKICAgICBpZiAoaW50cmluc2ljV2lkdGhNb2RlKSB7CiAgICAgICAgIGJveEdlb21ldHJ5LnNl
dEhvcml6b250YWxNYXJnaW4oaW5saW5lTWFyZ2luKTsKQEAgLTM2Miw3ICszNDgsNyBAQCB2b2lk
IEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94RGltZW5zaW9ucyhjb25zdCBSZW5k
ZXJJbmxpbmUmIHJlbmRlcklubAogICAgIH0KIAogICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250
YWxNYXJnaW4oaW5saW5lTWFyZ2luKTsKLSAgICBib3hHZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdp
bih2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4ocmVuZGVySW5saW5lLCBibG9ja0Zsb3dEaXJlY3Rpb24p
KTsKKyAgICBib3hHZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJn
aW4ocmVuZGVySW5saW5lKSk7CiAgICAgYm94R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRlcik7CiAg
ICAgYm94R2VvbWV0cnkuc2V0UGFkZGluZyhwYWRkaW5nKTsKIH0KQEAgLTQxNCwxNSArNDAwLDEz
IEBAIExheW91dDo6Q29uc3RyYWludHNGb3JJbmxpbmVDb250ZW50IEJveEdlb21ldHJ5VXBkYXRl
cjo6dXBkYXRlSW5saW5lQ29udGVudENvbnN0CiB7CiAgICAgYXV0byYgcm9vdFJlbmRlcmVyID0g
Ym94VHJlZSgpLnJvb3RSZW5kZXJlcigpOwogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGluZURp
cmVjdGlvbiA9IHJvb3RSZW5kZXJlci5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsK
LSAgICBhdXRvIHdyaXRpbmdNb2RlID0gcm9vdFJlbmRlcmVyLnN0eWxlKCkud3JpdGluZ01vZGUo
KTsKLSAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlvbiA9IHdyaXRpbmdNb2RlVG9CbG9ja0Zsb3dE
aXJlY3Rpb24od3JpdGluZ01vZGUpOwogCi0gICAgYXV0byBwYWRkaW5nID0gbG9naWNhbFBhZGRp
bmcocm9vdFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVj
dGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uLCBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0OjpObyk7
Ci0gICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJvb3RSZW5kZXJlciwgaXNMZWZ0VG9S
aWdodElubGluZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uLCBJc1BhcnRPZkZvcm1hdHRp
bmdDb250ZXh0OjpObyk7CisgICAgYXV0byBwYWRkaW5nID0gbG9naWNhbFBhZGRpbmcocm9vdFJl
bmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgSXNQ
YXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6Tm8pOworICAgIGF1dG8gYm9yZGVyID0gbG9naWNhbEJv
cmRlcihyb290UmVuZGVyZXIsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIElzUGFydE9m
Rm9ybWF0dGluZ0NvbnRleHQ6Ok5vKTsKICAgICBhdXRvIHNjcm9sbGJhclNpemUgPSBzY3JvbGxi
YXJMb2dpY2FsU2l6ZShyb290UmVuZGVyZXIpOwogICAgIGF1dG8gc2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCA9IHJvb3RSZW5kZXJlci5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCk7CiAKLSAgICBhdXRvIGNvbnRlbnRCb3hXaWR0aCA9IFdlYkNvcmU6OmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IHJvb3RSZW5kZXJlci5jb250ZW50V2lk
dGgoKSA6IHJvb3RSZW5kZXJlci5jb250ZW50SGVpZ2h0KCk7CisgICAgYXV0byBjb250ZW50Qm94
V2lkdGggPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcm9vdFJlbmRlcmVyLmNvbnRlbnRX
aWR0aCgpIDogcm9vdFJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKTsKICAgICBhdXRvIGNvbnRlbnRC
b3hMZWZ0ID0gYm9yZGVyLmhvcml6b250YWwuc3RhcnQgKyBwYWRkaW5nLmhvcml6b250YWwuc3Rh
cnQgKyAoaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiAmJiBzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0ID8gc2Nyb2xsYmFyU2l6ZS53aWR0aCgpIDogMF9sdSk7CiAgICAgYXV0
byBjb250ZW50Qm94VG9wID0gYm9yZGVyLnZlcnRpY2FsLmJlZm9yZSArIHBhZGRpbmcudmVydGlj
YWwuYmVmb3JlOwogCkBAIC00MzcsOCArNDIxLDggQEAgTGF5b3V0OjpDb25zdHJhaW50c0Zvcklu
bGluZUNvbnRlbnQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3QK
ICAgICAgICAgcm9vdEdlb21ldHJ5LnNldEJvcmRlcihib3JkZXIpOwogICAgICAgICByb290R2Vv
bWV0cnkuc2V0SG9yaXpvbnRhbFNwYWNlRm9yU2Nyb2xsYmFyKHNjcm9sbGJhclNpemUud2lkdGgo
KSk7CiAgICAgICAgIHJvb3RHZW9tZXRyeS5zZXRWZXJ0aWNhbFNwYWNlRm9yU2Nyb2xsYmFyKHNj
cm9sbGJhclNpemUuaGVpZ2h0KCkpOwotICAgICAgICByb290R2VvbWV0cnkuc2V0SG9yaXpvbnRh
bE1hcmdpbihob3Jpem9udGFsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdp
ZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBXZWJDb3JlOjppc0hvcml6b250YWxX
cml0aW5nTW9kZSh3cml0aW5nTW9kZSkpKTsKLSAgICAgICAgcm9vdEdlb21ldHJ5LnNldFZlcnRp
Y2FsTWFyZ2luKHZlcnRpY2FsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGJsb2NrRmxvd0Rp
cmVjdGlvbikpOworICAgICAgICByb290R2VvbWV0cnkuc2V0SG9yaXpvbnRhbE1hcmdpbihob3Jp
em9udGFsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRU
b1JpZ2h0SW5saW5lRGlyZWN0aW9uKSk7CisgICAgICAgIHJvb3RHZW9tZXRyeS5zZXRWZXJ0aWNh
bE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4ocm9vdFJlbmRlcmVyKSk7CiAgICAgfTsKICAg
ICBjcmVhdGVSb290R2VvbWV0cnlJZk5lZWRlZCgpOwogCkBAIC00NjUsNiArNDQ5LDE3IEBAIHZv
aWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVCb3hHZW9tZXRyeShjb25zdCBSZW5kZXJFbGVt
ZW50JiByZW5kZXJlciwgTGF5b3V0CiAgICAgICAgIHVwZGF0ZUlubGluZUJveERpbWVuc2lvbnMo
KnJlbmRlcklubGluZSwgYXZhaWxhYmxlV2lkdGgpOwogfQogCitib29sIEJveEdlb21ldHJ5VXBk
YXRlcjo6aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSBjb25zdAoreworICAgIGF1dG8gYmxvY2tG
bG93RGlyZWN0aW9uID0gdGhpcy0+YmxvY2tGbG93RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIGJs
b2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpUb3BUb0JvdHRvbSB8fCBibG9ja0Zs
b3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6Qm90dG9tVG9Ub3A7Cit9CisKK0Zsb3dEaXJl
Y3Rpb24gQm94R2VvbWV0cnlVcGRhdGVyOjpibG9ja0Zsb3dEaXJlY3Rpb24oKSBjb25zdAorewor
ICAgIHJldHVybiB3cml0aW5nTW9kZVRvQmxvY2tGbG93RGlyZWN0aW9uKHJvb3RMYXlvdXRCb3go
KS5zdHlsZSgpLndyaXRpbmdNb2RlKCkpOworfQorCiBjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gm
IEJveEdlb21ldHJ5VXBkYXRlcjo6cm9vdExheW91dEJveCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGJveFRyZWUoKS5yb290TGF5b3V0Qm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRh
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dElu
dGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgKaW5kZXggMzVjNWJkOTAxOGMwLi4yOTZiNTE0
ODdlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxp
bmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0
cnlVcGRhdGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkZvcm1hdHRpbmdDb25z
dHJhaW50cy5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgorI2lu
Y2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25C
b3hUcmVlLmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKIApAQCAtNjIsNiArNjMsMTUgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUlubGluZUJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVy
SW5saW5lJiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgc3RkOjpv
cHRpb25hbDxMYXlvdXQ6OkludHJpbnNpY1dpZHRoTW9kZT4gPSBzdGQ6Om51bGxvcHQpOwogICAg
IHZvaWQgdXBkYXRlTGlzdE1hcmtlckRpbWVuc2lvbnMoY29uc3QgUmVuZGVyTGlzdE1hcmtlciYs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8
TGF5b3V0OjpJbnRyaW5zaWNXaWR0aE1vZGU+ID0gc3RkOjpudWxsb3B0KTsKIAorICAgIGVudW0g
Y2xhc3MgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCA6IGJvb2wgeyBObywgWWVzIH07CisgICAg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhvcml6b250YWxMb2dpY2FsTWFy
Z2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29s
IHJldGFpbk1hcmdpblN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKTsK
KyAgICBMYXlvdXQ6OkJveEdlb21ldHJ5OjpWZXJ0aWNhbEVkZ2VzIHZlcnRpY2FsTG9naWNhbE1h
cmdpbihjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYpOworICAgIExheW91dDo6Qm94R2VvbWV0
cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmLCBib29s
IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIElzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQg
PSBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0OjpObywgYm9vbCByZXRhaW5Cb3JkZXJTdGFydCA9
IHRydWUsIGJvb2wgcmV0YWluQm9yZGVyRW5kID0gdHJ1ZSk7CisgICAgTGF5b3V0OjpCb3hHZW9t
ZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmLCBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVmdFRvUmln
aHRJbmxpbmVEaXJlY3Rpb24sIElzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQgPSBJc1BhcnRPZkZv
cm1hdHRpbmdDb250ZXh0OjpObywgYm9vbCByZXRhaW5QYWRkaW5nU3RhcnQgPSB0cnVlLCBib29s
IHJldGFpblBhZGRpbmdFbmQgPSB0cnVlKTsKKworICAgIEZsb3dEaXJlY3Rpb24gYmxvY2tGbG93
RGlyZWN0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpIGNv
bnN0OworCiAgICAgQm94VHJlZSYgYm94VHJlZSgpIHsgcmV0dXJuICptX2JveFRyZWU7IH0KICAg
ICBjb25zdCBCb3hUcmVlJiBib3hUcmVlKCkgY29uc3QgeyByZXR1cm4gKm1fYm94VHJlZTsgfQog
ICAgIExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyByZXR1cm4gKm1fbGF5b3V0
U3RhdGU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472641</attachid>
            <date>2024-09-23 05:51:11 -0700</date>
            <delta_ts>2024-09-24 12:11:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-280090-20240923055110.patch</filename>
            <type>text/plain</type>
            <size>18480</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1NTZhY2U4NzQ3N2RjZWFlMmUzOGIyMGQzMmUxYTU3YzMxYmNkZGQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IE1vbiwgMjMgU2VwIDIwMjQgMDU6NDk6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gVXNlIGJsb2NrIGZsb3cgYW5kIHdyaXRpbmcgbW9kZSBjb25zaXN0ZW50bHkgaW4KIEJveEdl
b21ldHJ5VXBkYXRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjgw
MDkwCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClJvb3QgY29udGFpbmVyIGRlZmluZXMg
Ym90aCB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgZmxvdyBkaXJlY3Rpb24gKHdoaWNoIGlzIGRl
cml2ZWQgZnJvbSB0aGUgd3JpdGluZyBtb2RlKS4gTGV0J3Mgbm90IGNvbnN1bHQgc2VlbWluZ2x5
IHJhbmRvbSBwYXJlbnQgYm94ZXMgZm9yIHRoZXNlIHByb3BlcnRpZXMuCgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBk
YXRlcjo6aG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4pOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveEdlb21ldHJ5VXBkYXRlcjo6dmVydGljYWxMb2dpY2FsTWFyZ2luKToKKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxCb3JkZXIpOgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6bG9naWNhbFBh
ZGRpbmcpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6
c2V0SW50ZWdyYXRpb25CYXNlbGluZSk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94
R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVMYXlvdXRCb3hEaW1lbnNpb25zKToKKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUlubGluZUJveERpbWVu
c2lvbnMpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6
dXBkYXRlSW5saW5lQ29udGVudENvbnN0cmFpbnRzKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0
aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlIGNvbnN0KToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OmJsb2NrRmxv
d0RpcmVjdGlvbiBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y29udGVudExv
Z2ljYWxXaWR0aEZvclJlbmRlcmVyKTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dEludGVncmF0
aW9uOjpjb250ZW50TG9naWNhbEhlaWdodEZvclJlbmRlcmVyKTogRGVsZXRlZC4KKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpob3Jpem9udGFsTG9naWNhbE1hcmdpbik6IERlbGV0ZWQuCihX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6dmVydGljYWxMb2dpY2FsTWFyZ2luKTogRGVsZXRl
ZC4KKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpsb2dpY2FsQm9yZGVyKTogRGVsZXRlZC4K
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpsb2dpY2FsUGFkZGluZyk6IERlbGV0ZWQuCihX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6c2V0SW50ZWdyYXRpb25CYXNlbGluZSk6IERlbGV0
ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRl
Z3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5oOgotLS0KIC4uLi9MYXlvdXRJbnRlZ3JhdGlvbkJv
eEdlb21ldHJ5VXBkYXRlci5jcHAgICB8IDc5ICsrKysrKysrLS0tLS0tLS0tLS0KIC4uLi9MYXlv
dXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5oICAgICB8IDExICsrKwogMiBmaWxlcyBj
aGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9u
Qm94R2VvbWV0cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCmluZGV4IGFl
OGNmMDZlOTA0NC4uMzhhZTRjODRiOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91
dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAj
aW5jbHVkZSAiRm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiSW5saW5lV2Fsa2Vy
LmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNpbmNsdWRlICJSZW5kZXJBdHRh
Y2htZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVy
Qm94SW5saW5lcy5oIgpAQCAtMTc1LDIxICsxNzQsMTEgQEAgdm9pZCBCb3hHZW9tZXRyeVVwZGF0
ZXI6OnNldExpc3RNYXJrZXJPZmZzZXRGb3JNYXJrZXJPdXRzaWRlKGNvbnN0IFJlbmRlckxpc3RN
YXIKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFdp
ZHRoRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKLXsKLSAgICByZXR1cm4g
cmVuZGVyZXIucGFyZW50KCktPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJl
bmRlcmVyLmNvbnRlbnRXaWR0aCgpIDogcmVuZGVyZXIuY29udGVudEhlaWdodCgpOwotfQotCi1z
dGF0aWMgaW5saW5lIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHRGb3JSZW5kZXJlcihj
b25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyKQotewotICAgIHJldHVybiByZW5kZXJlci5wYXJlbnQo
KS0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcmVuZGVyZXIuY29udGVudEhl
aWdodCgpIDogcmVuZGVyZXIuY29udGVudFdpZHRoKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgTGF5
b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhvcml6b250YWxMb2dpY2FsTWFyZ2lu
KGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9u
LCBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlLCBib29sIHJldGFpbk1hcmdpblN0YXJ0ID0g
dHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKQorTGF5b3V0OjpCb3hHZW9tZXRyeTo6
SG9yaXpvbnRhbEVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6aG9yaXpvbnRhbExvZ2ljYWxNYXJn
aW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rp
b24sIGJvb2wgcmV0YWluTWFyZ2luU3RhcnQsIGJvb2wgcmV0YWluTWFyZ2luRW5kICkKIHsKICAg
ICBhdXRvJiBzdHlsZSA9IHJlbmRlcmVyLnN0eWxlKCk7CiAKLSAgICBpZiAoaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUpIHsKKyAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewogICAg
ICAgICBhdXRvIGxvZ2ljYWxMZWZ0VmFsdWUgPSByZXRhaW5NYXJnaW5TdGFydCA/IHVzZWRWYWx1
ZU9yWmVybyhpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uID8gc3R5bGUubWFyZ2luTGVmdCgp
IDogc3R5bGUubWFyZ2luUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGgpIDogMF9sdTsKICAgICAgICAg
YXV0byBsb2dpY2FsUmlnaHRWYWx1ZSA9IHJldGFpbk1hcmdpbkVuZCA/IHVzZWRWYWx1ZU9yWmVy
byhpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uID8gc3R5bGUubWFyZ2luUmlnaHQoKSA6IHN0
eWxlLm1hcmdpbkxlZnQoKSwgYXZhaWxhYmxlV2lkdGgpIDogMF9sdTsKIApAQCAtMjAyLDEwICsx
OTEsMTAgQEAgc3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpIb3Jpem9udGFsRWRn
ZXMgaG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4oY29uc3QKICAgICByZXR1cm4geyBsb2dpY2FsTGVm
dFZhbHVlLCBsb2dpY2FsUmlnaHRWYWx1ZSB9OwogfQogCi1zdGF0aWMgaW5saW5lIExheW91dDo6
Qm94R2VvbWV0cnk6OlZlcnRpY2FsRWRnZXMgdmVydGljYWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJl
bmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBh
dmFpbGFibGVXaWR0aCwgRmxvd0RpcmVjdGlvbiBibG9ja0Zsb3dEaXJlY3Rpb24pCitMYXlvdXQ6
OkJveEdlb21ldHJ5OjpWZXJ0aWNhbEVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6dmVydGljYWxM
b2dpY2FsTWFyZ2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCkKIHsKICAgICBhdXRvJiBzdHlsZSA9
IHJlbmRlcmVyLnN0eWxlKCk7Ci0gICAgc3dpdGNoIChibG9ja0Zsb3dEaXJlY3Rpb24pIHsKKyAg
ICBzd2l0Y2ggKGJsb2NrRmxvd0RpcmVjdGlvbigpKSB7CiAgICAgY2FzZSBGbG93RGlyZWN0aW9u
OjpUb3BUb0JvdHRvbToKICAgICBjYXNlIEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wOgogICAg
ICAgICByZXR1cm4geyB1c2VkVmFsdWVPclplcm8oc3R5bGUubWFyZ2luVG9wKCksIGF2YWlsYWJs
ZVdpZHRoKSwgdXNlZFZhbHVlT3JaZXJvKHN0eWxlLm1hcmdpbkJvdHRvbSgpLCBhdmFpbGFibGVX
aWR0aCkgfTsKQEAgLTIxOCwxMCArMjA3LDEwIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hH
ZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuCiAg
ICAgfQogfQogCi1lbnVtIGNsYXNzIElzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQgOiBib29sIHsg
Tm8sIFllcyB9Owotc3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dp
Y2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwgYm9vbCBpc0xl
ZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxvd0RpcmVjdGlv
biwgYm9vbCBpc0ludHJpbnNpY1dpZHRoTW9kZSwgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCBp
c1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0ID0gSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6Tm8s
IGJvb2wgcmV0YWluQm9yZGVyU3RhcnQgPSB0cnVlLCBib29sIHJldGFpbkJvcmRlckVuZCA9IHRy
dWUpCitMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBCb3hHZW9tZXRyeVVwZGF0ZXI6OmxvZ2lj
YWxCb3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUsIElzUGFy
dE9mRm9ybWF0dGluZ0NvbnRleHQgaXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCwgYm9vbCByZXRh
aW5Cb3JkZXJTdGFydCAsIGJvb2wgcmV0YWluQm9yZGVyRW5kKQogewogICAgIGF1dG8mIHN0eWxl
ID0gcmVuZGVyZXIuc3R5bGUoKTsKKyAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlvbiA9IHRoaXMt
PmJsb2NrRmxvd0RpcmVjdGlvbigpOwogCiAgICAgYXV0byBib3JkZXJMZWZ0ID0gTGF5b3V0VW5p
dCB7IHN0eWxlLmJvcmRlckxlZnRXaWR0aCgpIH07CiAgICAgYXV0byBib3JkZXJSaWdodCA9IExh
eW91dFVuaXQgeyBzdHlsZS5ib3JkZXJSaWdodFdpZHRoKCkgfTsKQEAgLTI0NSw5ICsyMzQsMTAg
QEAgc3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsQm9yZGVy
KGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWMKICAgICByZXR1cm4geyB7IGJvcmRlckxvZ2ljYWxM
ZWZ0LCBib3JkZXJMb2dpY2FsUmlnaHQgfSwgeyBib3JkZXJMb2dpY2FsVG9wLCBib3JkZXJMb2dp
Y2FsQm90dG9tIH0gfTsKIH0KIAotc3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpF
ZGdlcyBsb2dpY2FsUGFkZGluZyhjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmVuZGVyZXIs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIGJvb2wgaXNMZWZ0VG9S
aWdodElubGluZURpcmVjdGlvbiwgRmxvd0RpcmVjdGlvbiBibG9ja0Zsb3dEaXJlY3Rpb24sIGJv
b2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUgPSBmYWxzZSwgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4
dCBpc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0ID0gSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6
Tm8sIGJvb2wgcmV0YWluUGFkZGluZ1N0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5QYWRkaW5nRW5k
ID0gdHJ1ZSkKK0xheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6
bG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJ
bmxpbmVEaXJlY3Rpb24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUsIElzUGFydE9mRm9ybWF0
dGluZ0NvbnRleHQgaXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCwgYm9vbCByZXRhaW5QYWRkaW5n
U3RhcnQsIGJvb2wgcmV0YWluUGFkZGluZ0VuZCkKIHsKICAgICBhdXRvJiBzdHlsZSA9IHJlbmRl
cmVyLnN0eWxlKCk7CisgICAgYXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSB0aGlzLT5ibG9ja0Zs
b3dEaXJlY3Rpb24oKTsKIAogICAgIGF1dG8gcGFkZGluZ0xlZnQgPSB1c2VkVmFsdWVPclplcm8o
c3R5bGUucGFkZGluZ0xlZnQoKSwgYXZhaWxhYmxlV2lkdGgpOwogICAgIGF1dG8gcGFkZGluZ1Jp
Z2h0ID0gdXNlZFZhbHVlT3JaZXJvKHN0eWxlLnBhZGRpbmdSaWdodCgpLCBhdmFpbGFibGVXaWR0
aCk7CkBAIC0yNzksNyArMjY5LDcgQEAgc3RhdGljIGlubGluZSBMYXlvdXRTaXplIHNjcm9sbGJh
ckxvZ2ljYWxTaXplKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyZXIpCiAgICAgcmV0dXJuIHsgaG9y
aXpvbnRhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxiYXIsIHZlcnRpY2FsU3BhY2VSZXNlcnZlZEZv
clNjcm9sbGJhciB9OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNl
bGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCkKK3ZvaWQgQm94R2VvbWV0cnlVcGRhdGVy
OjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogewog
ICAgIGF1dG8gaGFzTm9uU3ludGhldGljQmFzZWxpbmUgPSBbJl0gewogICAgICAgICBpZiAoYXV0
byogcmVuZGVyTGlzdE1hcmtlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPihy
ZW5kZXJCb3gpKQpAQCAtMzEzLDggKzMwMyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRl
Z3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgIGlmICghaGFz
Tm9uU3ludGhldGljQmFzZWxpbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBibG9j
a0Zsb3dEaXJlY3Rpb24gPSB3cml0aW5nTW9kZVRvQmxvY2tGbG93RGlyZWN0aW9uKHJlbmRlckJv
eC5wYXJlbnQoKS0+c3R5bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICBhdXRvIGJhc2VsaW5lID0g
cmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oQWxwaGFiZXRpY0Jhc2VsaW5lLCBmYWxzZSAvKiBm
aXJzdExpbmUgKi8sIGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpUb3BUb0Jv
dHRvbSB8fCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6Qm90dG9tVG9Ub3Ag
PyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KTsKKyAgICBhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oQWxwaGFi
ZXRpY0Jhc2VsaW5lLCBmYWxzZSAvKiBmaXJzdExpbmUgKi8sIGJsb2NrRmxvd0RpcmVjdGlvbigp
ID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbigpID09
IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CiAgICAgY29uc3RfY2FzdDxMYXlvdXQ6OkVs
ZW1lbnRCb3gmPigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVncmF0
aW9uKGJhc2VsaW5lKTsKIH0KIApAQCAtMzIyLDEzICszMTEsMTEgQEAgdm9pZCBCb3hHZW9tZXRy
eVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJCb3gsIHMKIHsKICAgICBhdXRvJiBsYXlvdXRCb3ggPSBjb25zdF9jYXN0PExheW91dDo6RWxl
bWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpOwogICAgIGF1dG8gaXNMZWZ0VG9SaWdo
dElubGluZURpcmVjdGlvbiA9IHJlbmRlckJveC5wYXJlbnQoKS0+c3R5bGUoKS5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCk7Ci0gICAgYXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSB3cml0aW5nTW9k
ZVRvQmxvY2tGbG93RGlyZWN0aW9uKHJlbmRlckJveC5wYXJlbnQoKS0+c3R5bGUoKS53cml0aW5n
TW9kZSgpKTsKLSAgICBhdXRvIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gYmxvY2tGbG93RGly
ZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlv
biA9PSBGbG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcDsKIAogICAgIGF1dG8mIGJveEdlb21ldHJ5
ID0gbGF5b3V0U3RhdGUoKS5lbnN1cmVHZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwotICAgIGF1
dG8gaW5saW5lTWFyZ2luID0gaG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4ocmVuZGVyQm94LCBhdmFp
bGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUpOwotICAgIGF1dG8gYm9yZGVyID0gbG9naWNhbEJvcmRlcihyZW5kZXJCb3gsIGlz
TGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2NrRmxvd0RpcmVjdGlvbiwgaW50cmluc2lj
V2lkdGhNb2RlLmhhc192YWx1ZSgpKTsKLSAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGlu
ZyhyZW5kZXJCb3gsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9u
LCBibG9ja0Zsb3dEaXJlY3Rpb24sIGludHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFsdWUoKSk7Cisg
ICAgYXV0byBpbmxpbmVNYXJnaW4gPSBob3Jpem9udGFsTG9naWNhbE1hcmdpbihyZW5kZXJCb3gs
IGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKKyAgICBhdXRv
IGJvcmRlciA9IGxvZ2ljYWxCb3JkZXIocmVuZGVyQm94LCBpc0xlZnRUb1JpZ2h0SW5saW5lRGly
ZWN0aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3ZhbHVlKCkpOworICAgIGF1dG8gcGFkZGlu
ZyA9IGxvZ2ljYWxQYWRkaW5nKHJlbmRlckJveCwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmln
aHRJbmxpbmVEaXJlY3Rpb24sIGludHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFsdWUoKSk7CiAgICAg
YXV0byBzY3JvbGxiYXJTaXplID0gc2Nyb2xsYmFyTG9naWNhbFNpemUocmVuZGVyQm94KTsKIAog
ICAgIGlmIChpbnRyaW5zaWNXaWR0aE1vZGUpIHsKQEAgLTM0NywxMCArMzM0LDggQEAgdm9pZCBC
b3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVy
Qm94JiByZW5kZXJCb3gsIHMKICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsU3BhY2VGb3JT
Y3JvbGxiYXIoc2Nyb2xsYmFyU2l6ZS53aWR0aCgpKTsKICAgICBib3hHZW9tZXRyeS5zZXRWZXJ0
aWNhbFNwYWNlRm9yU2Nyb2xsYmFyKHNjcm9sbGJhclNpemUuaGVpZ2h0KCkpOwogCi0gICAgYm94
R2VvbWV0cnkuc2V0Q29udGVudEJveFdpZHRoKGNvbnRlbnRMb2dpY2FsV2lkdGhGb3JSZW5kZXJl
cihyZW5kZXJCb3gpKTsKLSAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94SGVpZ2h0KGNvbnRl
bnRMb2dpY2FsSGVpZ2h0Rm9yUmVuZGVyZXIocmVuZGVyQm94KSk7Ci0KLSAgICBib3hHZW9tZXRy
eS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4ocmVuZGVyQm94LCBhdmFp
bGFibGVXaWR0aCwgYmxvY2tGbG93RGlyZWN0aW9uKSk7CisgICAgYm94R2VvbWV0cnkuc2V0Q29u
dGVudEJveFNpemUocmVuZGVyQm94LmNvbnRlbnRMb2dpY2FsU2l6ZSgpKTsKKyAgICBib3hHZW9t
ZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4ocmVuZGVyQm94LCBh
dmFpbGFibGVXaWR0aCkpOwogICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaW5s
aW5lTWFyZ2luKTsKICAgICBib3hHZW9tZXRyeS5zZXRCb3JkZXIoYm9yZGVyKTsKICAgICBib3hH
ZW9tZXRyeS5zZXRQYWRkaW5nKHBhZGRpbmcpOwpAQCAtMzgyLDEyICszNjcsOSBAQCB2b2lkIEJv
eEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94RGltZW5zaW9ucyhjb25zdCBSZW5kZXJJ
bmxpbmUmIHJlbmRlcklubAogICAgIGF1dG8gc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0Fu
ZE1hcmdpbkVuZCA9ICFyZW5kZXJJbmxpbmUuaXNDb250aW51YXRpb24oKSAmJiByZW5kZXJJbmxp
bmUuaW5saW5lQ29udGludWF0aW9uKCk7CiAKICAgICBhdXRvIGlzTGVmdFRvUmlnaHRJbmxpbmVE
aXJlY3Rpb24gPSByZW5kZXJJbmxpbmUuc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7
Ci0gICAgYXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSB3cml0aW5nTW9kZVRvQmxvY2tGbG93RGly
ZWN0aW9uKHJlbmRlcklubGluZS5zdHlsZSgpLndyaXRpbmdNb2RlKCkpOwotICAgIGF1dG8gaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUgPSBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlv
bjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJv
dHRvbVRvVG9wOwotCi0gICAgYXV0byBpbmxpbmVNYXJnaW4gPSBob3Jpem9udGFsTG9naWNhbE1h
cmdpbihyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGly
ZWN0aW9uLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBh
ZGRpbmdBbmRNYXJnaW5TdGFydCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRpbmdBbmRNYXJn
aW5FbmQpOwotICAgIGF1dG8gYm9yZGVyID0gbG9naWNhbEJvcmRlcihyZW5kZXJJbmxpbmUsIGlz
TGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2NrRmxvd0RpcmVjdGlvbiwgaW50cmluc2lj
V2lkdGhNb2RlLmhhc192YWx1ZSgpLCBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0OjpZZXMsICFz
aG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRh
aW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kKTsKLSAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2Fs
UGFkZGluZyhyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5l
RGlyZWN0aW9uLCBibG9ja0Zsb3dEaXJlY3Rpb24sIGludHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFs
dWUoKSwgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6WWVzLCAhc2hvdWxkTm90UmV0YWluQm9y
ZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0Fu
ZE1hcmdpbkVuZCk7CisgICAgYXV0byBpbmxpbmVNYXJnaW4gPSBob3Jpem9udGFsTG9naWNhbE1h
cmdpbihyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGly
ZWN0aW9uLCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hv
dWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7CisgICAgYXV0byBib3JkZXIg
PSBsb2dpY2FsQm9yZGVyKHJlbmRlcklubGluZSwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlv
biwgaW50cmluc2ljV2lkdGhNb2RlLmhhc192YWx1ZSgpLCBJc1BhcnRPZkZvcm1hdHRpbmdDb250
ZXh0OjpZZXMsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFz
aG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kKTsKKyAgICBhdXRvIHBhZGRp
bmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRU
b1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3ZhbHVlKCksIElz
UGFydE9mRm9ybWF0dGluZ0NvbnRleHQ6OlllcywgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRp
bmdBbmRNYXJnaW5TdGFydCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRpbmdBbmRNYXJnaW5F
bmQpOwogCiAgICAgaWYgKGludHJpbnNpY1dpZHRoTW9kZSkgewogICAgICAgICBib3hHZW9tZXRy
eS5zZXRIb3Jpem9udGFsTWFyZ2luKGlubGluZU1hcmdpbik7CkBAIC0zOTcsNyArMzc5LDcgQEAg
dm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUlubGluZUJveERpbWVuc2lvbnMoY29uc3Qg
UmVuZGVySW5saW5lJiByZW5kZXJJbmwKICAgICB9CiAKICAgICBib3hHZW9tZXRyeS5zZXRIb3Jp
em9udGFsTWFyZ2luKGlubGluZU1hcmdpbik7Ci0gICAgYm94R2VvbWV0cnkuc2V0VmVydGljYWxN
YXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGluZSwgYXZhaWxhYmxlV2lkdGgs
IGJsb2NrRmxvd0RpcmVjdGlvbikpOworICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2lu
KHZlcnRpY2FsTG9naWNhbE1hcmdpbihyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoKSk7CiAg
ICAgYm94R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRlcik7CiAgICAgYm94R2VvbWV0cnkuc2V0UGFk
ZGluZyhwYWRkaW5nKTsKIH0KQEAgLTQ0MywxNSArNDI1LDEzIEBAIExheW91dDo6Q29uc3RyYWlu
dHNGb3JJbmxpbmVDb250ZW50IEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQ29udGVu
dENvbnN0CiB7CiAgICAgYXV0byYgcm9vdFJlbmRlcmVyID0gdGhpcy0+cm9vdFJlbmRlcmVyKCk7
CiAgICAgYXV0byBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uID0gcm9vdFJlbmRlcmVyLnN0
eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOwotICAgIGF1dG8gd3JpdGluZ01vZGUgPSBy
b290UmVuZGVyZXIuc3R5bGUoKS53cml0aW5nTW9kZSgpOwotICAgIGF1dG8gYmxvY2tGbG93RGly
ZWN0aW9uID0gd3JpdGluZ01vZGVUb0Jsb2NrRmxvd0RpcmVjdGlvbih3cml0aW5nTW9kZSk7CiAK
LSAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyb290UmVuZGVyZXIsIGF2YWlsYWJs
ZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBibG9ja0Zsb3dEaXJlY3Rpb24s
IGZhbHNlLCBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0OjpObyk7Ci0gICAgYXV0byBib3JkZXIg
PSBsb2dpY2FsQm9yZGVyKHJvb3RSZW5kZXJlciwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlv
biwgYmxvY2tGbG93RGlyZWN0aW9uLCBmYWxzZSwgSXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dDo6
Tm8pOworICAgIGF1dG8gcGFkZGluZyA9IGxvZ2ljYWxQYWRkaW5nKHJvb3RSZW5kZXJlciwgYXZh
aWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGZhbHNlLCBJc1BhcnRP
ZkZvcm1hdHRpbmdDb250ZXh0OjpObyk7CisgICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVy
KHJvb3RSZW5kZXJlciwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgZmFsc2UsIElzUGFy
dE9mRm9ybWF0dGluZ0NvbnRleHQ6Ok5vKTsKICAgICBhdXRvIHNjcm9sbGJhclNpemUgPSBzY3Jv
bGxiYXJMb2dpY2FsU2l6ZShyb290UmVuZGVyZXIpOwogICAgIGF1dG8gc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCA9IHJvb3RSZW5kZXJlci5zaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCk7CiAKLSAgICBhdXRvIGNvbnRlbnRCb3hXaWR0aCA9IFdlYkNvcmU6Omlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IHJvb3RSZW5kZXJlci5jb250ZW50
V2lkdGgoKSA6IHJvb3RSZW5kZXJlci5jb250ZW50SGVpZ2h0KCk7CisgICAgYXV0byBjb250ZW50
Qm94V2lkdGggPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcm9vdFJlbmRlcmVyLmNvbnRl
bnRXaWR0aCgpIDogcm9vdFJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKTsKICAgICBhdXRvIGNvbnRl
bnRCb3hMZWZ0ID0gYm9yZGVyLmhvcml6b250YWwuc3RhcnQgKyBwYWRkaW5nLmhvcml6b250YWwu
c3RhcnQgKyAoaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiAmJiBzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0ID8gc2Nyb2xsYmFyU2l6ZS53aWR0aCgpIDogMF9sdSk7CiAgICAg
YXV0byBjb250ZW50Qm94VG9wID0gYm9yZGVyLnZlcnRpY2FsLmJlZm9yZSArIHBhZGRpbmcudmVy
dGljYWwuYmVmb3JlOwogCkBAIC00NjYsOCArNDQ2LDggQEAgTGF5b3V0OjpDb25zdHJhaW50c0Zv
cklubGluZUNvbnRlbnQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29u
c3QKICAgICAgICAgcm9vdEdlb21ldHJ5LnNldEJvcmRlcihib3JkZXIpOwogICAgICAgICByb290
R2VvbWV0cnkuc2V0SG9yaXpvbnRhbFNwYWNlRm9yU2Nyb2xsYmFyKHNjcm9sbGJhclNpemUud2lk
dGgoKSk7CiAgICAgICAgIHJvb3RHZW9tZXRyeS5zZXRWZXJ0aWNhbFNwYWNlRm9yU2Nyb2xsYmFy
KHNjcm9sbGJhclNpemUuaGVpZ2h0KCkpOwotICAgICAgICByb290R2VvbWV0cnkuc2V0SG9yaXpv
bnRhbE1hcmdpbihob3Jpem9udGFsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJs
ZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBXZWJDb3JlOjppc0hvcml6b250
YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkpKTsKLSAgICAgICAgcm9vdEdlb21ldHJ5LnNldFZl
cnRpY2FsTWFyZ2luKHZlcnRpY2FsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJs
ZVdpZHRoLCBibG9ja0Zsb3dEaXJlY3Rpb24pKTsKKyAgICAgICAgcm9vdEdlb21ldHJ5LnNldEhv
cml6b250YWxNYXJnaW4oaG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4ocm9vdFJlbmRlcmVyLCBhdmFp
bGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbikpOworICAgICAgICByb290
R2VvbWV0cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2luKHJvb3RSZW5k
ZXJlciwgYXZhaWxhYmxlV2lkdGgpKTsKICAgICB9OwogICAgIGNyZWF0ZVJvb3RHZW9tZXRyeUlm
TmVlZGVkKCk7CiAKQEAgLTUwOSw2ICs0ODksMTcgQEAgdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6
OnVwZGF0ZUJveEdlb21ldHJ5KGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBMYXlvdXQK
ICAgICAgICAgcmV0dXJuIHVwZGF0ZUlubGluZUJveERpbWVuc2lvbnMoKnJlbmRlcklubGluZSwg
YXZhaWxhYmxlV2lkdGgpOwogfQogCitib29sIEJveEdlb21ldHJ5VXBkYXRlcjo6aXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSBjb25zdAoreworICAgIGF1dG8gYmxvY2tGbG93RGlyZWN0aW9uID0g
dGhpcy0+YmxvY2tGbG93RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIGJsb2NrRmxvd0RpcmVjdGlv
biA9PSBGbG93RGlyZWN0aW9uOjpUb3BUb0JvdHRvbSB8fCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0g
Rmxvd0RpcmVjdGlvbjo6Qm90dG9tVG9Ub3A7Cit9CisKK0Zsb3dEaXJlY3Rpb24gQm94R2VvbWV0
cnlVcGRhdGVyOjpibG9ja0Zsb3dEaXJlY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiB3cml0
aW5nTW9kZVRvQmxvY2tGbG93RGlyZWN0aW9uKHJvb3RMYXlvdXRCb3goKS5zdHlsZSgpLndyaXRp
bmdNb2RlKCkpOworfQorCiBjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIEJveEdlb21ldHJ5VXBk
YXRlcjo6cm9vdExheW91dEJveCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICptX3Jvb3RMYXlvdXRC
b3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5l
L0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRh
dGVyLmgKaW5kZXggOTU3YjRmMTY3OGJjLi5jN2YzOWRhMmQ4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hH
ZW9tZXRyeVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
aW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2luY2x1ZGUgIkZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIklu
bGluZUZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5
LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgiCiAjaW5jbHVkZSAiTGF5
b3V0U3RhdGUuaCIKIApAQCAtNjEsNiArNjIsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0
ZUlubGluZUJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVySW5saW5lJiwgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgc3RkOjpvcHRpb25hbDxMYXlvdXQ6OkludHJpbnNp
Y1dpZHRoTW9kZT4gPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgc2V0TGlzdE1hcmtlck9mZnNl
dEZvck1hcmtlck91dHNpZGUoY29uc3QgUmVuZGVyTGlzdE1hcmtlciYpOwogCisgICAgZW51bSBj
bGFzcyBJc1BhcnRPZkZvcm1hdHRpbmdDb250ZXh0IDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICBM
YXlvdXQ6OkJveEdlb21ldHJ5OjpIb3Jpem9udGFsRWRnZXMgaG9yaXpvbnRhbExvZ2ljYWxNYXJn
aW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wg
cmV0YWluTWFyZ2luU3RhcnQgPSB0cnVlLCBib29sIHJldGFpbk1hcmdpbkVuZCA9IHRydWUpOwor
ICAgIExheW91dDo6Qm94R2VvbWV0cnk6OlZlcnRpY2FsRWRnZXMgdmVydGljYWxMb2dpY2FsTWFy
Z2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBhdmFpbGFibGVXaWR0aCk7CisgICAgTGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNh
bEJvcmRlcihjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYsIGJvb2wgaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiwgYm9vbCBpc0ludHJpbnNpY1dpZHRoTW9kZSwgSXNQYXJ0T2ZGb3JtYXR0
aW5nQ29udGV4dCA9IElzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQ6Ok5vLCBib29sIHJldGFpbkJv
cmRlclN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5Cb3JkZXJFbmQgPSB0cnVlKTsKKyAgICBMYXlv
dXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsUGFkZGluZyhjb25zdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIGJvb2wg
aXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgYm9vbCBpc0ludHJpbnNpY1dpZHRoTW9kZSwg
SXNQYXJ0T2ZGb3JtYXR0aW5nQ29udGV4dCA9IElzUGFydE9mRm9ybWF0dGluZ0NvbnRleHQ6Ok5v
LCBib29sIHJldGFpblBhZGRpbmdTdGFydCA9IHRydWUsIGJvb2wgcmV0YWluUGFkZGluZ0VuZCA9
IHRydWUpOworICAgIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gm
KTsKKworICAgIEZsb3dEaXJlY3Rpb24gYmxvY2tGbG93RGlyZWN0aW9uKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpIGNvbnN0OworCiAgICAgTGF5b3V0OjpMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiAqbV9sYXlvdXRTdGF0ZTsgfQogICAgIGNv
bnN0IExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gKm1f
bGF5b3V0U3RhdGU7IH0KICAgICBjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIHJvb3RMYXlvdXRC
b3goKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472667</attachid>
            <date>2024-09-24 12:11:33 -0700</date>
            <delta_ts>2024-09-24 15:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-280090-20240924121133.patch</filename>
            <type>text/plain</type>
            <size>19834</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA3ODdjZjY2NTU5OTMyMzk1YzlkNmFlNDZjNTY0ZmZmN2MzYTg2YmU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjQgU2VwIDIwMjQgMTI6MDk6MjEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gVXNlIGJsb2NrIGZsb3cgYW5kIHdyaXRpbmcgbW9kZSBjb25zaXN0ZW50bHkgaW4KIEJveEdl
b21ldHJ5VXBkYXRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjgw
MDkwCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClJvb3QgY29udGFpbmVyIGRlZmluZXMg
Ym90aCB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgZmxvdyBkaXJlY3Rpb24gKHdoaWNoIGlzIGRl
cml2ZWQgZnJvbSB0aGUgd3JpdGluZyBtb2RlKS4gTGV0J3Mgbm90IGNvbnN1bHQgc2VlbWluZ2x5
IHJhbmRvbSBwYXJlbnQgYm94ZXMgZm9yIHRoZXNlIHByb3BlcnRpZXMuCihOb3RlIHRoYXQgaW5s
aW5lIGRpcmVjdGlvbiBtYXkgY2hhbmdlIHdpdGhpbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGl0
c2VsZiBlLmcuIDxkaXY+bHRyPHNwYW4gc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5ydGw8L3NwYW4+
bHRyPC9kaXY+KQoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xh
eW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6Omhvcml6b250YWxMb2dpY2FsTWFyZ2luKToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnZlcnRpY2Fs
TG9naWNhbE1hcmdpbik6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlV
cGRhdGVyOjpsb2dpY2FsQm9yZGVyKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hH
ZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxQYWRkaW5nKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0
aW9uOjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
OjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMpOgooV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94
RGltZW5zaW9ucyk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRh
dGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3RyYWludHMpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlR2VvbWV0cnlBZnRlckxheW91dCk6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRhdGVyOjppc0hvcml6
b250YWxXcml0aW5nTW9kZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94
R2VvbWV0cnlVcGRhdGVyOjpibG9ja0Zsb3dEaXJlY3Rpb24gY29uc3QpOgooV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246Omhvcml6b250YWxMb2dpY2FsTWFyZ2luKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4pOiBEZWxldGVkLgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxvZ2ljYWxCb3JkZXIpOiBEZWxldGVkLgooV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxvZ2ljYWxQYWRkaW5nKTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94
R2VvbWV0cnlVcGRhdGVyLmg6Ci0tLQogLi4uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlV
cGRhdGVyLmNwcCAgIHwgNzAgKysrKysrKysrKy0tLS0tLS0tLQogLi4uL0xheW91dEludGVncmF0
aW9uQm94R2VvbWV0cnlVcGRhdGVyLmggICAgIHwgIDkgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ1
IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggOWM2OGQxNjMyNGE0
Li4zZDEzNDg5NWZiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRp
b25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJG
b3JtYXR0aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVXYWxrZXIuaCIKLSNpbmNs
dWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIlJlbmRlckF0dGFjaG1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hJbmxpbmVz
LmgiCkBAIC0xODUsMTEgKzE4NCwxMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgY29udGVu
dExvZ2ljYWxIZWlnaHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJCb3gmIHJlbmRlcgogICAgIHJl
dHVybiByZW5kZXJlci5wYXJlbnQoKS0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gcmVuZGVyZXIuY29udGVudEhlaWdodCgpIDogcmVuZGVyZXIuY29udGVudFdpZHRoKCk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhv
cml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJl
ciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRU
b1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlLCBib29s
IHJldGFpbk1hcmdpblN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKQor
TGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6
aG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRl
cmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgcmV0YWluTWFyZ2luU3RhcnQsIGJvb2wgcmV0
YWluTWFyZ2luRW5kKQogewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKIAot
ICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSkgeworICAgIGlmIChpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKSB7CiAgICAgICAgIGF1dG8gbG9naWNhbExlZnRWYWx1ZSA9IHJldGFpbk1h
cmdpblN0YXJ0ID8gdXNlZFZhbHVlT3JaZXJvKGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24g
PyBzdHlsZS5tYXJnaW5MZWZ0KCkgOiBzdHlsZS5tYXJnaW5SaWdodCgpLCBhdmFpbGFibGVXaWR0
aCkgOiAwX2x1OwogICAgICAgICBhdXRvIGxvZ2ljYWxSaWdodFZhbHVlID0gcmV0YWluTWFyZ2lu
RW5kID8gdXNlZFZhbHVlT3JaZXJvKGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24gPyBzdHls
ZS5tYXJnaW5SaWdodCgpIDogc3R5bGUubWFyZ2luTGVmdCgpLCBhdmFpbGFibGVXaWR0aCkgOiAw
X2x1OwogCkBAIC0yMDIsMTAgKzIwMSwxMCBAQCBzdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2Vv
bWV0cnk6Okhvcml6b250YWxFZGdlcyBob3Jpem9udGFsTG9naWNhbE1hcmdpbihjb25zdAogICAg
IHJldHVybiB7IGxvZ2ljYWxMZWZ0VmFsdWUsIGxvZ2ljYWxSaWdodFZhbHVlIH07CiB9CiAKLXN0
YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExv
Z2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxv
d0RpcmVjdGlvbikKK0xheW91dDo6Qm94R2VvbWV0cnk6OlZlcnRpY2FsRWRnZXMgQm94R2VvbWV0
cnlVcGRhdGVyOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoKQog
ewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKLSAgICBzd2l0Y2ggKGJsb2Nr
Rmxvd0RpcmVjdGlvbikgeworICAgIHN3aXRjaCAoYmxvY2tGbG93RGlyZWN0aW9uKCkpIHsKICAg
ICBjYXNlIEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tOgogICAgIGNhc2UgRmxvd0RpcmVjdGlv
bjo6Qm90dG9tVG9Ub3A6CiAgICAgICAgIHJldHVybiB7IHVzZWRWYWx1ZU9yWmVybyhzdHlsZS5t
YXJnaW5Ub3AoKSwgYXZhaWxhYmxlV2lkdGgpLCB1c2VkVmFsdWVPclplcm8oc3R5bGUubWFyZ2lu
Qm90dG9tKCksIGF2YWlsYWJsZVdpZHRoKSB9OwpAQCAtMjE4LDcgKzIxNyw3IEBAIHN0YXRpYyBp
bmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExvZ2ljYWxN
YXJnaW4oY29uc3QgUmVuCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2Vv
bWV0cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJl
bmRlcmVyLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24g
YmxvY2tGbG93RGlyZWN0aW9uLCBib29sIGlzSW50cmluc2ljV2lkdGhNb2RlID0gZmFsc2UsIGJv
b2wgcmV0YWluQm9yZGVyU3RhcnQgPSB0cnVlLCBib29sIHJldGFpbkJvcmRlckVuZCA9IHRydWUp
CitMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBCb3hHZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxC
b3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBib29sIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUsIGJvb2wgcmV0
YWluQm9yZGVyU3RhcnQsIGJvb2wgcmV0YWluQm9yZGVyRW5kKQogewogICAgIGF1dG8mIHN0eWxl
ID0gcmVuZGVyZXIuc3R5bGUoKTsKIApAQCAtMjMwLDcgKzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbEJvcmRlcihjb25zdCBSZW5kZXJCb3hN
b2RlbE9iamVjCiAgICAgaWYgKCFpc0ludHJpbnNpY1dpZHRoTW9kZSkKICAgICAgICAgYWRqdXN0
Qm9yZGVyRm9yVGFibGVBbmRGaWVsZHNldChyZW5kZXJlciwgYm9yZGVyTGVmdCwgYm9yZGVyUmln
aHQsIGJvcmRlclRvcCwgYm9yZGVyQm90dG9tKTsKIAotICAgIGlmIChibG9ja0Zsb3dEaXJlY3Rp
b24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09
IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CisgICAgaWYgKGJsb2NrRmxvd0RpcmVjdGlv
bigpID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbigp
ID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CiAgICAgICAgIGF1dG8gYm9yZGVyTG9n
aWNhbExlZnQgPSByZXRhaW5Cb3JkZXJTdGFydCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rp
b24gPyBib3JkZXJMZWZ0IDogYm9yZGVyUmlnaHQgOiAwX2x1OwogICAgICAgICBhdXRvIGJvcmRl
ckxvZ2ljYWxSaWdodCA9IHJldGFpbkJvcmRlckVuZCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJl
Y3Rpb24gPyBib3JkZXJSaWdodCA6IGJvcmRlckxlZnQgOiAwX2x1OwogICAgICAgICByZXR1cm4g
eyB7IGJvcmRlckxvZ2ljYWxMZWZ0LCBib3JkZXJMb2dpY2FsUmlnaHQgfSwgeyBib3JkZXJUb3As
IGJvcmRlckJvdHRvbSB9IH07CkBAIC0yNDEsNyArMjQwLDcgQEAgc3RhdGljIGlubGluZSBMYXlv
dXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVs
T2JqZWMKICAgICByZXR1cm4geyB7IGJvcmRlckxvZ2ljYWxMZWZ0LCBib3JkZXJMb2dpY2FsUmln
aHQgfSwgeyBib3JkZXJSaWdodCwgYm9yZGVyTGVmdCB9IH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94
TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJs
ZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24g
YmxvY2tGbG93RGlyZWN0aW9uLCBib29sIGlzSW50cmluc2ljV2lkdGhNb2RlID0gZmFsc2UsIGJv
b2wgcmV0YWluUGFkZGluZ1N0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5QYWRkaW5nRW5kID0gdHJ1
ZSkKK0xheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6bG9naWNh
bFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVE
aXJlY3Rpb24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUsIGJvb2wgcmV0YWluUGFkZGluZ1N0
YXJ0LCBib29sIHJldGFpblBhZGRpbmdFbmQpCiB7CiAgICAgYXV0byYgc3R5bGUgPSByZW5kZXJl
ci5zdHlsZSgpOwogCkBAIC0yNTEsNyArMjUwLDcgQEAgc3RhdGljIGlubGluZSBMYXlvdXQ6OkJv
eEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsUGFkZGluZyhjb25zdCBSZW5kZXJCb3hNb2RlbE9iamUK
ICAgICBhdXRvIHBhZGRpbmdCb3R0b20gPSB1c2VkVmFsdWVPclplcm8oc3R5bGUucGFkZGluZ0Jv
dHRvbSgpLCBhdmFpbGFibGVXaWR0aCk7CiAgICAgYXV0byBbaW50cmluc2ljUGFkZGluZ0JlZm9y
ZSwgaW50cmluc2ljUGFkZGluZ0FmdGVyXSA9ICFpc0ludHJpbnNpY1dpZHRoTW9kZSA/IGludHJp
bnNpY1BhZGRpbmdGb3JUYWJsZShyZW5kZXJlcikgOiBzdGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5
b3V0VW5pdD4oKTsKIAotICAgIGlmIChibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlv
bjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJv
dHRvbVRvVG9wKSB7CisgICAgaWYgKGJsb2NrRmxvd0RpcmVjdGlvbigpID09IEZsb3dEaXJlY3Rp
b246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246
OkJvdHRvbVRvVG9wKSB7CiAgICAgICAgIGF1dG8gcGFkZGluZ0xvZ2ljYWxMZWZ0ID0gcmV0YWlu
UGFkZGluZ1N0YXJ0ID8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA/IHBhZGRpbmdMZWZ0
IDogcGFkZGluZ1JpZ2h0IDogMF9sdTsKICAgICAgICAgYXV0byBwYWRkaW5nTG9naWNhbFJpZ2h0
ID0gcmV0YWluUGFkZGluZ0VuZCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24gPyBwYWRk
aW5nUmlnaHQgOiBwYWRkaW5nTGVmdCA6IDBfbHU7CiAgICAgICAgIHJldHVybiB7IHsgcGFkZGlu
Z0xvZ2ljYWxMZWZ0LCBwYWRkaW5nTG9naWNhbFJpZ2h0IH0sIHsgcGFkZGluZ1RvcCArIGludHJp
bnNpY1BhZGRpbmdCZWZvcmUsIHBhZGRpbmdCb3R0b20gKyBpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIg
fSB9OwpAQCAtMjcyLDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0U2l6ZSBzY3JvbGxi
YXJMb2dpY2FsU2l6ZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyKQogICAgIHJldHVybiB7IGhv
cml6b250YWxTcGFjZVJlc2VydmVkRm9yU2Nyb2xsYmFyLCB2ZXJ0aWNhbFNwYWNlUmVzZXJ2ZWRG
b3JTY3JvbGxiYXIgfTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFz
ZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0
SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgRmxvd0RpcmVj
dGlvbiBibG9ja0Zsb3dEaXJlY3Rpb24pCiB7CiAgICAgYXV0byBoYXNOb25TeW50aGV0aWNCYXNl
bGluZSA9IFsmXSB7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJMaXN0TWFya2VyID0gZHluYW1p
Y0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KHJlbmRlckJveCkpCkBAIC0zMDYsNyArMzA1LDYg
QEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVy
Qm94JiByZW5kZXJCb3gpCiAgICAgaWYgKCFoYXNOb25TeW50aGV0aWNCYXNlbGluZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlvbiA9IHdyaXRpbmdNb2Rl
VG9CbG9ja0Zsb3dEaXJlY3Rpb24ocmVuZGVyQm94LnBhcmVudCgpLT5zdHlsZSgpLndyaXRpbmdN
b2RlKCkpOwogICAgIGF1dG8gYmFzZWxpbmUgPSByZW5kZXJCb3guYmFzZWxpbmVQb3NpdGlvbihB
bHBoYWJldGljQmFzZWxpbmUsIGZhbHNlIC8qIGZpcnN0TGluZSAqLywgYmxvY2tGbG93RGlyZWN0
aW9uID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbiA9
PSBGbG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcCA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxM
aW5lLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpOwogICAgIGNvbnN0X2Nhc3Q8TGF5b3V0OjpF
bGVtZW50Qm94Jj4oKnJlbmRlckJveC5sYXlvdXRCb3goKSkuc2V0QmFzZWxpbmVGb3JJbnRlZ3Jh
dGlvbihiYXNlbGluZSk7CiB9CkBAIC0zMTUsMTMgKzMxMywxMSBAQCB2b2lkIEJveEdlb21ldHJ5
VXBkYXRlcjo6dXBkYXRlTGF5b3V0Qm94RGltZW5zaW9ucyhjb25zdCBSZW5kZXJCb3gmIHJlbmRl
ckJveCwgcwogewogICAgIGF1dG8mIGxheW91dEJveCA9IGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVt
ZW50Qm94Jj4oKnJlbmRlckJveC5sYXlvdXRCb3goKSk7CiAgICAgYXV0byBpc0xlZnRUb1JpZ2h0
SW5saW5lRGlyZWN0aW9uID0gcmVuZGVyQm94LnBhcmVudCgpLT5zdHlsZSgpLmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKTsKLSAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlvbiA9IHdyaXRpbmdNb2Rl
VG9CbG9ja0Zsb3dEaXJlY3Rpb24ocmVuZGVyQm94LnBhcmVudCgpLT5zdHlsZSgpLndyaXRpbmdN
b2RlKCkpOwotICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPSBibG9ja0Zsb3dEaXJl
Y3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9u
ID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wOwogCiAgICAgYXV0byYgYm94R2VvbWV0cnkg
PSBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGxheW91dEJveCk7Ci0gICAgYXV0
byBpbmxpbmVNYXJnaW4gPSBob3Jpem9udGFsTG9naWNhbE1hcmdpbihyZW5kZXJCb3gsIGF2YWls
YWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBpc0hvcml6b250YWxXcml0
aW5nTW9kZSk7Ci0gICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJlbmRlckJveCwgaXNM
ZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uLCBpbnRyaW5zaWNX
aWR0aE1vZGUuaGFzX3ZhbHVlKCkpOwotICAgIGF1dG8gcGFkZGluZyA9IGxvZ2ljYWxQYWRkaW5n
KHJlbmRlckJveCwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24s
IGJsb2NrRmxvd0RpcmVjdGlvbiwgaW50cmluc2ljV2lkdGhNb2RlLmhhc192YWx1ZSgpKTsKKyAg
ICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6b250YWxMb2dpY2FsTWFyZ2luKHJlbmRlckJveCwg
YXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24pOworICAgIGF1dG8g
Ym9yZGVyID0gbG9naWNhbEJvcmRlcihyZW5kZXJCb3gsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJl
Y3Rpb24sIGludHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFsdWUoKSk7CisgICAgYXV0byBwYWRkaW5n
ID0gbG9naWNhbFBhZGRpbmcocmVuZGVyQm94LCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdo
dElubGluZURpcmVjdGlvbiwgaW50cmluc2ljV2lkdGhNb2RlLmhhc192YWx1ZSgpKTsKICAgICBh
dXRvIHNjcm9sbGJhclNpemUgPSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShyZW5kZXJCb3gpOwogCiAg
ICAgaWYgKGludHJpbnNpY1dpZHRoTW9kZSkgewpAQCAtMzQzLDcgKzMzOSw3IEBAIHZvaWQgQm94
R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVMYXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyQm94LCBzCiAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJveFdpZHRoKGNvbnRl
bnRMb2dpY2FsV2lkdGhGb3JSZW5kZXJlcihyZW5kZXJCb3gpKTsKICAgICBib3hHZW9tZXRyeS5z
ZXRDb250ZW50Qm94SGVpZ2h0KGNvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yUmVuZGVyZXIocmVuZGVy
Qm94KSk7CiAKLSAgICBib3hHZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2lj
YWxNYXJnaW4ocmVuZGVyQm94LCBhdmFpbGFibGVXaWR0aCwgYmxvY2tGbG93RGlyZWN0aW9uKSk7
CisgICAgYm94R2VvbWV0cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2lu
KHJlbmRlckJveCwgYXZhaWxhYmxlV2lkdGgpKTsKICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9u
dGFsTWFyZ2luKGlubGluZU1hcmdpbik7CiAgICAgYm94R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRl
cik7CiAgICAgYm94R2VvbWV0cnkuc2V0UGFkZGluZyhwYWRkaW5nKTsKQEAgLTM2NCwxMiArMzYw
LDEwIEBAIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVCb3hEaW1lbnNpb25z
KGNvbnN0IFJlbmRlcklubGluZSYgcmVuZGVySW5sCiAgICAgYXV0byBzaG91bGROb3RSZXRhaW5C
b3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kID0gIXJlbmRlcklubGluZS5pc0NvbnRpbnVhdGlvbigp
ICYmIHJlbmRlcklubGluZS5pbmxpbmVDb250aW51YXRpb24oKTsKIAogICAgIGF1dG8gaXNMZWZ0
VG9SaWdodElubGluZURpcmVjdGlvbiA9IHJlbmRlcklubGluZS5zdHlsZSgpLmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKTsKLSAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlvbiA9IHdyaXRpbmdNb2Rl
VG9CbG9ja0Zsb3dEaXJlY3Rpb24ocmVuZGVySW5saW5lLnN0eWxlKCkud3JpdGluZ01vZGUoKSk7
Ci0gICAgYXV0byBpc0hvcml6b250YWxXcml0aW5nTW9kZSA9IGJsb2NrRmxvd0RpcmVjdGlvbiA9
PSBGbG93RGlyZWN0aW9uOjpUb3BUb0JvdHRvbSB8fCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxv
d0RpcmVjdGlvbjo6Qm90dG9tVG9Ub3A7CiAKLSAgICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6
b250YWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGluZSwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlLCAhc2hvdWxkTm90
UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVy
UGFkZGluZ0FuZE1hcmdpbkVuZCk7Ci0gICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJl
bmRlcklubGluZSwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0
aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3ZhbHVlKCksICFzaG91bGROb3RSZXRhaW5Cb3Jk
ZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5k
TWFyZ2luRW5kKTsKLSAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJJbmxp
bmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBibG9ja0Zs
b3dEaXJlY3Rpb24sIGludHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFsdWUoKSwgIXNob3VsZE5vdFJl
dGFpbkJvcmRlclBhZGRpbmdBbmRNYXJnaW5TdGFydCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBh
ZGRpbmdBbmRNYXJnaW5FbmQpOworICAgIGF1dG8gaW5saW5lTWFyZ2luID0gaG9yaXpvbnRhbExv
Z2ljYWxNYXJnaW4ocmVuZGVySW5saW5lLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRpbmdBbmRNYXJnaW5TdGFy
dCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRpbmdBbmRNYXJnaW5FbmQpOworICAgIGF1dG8g
Ym9yZGVyID0gbG9naWNhbEJvcmRlcihyZW5kZXJJbmxpbmUsIGlzTGVmdFRvUmlnaHRJbmxpbmVE
aXJlY3Rpb24sIGludHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFsdWUoKSwgIXNob3VsZE5vdFJldGFp
bkJvcmRlclBhZGRpbmdBbmRNYXJnaW5TdGFydCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRp
bmdBbmRNYXJnaW5FbmQpOworICAgIGF1dG8gcGFkZGluZyA9IGxvZ2ljYWxQYWRkaW5nKHJlbmRl
cklubGluZSwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlu
dHJpbnNpY1dpZHRoTW9kZS5oYXNfdmFsdWUoKSwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRp
bmdBbmRNYXJnaW5TdGFydCwgIXNob3VsZE5vdFJldGFpbkJvcmRlclBhZGRpbmdBbmRNYXJnaW5F
bmQpOwogCiAgICAgaWYgKGludHJpbnNpY1dpZHRoTW9kZSkgewogICAgICAgICBib3hHZW9tZXRy
eS5zZXRIb3Jpem9udGFsTWFyZ2luKGlubGluZU1hcmdpbik7CkBAIC0zNzksNyArMzczLDcgQEAg
dm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUlubGluZUJveERpbWVuc2lvbnMoY29uc3Qg
UmVuZGVySW5saW5lJiByZW5kZXJJbmwKICAgICB9CiAKICAgICBib3hHZW9tZXRyeS5zZXRIb3Jp
em9udGFsTWFyZ2luKGlubGluZU1hcmdpbik7Ci0gICAgYm94R2VvbWV0cnkuc2V0VmVydGljYWxN
YXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGluZSwgYXZhaWxhYmxlV2lkdGgs
IGJsb2NrRmxvd0RpcmVjdGlvbikpOworICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2lu
KHZlcnRpY2FsTG9naWNhbE1hcmdpbihyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoKSk7CiAg
ICAgYm94R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRlcik7CiAgICAgYm94R2VvbWV0cnkuc2V0UGFk
ZGluZyhwYWRkaW5nKTsKIH0KQEAgLTQyNiwxMiArNDIwLDEwIEBAIExheW91dDo6Q29uc3RyYWlu
dHNGb3JJbmxpbmVDb250ZW50IEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQ29udGVu
dENvbnN0CiAgICAgYXV0byYgcm9vdFJlbmRlcmVyID0gdGhpcy0+cm9vdFJlbmRlcmVyKCk7CiAg
ICAgYXV0byYgc3R5bGUgPSByb290UmVuZGVyZXIuc3R5bGUoKTsKICAgICBhdXRvIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24gPSBzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7Ci0g
ICAgYXV0byBpc0hvcml6b250YWxXcml0aW5nTW9kZSA9IHN0eWxlLmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCk7Ci0gICAgYXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSBzdHlsZS5ibG9ja0Zsb3dE
aXJlY3Rpb24oKTsKIAotICAgIGF1dG8gcGFkZGluZyA9IGxvZ2ljYWxQYWRkaW5nKHJvb3RSZW5k
ZXJlciwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2Nr
Rmxvd0RpcmVjdGlvbik7Ci0gICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJvb3RSZW5k
ZXJlciwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uKTsK
LSAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlICYmICFzdHlsZS5pc0ZsaXBwZWRCbG9j
a3NXcml0aW5nTW9kZSgpKSB7CisgICAgYXV0byBwYWRkaW5nID0gbG9naWNhbFBhZGRpbmcocm9v
dFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbik7
CisgICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJvb3RSZW5kZXJlciwgaXNMZWZ0VG9S
aWdodElubGluZURpcmVjdGlvbik7CisgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ICYmICFzdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSB7CiAgICAgICAgIHBhZGRp
bmcudmVydGljYWwgPSB7IHBhZGRpbmcudmVydGljYWwuYWZ0ZXIsIHBhZGRpbmcudmVydGljYWwu
YmVmb3JlIH07CiAgICAgICAgIGJvcmRlci52ZXJ0aWNhbCA9IHsgYm9yZGVyLnZlcnRpY2FsLmFm
dGVyLCBib3JkZXIudmVydGljYWwuYmVmb3JlIH07CiAgICAgfQpAQCAtNDM5LDcgKzQzMSw3IEBA
IExheW91dDo6Q29uc3RyYWludHNGb3JJbmxpbmVDb250ZW50IEJveEdlb21ldHJ5VXBkYXRlcjo6
dXBkYXRlSW5saW5lQ29udGVudENvbnN0CiAgICAgYXV0byBzY3JvbGxiYXJTaXplID0gc2Nyb2xs
YmFyTG9naWNhbFNpemUocm9vdFJlbmRlcmVyKTsKICAgICBhdXRvIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQgPSByb290UmVuZGVyZXIuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpOwogCi0gICAgYXV0byBjb250ZW50Qm94V2lkdGggPSBpc0hvcml6b250YWxX
cml0aW5nTW9kZSA/IHJvb3RSZW5kZXJlci5jb250ZW50V2lkdGgoKSA6IHJvb3RSZW5kZXJlci5j
b250ZW50SGVpZ2h0KCk7CisgICAgYXV0byBjb250ZW50Qm94V2lkdGggPSBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gcm9vdFJlbmRlcmVyLmNvbnRlbnRXaWR0aCgpIDogcm9vdFJlbmRlcmVy
LmNvbnRlbnRIZWlnaHQoKTsKICAgICBhdXRvIGNvbnRlbnRCb3hMZWZ0ID0gYm9yZGVyLmhvcml6
b250YWwuc3RhcnQgKyBwYWRkaW5nLmhvcml6b250YWwuc3RhcnQgKyAoaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiAmJiBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0ID8gc2Ny
b2xsYmFyU2l6ZS53aWR0aCgpIDogMF9sdSk7CiAgICAgYXV0byBjb250ZW50Qm94VG9wID0gYm9y
ZGVyLnZlcnRpY2FsLmJlZm9yZSArIHBhZGRpbmcudmVydGljYWwuYmVmb3JlOwogCkBAIC00NTUs
OCArNDQ3LDggQEAgTGF5b3V0OjpDb25zdHJhaW50c0ZvcklubGluZUNvbnRlbnQgQm94R2VvbWV0
cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3QKICAgICAgICAgcm9vdEdlb21ldHJ5
LnNldEJvcmRlcihib3JkZXIpOwogICAgICAgICByb290R2VvbWV0cnkuc2V0SG9yaXpvbnRhbFNw
YWNlRm9yU2Nyb2xsYmFyKHNjcm9sbGJhclNpemUud2lkdGgoKSk7CiAgICAgICAgIHJvb3RHZW9t
ZXRyeS5zZXRWZXJ0aWNhbFNwYWNlRm9yU2Nyb2xsYmFyKHNjcm9sbGJhclNpemUuaGVpZ2h0KCkp
OwotICAgICAgICByb290R2VvbWV0cnkuc2V0SG9yaXpvbnRhbE1hcmdpbihob3Jpem9udGFsTG9n
aWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5s
aW5lRGlyZWN0aW9uLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSkpOwotICAgICAgICByb290R2Vv
bWV0cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2luKHJvb3RSZW5kZXJl
ciwgYXZhaWxhYmxlV2lkdGgsIGJsb2NrRmxvd0RpcmVjdGlvbikpOworICAgICAgICByb290R2Vv
bWV0cnkuc2V0SG9yaXpvbnRhbE1hcmdpbihob3Jpem9udGFsTG9naWNhbE1hcmdpbihyb290UmVu
ZGVyZXIsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKSk7Cisg
ICAgICAgIHJvb3RHZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJn
aW4ocm9vdFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCkpOwogICAgIH07CiAgICAgY3JlYXRlUm9v
dEdlb21ldHJ5SWZOZWVkZWQoKTsKIApAQCAtNDc3LDExICs0NjksMTEgQEAgdm9pZCBCb3hHZW9t
ZXRyeVVwZGF0ZXI6OnVwZGF0ZUdlb21ldHJ5QWZ0ZXJMYXlvdXQoY29uc3QgTGF5b3V0OjpFbGVt
ZW50Qm94JiBsYXkKIAogICAgIGF1dG8gaW50ZWdyYXRpb25BZGp1c3RtZW50cyA9IFsmXSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgZXZlbnR1YWxseSBiZSBhbGwgYWJzb3JiZWQg
YnkgTEZDIGxheW91dC4KLSAgICAgICAgc2V0SW50ZWdyYXRpb25CYXNlbGluZSgqcmVuZGVyQm94
KTsKKyAgICAgICAgc2V0SW50ZWdyYXRpb25CYXNlbGluZSgqcmVuZGVyQm94LCBibG9ja0Zsb3dE
aXJlY3Rpb24oKSk7CiAKICAgICAgICAgaWYgKGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5h
bWljRG93bmNhc3Q8UmVuZGVyTGlzdE1hcmtlcj4oKnJlbmRlckJveCkpIHsKICAgICAgICAgICAg
IGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnBhcmVudCgpLnN0eWxlKCk7Ci0gICAgICAgICAgICBi
b3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGhvcml6b250YWxMb2dpY2FsTWFyZ2luKCpy
ZW5kZXJMaXN0TWFya2VyLCB7IH0sIHN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSwgc3R5
bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkpOworICAgICAgICAgICAgYm94R2VvbWV0cnku
c2V0SG9yaXpvbnRhbE1hcmdpbihob3Jpem9udGFsTG9naWNhbE1hcmdpbigqcmVuZGVyTGlzdE1h
cmtlciwgeyB9LCBzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpKTsKICAgICAgICAgICAg
IGlmICghcmVuZGVyTGlzdE1hcmtlci0+aXNJbnNpZGUoKSkKICAgICAgICAgICAgICAgICBzZXRM
aXN0TWFya2VyT2Zmc2V0Rm9yTWFya2VyT3V0c2lkZSgqcmVuZGVyTGlzdE1hcmtlcik7CiAgICAg
ICAgIH0KQEAgLTQ4OSw3ICs0ODEsNyBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRl
R2VvbWV0cnlBZnRlckxheW91dChjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIGxheQogICAgICAg
ICBpZiAoaXM8UmVuZGVyVGFibGU+KCpyZW5kZXJCb3gpKSB7CiAgICAgICAgICAgICAvLyBUYWJs
ZXMgaGF2ZSB0aGVpciBzcGVjaWFsIGNvbGxhcHNlZCBib3JkZXIgdmFsdWVzICh1cGRhdGVkIGF0
IGxheW91dCkuCiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5wYXJlbnQoKS5z
dHlsZSgpOwotICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0Qm9yZGVyKGxvZ2ljYWxCb3JkZXIo
KnJlbmRlckJveCwgc3R5bGUuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpLCBzdHlsZS5ibG9ja0Zs
b3dEaXJlY3Rpb24oKSwgZmFsc2UpKTsKKyAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldEJvcmRl
cihsb2dpY2FsQm9yZGVyKCpyZW5kZXJCb3gsIHN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSkpOwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBuZWVkc0Z1bGxHZW9tZXRyeVVwZGF0ZSA9
IFsmXSB7CkBAIC01NDEsNiArNTMzLDE2IEBAIGNvbnN0IFJlbmRlckJsb2NrJiBCb3hHZW9tZXRy
eVVwZGF0ZXI6OnJvb3RSZW5kZXJlcigpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRl
ckJsb2NrPigqcm9vdExheW91dEJveCgpLnJlbmRlcmVyRm9ySW50ZWdyYXRpb24oKSk7CiB9CiAK
K2Jvb2wgQm94R2VvbWV0cnlVcGRhdGVyOjppc0hvcml6b250YWxXcml0aW5nTW9kZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHJvb3RSZW5kZXJlcigpLnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKTsKK30KKworRmxvd0RpcmVjdGlvbiBCb3hHZW9tZXRyeVVwZGF0ZXI6OmJsb2NrRmxv
d0RpcmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJvb3RSZW5kZXJlcigpLnN0eWxlKCku
YmxvY2tGbG93RGlyZWN0aW9uKCk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21l
dHJ5VXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5oCmluZGV4IDE2ZTcxNDM0MDMzNC4u
OWVjYTBkNGJjMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkJv
eEdlb21ldHJ5VXBkYXRlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJGb3JtYXR0
aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nQ29uc3RyYWludHMu
aCIKKyNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dEludGVn
cmF0aW9uQm94VHJlZS5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAKQEAgLTYxLDYgKzYy
LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVJbmxpbmVCb3hEaW1lbnNpb25zKGNvbnN0
IFJlbmRlcklubGluZSYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJbnRyaW5zaWNXaWR0aE1vZGU+ID0gc3RkOjpudWxsb3B0
KTsKICAgICB2b2lkIHNldExpc3RNYXJrZXJPZmZzZXRGb3JNYXJrZXJPdXRzaWRlKGNvbnN0IFJl
bmRlckxpc3RNYXJrZXImKTsKIAorICAgIExheW91dDo6Qm94R2VvbWV0cnk6Okhvcml6b250YWxF
ZGdlcyBob3Jpem9udGFsTG9naWNhbE1hcmdpbihjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIGJvb2wgaXNMZWZ0VG9S
aWdodElubGluZURpcmVjdGlvbiwgYm9vbCByZXRhaW5NYXJnaW5TdGFydCA9IHRydWUsIGJvb2wg
cmV0YWluTWFyZ2luRW5kID0gdHJ1ZSk7CisgICAgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGlj
YWxFZGdlcyB2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3Qm
LCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoKTsKKyAgICBMYXlvdXQ6
OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0JiwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIGlzSW50cmluc2lj
V2lkdGhNb2RlID0gZmFsc2UsIGJvb2wgcmV0YWluQm9yZGVyU3RhcnQgPSB0cnVlLCBib29sIHJl
dGFpbkJvcmRlckVuZCA9IHRydWUpOworICAgIExheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIGxv
Z2ljYWxQYWRkaW5nKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0Jiwgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0
aW9uLCBib29sIGlzSW50cmluc2ljV2lkdGhNb2RlID0gZmFsc2UsIGJvb2wgcmV0YWluUGFkZGlu
Z1N0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5QYWRkaW5nRW5kID0gdHJ1ZSk7CisKKyAgICBGbG93
RGlyZWN0aW9uIGJsb2NrRmxvd0RpcmVjdGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSBjb25zdDsKKwogICAgIExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91
dFN0YXRlKCkgeyByZXR1cm4gKm1fbGF5b3V0U3RhdGU7IH0KICAgICBjb25zdCBMYXlvdXQ6Okxh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9
CiAgICAgY29uc3QgTGF5b3V0OjpFbGVtZW50Qm94JiByb290TGF5b3V0Qm94KCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472672</attachid>
            <date>2024-09-24 15:12:43 -0700</date>
            <delta_ts>2024-09-25 07:06:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-280090-20240924151243.patch</filename>
            <type>text/plain</type>
            <size>19933</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiNDAwZWQwZGNkM2ZlZTllNDE1MjdmYTlmN2E0ZGQ2Nzg2N2RkNWQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjQgU2VwIDIwMjQgMTU6MDg6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gVXNlIGJsb2NrIGZsb3cgYW5kIHdyaXRpbmcgbW9kZSBjb25zaXN0ZW50bHkgaW4KIEJveEdl
b21ldHJ5VXBkYXRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjgw
MDkwCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClJvb3QgY29udGFpbmVyIGRlZmluZXMg
Ym90aCB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgZmxvdyBkaXJlY3Rpb24gKHdoaWNoIGlzIGRl
cml2ZWQgZnJvbSB0aGUgd3JpdGluZyBtb2RlKS4gTGV0J3Mgbm90IGNvbnN1bHQgc2VlbWluZ2x5
IHJhbmRvbSBwYXJlbnQgYm94ZXMgZm9yIHRoZXNlIHByb3BlcnRpZXMuCihOb3RlIHRoYXQgaW5s
aW5lIGRpcmVjdGlvbiBtYXkgY2hhbmdlIHdpdGhpbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGl0
c2VsZiBlLmcuIDxkaXY+bHRyPHNwYW4gc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5ydGw8L3NwYW4+
bHRyPC9kaXY+KQoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xh
eW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6Omhvcml6b250YWxMb2dpY2FsTWFyZ2luKToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnZlcnRpY2Fs
TG9naWNhbE1hcmdpbik6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlV
cGRhdGVyOjpsb2dpY2FsQm9yZGVyKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hH
ZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxQYWRkaW5nKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0
aW9uOjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
OjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMpOgooV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94
RGltZW5zaW9ucyk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRh
dGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3RyYWludHMpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlR2VvbWV0cnlBZnRlckxheW91dCk6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRhdGVyOjppc0hvcml6
b250YWxXcml0aW5nTW9kZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94
R2VvbWV0cnlVcGRhdGVyOjpibG9ja0Zsb3dEaXJlY3Rpb24gY29uc3QpOgooV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246Omhvcml6b250YWxMb2dpY2FsTWFyZ2luKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4pOiBEZWxldGVkLgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxvZ2ljYWxCb3JkZXIpOiBEZWxldGVkLgooV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxvZ2ljYWxQYWRkaW5nKTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94
R2VvbWV0cnlVcGRhdGVyLmg6Ci0tLQogLi4uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlV
cGRhdGVyLmNwcCAgIHwgNzMgKysrKysrKysrKy0tLS0tLS0tLQogLi4uL0xheW91dEludGVncmF0
aW9uQm94R2VvbWV0cnlVcGRhdGVyLmggICAgIHwgIDkgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ2
IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggN2IzZTVmYzVjNTEy
Li44MmFmZmUxY2JkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRp
b25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJG
b3JtYXR0aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVXYWxrZXIuaCIKLSNpbmNs
dWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIlJlbmRlckF0dGFjaG1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hJbmxpbmVz
LmgiCkBAIC0xODUsMTEgKzE4NCwxMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgY29udGVu
dExvZ2ljYWxIZWlnaHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJCb3gmIHJlbmRlcgogICAgIHJl
dHVybiByZW5kZXJlci5wYXJlbnQoKS0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gcmVuZGVyZXIuY29udGVudEhlaWdodCgpIDogcmVuZGVyZXIuY29udGVudFdpZHRoKCk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhv
cml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJl
ciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRU
b1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlLCBib29s
IHJldGFpbk1hcmdpblN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKQor
TGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6
aG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRl
cmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgcmV0YWluTWFyZ2luU3RhcnQsIGJvb2wgcmV0
YWluTWFyZ2luRW5kKQogewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKIAot
ICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSkgeworICAgIGlmIChpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKSB7CiAgICAgICAgIGF1dG8gbG9naWNhbExlZnRWYWx1ZSA9IHJldGFpbk1h
cmdpblN0YXJ0ID8gdXNlZFZhbHVlT3JaZXJvKGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24g
PyBzdHlsZS5tYXJnaW5MZWZ0KCkgOiBzdHlsZS5tYXJnaW5SaWdodCgpLCBhdmFpbGFibGVXaWR0
aCkgOiAwX2x1OwogICAgICAgICBhdXRvIGxvZ2ljYWxSaWdodFZhbHVlID0gcmV0YWluTWFyZ2lu
RW5kID8gdXNlZFZhbHVlT3JaZXJvKGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24gPyBzdHls
ZS5tYXJnaW5SaWdodCgpIDogc3R5bGUubWFyZ2luTGVmdCgpLCBhdmFpbGFibGVXaWR0aCkgOiAw
X2x1OwogCkBAIC0yMDIsMTAgKzIwMSwxMCBAQCBzdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2Vv
bWV0cnk6Okhvcml6b250YWxFZGdlcyBob3Jpem9udGFsTG9naWNhbE1hcmdpbihjb25zdAogICAg
IHJldHVybiB7IGxvZ2ljYWxMZWZ0VmFsdWUsIGxvZ2ljYWxSaWdodFZhbHVlIH07CiB9CiAKLXN0
YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExv
Z2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxv
d0RpcmVjdGlvbikKK0xheW91dDo6Qm94R2VvbWV0cnk6OlZlcnRpY2FsRWRnZXMgQm94R2VvbWV0
cnlVcGRhdGVyOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoKQog
ewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKLSAgICBzd2l0Y2ggKGJsb2Nr
Rmxvd0RpcmVjdGlvbikgeworICAgIHN3aXRjaCAoYmxvY2tGbG93RGlyZWN0aW9uKCkpIHsKICAg
ICBjYXNlIEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tOgogICAgIGNhc2UgRmxvd0RpcmVjdGlv
bjo6Qm90dG9tVG9Ub3A6CiAgICAgICAgIHJldHVybiB7IHVzZWRWYWx1ZU9yWmVybyhzdHlsZS5t
YXJnaW5Ub3AoKSwgYXZhaWxhYmxlV2lkdGgpLCB1c2VkVmFsdWVPclplcm8oc3R5bGUubWFyZ2lu
Qm90dG9tKCksIGF2YWlsYWJsZVdpZHRoKSB9OwpAQCAtMjE4LDcgKzIxNyw3IEBAIHN0YXRpYyBp
bmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExvZ2ljYWxN
YXJnaW4oY29uc3QgUmVuCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2Vv
bWV0cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJl
bmRlcmVyLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24g
YmxvY2tGbG93RGlyZWN0aW9uLCBib29sIGlzSW50cmluc2ljV2lkdGhNb2RlID0gZmFsc2UsIGJv
b2wgcmV0YWluQm9yZGVyU3RhcnQgPSB0cnVlLCBib29sIHJldGFpbkJvcmRlckVuZCA9IHRydWUp
CitMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBCb3hHZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxC
b3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBib29sIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUsIGJvb2wgcmV0
YWluQm9yZGVyU3RhcnQsIGJvb2wgcmV0YWluQm9yZGVyRW5kKQogewogICAgIGF1dG8mIHN0eWxl
ID0gcmVuZGVyZXIuc3R5bGUoKTsKIApAQCAtMjMwLDcgKzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbEJvcmRlcihjb25zdCBSZW5kZXJCb3hN
b2RlbE9iamVjCiAgICAgaWYgKCFpc0ludHJpbnNpY1dpZHRoTW9kZSkKICAgICAgICAgYWRqdXN0
Qm9yZGVyRm9yVGFibGVBbmRGaWVsZHNldChyZW5kZXJlciwgYm9yZGVyTGVmdCwgYm9yZGVyUmln
aHQsIGJvcmRlclRvcCwgYm9yZGVyQm90dG9tKTsKIAotICAgIGlmIChibG9ja0Zsb3dEaXJlY3Rp
b24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09
IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CisgICAgaWYgKGJsb2NrRmxvd0RpcmVjdGlv
bigpID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbigp
ID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CiAgICAgICAgIGF1dG8gYm9yZGVyTG9n
aWNhbExlZnQgPSByZXRhaW5Cb3JkZXJTdGFydCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rp
b24gPyBib3JkZXJMZWZ0IDogYm9yZGVyUmlnaHQgOiAwX2x1OwogICAgICAgICBhdXRvIGJvcmRl
ckxvZ2ljYWxSaWdodCA9IHJldGFpbkJvcmRlckVuZCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJl
Y3Rpb24gPyBib3JkZXJSaWdodCA6IGJvcmRlckxlZnQgOiAwX2x1OwogICAgICAgICByZXR1cm4g
eyB7IGJvcmRlckxvZ2ljYWxMZWZ0LCBib3JkZXJMb2dpY2FsUmlnaHQgfSwgeyBib3JkZXJUb3As
IGJvcmRlckJvdHRvbSB9IH07CkBAIC0yNDEsNyArMjQwLDcgQEAgc3RhdGljIGlubGluZSBMYXlv
dXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVs
T2JqZWMKICAgICByZXR1cm4geyB7IGJvcmRlckxvZ2ljYWxMZWZ0LCBib3JkZXJMb2dpY2FsUmln
aHQgfSwgeyBib3JkZXJSaWdodCwgYm9yZGVyTGVmdCB9IH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94
TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJs
ZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24g
YmxvY2tGbG93RGlyZWN0aW9uLCBib29sIHJldGFpblBhZGRpbmdTdGFydCA9IHRydWUsIGJvb2wg
cmV0YWluUGFkZGluZ0VuZCA9IHRydWUpCitMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBCb3hH
ZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxQYWRkaW5nKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0
JiByZW5kZXJlciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9v
bCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIHJldGFpblBhZGRpbmdTdGFydCwg
Ym9vbCByZXRhaW5QYWRkaW5nRW5kKQogewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5
bGUoKTsKIApAQCAtMjUwLDcgKzI0OSw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9t
ZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplCiAgICAg
YXV0byBwYWRkaW5nVG9wID0gdXNlZFZhbHVlT3JaZXJvKHN0eWxlLnBhZGRpbmdUb3AoKSwgYXZh
aWxhYmxlV2lkdGgpOwogICAgIGF1dG8gcGFkZGluZ0JvdHRvbSA9IHVzZWRWYWx1ZU9yWmVybyhz
dHlsZS5wYWRkaW5nQm90dG9tKCksIGF2YWlsYWJsZVdpZHRoKTsKIAotICAgIGlmIChibG9ja0Zs
b3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGly
ZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CisgICAgaWYgKGJsb2NrRmxv
d0RpcmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0Rp
cmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CiAgICAgICAgIGF1dG8g
cGFkZGluZ0xvZ2ljYWxMZWZ0ID0gcmV0YWluUGFkZGluZ1N0YXJ0ID8gaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiA/IHBhZGRpbmdMZWZ0IDogcGFkZGluZ1JpZ2h0IDogMF9sdTsKICAgICAg
ICAgYXV0byBwYWRkaW5nTG9naWNhbFJpZ2h0ID0gcmV0YWluUGFkZGluZ0VuZCA/IGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24gPyBwYWRkaW5nUmlnaHQgOiBwYWRkaW5nTGVmdCA6IDBfbHU7
CiAgICAgICAgIHJldHVybiB7IHsgcGFkZGluZ0xvZ2ljYWxMZWZ0LCBwYWRkaW5nTG9naWNhbFJp
Z2h0IH0sIHsgcGFkZGluZ1RvcCwgcGFkZGluZ0JvdHRvbSB9IH07CkBAIC0yNzEsNyArMjcwLDcg
QEAgc3RhdGljIGlubGluZSBMYXlvdXRTaXplIHNjcm9sbGJhckxvZ2ljYWxTaXplKGNvbnN0IFJl
bmRlckJveCYgcmVuZGVyZXIpCiAgICAgcmV0dXJuIHsgaG9yaXpvbnRhbFNwYWNlUmVzZXJ2ZWRG
b3JTY3JvbGxiYXIsIHZlcnRpY2FsU3BhY2VSZXNlcnZlZEZvclNjcm9sbGJhciB9OwogfQogCi1z
dGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gm
IHJlbmRlckJveCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNv
bnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBGbG93RGlyZWN0aW9uIGJsb2NrRmxvd0RpcmVjdGlv
bikKIHsKICAgICBhdXRvIGhhc05vblN5bnRoZXRpY0Jhc2VsaW5lID0gWyZdIHsKICAgICAgICAg
aWYgKGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTGlzdE1h
cmtlcj4ocmVuZGVyQm94KSkKQEAgLTMwNSw3ICszMDQsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCkKICAgICBp
ZiAoIWhhc05vblN5bnRoZXRpY0Jhc2VsaW5lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gYmxvY2tGbG93RGlyZWN0aW9uID0gd3JpdGluZ01vZGVUb0Jsb2NrRmxvd0RpcmVjdGlvbihy
ZW5kZXJCb3gucGFyZW50KCktPnN0eWxlKCkud3JpdGluZ01vZGUoKSk7CiAgICAgYXV0byBiYXNl
bGluZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKEFscGhhYmV0aWNCYXNlbGluZSwgZmFs
c2UgLyogZmlyc3RMaW5lICovLCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6
VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJvdHRv
bVRvVG9wID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWlu
aW5nTGluZSk7CiAgICAgY29uc3RfY2FzdDxMYXlvdXQ6OkVsZW1lbnRCb3gmPigqcmVuZGVyQm94
LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVncmF0aW9uKGJhc2VsaW5lKTsKIH0KQEAg
LTMxMywxNCArMzExLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2Vs
aW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6
OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0OjpJbnRyaW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKIHsKICAgICBhdXRv
JiBsYXlvdXRCb3ggPSBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5kZXJCb3gu
bGF5b3V0Qm94KCkpOworICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gbGF5b3V0U3RhdGUoKS5lbnN1
cmVHZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGlu
ZURpcmVjdGlvbiA9IHJlbmRlckJveC5wYXJlbnQoKS0+c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCk7Ci0gICAgYXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSB3cml0aW5nTW9kZVRvQmxv
Y2tGbG93RGlyZWN0aW9uKHJlbmRlckJveC5wYXJlbnQoKS0+c3R5bGUoKS53cml0aW5nTW9kZSgp
KTsKLSAgICBhdXRvIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gYmxvY2tGbG93RGlyZWN0aW9u
ID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBG
bG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcDsKIAotICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gbGF5
b3V0U3RhdGUoKS5lbnN1cmVHZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwotICAgIGF1dG8gaW5s
aW5lTWFyZ2luID0gaG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4ocmVuZGVyQm94LCBhdmFpbGFibGVX
aWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUpOwotICAgIGF1dG8gYm9yZGVyID0gbG9naWNhbEJvcmRlcihyZW5kZXJCb3gsIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2NrRmxvd0RpcmVjdGlvbiwgaW50cmluc2ljV2lkdGhN
b2RlLmhhc192YWx1ZSgpKTsKLSAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5k
ZXJCb3gsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBibG9j
a0Zsb3dEaXJlY3Rpb24pOworICAgIGF1dG8gaW5saW5lTWFyZ2luID0gaG9yaXpvbnRhbExvZ2lj
YWxNYXJnaW4ocmVuZGVyQm94LCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURp
cmVjdGlvbik7CisgICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJlbmRlckJveCwgaXNM
ZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgaW50cmluc2ljV2lkdGhNb2RlLmhhc192YWx1ZSgp
KTsKKyAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJCb3gsIGF2YWlsYWJs
ZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKICAgICBpZiAoIWludHJpbnNp
Y1dpZHRoTW9kZSkKICAgICAgICAgcGFkZGluZy52ZXJ0aWNhbCArPSBpbnRyaW5zaWNQYWRkaW5n
Rm9yVGFibGVDZWxsKHJlbmRlckJveCk7CiAKQEAgLTM0NSw3ICszNDEsNyBAQCB2b2lkIEJveEdl
b21ldHJ5VXBkYXRlcjo6dXBkYXRlTGF5b3V0Qm94RGltZW5zaW9ucyhjb25zdCBSZW5kZXJCb3gm
IHJlbmRlckJveCwgcwogICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hXaWR0aChjb250ZW50
TG9naWNhbFdpZHRoRm9yUmVuZGVyZXIocmVuZGVyQm94KSk7CiAgICAgYm94R2VvbWV0cnkuc2V0
Q29udGVudEJveEhlaWdodChjb250ZW50TG9naWNhbEhlaWdodEZvclJlbmRlcmVyKHJlbmRlckJv
eCkpOwogCi0gICAgYm94R2VvbWV0cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2Fs
TWFyZ2luKHJlbmRlckJveCwgYXZhaWxhYmxlV2lkdGgsIGJsb2NrRmxvd0RpcmVjdGlvbikpOwor
ICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTG9naWNhbE1hcmdpbihy
ZW5kZXJCb3gsIGF2YWlsYWJsZVdpZHRoKSk7CiAgICAgYm94R2VvbWV0cnkuc2V0SG9yaXpvbnRh
bE1hcmdpbihpbmxpbmVNYXJnaW4pOwogICAgIGJveEdlb21ldHJ5LnNldEJvcmRlcihib3JkZXIp
OwogICAgIGJveEdlb21ldHJ5LnNldFBhZGRpbmcocGFkZGluZyk7CkBAIC0zNjQsMTQgKzM2MCwx
MSBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94RGltZW5zaW9ucyhj
b25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcklubAogICAgIC8vIENoZWNrIGlmIHRoaXMgcmVuZGVy
ZXIgaXMgcGFydCBvZiBhIGNvbnRpbnVhdGlvbiBhbmQgYWRqdXN0IGhvcml6b250YWwgbWFyZ2lu
L2JvcmRlci9wYWRkaW5nIGFjY29yZGluZ2x5LgogICAgIGF1dG8gc2hvdWxkTm90UmV0YWluQm9y
ZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0ID0gcmVuZGVySW5saW5lLmlzQ29udGludWF0aW9uKCk7
CiAgICAgYXV0byBzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kID0gIXJl
bmRlcklubGluZS5pc0NvbnRpbnVhdGlvbigpICYmIHJlbmRlcklubGluZS5pbmxpbmVDb250aW51
YXRpb24oKTsKLQogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA9IHJlbmRl
cklubGluZS5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKLSAgICBhdXRvIGJsb2Nr
Rmxvd0RpcmVjdGlvbiA9IHdyaXRpbmdNb2RlVG9CbG9ja0Zsb3dEaXJlY3Rpb24ocmVuZGVySW5s
aW5lLnN0eWxlKCkud3JpdGluZ01vZGUoKSk7Ci0gICAgYXV0byBpc0hvcml6b250YWxXcml0aW5n
TW9kZSA9IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpUb3BUb0JvdHRvbSB8
fCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6Qm90dG9tVG9Ub3A7CiAKLSAg
ICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6b250YWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGlu
ZSwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlLCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0
YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7Ci0gICAgYXV0
byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJlbmRlcklubGluZSwgaXNMZWZ0VG9SaWdodElubGlu
ZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3Zh
bHVlKCksICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91
bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kKTsKLSAgICBhdXRvIHBhZGRpbmcg
PSBsb2dpY2FsUGFkZGluZyhyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1Jp
Z2h0SW5saW5lRGlyZWN0aW9uLCBibG9ja0Zsb3dEaXJlY3Rpb24sICFzaG91bGROb3RSZXRhaW5C
b3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5n
QW5kTWFyZ2luRW5kKTsKKyAgICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6b250YWxMb2dpY2Fs
TWFyZ2luKHJlbmRlcklubGluZSwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVE
aXJlY3Rpb24sICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFz
aG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kKTsKKyAgICBhdXRvIGJvcmRl
ciA9IGxvZ2ljYWxCb3JkZXIocmVuZGVySW5saW5lLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0
aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3ZhbHVlKCksICFzaG91bGROb3RSZXRhaW5Cb3Jk
ZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5k
TWFyZ2luRW5kKTsKKyAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJJbmxp
bmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCAhc2hvdWxk
Tm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9y
ZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7CiAKICAgICBpZiAoaW50cmluc2ljV2lkdGhNb2RlKSB7
CiAgICAgICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaW5saW5lTWFyZ2luKTsK
QEAgLTM4MSw3ICszNzQsNyBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5l
Qm94RGltZW5zaW9ucyhjb25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcklubAogICAgIH0KIAogICAg
IGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaW5saW5lTWFyZ2luKTsKLSAgICBib3hH
ZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4ocmVuZGVySW5s
aW5lLCBhdmFpbGFibGVXaWR0aCwgYmxvY2tGbG93RGlyZWN0aW9uKSk7CisgICAgYm94R2VvbWV0
cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGluZSwg
YXZhaWxhYmxlV2lkdGgpKTsKICAgICBib3hHZW9tZXRyeS5zZXRCb3JkZXIoYm9yZGVyKTsKICAg
ICBib3hHZW9tZXRyeS5zZXRQYWRkaW5nKHBhZGRpbmcpOwogfQpAQCAtNDI4LDEyICs0MjEsMTAg
QEAgTGF5b3V0OjpDb25zdHJhaW50c0ZvcklubGluZUNvbnRlbnQgQm94R2VvbWV0cnlVcGRhdGVy
Ojp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3QKICAgICBhdXRvJiByb290UmVuZGVyZXIgPSB0aGlz
LT5yb290UmVuZGVyZXIoKTsKICAgICBhdXRvJiBzdHlsZSA9IHJvb3RSZW5kZXJlci5zdHlsZSgp
OwogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA9IHN0eWxlLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKTsKLSAgICBhdXRvIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gc3R5
bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKLSAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlv
biA9IHN0eWxlLmJsb2NrRmxvd0RpcmVjdGlvbigpOwogCi0gICAgYXV0byBwYWRkaW5nID0gbG9n
aWNhbFBhZGRpbmcocm9vdFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uKTsKLSAgICBhdXRvIGJvcmRlciA9IGxv
Z2ljYWxCb3JkZXIocm9vdFJlbmRlcmVyLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBi
bG9ja0Zsb3dEaXJlY3Rpb24pOwotICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgJiYg
IXN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKKyAgICBhdXRvIHBhZGRpbmcg
PSBsb2dpY2FsUGFkZGluZyhyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1Jp
Z2h0SW5saW5lRGlyZWN0aW9uKTsKKyAgICBhdXRvIGJvcmRlciA9IGxvZ2ljYWxCb3JkZXIocm9v
dFJlbmRlcmVyLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKKyAgICBpZiAoIWlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgIXN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2Rl
KCkpIHsKICAgICAgICAgcGFkZGluZy52ZXJ0aWNhbCA9IHsgcGFkZGluZy52ZXJ0aWNhbC5hZnRl
ciwgcGFkZGluZy52ZXJ0aWNhbC5iZWZvcmUgfTsKICAgICAgICAgYm9yZGVyLnZlcnRpY2FsID0g
eyBib3JkZXIudmVydGljYWwuYWZ0ZXIsIGJvcmRlci52ZXJ0aWNhbC5iZWZvcmUgfTsKICAgICB9
CkBAIC00NDIsNyArNDMzLDcgQEAgTGF5b3V0OjpDb25zdHJhaW50c0ZvcklubGluZUNvbnRlbnQg
Qm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3QKICAgICBhdXRvIHNj
cm9sbGJhclNpemUgPSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShyb290UmVuZGVyZXIpOwogICAgIGF1
dG8gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCA9IHJvb3RSZW5kZXJlci5zaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAKLSAgICBhdXRvIGNvbnRlbnRCb3hX
aWR0aCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gcm9vdFJlbmRlcmVyLmNvbnRlbnRXaWR0
aCgpIDogcm9vdFJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKTsKKyAgICBhdXRvIGNvbnRlbnRCb3hX
aWR0aCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByb290UmVuZGVyZXIuY29udGVudFdp
ZHRoKCkgOiByb290UmVuZGVyZXIuY29udGVudEhlaWdodCgpOwogICAgIGF1dG8gY29udGVudEJv
eExlZnQgPSBib3JkZXIuaG9yaXpvbnRhbC5zdGFydCArIHBhZGRpbmcuaG9yaXpvbnRhbC5zdGFy
dCArIChpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uICYmIHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQgPyBzY3JvbGxiYXJTaXplLndpZHRoKCkgOiAwX2x1KTsKICAgICBhdXRv
IGNvbnRlbnRCb3hUb3AgPSBib3JkZXIudmVydGljYWwuYmVmb3JlICsgcGFkZGluZy52ZXJ0aWNh
bC5iZWZvcmU7CiAKQEAgLTQ1OCw4ICs0NDksOCBAQCBMYXlvdXQ6OkNvbnN0cmFpbnRzRm9ySW5s
aW5lQ29udGVudCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUlubGluZUNvbnRlbnRDb25zdAog
ICAgICAgICByb290R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRlcik7CiAgICAgICAgIHJvb3RHZW9t
ZXRyeS5zZXRIb3Jpem9udGFsU3BhY2VGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyU2l6ZS53aWR0aCgp
KTsKICAgICAgICAgcm9vdEdlb21ldHJ5LnNldFZlcnRpY2FsU3BhY2VGb3JTY3JvbGxiYXIoc2Ny
b2xsYmFyU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJvb3RHZW9tZXRyeS5zZXRIb3Jpem9udGFs
TWFyZ2luKGhvcml6b250YWxMb2dpY2FsTWFyZ2luKHJvb3RSZW5kZXJlciwgYXZhaWxhYmxlV2lk
dGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KSk7Ci0gICAgICAgIHJvb3RHZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2lj
YWxNYXJnaW4ocm9vdFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgYmxvY2tGbG93RGlyZWN0aW9u
KSk7CisgICAgICAgIHJvb3RHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGhvcml6b250YWxM
b2dpY2FsTWFyZ2luKHJvb3RSZW5kZXJlciwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJ
bmxpbmVEaXJlY3Rpb24pKTsKKyAgICAgICAgcm9vdEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2lu
KHZlcnRpY2FsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdpZHRoKSk7CiAg
ICAgfTsKICAgICBjcmVhdGVSb290R2VvbWV0cnlJZk5lZWRlZCgpOwogCkBAIC00ODAsMTEgKzQ3
MSwxMSBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlR2VvbWV0cnlBZnRlckxheW91
dChjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIGxheQogCiAgICAgYXV0byBpbnRlZ3JhdGlvbkFk
anVzdG1lbnRzID0gWyZdIHsKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBldmVudHVh
bGx5IGJlIGFsbCBhYnNvcmJlZCBieSBMRkMgbGF5b3V0LgotICAgICAgICBzZXRJbnRlZ3JhdGlv
bkJhc2VsaW5lKCpyZW5kZXJCb3gpOworICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKCpy
ZW5kZXJCb3gsIGJsb2NrRmxvd0RpcmVjdGlvbigpKTsKIAogICAgICAgICBpZiAoYXV0byogcmVu
ZGVyTGlzdE1hcmtlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPigqcmVuZGVy
Qm94KSkgewogICAgICAgICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3gucGFyZW50KCkuc3R5
bGUoKTsKLSAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaG9yaXpv
bnRhbExvZ2ljYWxNYXJnaW4oKnJlbmRlckxpc3RNYXJrZXIsIHsgfSwgc3R5bGUuaXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpLCBzdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSk7CisgICAg
ICAgICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGhvcml6b250YWxMb2dpY2Fs
TWFyZ2luKCpyZW5kZXJMaXN0TWFya2VyLCB7IH0sIHN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSkpOwogICAgICAgICAgICAgaWYgKCFyZW5kZXJMaXN0TWFya2VyLT5pc0luc2lkZSgpKQog
ICAgICAgICAgICAgICAgIHNldExpc3RNYXJrZXJPZmZzZXRGb3JNYXJrZXJPdXRzaWRlKCpyZW5k
ZXJMaXN0TWFya2VyKTsKICAgICAgICAgfQpAQCAtNDkyLDcgKzQ4Myw3IEBAIHZvaWQgQm94R2Vv
bWV0cnlVcGRhdGVyOjp1cGRhdGVHZW9tZXRyeUFmdGVyTGF5b3V0KGNvbnN0IExheW91dDo6RWxl
bWVudEJveCYgbGF5CiAgICAgICAgIGlmIChpczxSZW5kZXJUYWJsZT4oKnJlbmRlckJveCkpIHsK
ICAgICAgICAgICAgIC8vIFRhYmxlcyBoYXZlIHRoZWlyIHNwZWNpYWwgY29sbGFwc2VkIGJvcmRl
ciB2YWx1ZXMgKHVwZGF0ZWQgYXQgbGF5b3V0KS4KICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0g
bGF5b3V0Qm94LnBhcmVudCgpLnN0eWxlKCk7Ci0gICAgICAgICAgICBib3hHZW9tZXRyeS5zZXRC
b3JkZXIobG9naWNhbEJvcmRlcigqcmVuZGVyQm94LCBzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCksIHN0eWxlLmJsb2NrRmxvd0RpcmVjdGlvbigpLCBmYWxzZSkpOworICAgICAgICAgICAg
Ym94R2VvbWV0cnkuc2V0Qm9yZGVyKGxvZ2ljYWxCb3JkZXIoKnJlbmRlckJveCwgc3R5bGUuaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIG5lZWRz
RnVsbEdlb21ldHJ5VXBkYXRlID0gWyZdIHsKQEAgLTU0NCw2ICs1MzUsMTYgQEAgY29uc3QgUmVu
ZGVyQmxvY2smIEJveEdlb21ldHJ5VXBkYXRlcjo6cm9vdFJlbmRlcmVyKCkgY29uc3QKICAgICBy
ZXR1cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyb290TGF5b3V0Qm94KCkucmVuZGVyZXJGb3JJ
bnRlZ3JhdGlvbigpKTsKIH0KIAorYm9vbCBCb3hHZW9tZXRyeVVwZGF0ZXI6OmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcm9vdFJlbmRlcmVyKCkuc3R5bGUo
KS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworfQorCitGbG93RGlyZWN0aW9uIEJveEdlb21l
dHJ5VXBkYXRlcjo6YmxvY2tGbG93RGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcm9v
dFJlbmRlcmVyKCkuc3R5bGUoKS5ibG9ja0Zsb3dEaXJlY3Rpb24oKTsKK30KKwogfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91
dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgK
aW5kZXggMTZlNzE0MzQwMzM0Li5jYjYwMDcwZGRmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5l
L0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIklubGluZUZv
cm1hdHRpbmdDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCiAj
aW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgiCiAjaW5jbHVkZSAiTGF5b3V0U3Rh
dGUuaCIKIApAQCAtNjEsNiArNjIsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUlubGlu
ZUJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVySW5saW5lJiwgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBhdmFpbGFibGVXaWR0aCwgc3RkOjpvcHRpb25hbDxMYXlvdXQ6OkludHJpbnNpY1dpZHRo
TW9kZT4gPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgc2V0TGlzdE1hcmtlck9mZnNldEZvck1h
cmtlck91dHNpZGUoY29uc3QgUmVuZGVyTGlzdE1hcmtlciYpOwogCisgICAgTGF5b3V0OjpCb3hH
ZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhvcml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJl
bmRlckJveE1vZGVsT2JqZWN0Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVX
aWR0aCwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIHJldGFpbk1hcmdp
blN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKTsKKyAgICBMYXlvdXQ6
OkJveEdlb21ldHJ5OjpWZXJ0aWNhbEVkZ2VzIHZlcnRpY2FsTG9naWNhbE1hcmdpbihjb25zdCBS
ZW5kZXJCb3hNb2RlbE9iamVjdCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxl
V2lkdGgpOworICAgIExheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29u
c3QgUmVuZGVyQm94TW9kZWxPYmplY3QmLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rp
b24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUgPSBmYWxzZSwgYm9vbCByZXRhaW5Cb3JkZXJT
dGFydCA9IHRydWUsIGJvb2wgcmV0YWluQm9yZGVyRW5kID0gdHJ1ZSk7CisgICAgTGF5b3V0OjpC
b3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgcmV0YWluUGFkZGluZ1N0YXJ0ID0gdHJ1ZSwg
Ym9vbCByZXRhaW5QYWRkaW5nRW5kID0gdHJ1ZSk7CisKKyAgICBGbG93RGlyZWN0aW9uIGJsb2Nr
Rmxvd0RpcmVjdGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSBjb25zdDsKKwogICAgIExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyByZXR1
cm4gKm1fbGF5b3V0U3RhdGU7IH0KICAgICBjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9CiAgICAgY29uc3QgTGF5
b3V0OjpFbGVtZW50Qm94JiByb290TGF5b3V0Qm94KCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472676</attachid>
            <date>2024-09-25 07:06:55 -0700</date>
            <delta_ts>2024-09-25 09:16:36 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-280090-20240925070654.patch</filename>
            <type>text/plain</type>
            <size>19933</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzOWNiMGM4ZTg1N2U4OWM1ZTljZDkzZGNiNTJmOGY2ZmEwNWE3ZDJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjQgU2VwIDIwMjQgMTU6MDg6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gVXNlIGJsb2NrIGZsb3cgYW5kIHdyaXRpbmcgbW9kZSBjb25zaXN0ZW50bHkgaW4KIEJveEdl
b21ldHJ5VXBkYXRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjgw
MDkwCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KClJvb3QgY29udGFpbmVyIGRlZmluZXMg
Ym90aCB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgZmxvdyBkaXJlY3Rpb24gKHdoaWNoIGlzIGRl
cml2ZWQgZnJvbSB0aGUgd3JpdGluZyBtb2RlKS4gTGV0J3Mgbm90IGNvbnN1bHQgc2VlbWluZ2x5
IHJhbmRvbSBwYXJlbnQgYm94ZXMgZm9yIHRoZXNlIHByb3BlcnRpZXMuCihOb3RlIHRoYXQgaW5s
aW5lIGRpcmVjdGlvbiBtYXkgY2hhbmdlIHdpdGhpbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGl0
c2VsZiBlLmcuIDxkaXY+bHRyPHNwYW4gc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5ydGw8L3NwYW4+
bHRyPC9kaXY+KQoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xh
eW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6Omhvcml6b250YWxMb2dpY2FsTWFyZ2luKToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnZlcnRpY2Fs
TG9naWNhbE1hcmdpbik6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlV
cGRhdGVyOjpsb2dpY2FsQm9yZGVyKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hH
ZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxQYWRkaW5nKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0
aW9uOjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
OjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMpOgooV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94
RGltZW5zaW9ucyk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRh
dGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3RyYWludHMpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlR2VvbWV0cnlBZnRlckxheW91dCk6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2VvbWV0cnlVcGRhdGVyOjppc0hvcml6
b250YWxXcml0aW5nTW9kZSBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94
R2VvbWV0cnlVcGRhdGVyOjpibG9ja0Zsb3dEaXJlY3Rpb24gY29uc3QpOgooV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246Omhvcml6b250YWxMb2dpY2FsTWFyZ2luKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4pOiBEZWxldGVkLgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxvZ2ljYWxCb3JkZXIpOiBEZWxldGVkLgooV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxvZ2ljYWxQYWRkaW5nKTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94
R2VvbWV0cnlVcGRhdGVyLmg6Ci0tLQogLi4uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlV
cGRhdGVyLmNwcCAgIHwgNzMgKysrKysrKysrKy0tLS0tLS0tLQogLi4uL0xheW91dEludGVncmF0
aW9uQm94R2VvbWV0cnlVcGRhdGVyLmggICAgIHwgIDkgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ2
IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggN2IzZTVmYzVjNTEy
Li44MmFmZmUxY2JkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRp
b25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJG
b3JtYXR0aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVXYWxrZXIuaCIKLSNpbmNs
dWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIlJlbmRlckF0dGFjaG1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hJbmxpbmVz
LmgiCkBAIC0xODUsMTEgKzE4NCwxMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgY29udGVu
dExvZ2ljYWxIZWlnaHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJCb3gmIHJlbmRlcgogICAgIHJl
dHVybiByZW5kZXJlci5wYXJlbnQoKS0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gcmVuZGVyZXIuY29udGVudEhlaWdodCgpIDogcmVuZGVyZXIuY29udGVudFdpZHRoKCk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhv
cml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJl
ciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9vbCBpc0xlZnRU
b1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlLCBib29s
IHJldGFpbk1hcmdpblN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKQor
TGF5b3V0OjpCb3hHZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIEJveEdlb21ldHJ5VXBkYXRlcjo6
aG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRl
cmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgcmV0YWluTWFyZ2luU3RhcnQsIGJvb2wgcmV0
YWluTWFyZ2luRW5kKQogewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKIAot
ICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSkgeworICAgIGlmIChpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKSB7CiAgICAgICAgIGF1dG8gbG9naWNhbExlZnRWYWx1ZSA9IHJldGFpbk1h
cmdpblN0YXJ0ID8gdXNlZFZhbHVlT3JaZXJvKGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24g
PyBzdHlsZS5tYXJnaW5MZWZ0KCkgOiBzdHlsZS5tYXJnaW5SaWdodCgpLCBhdmFpbGFibGVXaWR0
aCkgOiAwX2x1OwogICAgICAgICBhdXRvIGxvZ2ljYWxSaWdodFZhbHVlID0gcmV0YWluTWFyZ2lu
RW5kID8gdXNlZFZhbHVlT3JaZXJvKGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24gPyBzdHls
ZS5tYXJnaW5SaWdodCgpIDogc3R5bGUubWFyZ2luTGVmdCgpLCBhdmFpbGFibGVXaWR0aCkgOiAw
X2x1OwogCkBAIC0yMDIsMTAgKzIwMSwxMCBAQCBzdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2Vv
bWV0cnk6Okhvcml6b250YWxFZGdlcyBob3Jpem9udGFsTG9naWNhbE1hcmdpbihjb25zdAogICAg
IHJldHVybiB7IGxvZ2ljYWxMZWZ0VmFsdWUsIGxvZ2ljYWxSaWdodFZhbHVlIH07CiB9CiAKLXN0
YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExv
Z2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxv
d0RpcmVjdGlvbikKK0xheW91dDo6Qm94R2VvbWV0cnk6OlZlcnRpY2FsRWRnZXMgQm94R2VvbWV0
cnlVcGRhdGVyOjp2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4oY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoKQog
ewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKLSAgICBzd2l0Y2ggKGJsb2Nr
Rmxvd0RpcmVjdGlvbikgeworICAgIHN3aXRjaCAoYmxvY2tGbG93RGlyZWN0aW9uKCkpIHsKICAg
ICBjYXNlIEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tOgogICAgIGNhc2UgRmxvd0RpcmVjdGlv
bjo6Qm90dG9tVG9Ub3A6CiAgICAgICAgIHJldHVybiB7IHVzZWRWYWx1ZU9yWmVybyhzdHlsZS5t
YXJnaW5Ub3AoKSwgYXZhaWxhYmxlV2lkdGgpLCB1c2VkVmFsdWVPclplcm8oc3R5bGUubWFyZ2lu
Qm90dG9tKCksIGF2YWlsYWJsZVdpZHRoKSB9OwpAQCAtMjE4LDcgKzIxNyw3IEBAIHN0YXRpYyBp
bmxpbmUgTGF5b3V0OjpCb3hHZW9tZXRyeTo6VmVydGljYWxFZGdlcyB2ZXJ0aWNhbExvZ2ljYWxN
YXJnaW4oY29uc3QgUmVuCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2Vv
bWV0cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJl
bmRlcmVyLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24g
YmxvY2tGbG93RGlyZWN0aW9uLCBib29sIGlzSW50cmluc2ljV2lkdGhNb2RlID0gZmFsc2UsIGJv
b2wgcmV0YWluQm9yZGVyU3RhcnQgPSB0cnVlLCBib29sIHJldGFpbkJvcmRlckVuZCA9IHRydWUp
CitMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBCb3hHZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxC
b3JkZXIoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBib29sIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUsIGJvb2wgcmV0
YWluQm9yZGVyU3RhcnQsIGJvb2wgcmV0YWluQm9yZGVyRW5kKQogewogICAgIGF1dG8mIHN0eWxl
ID0gcmVuZGVyZXIuc3R5bGUoKTsKIApAQCAtMjMwLDcgKzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbEJvcmRlcihjb25zdCBSZW5kZXJCb3hN
b2RlbE9iamVjCiAgICAgaWYgKCFpc0ludHJpbnNpY1dpZHRoTW9kZSkKICAgICAgICAgYWRqdXN0
Qm9yZGVyRm9yVGFibGVBbmRGaWVsZHNldChyZW5kZXJlciwgYm9yZGVyTGVmdCwgYm9yZGVyUmln
aHQsIGJvcmRlclRvcCwgYm9yZGVyQm90dG9tKTsKIAotICAgIGlmIChibG9ja0Zsb3dEaXJlY3Rp
b24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09
IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CisgICAgaWYgKGJsb2NrRmxvd0RpcmVjdGlv
bigpID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbigp
ID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CiAgICAgICAgIGF1dG8gYm9yZGVyTG9n
aWNhbExlZnQgPSByZXRhaW5Cb3JkZXJTdGFydCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rp
b24gPyBib3JkZXJMZWZ0IDogYm9yZGVyUmlnaHQgOiAwX2x1OwogICAgICAgICBhdXRvIGJvcmRl
ckxvZ2ljYWxSaWdodCA9IHJldGFpbkJvcmRlckVuZCA/IGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJl
Y3Rpb24gPyBib3JkZXJSaWdodCA6IGJvcmRlckxlZnQgOiAwX2x1OwogICAgICAgICByZXR1cm4g
eyB7IGJvcmRlckxvZ2ljYWxMZWZ0LCBib3JkZXJMb2dpY2FsUmlnaHQgfSwgeyBib3JkZXJUb3As
IGJvcmRlckJvdHRvbSB9IH07CkBAIC0yNDEsNyArMjQwLDcgQEAgc3RhdGljIGlubGluZSBMYXlv
dXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBsb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVs
T2JqZWMKICAgICByZXR1cm4geyB7IGJvcmRlckxvZ2ljYWxMZWZ0LCBib3JkZXJMb2dpY2FsUmln
aHQgfSwgeyBib3JkZXJSaWdodCwgYm9yZGVyTGVmdCB9IH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
TGF5b3V0OjpCb3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94
TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJs
ZVdpZHRoLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24g
YmxvY2tGbG93RGlyZWN0aW9uLCBib29sIHJldGFpblBhZGRpbmdTdGFydCA9IHRydWUsIGJvb2wg
cmV0YWluUGFkZGluZ0VuZCA9IHRydWUpCitMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBCb3hH
ZW9tZXRyeVVwZGF0ZXI6OmxvZ2ljYWxQYWRkaW5nKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0
JiByZW5kZXJlciwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVXaWR0aCwgYm9v
bCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIHJldGFpblBhZGRpbmdTdGFydCwg
Ym9vbCByZXRhaW5QYWRkaW5nRW5kKQogewogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5
bGUoKTsKIApAQCAtMjUwLDcgKzI0OSw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0OjpCb3hHZW9t
ZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplCiAgICAg
YXV0byBwYWRkaW5nVG9wID0gdXNlZFZhbHVlT3JaZXJvKHN0eWxlLnBhZGRpbmdUb3AoKSwgYXZh
aWxhYmxlV2lkdGgpOwogICAgIGF1dG8gcGFkZGluZ0JvdHRvbSA9IHVzZWRWYWx1ZU9yWmVybyhz
dHlsZS5wYWRkaW5nQm90dG9tKCksIGF2YWlsYWJsZVdpZHRoKTsKIAotICAgIGlmIChibG9ja0Zs
b3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGly
ZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CisgICAgaWYgKGJsb2NrRmxv
d0RpcmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0Rp
cmVjdGlvbigpID09IEZsb3dEaXJlY3Rpb246OkJvdHRvbVRvVG9wKSB7CiAgICAgICAgIGF1dG8g
cGFkZGluZ0xvZ2ljYWxMZWZ0ID0gcmV0YWluUGFkZGluZ1N0YXJ0ID8gaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiA/IHBhZGRpbmdMZWZ0IDogcGFkZGluZ1JpZ2h0IDogMF9sdTsKICAgICAg
ICAgYXV0byBwYWRkaW5nTG9naWNhbFJpZ2h0ID0gcmV0YWluUGFkZGluZ0VuZCA/IGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24gPyBwYWRkaW5nUmlnaHQgOiBwYWRkaW5nTGVmdCA6IDBfbHU7
CiAgICAgICAgIHJldHVybiB7IHsgcGFkZGluZ0xvZ2ljYWxMZWZ0LCBwYWRkaW5nTG9naWNhbFJp
Z2h0IH0sIHsgcGFkZGluZ1RvcCwgcGFkZGluZ0JvdHRvbSB9IH07CkBAIC0yNzEsNyArMjcwLDcg
QEAgc3RhdGljIGlubGluZSBMYXlvdXRTaXplIHNjcm9sbGJhckxvZ2ljYWxTaXplKGNvbnN0IFJl
bmRlckJveCYgcmVuZGVyZXIpCiAgICAgcmV0dXJuIHsgaG9yaXpvbnRhbFNwYWNlUmVzZXJ2ZWRG
b3JTY3JvbGxiYXIsIHZlcnRpY2FsU3BhY2VSZXNlcnZlZEZvclNjcm9sbGJhciB9OwogfQogCi1z
dGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gm
IHJlbmRlckJveCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNv
bnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBGbG93RGlyZWN0aW9uIGJsb2NrRmxvd0RpcmVjdGlv
bikKIHsKICAgICBhdXRvIGhhc05vblN5bnRoZXRpY0Jhc2VsaW5lID0gWyZdIHsKICAgICAgICAg
aWYgKGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTGlzdE1h
cmtlcj4ocmVuZGVyQm94KSkKQEAgLTMwNSw3ICszMDQsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCkKICAgICBp
ZiAoIWhhc05vblN5bnRoZXRpY0Jhc2VsaW5lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gYmxvY2tGbG93RGlyZWN0aW9uID0gd3JpdGluZ01vZGVUb0Jsb2NrRmxvd0RpcmVjdGlvbihy
ZW5kZXJCb3gucGFyZW50KCktPnN0eWxlKCkud3JpdGluZ01vZGUoKSk7CiAgICAgYXV0byBiYXNl
bGluZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKEFscGhhYmV0aWNCYXNlbGluZSwgZmFs
c2UgLyogZmlyc3RMaW5lICovLCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6
VG9wVG9Cb3R0b20gfHwgYmxvY2tGbG93RGlyZWN0aW9uID09IEZsb3dEaXJlY3Rpb246OkJvdHRv
bVRvVG9wID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWlu
aW5nTGluZSk7CiAgICAgY29uc3RfY2FzdDxMYXlvdXQ6OkVsZW1lbnRCb3gmPigqcmVuZGVyQm94
LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVncmF0aW9uKGJhc2VsaW5lKTsKIH0KQEAg
LTMxMywxNCArMzExLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2Vs
aW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6
OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0OjpJbnRyaW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKIHsKICAgICBhdXRv
JiBsYXlvdXRCb3ggPSBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5kZXJCb3gu
bGF5b3V0Qm94KCkpOworICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gbGF5b3V0U3RhdGUoKS5lbnN1
cmVHZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGlu
ZURpcmVjdGlvbiA9IHJlbmRlckJveC5wYXJlbnQoKS0+c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCk7Ci0gICAgYXV0byBibG9ja0Zsb3dEaXJlY3Rpb24gPSB3cml0aW5nTW9kZVRvQmxv
Y2tGbG93RGlyZWN0aW9uKHJlbmRlckJveC5wYXJlbnQoKS0+c3R5bGUoKS53cml0aW5nTW9kZSgp
KTsKLSAgICBhdXRvIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gYmxvY2tGbG93RGlyZWN0aW9u
ID09IEZsb3dEaXJlY3Rpb246OlRvcFRvQm90dG9tIHx8IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBG
bG93RGlyZWN0aW9uOjpCb3R0b21Ub1RvcDsKIAotICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gbGF5
b3V0U3RhdGUoKS5lbnN1cmVHZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwotICAgIGF1dG8gaW5s
aW5lTWFyZ2luID0gaG9yaXpvbnRhbExvZ2ljYWxNYXJnaW4ocmVuZGVyQm94LCBhdmFpbGFibGVX
aWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUpOwotICAgIGF1dG8gYm9yZGVyID0gbG9naWNhbEJvcmRlcihyZW5kZXJCb3gsIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJsb2NrRmxvd0RpcmVjdGlvbiwgaW50cmluc2ljV2lkdGhN
b2RlLmhhc192YWx1ZSgpKTsKLSAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5k
ZXJCb3gsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBibG9j
a0Zsb3dEaXJlY3Rpb24pOworICAgIGF1dG8gaW5saW5lTWFyZ2luID0gaG9yaXpvbnRhbExvZ2lj
YWxNYXJnaW4ocmVuZGVyQm94LCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElubGluZURp
cmVjdGlvbik7CisgICAgYXV0byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJlbmRlckJveCwgaXNM
ZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiwgaW50cmluc2ljV2lkdGhNb2RlLmhhc192YWx1ZSgp
KTsKKyAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJCb3gsIGF2YWlsYWJs
ZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKICAgICBpZiAoIWludHJpbnNp
Y1dpZHRoTW9kZSkKICAgICAgICAgcGFkZGluZy52ZXJ0aWNhbCArPSBpbnRyaW5zaWNQYWRkaW5n
Rm9yVGFibGVDZWxsKHJlbmRlckJveCk7CiAKQEAgLTM0NSw3ICszNDEsNyBAQCB2b2lkIEJveEdl
b21ldHJ5VXBkYXRlcjo6dXBkYXRlTGF5b3V0Qm94RGltZW5zaW9ucyhjb25zdCBSZW5kZXJCb3gm
IHJlbmRlckJveCwgcwogICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hXaWR0aChjb250ZW50
TG9naWNhbFdpZHRoRm9yUmVuZGVyZXIocmVuZGVyQm94KSk7CiAgICAgYm94R2VvbWV0cnkuc2V0
Q29udGVudEJveEhlaWdodChjb250ZW50TG9naWNhbEhlaWdodEZvclJlbmRlcmVyKHJlbmRlckJv
eCkpOwogCi0gICAgYm94R2VvbWV0cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2Fs
TWFyZ2luKHJlbmRlckJveCwgYXZhaWxhYmxlV2lkdGgsIGJsb2NrRmxvd0RpcmVjdGlvbikpOwor
ICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2luKHZlcnRpY2FsTG9naWNhbE1hcmdpbihy
ZW5kZXJCb3gsIGF2YWlsYWJsZVdpZHRoKSk7CiAgICAgYm94R2VvbWV0cnkuc2V0SG9yaXpvbnRh
bE1hcmdpbihpbmxpbmVNYXJnaW4pOwogICAgIGJveEdlb21ldHJ5LnNldEJvcmRlcihib3JkZXIp
OwogICAgIGJveEdlb21ldHJ5LnNldFBhZGRpbmcocGFkZGluZyk7CkBAIC0zNjQsMTQgKzM2MCwx
MSBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5lQm94RGltZW5zaW9ucyhj
b25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcklubAogICAgIC8vIENoZWNrIGlmIHRoaXMgcmVuZGVy
ZXIgaXMgcGFydCBvZiBhIGNvbnRpbnVhdGlvbiBhbmQgYWRqdXN0IGhvcml6b250YWwgbWFyZ2lu
L2JvcmRlci9wYWRkaW5nIGFjY29yZGluZ2x5LgogICAgIGF1dG8gc2hvdWxkTm90UmV0YWluQm9y
ZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0ID0gcmVuZGVySW5saW5lLmlzQ29udGludWF0aW9uKCk7
CiAgICAgYXV0byBzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kID0gIXJl
bmRlcklubGluZS5pc0NvbnRpbnVhdGlvbigpICYmIHJlbmRlcklubGluZS5pbmxpbmVDb250aW51
YXRpb24oKTsKLQogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA9IHJlbmRl
cklubGluZS5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKLSAgICBhdXRvIGJsb2Nr
Rmxvd0RpcmVjdGlvbiA9IHdyaXRpbmdNb2RlVG9CbG9ja0Zsb3dEaXJlY3Rpb24ocmVuZGVySW5s
aW5lLnN0eWxlKCkud3JpdGluZ01vZGUoKSk7Ci0gICAgYXV0byBpc0hvcml6b250YWxXcml0aW5n
TW9kZSA9IGJsb2NrRmxvd0RpcmVjdGlvbiA9PSBGbG93RGlyZWN0aW9uOjpUb3BUb0JvdHRvbSB8
fCBibG9ja0Zsb3dEaXJlY3Rpb24gPT0gRmxvd0RpcmVjdGlvbjo6Qm90dG9tVG9Ub3A7CiAKLSAg
ICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6b250YWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGlu
ZSwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlLCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0
YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7Ci0gICAgYXV0
byBib3JkZXIgPSBsb2dpY2FsQm9yZGVyKHJlbmRlcklubGluZSwgaXNMZWZ0VG9SaWdodElubGlu
ZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3Zh
bHVlKCksICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91
bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kKTsKLSAgICBhdXRvIHBhZGRpbmcg
PSBsb2dpY2FsUGFkZGluZyhyZW5kZXJJbmxpbmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1Jp
Z2h0SW5saW5lRGlyZWN0aW9uLCBibG9ja0Zsb3dEaXJlY3Rpb24sICFzaG91bGROb3RSZXRhaW5C
b3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5n
QW5kTWFyZ2luRW5kKTsKKyAgICBhdXRvIGlubGluZU1hcmdpbiA9IGhvcml6b250YWxMb2dpY2Fs
TWFyZ2luKHJlbmRlcklubGluZSwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVE
aXJlY3Rpb24sICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFz
aG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5kTWFyZ2luRW5kKTsKKyAgICBhdXRvIGJvcmRl
ciA9IGxvZ2ljYWxCb3JkZXIocmVuZGVySW5saW5lLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0
aW9uLCBpbnRyaW5zaWNXaWR0aE1vZGUuaGFzX3ZhbHVlKCksICFzaG91bGROb3RSZXRhaW5Cb3Jk
ZXJQYWRkaW5nQW5kTWFyZ2luU3RhcnQsICFzaG91bGROb3RSZXRhaW5Cb3JkZXJQYWRkaW5nQW5k
TWFyZ2luRW5kKTsKKyAgICBhdXRvIHBhZGRpbmcgPSBsb2dpY2FsUGFkZGluZyhyZW5kZXJJbmxp
bmUsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCAhc2hvdWxk
Tm90UmV0YWluQm9yZGVyUGFkZGluZ0FuZE1hcmdpblN0YXJ0LCAhc2hvdWxkTm90UmV0YWluQm9y
ZGVyUGFkZGluZ0FuZE1hcmdpbkVuZCk7CiAKICAgICBpZiAoaW50cmluc2ljV2lkdGhNb2RlKSB7
CiAgICAgICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaW5saW5lTWFyZ2luKTsK
QEAgLTM4MSw3ICszNzQsNyBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlSW5saW5l
Qm94RGltZW5zaW9ucyhjb25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcklubAogICAgIH0KIAogICAg
IGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaW5saW5lTWFyZ2luKTsKLSAgICBib3hH
ZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2ljYWxNYXJnaW4ocmVuZGVySW5s
aW5lLCBhdmFpbGFibGVXaWR0aCwgYmxvY2tGbG93RGlyZWN0aW9uKSk7CisgICAgYm94R2VvbWV0
cnkuc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxMb2dpY2FsTWFyZ2luKHJlbmRlcklubGluZSwg
YXZhaWxhYmxlV2lkdGgpKTsKICAgICBib3hHZW9tZXRyeS5zZXRCb3JkZXIoYm9yZGVyKTsKICAg
ICBib3hHZW9tZXRyeS5zZXRQYWRkaW5nKHBhZGRpbmcpOwogfQpAQCAtNDI4LDEyICs0MjEsMTAg
QEAgTGF5b3V0OjpDb25zdHJhaW50c0ZvcklubGluZUNvbnRlbnQgQm94R2VvbWV0cnlVcGRhdGVy
Ojp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3QKICAgICBhdXRvJiByb290UmVuZGVyZXIgPSB0aGlz
LT5yb290UmVuZGVyZXIoKTsKICAgICBhdXRvJiBzdHlsZSA9IHJvb3RSZW5kZXJlci5zdHlsZSgp
OwogICAgIGF1dG8gaXNMZWZ0VG9SaWdodElubGluZURpcmVjdGlvbiA9IHN0eWxlLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKTsKLSAgICBhdXRvIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gc3R5
bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKLSAgICBhdXRvIGJsb2NrRmxvd0RpcmVjdGlv
biA9IHN0eWxlLmJsb2NrRmxvd0RpcmVjdGlvbigpOwogCi0gICAgYXV0byBwYWRkaW5nID0gbG9n
aWNhbFBhZGRpbmcocm9vdFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiwgYmxvY2tGbG93RGlyZWN0aW9uKTsKLSAgICBhdXRvIGJvcmRlciA9IGxv
Z2ljYWxCb3JkZXIocm9vdFJlbmRlcmVyLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBi
bG9ja0Zsb3dEaXJlY3Rpb24pOwotICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgJiYg
IXN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKKyAgICBhdXRvIHBhZGRpbmcg
PSBsb2dpY2FsUGFkZGluZyhyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdpZHRoLCBpc0xlZnRUb1Jp
Z2h0SW5saW5lRGlyZWN0aW9uKTsKKyAgICBhdXRvIGJvcmRlciA9IGxvZ2ljYWxCb3JkZXIocm9v
dFJlbmRlcmVyLCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKKyAgICBpZiAoIWlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgIXN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2Rl
KCkpIHsKICAgICAgICAgcGFkZGluZy52ZXJ0aWNhbCA9IHsgcGFkZGluZy52ZXJ0aWNhbC5hZnRl
ciwgcGFkZGluZy52ZXJ0aWNhbC5iZWZvcmUgfTsKICAgICAgICAgYm9yZGVyLnZlcnRpY2FsID0g
eyBib3JkZXIudmVydGljYWwuYWZ0ZXIsIGJvcmRlci52ZXJ0aWNhbC5iZWZvcmUgfTsKICAgICB9
CkBAIC00NDIsNyArNDMzLDcgQEAgTGF5b3V0OjpDb25zdHJhaW50c0ZvcklubGluZUNvbnRlbnQg
Qm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVJbmxpbmVDb250ZW50Q29uc3QKICAgICBhdXRvIHNj
cm9sbGJhclNpemUgPSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShyb290UmVuZGVyZXIpOwogICAgIGF1
dG8gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCA9IHJvb3RSZW5kZXJlci5zaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAKLSAgICBhdXRvIGNvbnRlbnRCb3hX
aWR0aCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gcm9vdFJlbmRlcmVyLmNvbnRlbnRXaWR0
aCgpIDogcm9vdFJlbmRlcmVyLmNvbnRlbnRIZWlnaHQoKTsKKyAgICBhdXRvIGNvbnRlbnRCb3hX
aWR0aCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByb290UmVuZGVyZXIuY29udGVudFdp
ZHRoKCkgOiByb290UmVuZGVyZXIuY29udGVudEhlaWdodCgpOwogICAgIGF1dG8gY29udGVudEJv
eExlZnQgPSBib3JkZXIuaG9yaXpvbnRhbC5zdGFydCArIHBhZGRpbmcuaG9yaXpvbnRhbC5zdGFy
dCArIChpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uICYmIHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQgPyBzY3JvbGxiYXJTaXplLndpZHRoKCkgOiAwX2x1KTsKICAgICBhdXRv
IGNvbnRlbnRCb3hUb3AgPSBib3JkZXIudmVydGljYWwuYmVmb3JlICsgcGFkZGluZy52ZXJ0aWNh
bC5iZWZvcmU7CiAKQEAgLTQ1OCw4ICs0NDksOCBAQCBMYXlvdXQ6OkNvbnN0cmFpbnRzRm9ySW5s
aW5lQ29udGVudCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUlubGluZUNvbnRlbnRDb25zdAog
ICAgICAgICByb290R2VvbWV0cnkuc2V0Qm9yZGVyKGJvcmRlcik7CiAgICAgICAgIHJvb3RHZW9t
ZXRyeS5zZXRIb3Jpem9udGFsU3BhY2VGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyU2l6ZS53aWR0aCgp
KTsKICAgICAgICAgcm9vdEdlb21ldHJ5LnNldFZlcnRpY2FsU3BhY2VGb3JTY3JvbGxiYXIoc2Ny
b2xsYmFyU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJvb3RHZW9tZXRyeS5zZXRIb3Jpem9udGFs
TWFyZ2luKGhvcml6b250YWxMb2dpY2FsTWFyZ2luKHJvb3RSZW5kZXJlciwgYXZhaWxhYmxlV2lk
dGgsIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KSk7Ci0gICAgICAgIHJvb3RHZW9tZXRyeS5zZXRWZXJ0aWNhbE1hcmdpbih2ZXJ0aWNhbExvZ2lj
YWxNYXJnaW4ocm9vdFJlbmRlcmVyLCBhdmFpbGFibGVXaWR0aCwgYmxvY2tGbG93RGlyZWN0aW9u
KSk7CisgICAgICAgIHJvb3RHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGhvcml6b250YWxM
b2dpY2FsTWFyZ2luKHJvb3RSZW5kZXJlciwgYXZhaWxhYmxlV2lkdGgsIGlzTGVmdFRvUmlnaHRJ
bmxpbmVEaXJlY3Rpb24pKTsKKyAgICAgICAgcm9vdEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2lu
KHZlcnRpY2FsTG9naWNhbE1hcmdpbihyb290UmVuZGVyZXIsIGF2YWlsYWJsZVdpZHRoKSk7CiAg
ICAgfTsKICAgICBjcmVhdGVSb290R2VvbWV0cnlJZk5lZWRlZCgpOwogCkBAIC00ODAsMTEgKzQ3
MSwxMSBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlR2VvbWV0cnlBZnRlckxheW91
dChjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIGxheQogCiAgICAgYXV0byBpbnRlZ3JhdGlvbkFk
anVzdG1lbnRzID0gWyZdIHsKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBldmVudHVh
bGx5IGJlIGFsbCBhYnNvcmJlZCBieSBMRkMgbGF5b3V0LgotICAgICAgICBzZXRJbnRlZ3JhdGlv
bkJhc2VsaW5lKCpyZW5kZXJCb3gpOworICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKCpy
ZW5kZXJCb3gsIGJsb2NrRmxvd0RpcmVjdGlvbigpKTsKIAogICAgICAgICBpZiAoYXV0byogcmVu
ZGVyTGlzdE1hcmtlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPigqcmVuZGVy
Qm94KSkgewogICAgICAgICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3gucGFyZW50KCkuc3R5
bGUoKTsKLSAgICAgICAgICAgIGJveEdlb21ldHJ5LnNldEhvcml6b250YWxNYXJnaW4oaG9yaXpv
bnRhbExvZ2ljYWxNYXJnaW4oKnJlbmRlckxpc3RNYXJrZXIsIHsgfSwgc3R5bGUuaXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpLCBzdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSk7CisgICAg
ICAgICAgICBib3hHZW9tZXRyeS5zZXRIb3Jpem9udGFsTWFyZ2luKGhvcml6b250YWxMb2dpY2Fs
TWFyZ2luKCpyZW5kZXJMaXN0TWFya2VyLCB7IH0sIHN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSkpOwogICAgICAgICAgICAgaWYgKCFyZW5kZXJMaXN0TWFya2VyLT5pc0luc2lkZSgpKQog
ICAgICAgICAgICAgICAgIHNldExpc3RNYXJrZXJPZmZzZXRGb3JNYXJrZXJPdXRzaWRlKCpyZW5k
ZXJMaXN0TWFya2VyKTsKICAgICAgICAgfQpAQCAtNDkyLDcgKzQ4Myw3IEBAIHZvaWQgQm94R2Vv
bWV0cnlVcGRhdGVyOjp1cGRhdGVHZW9tZXRyeUFmdGVyTGF5b3V0KGNvbnN0IExheW91dDo6RWxl
bWVudEJveCYgbGF5CiAgICAgICAgIGlmIChpczxSZW5kZXJUYWJsZT4oKnJlbmRlckJveCkpIHsK
ICAgICAgICAgICAgIC8vIFRhYmxlcyBoYXZlIHRoZWlyIHNwZWNpYWwgY29sbGFwc2VkIGJvcmRl
ciB2YWx1ZXMgKHVwZGF0ZWQgYXQgbGF5b3V0KS4KICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0g
bGF5b3V0Qm94LnBhcmVudCgpLnN0eWxlKCk7Ci0gICAgICAgICAgICBib3hHZW9tZXRyeS5zZXRC
b3JkZXIobG9naWNhbEJvcmRlcigqcmVuZGVyQm94LCBzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCksIHN0eWxlLmJsb2NrRmxvd0RpcmVjdGlvbigpLCBmYWxzZSkpOworICAgICAgICAgICAg
Ym94R2VvbWV0cnkuc2V0Qm9yZGVyKGxvZ2ljYWxCb3JkZXIoKnJlbmRlckJveCwgc3R5bGUuaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIG5lZWRz
RnVsbEdlb21ldHJ5VXBkYXRlID0gWyZdIHsKQEAgLTU0NCw2ICs1MzUsMTYgQEAgY29uc3QgUmVu
ZGVyQmxvY2smIEJveEdlb21ldHJ5VXBkYXRlcjo6cm9vdFJlbmRlcmVyKCkgY29uc3QKICAgICBy
ZXR1cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyb290TGF5b3V0Qm94KCkucmVuZGVyZXJGb3JJ
bnRlZ3JhdGlvbigpKTsKIH0KIAorYm9vbCBCb3hHZW9tZXRyeVVwZGF0ZXI6OmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcm9vdFJlbmRlcmVyKCkuc3R5bGUo
KS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworfQorCitGbG93RGlyZWN0aW9uIEJveEdlb21l
dHJ5VXBkYXRlcjo6YmxvY2tGbG93RGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcm9v
dFJlbmRlcmVyKCkuc3R5bGUoKS5ibG9ja0Zsb3dEaXJlY3Rpb24oKTsKK30KKwogfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91
dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgK
aW5kZXggMTZlNzE0MzQwMzM0Li5jYjYwMDcwZGRmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5l
L0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIklubGluZUZv
cm1hdHRpbmdDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCiAj
aW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgiCiAjaW5jbHVkZSAiTGF5b3V0U3Rh
dGUuaCIKIApAQCAtNjEsNiArNjIsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUlubGlu
ZUJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVySW5saW5lJiwgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBhdmFpbGFibGVXaWR0aCwgc3RkOjpvcHRpb25hbDxMYXlvdXQ6OkludHJpbnNpY1dpZHRo
TW9kZT4gPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgc2V0TGlzdE1hcmtlck9mZnNldEZvck1h
cmtlck91dHNpZGUoY29uc3QgUmVuZGVyTGlzdE1hcmtlciYpOwogCisgICAgTGF5b3V0OjpCb3hH
ZW9tZXRyeTo6SG9yaXpvbnRhbEVkZ2VzIGhvcml6b250YWxMb2dpY2FsTWFyZ2luKGNvbnN0IFJl
bmRlckJveE1vZGVsT2JqZWN0Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVX
aWR0aCwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBib29sIHJldGFpbk1hcmdp
blN0YXJ0ID0gdHJ1ZSwgYm9vbCByZXRhaW5NYXJnaW5FbmQgPSB0cnVlKTsKKyAgICBMYXlvdXQ6
OkJveEdlb21ldHJ5OjpWZXJ0aWNhbEVkZ2VzIHZlcnRpY2FsTG9naWNhbE1hcmdpbihjb25zdCBS
ZW5kZXJCb3hNb2RlbE9iamVjdCYsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxl
V2lkdGgpOworICAgIExheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIGxvZ2ljYWxCb3JkZXIoY29u
c3QgUmVuZGVyQm94TW9kZWxPYmplY3QmLCBib29sIGlzTGVmdFRvUmlnaHRJbmxpbmVEaXJlY3Rp
b24sIGJvb2wgaXNJbnRyaW5zaWNXaWR0aE1vZGUgPSBmYWxzZSwgYm9vbCByZXRhaW5Cb3JkZXJT
dGFydCA9IHRydWUsIGJvb2wgcmV0YWluQm9yZGVyRW5kID0gdHJ1ZSk7CisgICAgTGF5b3V0OjpC
b3hHZW9tZXRyeTo6RWRnZXMgbG9naWNhbFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIGJvb2wgcmV0YWluUGFkZGluZ1N0YXJ0ID0gdHJ1ZSwg
Ym9vbCByZXRhaW5QYWRkaW5nRW5kID0gdHJ1ZSk7CisKKyAgICBGbG93RGlyZWN0aW9uIGJsb2Nr
Rmxvd0RpcmVjdGlvbigpIGNvbnN0OworICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSBjb25zdDsKKwogICAgIExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyByZXR1
cm4gKm1fbGF5b3V0U3RhdGU7IH0KICAgICBjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9CiAgICAgY29uc3QgTGF5
b3V0OjpFbGVtZW50Qm94JiByb290TGF5b3V0Qm94KCkgY29uc3Q7Cg==
</data>
<flag name="commit-queue"
          id="497745"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>