<?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>294801</bug_id>
          
          <creation_ts>2025-06-21 09:38:55 -0700</creation_ts>
          <short_desc>[Cleanup] Rename LayoutPositionedMovementOnly to LayoutOutOfFlowMovementOnly</short_desc>
          <delta_ts>2025-06-23 07:37:14 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2125042</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-06-21 09:38:55 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2125043</commentid>
    <comment_count>1</comment_count>
      <attachid>475620</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-21 09:55:50 -0700</bug_when>
    <thetext>Created attachment 475620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2125072</commentid>
    <comment_count>2</comment_count>
      <attachid>475621</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-22 05:28:02 -0700</bug_when>
    <thetext>Created attachment 475621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2125188</commentid>
    <comment_count>3</comment_count>
      <attachid>475628</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-23 05:36:11 -0700</bug_when>
    <thetext>Created attachment 475628
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2125217</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-06-23 07:36:27 -0700</bug_when>
    <thetext>Committed 296511@main (5ba1135133de): &lt;https://commits.webkit.org/296511@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 475628.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2125218</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-06-23 07:37:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/154092645&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475620</attachid>
            <date>2025-06-21 09:55:50 -0700</date>
            <delta_ts>2025-06-22 05:28:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-294801-20250621095550.patch</filename>
            <type>text/plain</type>
            <size>30145</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxZGMxZjNmYTJlNjc0NDgwMzVmZTUyZTA3MmUyOWJmNjgzNjMyNGNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjEgSnVuIDIwMjUgMDk6NDA6NDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuYW1lIExheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgdG8KIExheW91dE91dE9mRmxv
d01vdmVtZW50T25seSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk0
ODAxCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkhlcmUsICdQb3NpdGlvbmVkTW92ZW1l
bnQnIHJlZmVycyB0byBtb3ZpbmcgYW4gb3V0LW9mLWZsb3cgYm94LCBub3QganVzdCBhbnkgcG9z
aXRpb25lZCBib3ggKGUuZy4sIG9uZSB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSkuCgoqIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5
b3V0SWZEaW1lbnNpb25zT3V0T2ZEYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQpOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dE91dE9mRmxvd0JveCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oOgooV2ViQ29yZTo6UmVuZGVyQm94Ojp0cnlMYXlvdXRE
b2luZ091dE9mRmxvd01vdmVtZW50T25seSk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnRyeUxheW91
dERvaW5nUG9zaXRpb25lZE1vdmVtZW50T25seSk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6YWRq
dXN0U3R5bGVEaWZmZXJlbmNlIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNldFN0
eWxlKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZSk6CihXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KToKKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6OmNsZWFyQ2hpbGROZWVkc0xheW91dCk6CihXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50OjpzZXROZWVkc0xheW91dEZvclN0eWxlRGlmZmVyZW5jZSk6CihXZWJDb3JlOjpS
ZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNo
b3VsZFJlcGFpbnRBZnRlckxheW91dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2Fs
Y3VsYXRlQ2xpcFJlY3RzIGNvbnN0KToKKFdlYkNvcmU6Om91dHB1dExheWVyUG9zaXRpb25UcmVl
UmVjdXJzaXZlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJTdHlsZUNoYW5nZWQpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpjbGVhck5lZWRzTGF5b3V0KToKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVk
c0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpOgooV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOiBE
ZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRCaXQp
OgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
T25seSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om5lZWRzTGF5b3V0IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHkg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExh
eW91dCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6bmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXRPbmx5IGNvbnN0KTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CihXZWJDb3JlOjp3
cml0ZURlYnVnSW5mbyk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc091dE9mRmxvd01v
dmVtZW50TGF5b3V0T25seSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZiBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNQb3NpdGlvbmVkTGF5b3V0
T25seSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgotLS0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8ICA0ICstLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCAgICB8IDI5ICsrKysrKysrKy0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgfCAgNiArKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCAgICAgICAgfCAgNCArLS0KIC4uLi9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgfCAxMCArKystLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAxOCArKysrKystLS0t
LS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCB8ICA0ICst
LQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgIHwgMTcgKysr
Ky0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oICB8
ICAyICstCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCAgfCAg
NCArLS0KIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCAgICB8ICA4
ICsrLS0tCiAxNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3YzM4Y2ExODU2NGEuLjAxMDA4MWQ0M2Iw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMTg3LDcgKzMxODcsNyBAQCBib29sIERv
Y3VtZW50Ojp1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYgZWxlbWVu
dCwgT3B0aW9uU2V0PERpbQogICAgIGJvb2wgcmVxdWlyZUZ1bGxMYXlvdXQgPSBpczxIVE1MSW5w
dXRFbGVtZW50PihlbGVtZW50KTsKICAgICB7CiAgICAgICAgIENoZWNrZWRQdHIgcmVuZGVyZXIg
PSBlbGVtZW50LnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlci0+c2VsZk5lZWRzTGF5
b3V0KCkgfHwgcmVuZGVyZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSB8fCByZW5kZXJlci0+
b3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpIHx8IHJlbmRlcmVyLT5uZWVkc1Bvc2l0aW9uZWRN
b3ZlbWVudExheW91dCgpKQorICAgICAgICBpZiAocmVuZGVyZXItPnNlbGZOZWVkc0xheW91dCgp
IHx8IHJlbmRlcmVyLT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkgfHwgcmVuZGVyZXItPm91dE9m
Rmxvd0NoaWxkTmVlZHNMYXlvdXQoKSB8fCByZW5kZXJlci0+bmVlZHNPdXRPZkZsb3dNb3ZlbWVu
dExheW91dCgpKQogICAgICAgICAgICAgcmVxdWlyZUZ1bGxMYXlvdXQgPSB0cnVlOwogICAgICAg
ICBpZiAocmVuZGVyZXItPm5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKSkgewogICAg
ICAgICAgICAgaWYgKCFkaW1lbnNpb25zQ2hlY2suY29udGFpbnMoRGltZW5zaW9uc0NoZWNrOjpJ
Z25vcmVPdmVyZmxvdykpCkBAIC0zMjE1LDcgKzMyMTUsNyBAQCBib29sIERvY3VtZW50Ojp1cGRh
dGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYgZWxlbWVudCwgT3B0aW9uU2V0
PERpbQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoZGltZW5zaW9uc0NoZWNrLmNvbnRhaW5zQW55KHsgRGltZW5zaW9uc0NoZWNrOjpMZWZ0
LCBEaW1lbnNpb25zQ2hlY2s6OlRvcCB9KSAmJiBjdXJyZW50UmVuZGVyZXItPm5lZWRzUG9zaXRp
b25lZE1vdmVtZW50TGF5b3V0KCkpIHsKKyAgICAgICAgICAgIGlmIChkaW1lbnNpb25zQ2hlY2su
Y29udGFpbnNBbnkoeyBEaW1lbnNpb25zQ2hlY2s6OkxlZnQsIERpbWVuc2lvbnNDaGVjazo6VG9w
IH0pICYmIGN1cnJlbnRSZW5kZXJlci0+bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCgpKSB7
CiAgICAgICAgICAgICAgICAgcmVxdWlyZUZ1bGxMYXlvdXQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggOWRmYmUwZTBlZmRhLi4zOWRlNDdjODNhZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNzY5LDcgKzc2OSw3IEBAIGJvb2wgUmVu
ZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoKnRoaXMsIGxvY2F0aW9uT2Zmc2V0
KCksIGlzVHJhbnNmb3JtZWQoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgd3JpdGluZ01vZGUoKS5p
c0Jsb2NrRmxpcHBlZCgpKTsKLSAgICBpZiAobmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQo
KSAmJiAhdHJ5TGF5b3V0RG9pbmdQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KCkpCisgICAgaWYgKG5l
ZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSAmJiAhdHJ5TGF5b3V0RG9pbmdPdXRPZkZsb3dN
b3ZlbWVudE9ubHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTGF5IG91dCBw
b3NpdGlvbmVkIGRlc2NlbmRhbnRzIG9yIG9iamVjdHMgdGhhdCBqdXN0IG5lZWQgdG8gcmVjb21w
dXRlIG92ZXJmbG93LgpAQCAtODg3LDcgKzg4Nyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dE91dE9mRmxvd0JveChSZW5kZXJCb3gmIG91dE9mRmxvd0JveCwgUmVsYXlvdXRDaGlsZHJlbiBy
CiAgICAgCiAgICAgLy8gV2UgZG9uJ3QgaGF2ZSB0byBkbyBhIGZ1bGwgbGF5b3V0LiAgV2UganVz
dCBoYXZlIHRvIHVwZGF0ZSBvdXIgcG9zaXRpb24uIFRyeSB0aGF0IGZpcnN0LiBJZiB3ZSBoYXZl
IHNocmluay10by1maXQgd2lkdGgKICAgICAvLyBhbmQgd2UgaGl0IHRoZSBhdmFpbGFibGUgd2lk
dGggY29uc3RyYWludCwgdGhlIGxheW91dElmTmVlZGVkKCkgd2lsbCBjYXRjaCBpdCBhbmQgZG8g
YSBmdWxsIGxheW91dC4KLSAgICBpZiAob3V0T2ZGbG93Qm94Lm5lZWRzUG9zaXRpb25lZE1vdmVt
ZW50TGF5b3V0T25seSgpICYmIG91dE9mRmxvd0JveC50cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRN
b3ZlbWVudE9ubHkoKSkKKyAgICBpZiAob3V0T2ZGbG93Qm94Lm5lZWRzT3V0T2ZGbG93TW92ZW1l
bnRMYXlvdXRPbmx5KCkgJiYgb3V0T2ZGbG93Qm94LnRyeUxheW91dERvaW5nT3V0T2ZGbG93TW92
ZW1lbnRPbmx5KCkpCiAgICAgICAgIG91dE9mRmxvd0JveC5jbGVhck5lZWRzTGF5b3V0KCk7CiAK
ICAgICAvLyBJZiB3ZSBhcmUgcGFnaW5hdGVkIG9yIGluIGEgbGluZSBncmlkLCBjb21wdXRlIGEg
dmVydGljYWwgcG9zaXRpb24gZm9yIG91ciBvYmplY3Qgbm93LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCmluZGV4IDNjYzAyZmQ2MGQyMS4uNTkyMTliYmM4MWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTcsOSArNDk3LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwYWludENsaXBwaW5nTWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCogPSBudWxscHRyKSBvdmVycmlkZTsKIAotICAgIC8vIENhbGxlZCB3aGVuIGEgcG9zaXRp
b25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdlIHNpemUuICBB
IHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZAorICAgIC8vIENhbGxlZCB3aGVuIGFuIG91
dC1vZi1mbG93IGJveCBtb3ZlcyBidXQgZG9lc24ndCBuZWNlc3NhcmlseSBjaGFuZ2Ugc2l6ZS4g
QSBzaW1wbGlmaWVkIGxheW91dCBpcyBhdHRlbXB0ZWQKICAgICAvLyB0aGF0IGp1c3QgdXBkYXRl
cyB0aGUgb2JqZWN0J3MgcG9zaXRpb24uIElmIHRoZSBzaXplIGRvZXMgY2hhbmdlLCB0aGUgb2Jq
ZWN0IHJlbWFpbnMgZGlydHkuCi0gICAgYm9vbCB0cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRNb3Zl
bWVudE9ubHkoKQorICAgIGJvb2wgdHJ5TGF5b3V0RG9pbmdPdXRPZkZsb3dNb3ZlbWVudE9ubHko
KQogICAgIHsKICAgICAgICAgTGF5b3V0VW5pdCBvbGRXaWR0aCA9IHdpZHRoKCk7CiAgICAgICAg
IHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCmluZGV4IDg0ZDIzZDBjNjQ0OS4uNjNlMDBmY2UzODliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yODgsMTEgKzI4OCwxMCBAQCBT
dHlsZURpZmZlcmVuY2UgUmVuZGVyRWxlbWVudDo6YWRqdXN0U3R5bGVEaWZmZXJlbmNlKFN0eWxl
RGlmZmVyZW5jZSBkaWZmLCBPcHRpbwogICAgICAgICAgICAgaWYgKCFoYXNMYXllcigpKQogICAg
ICAgICAgICAgICAgIGRpZmYgPSBzdGQ6Om1heChkaWZmLCBTdHlsZURpZmZlcmVuY2U6OkxheW91
dCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHNl
dCBhdCBsZWFzdCBPdmVyZmxvdywgYnV0IGlmIFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgaXMgYWxy
ZWFkeSBzZXQKLSAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjdHVhbGx5IG5lZWQgT3ZlcmZs
b3dBbmRQb3NpdGlvbmVkTW92ZW1lbnQuCi0gICAgICAgICAgICAgICAgZGlmZiA9IHN0ZDo6bWF4
KGRpZmYsIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50
T25seSkgPyBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50IDog
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBzZXQgYXQgbGVhc3QgT3ZlcmZsb3csIGJ1dCBpZiBPdXRPZkZsb3dNb3ZlbWVudE9ubHkgaXMg
YWxyZWFkeSBzZXQKKyAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjdHVhbGx5IG5lZWQgT3Zl
cmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVudC4KKyAgICAgICAgICAgICAgICBkaWZmID0gc3RkOjpt
YXgoZGlmZiwgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3ZlbWVu
dE9ubHkpID8gU3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvd0FuZE91dE9mRmxvd01vdmVtZW50IDog
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvdyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIAogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIGRpZmYgPSBzdGQ6Om1heChkaWZmLCBTdHlsZURpZmZl
cmVuY2U6OlJlY29tcG9zaXRlTGF5ZXIpOwogICAgIH0KQEAgLTYxNyw3ICs2MTYsNyBAQCB2b2lk
IFJlbmRlckVsZW1lbnQ6OnNldFN0eWxlKFJlbmRlclN0eWxlJiYgc3R5bGUsIFN0eWxlRGlmZmVy
ZW5jZSBtaW5pbWFsU3R5bGVEaQogICAgIC8vIGNoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGxheW91
dCBub3csIGFuZCBkZWNpZGUgaWYgd2UgbmVlZCB0byByZXBhaW50LgogICAgIFN0eWxlRGlmZmVy
ZW5jZSB1cGRhdGVkRGlmZiA9IGFkanVzdFN0eWxlRGlmZmVyZW5jZShkaWZmLCBjb250ZXh0U2Vu
c2l0aXZlUHJvcGVydGllcyk7CiAgICAgCi0gICAgaWYgKGRpZmYgPD0gU3R5bGVEaWZmZXJlbmNl
OjpMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQorICAgIGlmIChkaWZmIDw9IFN0eWxlRGlm
ZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5KQogICAgICAgICBzZXROZWVkc0xh
eW91dEZvclN0eWxlRGlmZmVyZW5jZSh1cGRhdGVkRGlmZiwgJm9sZFN0eWxlKTsKIAogICAgIGlm
ICghZGlkUmVwYWludCAmJiAodXBkYXRlZERpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50
TGF5ZXIgfHwgc2hvdWxkUmVwYWludEZvclN0eWxlRGlmZmVyZW5jZSh1cGRhdGVkRGlmZikpKSB7
CkBAIC05NzYsNyArOTc1LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgfQog
CiAgICAgICAgIC8vIHJlc2V0IHN0eWxlIGZsYWdzCi0gICAgICAgIGlmIChkaWZmID09IFN0eWxl
RGlmZmVyZW5jZTo6TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRQb3Np
dGlvbmVkTW92ZW1lbnRPbmx5KSB7CisgICAgICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZTo6TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3Zl
bWVudE9ubHkpIHsKICAgICAgICAgICAgIHNldEZsb2F0aW5nKGZhbHNlKTsKICAgICAgICAgICAg
IGNsZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgICAgIH0KQEAgLTEyMjEsMTggKzEyMjAsMTgg
QEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgICAgICBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZSgqcHJvdGVjdGVkRWxlbWVudCgpKTsK
IH0KIAotdm9pZCBSZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91
dChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5l
ZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQog
ewogICAgIEFTU0VSVCghaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigpKTsKLSAgICBpZiAobmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKSkKKyAgICBpZiAobmVlZHNPdXRPZkZsb3dNb3Zl
bWVudExheW91dCgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2V0TmVlZHNQb3NpdGlvbmVkTW92
ZW1lbnRMYXlvdXRCaXQodHJ1ZSk7CisgICAgc2V0TmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91
dEJpdCh0cnVlKTsKICAgICBzY2hlZHVsZUxheW91dChtYXJrQ29udGFpbmluZ0Jsb2Nrc0Zvckxh
eW91dCgpKTsKICAgICBpZiAoaGFzTGF5ZXIoKSkgewogICAgICAgICBpZiAob2xkU3R5bGUgJiYg
c3R5bGUoKS5kaWZmUmVxdWlyZXNMYXllclJlcGFpbnQoKm9sZFN0eWxlLCBkb3duY2FzdDxSZW5k
ZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcykubGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpKQogICAg
ICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91
dCgpOworICAgICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92
ZW1lbnRMYXlvdXQoKTsKICAgICB9CiB9CiAKQEAgLTEyNDEsNyArMTI0MCw3IEBAIHZvaWQgUmVu
ZGVyRWxlbWVudDo6Y2xlYXJDaGlsZE5lZWRzTGF5b3V0KCkKICAgICBzZXROb3JtYWxDaGlsZE5l
ZWRzTGF5b3V0Qml0KGZhbHNlKTsKICAgICBzZXRPdXRPZkZsb3dDaGlsZE5lZWRzTGF5b3V0Qml0
KGZhbHNlKTsKICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0Qml0KGZhbHNl
KTsKLSAgICBzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dEJpdChmYWxzZSk7CisgICAg
c2V0TmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dEJpdChmYWxzZSk7CiAgICAgc2V0T3V0T2ZG
bG93Q2hpbGROZWVkc1N0YXRpY1Bvc2l0aW9uTGF5b3V0Qml0KGZhbHNlKTsKIH0KIApAQCAtMTI0
OSwxMCArMTI0OCwxMCBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5lZWRzTGF5b3V0Rm9yU3R5
bGVEaWZmZXJlbmNlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdAogewogICAgIGlmIChkaWZm
ID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0KQogICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZlcnJlZFdpZHRoc1VwZGF0ZSgpOwotICAgIGVsc2UgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJl
bmNlOjpMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQotICAgICAgICBzZXROZWVkc1Bvc2l0
aW9uZWRNb3ZlbWVudExheW91dChvbGRTdHlsZSk7Ci0gICAgZWxzZSBpZiAoZGlmZiA9PSBTdHls
ZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50KSB7Ci0gICAgICAgIHNl
dE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKKyAgICBlbHNlIGlmIChk
aWZmID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5KQorICAg
ICAgICBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKKyAgICBlbHNl
IGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZTo6T3ZlcmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVu
dCkgeworICAgICAgICBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsK
ICAgICAgICAgc2V0TmVlZHNMYXlvdXRGb3JPdmVyZmxvd0NoYW5nZSgpOwogICAgIH0gZWxzZSBp
ZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93KQogICAgICAgICBzZXROZWVkc0xh
eW91dEZvck92ZXJmbG93Q2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuaAppbmRleCA2NGMzZjU5ZWY5NzYuLjkyZTYwYmMxZDQ0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0Q2hpbGROZWVkc0xheW91dChNYXJraW5nQmVoYXZpb3IgPSBNYXJrQ29udGFp
bmluZ0Jsb2NrQ2hhaW4pOwogICAgIHZvaWQgc2V0T3V0T2ZGbG93Q2hpbGROZWVkc1N0YXRpY1Bv
c2l0aW9uTGF5b3V0KCk7CiAgICAgdm9pZCBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKLSAgICB2
b2lkIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CisgICAgdm9pZCBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdm9pZCBzZXROZWVkc0xheW91dEZvclN0eWxl
RGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7
CiAgICAgdm9pZCBzZXROZWVkc0xheW91dEZvck92ZXJmbG93Q2hhbmdlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDVmYTcxNjAwMDhkZi4uYThmYzU2
NmM3ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0
MDcsNyArMjQwNyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRlckxheW91
dCgpIGNvbnN0CiAKICAgICAvLyBDb21wb3NpdGVkIGxheWVycyB0aGF0IHdlcmUgbW92ZWQgZHVy
aW5nIGEgcG9zaXRpb25lZCBtb3ZlbWVudCBvbmx5CiAgICAgLy8gbGF5b3V0LCBkb24ndCBuZWVk
IHRvIGJlIHJlcGFpbnRlZC4gVGhleSBqdXN0IG5lZWQgdG8gYmUgcmVjb21wb3NpdGVkLgotICAg
IEFTU0VSVChtX3JlcGFpbnRTdGF0dXMgPT0gUmVwYWludFN0YXR1czo6TmVlZHNGdWxsUmVwYWlu
dEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dCk7CisgICAgQVNTRVJUKG1fcmVwYWludFN0YXR1
cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRM
YXlvdXQpOwogICAgIHJldHVybiAhaXNDb21wb3NpdGVkKCkgfHwgYmFja2luZygpLT5wYWludHNJ
bnRvQ29tcG9zaXRlZEFuY2VzdG9yKCk7CiB9CiAKQEAgLTYyMzgsNyArNjIzOCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAgIGRpcnR5QW5jZXN0b3JDaGFpbkhhc1ZpZXdwb3J0
Q29uc3RyYWluZWREZXNjZW5kYW50U3RhdHVzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZTo6UmVjb21wb3NpdGVMYXllciB8fCBkaWZmID49IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9z
aXRpb25lZE1vdmVtZW50T25seSkKKyAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2U6OlJl
Y29tcG9zaXRlTGF5ZXIgfHwgZGlmZiA+PSBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91dE9mRmxv
d01vdmVtZW50T25seSkKICAgICAgICAgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmludmFsaWRhdGVS
ZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShkaWZm
KTsKQEAgLTY5MzgsNyArNjkzOCw3IEBAIHZvaWQgb3V0cHV0TGF5ZXJQb3NpdGlvblRyZWVSZWN1
cnNpdmUoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBXZWJDb3JlOjpSZW5kZXJMCiAKICAgICBz
dHJlYW0gPDwgIiAiX3M7CiAKLSAgICBpZiAobGF5ZXIucmVwYWludFN0YXR1cygpID09IFdlYkNv
cmU6OlJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRM
YXlvdXQpCisgICAgaWYgKGxheWVyLnJlcGFpbnRTdGF0dXMoKSA9PSBXZWJDb3JlOjpSZXBhaW50
U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpCiAgICAg
ICAgIHN0cmVhbSA8PCAiUCI7CiAgICAgZWxzZSBpZiAobGF5ZXIucmVwYWludFN0YXR1cygpID09
IFdlYkNvcmU6OlJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnQpCiAgICAgICAgIHN0cmVh
bSA8PCAiRiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGUyOTU1
MjJkMWFhNy4uODhjMzQ0ZDdjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaApAQCAtOTgsNyArOTgsNyBAQCBlbnVtIGNsYXNzIExheW91dFVwVG9EYXRlIDogYm9vbCB7
IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgUmVwYWludFN0YXR1cyA6IHVpbnQ4X3QgewogICAgIE5l
ZWRzTm9ybWFsUmVwYWludCwKICAgICBOZWVkc0Z1bGxSZXBhaW50LAotICAgIE5lZWRzRnVsbFJl
cGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQKKyAgICBOZWVkc0Z1bGxSZXBhaW50Rm9y
T3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQKIH07CiAKIGVudW0gQ2xpcFJlY3RzVHlwZSB7CkBAIC03
ODQsNyArNzg0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRSZXBhaW50U3RhdHVzKFJlcGFp
bnRTdGF0dXMpOwogICAgIFJlcGFpbnRTdGF0dXMgcmVwYWludFN0YXR1cygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwYWludFN0YXR1czsgfQotICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVwYWludFN0YXR1cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBh
aW50IHx8IG1fcmVwYWludFN0YXR1cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50
Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0OyB9CisgICAgYm9vbCBuZWVkc0Z1bGxSZXBhaW50
KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50U3RhdHVzID09IFJlcGFpbnRTdGF0dXM6Ok5lZWRz
RnVsbFJlcGFpbnQgfHwgbV9yZXBhaW50U3RhdHVzID09IFJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVs
bFJlcGFpbnRGb3JPdXRPZkZsb3dNb3ZlbWVudExheW91dDsgfQogCiAgICAgTGF5b3V0VW5pdCBz
dGF0aWNJbmxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24u
d2lkdGgoKTsgfQogICAgIExheW91dFVuaXQgc3RhdGljQmxvY2tQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24uaGVpZ2h0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNTRiODY3YzJm
M2Y2Li40NjU2MzI0YjIzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yMTk2LDcgKzIxOTYsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJTdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IFJlbmRlckxheWVyJgogICAgIGNvbnN0IGF1dG8mIG5ld1N0eWxlID0gbGF5ZXIucmVuZGVyZXIo
KS5zdHlsZSgpOwogCiAgICAgaWYgKGhhc0NvbnRlbnRDb21wb3NpdGluZ0xheWVycygpKSB7Ci0g
ICAgICAgIGlmIChkaWZmID49IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVt
ZW50T25seSkgeworICAgICAgICBpZiAoZGlmZiA+PSBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91
dE9mRmxvd01vdmVtZW50T25seSkgewogICAgICAgICAgICAgbGF5ZXIuc2V0TmVlZHNQb3N0TGF5
b3V0Q29tcG9zaXRpbmdVcGRhdGUoKTsKICAgICAgICAgICAgIGxheWVyLnNldE5lZWRzQ29tcG9z
aXRpbmdHZW9tZXRyeVVwZGF0ZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGVjOTkyMGEyYzNlMy4uY2QyYmU5NTMwY2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNTc2LDcgKzU3Niw3
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpjbGVhck5lZWRzTGF5b3V0KEhhZFNraXBwZWRMYXlvdXQg
aGFkU2tpcHBlZExheW91dCkKICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
Qml0KGZhbHNlKTsKICAgICBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGZhbHNlKTsKICAg
ICBzZXRPdXRPZkZsb3dDaGlsZE5lZWRzU3RhdGljUG9zaXRpb25MYXlvdXRCaXQoZmFsc2UpOwot
ICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsKKyAgICBzZXRO
ZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsKICNpZiBBU1NFUlRfRU5BQkxF
RAogICAgIGF1dG8gY2hlY2tJZk91dE9mRmxvd0Rlc2NlbmRhbnRzTmVlZExheW91dCA9IFsmXShh
dXRvJiByZW5kZXJCbG9jaykgewogICAgICAgICBpZiAoYXV0byogb3V0T2ZGbG93RGVzY2VuZGFu
dHMgPSByZW5kZXJCbG9jay5vdXRPZkZsb3dCb3hlcygpKSB7CkBAIC03MTUsMTAgKzcxNSwxMCBA
QCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCkKICAgICBkb3du
Y2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcykuY2hlY2tlZExheWVyKCktPnNldFJl
cGFpbnRTdGF0dXMoUmVwYWludFN0YXR1czo6TmVlZHNGdWxsUmVwYWludCk7CiB9CiAKLXZvaWQg
UmVuZGVyT2JqZWN0OjpzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1l
bnRMYXlvdXQoKQordm9pZCBSZW5kZXJPYmplY3Q6OnNldExheWVyTmVlZHNGdWxsUmVwYWludEZv
ck91dE9mRmxvd01vdmVtZW50TGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaGFzTGF5ZXIoKSk7Ci0g
ICAgZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMpLmNoZWNrZWRMYXllcigp
LT5zZXRSZXBhaW50U3RhdHVzKFJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnRGb3JQb3Np
dGlvbmVkTW92ZW1lbnRMYXlvdXQpOworICAgIGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q+KCp0aGlzKS5jaGVja2VkTGF5ZXIoKS0+c2V0UmVwYWludFN0YXR1cyhSZXBhaW50U3RhdHVz
OjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpOwogfQogCiBzdGF0
aWMgaW5saW5lIFJlbmRlckJsb2NrKiBuZWFyZXN0Tm9uQW5vbnltb3VzQ29udGFpbmluZ0Jsb2Nr
SW5jbHVkaW5nU2VsZihSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKQEAgLTE0NjIsOCArMTQ2Miw4
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBib29sIG1hcmssIGludCBkZXB0aCkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiW291dC1v
Zi1mbG93IGNoaWxkXSI7CiAgICAgICAgIGlmIChuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5
b3V0KCkpCiAgICAgICAgICAgICBzdHJlYW0gPDwgIltzaW1wbGlmaWVkXSI7Ci0gICAgICAgIGlm
IChuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpKQotICAgICAgICAgICAgc3RyZWFtIDw8
ICJbcG9zaXRpb25lZCBtb3ZlbWVudF0iOworICAgICAgICBpZiAobmVlZHNPdXRPZkZsb3dNb3Zl
bWVudExheW91dCgpKQorICAgICAgICAgICAgc3RyZWFtIDw8ICJbb3V0LW9mLWZsb3cgbW92ZW1l
bnRdIjsKICAgICAgICAgaWYgKG91dE9mRmxvd0NoaWxkTmVlZHNTdGF0aWNQb3NpdGlvbkxheW91
dCgpKQogICAgICAgICAgICAgc3RyZWFtIDw8ICJbb3V0IG9mIGZsb3cgY2hpbGQgbmVlZHMgcGFy
ZW50IGxheW91dF0iOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCBlMjdiNmI2MGYxZTQuLjIzNzcxYmRjNDBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjk4LDggKzY5OCw4IEBAIHB1YmxpYzoKICAgICBib29s
IG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6OlByZWZlcnJlZExvZ2ljYWxXaWR0aHNOZWVk
VXBkYXRlKTsgfQogCiAgICAgYm9vbCBzZWxmTmVlZHNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlQml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpOZWVkc0xheW91dCk7IH0KLSAgICBi
b29sIG5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlv
dXQpOyB9Ci0gICAgYm9vbCBuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dE9ubHkoKSBjb25z
dDsKKyAgICBib29sIG5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSBjb25zdCB7IHJldHVy
biBtX3N0YXRlQml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpOZWVkc091dE9mRmxvd01vdmVt
ZW50TGF5b3V0KTsgfQorICAgIGJvb2wgbmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHko
KSBjb25zdDsKIAogICAgIGJvb2wgb3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6Ok91dE9mRmxvd0NoaWxk
TmVlZHNMYXlvdXQpOyB9CiAgICAgYm9vbCBuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6TmVl
ZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCk7IH0KQEAgLTExMzksNyArMTEzOSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHNldElzQmVpbmdEZXN0cm95ZWQoKSB7IG1fc3RhdGVCaXRmaWVs
ZHMuc2V0RmxhZyhTdGF0ZUZsYWc6OkJlaW5nRGVzdHJveWVkKTsgfQogCiAgICAgdm9pZCBzY2hl
ZHVsZUxheW91dChSZW5kZXJFbGVtZW50KiBsYXlvdXRSb290KTsKLSAgICB2b2lkIHNldE5lZWRz
UG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGJvb2wgYikgeyBtX3N0YXRlQml0ZmllbGRzLnNl
dEZsYWcoU3RhdGVGbGFnOjpOZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCwgYik7IH0KKyAg
ICB2b2lkIHNldE5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRCaXQoYm9vbCBiKSB7IG1fc3Rh
dGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZsYWc6Ok5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlv
dXQsIGIpOyB9CiAgICAgdm9pZCBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGJvb2wgYikg
eyBtX3N0YXRlQml0ZmllbGRzLnNldEZsYWcoU3RhdGVGbGFnOjpOb3JtYWxDaGlsZE5lZWRzTGF5
b3V0LCBiKTsgfQogICAgIHZvaWQgc2V0T3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dEJpdChib29s
IGIpIHsgbV9zdGF0ZUJpdGZpZWxkcy5zZXRGbGFnKFN0YXRlRmxhZzo6T3V0T2ZGbG93Q2hpbGRO
ZWVkc0xheW91dCwgYik7IH0KICAgICB2b2lkIHNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dM
YXlvdXRCaXQoYm9vbCBiKSB7IG1fc3RhdGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZsYWc6Ok5l
ZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQsIGIpOyB9CkBAIC0xMTY2LDcgKzExNjYsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRBYnNvbHV0ZVJlY3RGb3JMYXllcihMYXlvdXRSZWN0
JiByZXN1bHQpOwogICAgIHZvaWQgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7Ci0gICAgdm9p
ZCBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsK
KyAgICB2b2lkIHNldExheWVyTmVlZHNGdWxsUmVwYWludEZvck91dE9mRmxvd01vdmVtZW50TGF5
b3V0KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGVDb250YWluZXJQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKCk7CiAKQEAgLTEyMDMsNyArMTIwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIElzUmVwbGFj
ZWRPckF0b21pY0lubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKICAg
ICAgICAgQmVpbmdEZXN0cm95ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMSA8PCAyLAogICAgICAgICBOZWVkc0xheW91dCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIE5lZWRzUG9zaXRpb25lZE1vdmVtZW50
TGF5b3V0ICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgTmVlZHNPdXRP
ZkZsb3dNb3ZlbWVudExheW91dCAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDQsCiAgICAg
ICAgIE5vcm1hbENoaWxkTmVlZHNMYXlvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEgPDwgNSwKICAgICAgICAgT3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMSA8PCA2LAogICAgICAgICBOZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93
TGF5b3V0ICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDcsCkBAIC0xMzU2LDcgKzEzNTYsNyBA
QCBpbmxpbmUgdm9pZCBSZW5kZXJPYmplY3Q6OmludmFsaWRhdGVCYWNrZ3JvdW5kT2JzY3VyYXRp
b25TdGF0dXMoKQogaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpuZWVkc1NpbXBsaWZpZWROb3Jt
YWxGbG93TGF5b3V0T25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG5lZWRzU2ltcGxpZmllZE5v
cm1hbEZsb3dMYXlvdXQoKSAmJiAhc2VsZk5lZWRzTGF5b3V0KCkgJiYgIW5vcm1hbENoaWxkTmVl
ZHNMYXlvdXQoKQotICAgICAgICAmJiAhb3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpICYmICFu
ZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpOworICAgICAgICAmJiAhb3V0T2ZGbG93Q2hp
bGROZWVkc0xheW91dCgpICYmICFuZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KCk7CiB9CiAK
IGlubGluZSBSZW5kZXJGcmFnbWVudGVkRmxvdyogUmVuZGVyT2JqZWN0OjplbmNsb3NpbmdGcmFn
bWVudGVkRmxvdygpIGNvbnN0CkBAIC0xMzczLDEyICsxMzczLDEyIEBAIGlubGluZSBib29sIFJl
bmRlck9iamVjdDo6bmVlZHNMYXlvdXQoKSBjb25zdAogICAgICAgICB8fCBub3JtYWxDaGlsZE5l
ZWRzTGF5b3V0KCkKICAgICAgICAgfHwgb3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpCiAgICAg
ICAgIHx8IG5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKQotICAgICAgICB8fCBuZWVk
c1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpOworICAgICAgICB8fCBuZWVkc091dE9mRmxvd01v
dmVtZW50TGF5b3V0KCk7CiB9CiAKLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6bmVlZHNQb3Np
dGlvbmVkTW92ZW1lbnRMYXlvdXRPbmx5KCkgY29uc3QKK2lubGluZSBib29sIFJlbmRlck9iamVj
dDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHkoKSBjb25zdAogewotICAgIHJldHVy
biBuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpCisgICAgcmV0dXJuIG5lZWRzT3V0T2ZG
bG93TW92ZW1lbnRMYXlvdXQoKQogICAgICAgICAmJiAhc2VsZk5lZWRzTGF5b3V0KCkKICAgICAg
ICAgJiYgIW5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKQogICAgICAgICAmJiAhb3V0T2ZGbG93Q2hp
bGROZWVkc0xheW91dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAKaW5kZXggMjlmZGZhZGEwYTkzLi5kYzA1NjE0NzJhMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTQwMyw3ICs0MDMsNyBA
QCB2b2lkIHdyaXRlRGVidWdJbmZvKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3Qm
IG9iamVjdCwgT3B0aW9uU2V0PFJlbmRlcgogICAgIH0KIAogICAgIGlmIChiZWhhdmlvci5jb250
YWlucyhSZW5kZXJBc1RleHRGbGFnOjpTaG93TGF5b3V0U3RhdGUpKSB7Ci0gICAgICAgIGJvb2wg
bmVlZHNMYXlvdXQgPSBvYmplY3Quc2VsZk5lZWRzTGF5b3V0KCkgfHwgb2JqZWN0Lm5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0KCkgfHwgb2JqZWN0Lm91dE9mRmxvd0NoaWxkTmVlZHNMYXlv
dXQoKSB8fCBvYmplY3Qubm9ybWFsQ2hpbGROZWVkc0xheW91dCgpOworICAgICAgICBib29sIG5l
ZWRzTGF5b3V0ID0gb2JqZWN0LnNlbGZOZWVkc0xheW91dCgpIHx8IG9iamVjdC5uZWVkc091dE9m
Rmxvd01vdmVtZW50TGF5b3V0KCkgfHwgb2JqZWN0Lm91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQo
KSB8fCBvYmplY3Qubm9ybWFsQ2hpbGROZWVkc0xheW91dCgpOwogICAgICAgICBpZiAobmVlZHNM
YXlvdXQpCiAgICAgICAgICAgICB0cyA8PCAiIChuZWVkcyBsYXlvdXQ6Il9zOwogICAgICAgICAK
QEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIHdyaXRlRGVidWdJbmZvKFRleHRTdHJlYW0mIHRzLCBj
b25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCwgT3B0aW9uU2V0PFJlbmRlcgogICAgICAgICAgICAg
aGF2ZVByZXZpb3VzID0gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChvYmplY3QubmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKSkgeworICAgICAgICBpZiAob2JqZWN0Lm5lZWRz
T3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSkgewogICAgICAgICAgICAgaWYgKGhhdmVQcmV2aW91
cykKICAgICAgICAgICAgICAgICB0cyA8PCAnLCc7CiAgICAgICAgICAgICBoYXZlUHJldmlvdXMg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggYTFlMzhiYjFiZjY1Li4zNDI2YWZhN2U4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTE1MCwxOCArMTE1MCwxMyBA
QCBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBSZW5kZXJTdHls
ZSYgb3RoZXIsIE9wdGlvblNldDxTdHlsZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBS
ZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNQb3NpdGlvbmVkTGF5b3V0T25seShjb25zdCBSZW5k
ZXJTdHlsZSYgb3RoZXIsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZl
UHJvcGVydHk+JikgY29uc3QKK2Jvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzT3V0T2ZG
bG93TW92ZW1lbnRMYXlvdXRPbmx5KGNvbnN0IFJlbmRlclN0eWxlJiBvdGhlciwgT3B0aW9uU2V0
PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eT4mKSBjb25zdAogewotICAg
IGlmIChwb3NpdGlvbigpID09IFBvc2l0aW9uVHlwZTo6U3RhdGljKQorICAgIGlmIChwb3NpdGlv
bigpICE9IFBvc2l0aW9uVHlwZTo6QWJzb2x1dGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmIChtX25vbkluaGVyaXRlZERhdGEtPnN1cnJvdW5kRGF0YS0+aW5zZXQgIT0gb3RoZXIu
bV9ub25Jbmhlcml0ZWREYXRhLT5zdXJyb3VuZERhdGEtPmluc2V0KSB7Ci0gICAgICAgIC8vIE9w
dGltaXplIGZvciB0aGUgY2FzZSB3aGVyZSBhIHBvc2l0aW9uZWQgbGF5ZXIgaXMgbW92aW5nIGJ1
dCBub3QgY2hhbmdpbmcgc2l6ZS4KLSAgICAgICAgaWYgKHBvc2l0aW9uKCkgPT0gUG9zaXRpb25U
eXBlOjpBYnNvbHV0ZSAmJiBwb3NpdGlvbkNoYW5nZUlzTW92ZW1lbnRPbmx5KG1fbm9uSW5oZXJp
dGVkRGF0YS0+c3Vycm91bmREYXRhLT5pbnNldCwgb3RoZXIubV9ub25Jbmhlcml0ZWREYXRhLT5z
dXJyb3VuZERhdGEtPmluc2V0LCBtX25vbkluaGVyaXRlZERhdGEtPmJveERhdGEtPndpZHRoKCkp
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBmYWxz
ZTsKKyAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgYSBvdXQtb2YtZmxvdyBib3gg
aXMgbW92aW5nIGJ1dCBub3QgY2hhbmdpbmcgc2l6ZS4KKyAgICByZXR1cm4gKG1fbm9uSW5oZXJp
dGVkRGF0YS0+c3Vycm91bmREYXRhLT5pbnNldCAhPSBvdGhlci5tX25vbkluaGVyaXRlZERhdGEt
PnN1cnJvdW5kRGF0YS0+aW5zZXQpICYmIHBvc2l0aW9uQ2hhbmdlSXNNb3ZlbWVudE9ubHkobV9u
b25Jbmhlcml0ZWREYXRhLT5zdXJyb3VuZERhdGEtPmluc2V0LCBvdGhlci5tX25vbkluaGVyaXRl
ZERhdGEtPnN1cnJvdW5kRGF0YS0+aW5zZXQsIG1fbm9uSW5oZXJpdGVkRGF0YS0+Ym94RGF0YS0+
d2lkdGgoKSk7CiB9CiAKIHN0YXRpYyBib29sIG1pc2NEYXRhQ2hhbmdlUmVxdWlyZXNMYXllclJl
cGFpbnQoY29uc3QgU3R5bGVNaXNjTm9uSW5oZXJpdGVkRGF0YSYgZmlyc3QsIGNvbnN0IFN0eWxl
TWlzY05vbkluaGVyaXRlZERhdGEmIHNlY29uZCwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNv
bnRleHRTZW5zaXRpdmVQcm9wZXJ0eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGll
cykKQEAgLTE0ODksOCArMTQ4NCw4IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlm
Zihjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIsIE9wdGlvblNldDxTdHlsZURpZmZlCiAgICAgaWYg
KGNoYW5nZVJlcXVpcmVzTGF5b3V0KG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3Bl
cnRpZXMpKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXQ7CiAKLSAgICBp
ZiAoY2hhbmdlUmVxdWlyZXNQb3NpdGlvbmVkTGF5b3V0T25seShvdGhlciwgY2hhbmdlZENvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSkKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZTo6
TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50T25seTsKKyAgICBpZiAoY2hhbmdlUmVxdWlyZXNPdXRP
ZkZsb3dNb3ZlbWVudExheW91dE9ubHkob3RoZXIsIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJv
cGVydGllcykpCisgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91dE9mRmxv
d01vdmVtZW50T25seTsKIAogICAgIGlmIChjaGFuZ2VSZXF1aXJlc0xheWVyUmVwYWludChvdGhl
ciwgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSkKICAgICAgICAgcmV0dXJuIFN0
eWxlRGlmZmVyZW5jZTo6UmVwYWludExheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAzZTJmN2NhMDc1NjMuLmZiNTY3MDQ0MmU3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTI1MTUs
NyArMjUxNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNoYW5nZUFmZmVjdHNWaXN1YWxPdmVy
Zmxvdyhjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0OwogICAgIGJvb2wgY2hhbmdlUmVxdWlyZXNM
YXlvdXQoY29uc3QgUmVuZGVyU3R5bGUmLCBPcHRpb25TZXQ8U3R5bGVEaWZmZXJlbmNlQ29udGV4
dFNlbnNpdGl2ZVByb3BlcnR5PiYgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBj
b25zdDsKLSAgICBib29sIGNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9ubHkoY29uc3Qg
UmVuZGVyU3R5bGUmLCBPcHRpb25TZXQ8U3R5bGVEaWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2ZVBy
b3BlcnR5PiYgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdDsKKyAgICBi
b29sIGNoYW5nZVJlcXVpcmVzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRPbmx5KGNvbnN0IFJlbmRl
clN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0
eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CiAgICAgYm9vbCBj
aGFuZ2VSZXF1aXJlc0xheWVyUmVwYWludChjb25zdCBSZW5kZXJTdHlsZSYsIE9wdGlvblNldDxT
dHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNl
bnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OwogICAgIGJvb2wgY2hhbmdlUmVxdWlyZXNSZXBhaW50
KGNvbnN0IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5z
aXRpdmVQcm9wZXJ0eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7
CiAgICAgYm9vbCBjaGFuZ2VSZXF1aXJlc1JlcGFpbnRJZlRleHQoY29uc3QgUmVuZGVyU3R5bGUm
LCBPcHRpb25TZXQ8U3R5bGVEaWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5PiYgY2hh
bmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCmluZGV4
IDA3YzQ3Yjg4ODM1Mi4uOWJiNzg1MDM3YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKQEAgLTExMDEsOSAr
MTEwMSw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFN0eWxlRGlm
ZmVyZW5jZSBkaWZmKQogICAgIGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50OiB0cyA8PCAi
cmVwYWludCJfczsgYnJlYWs7CiAgICAgY2FzZSBTdHlsZURpZmZlcmVuY2U6OlJlcGFpbnRJZlRl
eHQ6IHRzIDw8ICJyZXBhaW50IGlmIHRleHQiX3M7IGJyZWFrOwogICAgIGNhc2UgU3R5bGVEaWZm
ZXJlbmNlOjpSZXBhaW50TGF5ZXI6IHRzIDw8ICJyZXBhaW50IGxheWVyIl9zOyBicmVhazsKLSAg
ICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50T25seTogdHMg
PDwgImxheW91dCBwb3NpdGlvbmVkIG1vdmVtZW50IG9ubHkiX3M7IGJyZWFrOworICAgIGNhc2Ug
U3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3ZlbWVudE9ubHk6IHRzIDw8ICJsYXlv
dXQgcG9zaXRpb25lZCBtb3ZlbWVudCBvbmx5Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlm
ZmVyZW5jZTo6T3ZlcmZsb3c6IHRzIDw8ICJvdmVyZmxvdyJfczsgYnJlYWs7Ci0gICAgY2FzZSBT
dHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50OiB0cyA8PCAib3Zl
cmZsb3cgYW5kIHBvc2l0aW9uZWQgbW92ZW1lbnQiX3M7IGJyZWFrOworICAgIGNhc2UgU3R5bGVE
aWZmZXJlbmNlOjpPdmVyZmxvd0FuZE91dE9mRmxvd01vdmVtZW50OiB0cyA8PCAib3ZlcmZsb3cg
YW5kIHBvc2l0aW9uZWQgbW92ZW1lbnQiX3M7IGJyZWFrOwogICAgIGNhc2UgU3R5bGVEaWZmZXJl
bmNlOjpMYXlvdXQ6IHRzIDw8ICJsYXlvdXQiX3M7IGJyZWFrOwogICAgIGNhc2UgU3R5bGVEaWZm
ZXJlbmNlOjpOZXdTdHlsZTogdHMgPDwgIm5ldyBzdHlsZSJfczsgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAppbmRleCBkYjQ4YjQ3ZjcxM2YuLmRkYTg2NmI0MjBhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTUx
LDkgKzUxLDkgQEAgZW51bSBjbGFzcyBQcmludENvbG9yQWRqdXN0IDogYm9vbCB7CiAvLyAtIFN0
eWxlRGlmZmVyZW5jZTo6UmVwYWludCAtIFRoZSBvYmplY3QganVzdCBuZWVkcyB0byBiZSByZXBh
aW50ZWQuCiAvLyAtIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludElmVGV4dCAtIFRoZSBvYmplY3Qg
bmVlZHMgdG8gYmUgcmVwYWludGVkIGlmIGl0IGNvbnRhaW5zIHRleHQuCiAvLyAtIFN0eWxlRGlm
ZmVyZW5jZTo6UmVwYWludExheWVyIC0gVGhlIGxheWVyIGFuZCBpdHMgZGVzY2VuZGFudCBsYXll
cnMgbmVlZHMgdG8gYmUgcmVwYWludGVkLgotLy8gLSBTdHlsZURpZmZlcmVuY2U6OkxheW91dFBv
c2l0aW9uZWRNb3ZlbWVudE9ubHkgLSBPbmx5IHRoZSBwb3NpdGlvbiBvZiB0aGlzIHBvc2l0aW9u
ZWQgb2JqZWN0IGhhcyBiZWVuIHVwZGF0ZWQKKy8vIC0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRP
dXRPZkZsb3dNb3ZlbWVudE9ubHkgLSBPbmx5IHRoZSBwb3NpdGlvbiBvZiB0aGlzIG91dC1vZi1m
bG93IGJveCBoYXMgYmVlbiB1cGRhdGVkCiAvLyAtIFN0eWxlRGlmZmVyZW5jZTo6T3ZlcmZsb3cg
LSBPbmx5IG92ZXJmbG93IG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQKLS8vIC0gU3R5bGVEaWZmZXJl
bmNlOjpPdmVyZmxvd0FuZFBvc2l0aW9uZWRNb3ZlbWVudCAtIEJvdGggcG9zaXRpb25lZCBtb3Zl
bWVudCBhbmQgb3ZlcmZsb3cgdXBkYXRlcyBhcmUgcmVxdWlyZWQuCisvLyAtIFN0eWxlRGlmZmVy
ZW5jZTo6T3ZlcmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVudCAtIEJvdGggb3V0LW9mLWZsb3cgbW92
ZW1lbnQgYW5kIG92ZXJmbG93IHVwZGF0ZXMgYXJlIHJlcXVpcmVkLgogLy8gLSBTdHlsZURpZmZl
cmVuY2U6OkxheW91dCAtIEEgZnVsbCBsYXlvdXQgaXMgcmVxdWlyZWQuCiBlbnVtIGNsYXNzIFN0
eWxlRGlmZmVyZW5jZSA6IHVpbnQ4X3QgewogICAgIEVxdWFsLApAQCAtNjEsOSArNjEsOSBAQCBl
bnVtIGNsYXNzIFN0eWxlRGlmZmVyZW5jZSA6IHVpbnQ4X3QgewogICAgIFJlcGFpbnQsCiAgICAg
UmVwYWludElmVGV4dCwKICAgICBSZXBhaW50TGF5ZXIsCi0gICAgTGF5b3V0UG9zaXRpb25lZE1v
dmVtZW50T25seSwKKyAgICBMYXlvdXRPdXRPZkZsb3dNb3ZlbWVudE9ubHksCiAgICAgT3ZlcmZs
b3csCi0gICAgT3ZlcmZsb3dBbmRQb3NpdGlvbmVkTW92ZW1lbnQsCisgICAgT3ZlcmZsb3dBbmRP
dXRPZkZsb3dNb3ZlbWVudCwKICAgICBMYXlvdXQsCiAgICAgTmV3U3R5bGUKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475621</attachid>
            <date>2025-06-22 05:28:02 -0700</date>
            <delta_ts>2025-06-23 05:36:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-294801-20250622052801.patch</filename>
            <type>text/plain</type>
            <size>30146</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxM2I1MTk2NzQ2NGMzZjVmYmExYTIxZmIxMGJlMDZmMjk5MjQ3ZTMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjEgSnVuIDIwMjUgMDk6NDA6NDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuYW1lIExheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgdG8KIExheW91dE91dE9mRmxv
d01vdmVtZW50T25seSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk0
ODAxCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkhlcmUsICdQb3NpdGlvbmVkTW92ZW1l
bnQnIHJlZmVycyB0byBtb3ZpbmcgYW4gb3V0LW9mLWZsb3cgYm94LCBub3QganVzdCBhbnkgcG9z
aXRpb25lZCBib3ggKGUuZy4sIG9uZSB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSkuCgoqIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5
b3V0SWZEaW1lbnNpb25zT3V0T2ZEYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQpOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dE91dE9mRmxvd0JveCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oOgooV2ViQ29yZTo6UmVuZGVyQm94Ojp0cnlMYXlvdXRE
b2luZ091dE9mRmxvd01vdmVtZW50T25seSk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnRyeUxheW91
dERvaW5nUG9zaXRpb25lZE1vdmVtZW50T25seSk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6YWRq
dXN0U3R5bGVEaWZmZXJlbmNlIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNldFN0
eWxlKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZSk6CihXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KToKKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6OmNsZWFyQ2hpbGROZWVkc0xheW91dCk6CihXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50OjpzZXROZWVkc0xheW91dEZvclN0eWxlRGlmZmVyZW5jZSk6CihXZWJDb3JlOjpS
ZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNo
b3VsZFJlcGFpbnRBZnRlckxheW91dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2Fs
Y3VsYXRlQ2xpcFJlY3RzIGNvbnN0KToKKFdlYkNvcmU6Om91dHB1dExheWVyUG9zaXRpb25UcmVl
UmVjdXJzaXZlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJTdHlsZUNoYW5nZWQpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpjbGVhck5lZWRzTGF5b3V0KToKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVk
c0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpOgooV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOiBE
ZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRCaXQp
OgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
T25seSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om5lZWRzTGF5b3V0IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHkg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExh
eW91dCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6bmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXRPbmx5IGNvbnN0KTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CihXZWJDb3JlOjp3
cml0ZURlYnVnSW5mbyk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc091dE9mRmxvd01v
dmVtZW50TGF5b3V0T25seSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZiBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNQb3NpdGlvbmVkTGF5b3V0
T25seSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgotLS0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8ICA0ICstLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCAgICB8IDI5ICsrKysrKysrKy0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgfCAgNiArKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCAgICAgICAgfCAgNCArLS0KIC4uLi9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgfCAxMCArKystLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAxOCArKysrKystLS0t
LS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCB8ICA0ICst
LQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgIHwgMTcgKysr
Ky0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oICB8
ICAyICstCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCAgfCAg
NCArLS0KIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCAgICB8ICA4
ICsrLS0tCiAxNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3YzM4Y2ExODU2NGEuLjAxMDA4MWQ0M2Iw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMTg3LDcgKzMxODcsNyBAQCBib29sIERv
Y3VtZW50Ojp1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYgZWxlbWVu
dCwgT3B0aW9uU2V0PERpbQogICAgIGJvb2wgcmVxdWlyZUZ1bGxMYXlvdXQgPSBpczxIVE1MSW5w
dXRFbGVtZW50PihlbGVtZW50KTsKICAgICB7CiAgICAgICAgIENoZWNrZWRQdHIgcmVuZGVyZXIg
PSBlbGVtZW50LnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlci0+c2VsZk5lZWRzTGF5
b3V0KCkgfHwgcmVuZGVyZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSB8fCByZW5kZXJlci0+
b3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpIHx8IHJlbmRlcmVyLT5uZWVkc1Bvc2l0aW9uZWRN
b3ZlbWVudExheW91dCgpKQorICAgICAgICBpZiAocmVuZGVyZXItPnNlbGZOZWVkc0xheW91dCgp
IHx8IHJlbmRlcmVyLT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkgfHwgcmVuZGVyZXItPm91dE9m
Rmxvd0NoaWxkTmVlZHNMYXlvdXQoKSB8fCByZW5kZXJlci0+bmVlZHNPdXRPZkZsb3dNb3ZlbWVu
dExheW91dCgpKQogICAgICAgICAgICAgcmVxdWlyZUZ1bGxMYXlvdXQgPSB0cnVlOwogICAgICAg
ICBpZiAocmVuZGVyZXItPm5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKSkgewogICAg
ICAgICAgICAgaWYgKCFkaW1lbnNpb25zQ2hlY2suY29udGFpbnMoRGltZW5zaW9uc0NoZWNrOjpJ
Z25vcmVPdmVyZmxvdykpCkBAIC0zMjE1LDcgKzMyMTUsNyBAQCBib29sIERvY3VtZW50Ojp1cGRh
dGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYgZWxlbWVudCwgT3B0aW9uU2V0
PERpbQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoZGltZW5zaW9uc0NoZWNrLmNvbnRhaW5zQW55KHsgRGltZW5zaW9uc0NoZWNrOjpMZWZ0
LCBEaW1lbnNpb25zQ2hlY2s6OlRvcCB9KSAmJiBjdXJyZW50UmVuZGVyZXItPm5lZWRzUG9zaXRp
b25lZE1vdmVtZW50TGF5b3V0KCkpIHsKKyAgICAgICAgICAgIGlmIChkaW1lbnNpb25zQ2hlY2su
Y29udGFpbnNBbnkoeyBEaW1lbnNpb25zQ2hlY2s6OkxlZnQsIERpbWVuc2lvbnNDaGVjazo6VG9w
IH0pICYmIGN1cnJlbnRSZW5kZXJlci0+bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCgpKSB7
CiAgICAgICAgICAgICAgICAgcmVxdWlyZUZ1bGxMYXlvdXQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggOWRmYmUwZTBlZmRhLi4zOWRlNDdjODNhZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNzY5LDcgKzc2OSw3IEBAIGJvb2wgUmVu
ZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoKnRoaXMsIGxvY2F0aW9uT2Zmc2V0
KCksIGlzVHJhbnNmb3JtZWQoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgd3JpdGluZ01vZGUoKS5p
c0Jsb2NrRmxpcHBlZCgpKTsKLSAgICBpZiAobmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQo
KSAmJiAhdHJ5TGF5b3V0RG9pbmdQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KCkpCisgICAgaWYgKG5l
ZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSAmJiAhdHJ5TGF5b3V0RG9pbmdPdXRPZkZsb3dN
b3ZlbWVudE9ubHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTGF5IG91dCBw
b3NpdGlvbmVkIGRlc2NlbmRhbnRzIG9yIG9iamVjdHMgdGhhdCBqdXN0IG5lZWQgdG8gcmVjb21w
dXRlIG92ZXJmbG93LgpAQCAtODg3LDcgKzg4Nyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dE91dE9mRmxvd0JveChSZW5kZXJCb3gmIG91dE9mRmxvd0JveCwgUmVsYXlvdXRDaGlsZHJlbiBy
CiAgICAgCiAgICAgLy8gV2UgZG9uJ3QgaGF2ZSB0byBkbyBhIGZ1bGwgbGF5b3V0LiAgV2UganVz
dCBoYXZlIHRvIHVwZGF0ZSBvdXIgcG9zaXRpb24uIFRyeSB0aGF0IGZpcnN0LiBJZiB3ZSBoYXZl
IHNocmluay10by1maXQgd2lkdGgKICAgICAvLyBhbmQgd2UgaGl0IHRoZSBhdmFpbGFibGUgd2lk
dGggY29uc3RyYWludCwgdGhlIGxheW91dElmTmVlZGVkKCkgd2lsbCBjYXRjaCBpdCBhbmQgZG8g
YSBmdWxsIGxheW91dC4KLSAgICBpZiAob3V0T2ZGbG93Qm94Lm5lZWRzUG9zaXRpb25lZE1vdmVt
ZW50TGF5b3V0T25seSgpICYmIG91dE9mRmxvd0JveC50cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRN
b3ZlbWVudE9ubHkoKSkKKyAgICBpZiAob3V0T2ZGbG93Qm94Lm5lZWRzT3V0T2ZGbG93TW92ZW1l
bnRMYXlvdXRPbmx5KCkgJiYgb3V0T2ZGbG93Qm94LnRyeUxheW91dERvaW5nT3V0T2ZGbG93TW92
ZW1lbnRPbmx5KCkpCiAgICAgICAgIG91dE9mRmxvd0JveC5jbGVhck5lZWRzTGF5b3V0KCk7CiAK
ICAgICAvLyBJZiB3ZSBhcmUgcGFnaW5hdGVkIG9yIGluIGEgbGluZSBncmlkLCBjb21wdXRlIGEg
dmVydGljYWwgcG9zaXRpb24gZm9yIG91ciBvYmplY3Qgbm93LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCmluZGV4IDNjYzAyZmQ2MGQyMS4uNTkyMTliYmM4MWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTcsOSArNDk3LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwYWludENsaXBwaW5nTWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCogPSBudWxscHRyKSBvdmVycmlkZTsKIAotICAgIC8vIENhbGxlZCB3aGVuIGEgcG9zaXRp
b25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdlIHNpemUuICBB
IHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZAorICAgIC8vIENhbGxlZCB3aGVuIGFuIG91
dC1vZi1mbG93IGJveCBtb3ZlcyBidXQgZG9lc24ndCBuZWNlc3NhcmlseSBjaGFuZ2Ugc2l6ZS4g
QSBzaW1wbGlmaWVkIGxheW91dCBpcyBhdHRlbXB0ZWQKICAgICAvLyB0aGF0IGp1c3QgdXBkYXRl
cyB0aGUgb2JqZWN0J3MgcG9zaXRpb24uIElmIHRoZSBzaXplIGRvZXMgY2hhbmdlLCB0aGUgb2Jq
ZWN0IHJlbWFpbnMgZGlydHkuCi0gICAgYm9vbCB0cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRNb3Zl
bWVudE9ubHkoKQorICAgIGJvb2wgdHJ5TGF5b3V0RG9pbmdPdXRPZkZsb3dNb3ZlbWVudE9ubHko
KQogICAgIHsKICAgICAgICAgTGF5b3V0VW5pdCBvbGRXaWR0aCA9IHdpZHRoKCk7CiAgICAgICAg
IHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCmluZGV4IDg0ZDIzZDBjNjQ0OS4uNjNlMDBmY2UzODliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yODgsMTEgKzI4OCwxMCBAQCBT
dHlsZURpZmZlcmVuY2UgUmVuZGVyRWxlbWVudDo6YWRqdXN0U3R5bGVEaWZmZXJlbmNlKFN0eWxl
RGlmZmVyZW5jZSBkaWZmLCBPcHRpbwogICAgICAgICAgICAgaWYgKCFoYXNMYXllcigpKQogICAg
ICAgICAgICAgICAgIGRpZmYgPSBzdGQ6Om1heChkaWZmLCBTdHlsZURpZmZlcmVuY2U6OkxheW91
dCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHNl
dCBhdCBsZWFzdCBPdmVyZmxvdywgYnV0IGlmIFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgaXMgYWxy
ZWFkeSBzZXQKLSAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjdHVhbGx5IG5lZWQgT3ZlcmZs
b3dBbmRQb3NpdGlvbmVkTW92ZW1lbnQuCi0gICAgICAgICAgICAgICAgZGlmZiA9IHN0ZDo6bWF4
KGRpZmYsIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50
T25seSkgPyBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50IDog
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBzZXQgYXQgbGVhc3QgT3ZlcmZsb3csIGJ1dCBpZiBPdXRPZkZsb3dNb3ZlbWVudE9ubHkgaXMg
YWxyZWFkeSBzZXQKKyAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjdHVhbGx5IG5lZWQgT3Zl
cmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVudC4KKyAgICAgICAgICAgICAgICBkaWZmID0gc3RkOjpt
YXgoZGlmZiwgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3ZlbWVu
dE9ubHkpID8gU3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvd0FuZE91dE9mRmxvd01vdmVtZW50IDog
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvdyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIAogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIGRpZmYgPSBzdGQ6Om1heChkaWZmLCBTdHlsZURpZmZl
cmVuY2U6OlJlY29tcG9zaXRlTGF5ZXIpOwogICAgIH0KQEAgLTYxNyw3ICs2MTYsNyBAQCB2b2lk
IFJlbmRlckVsZW1lbnQ6OnNldFN0eWxlKFJlbmRlclN0eWxlJiYgc3R5bGUsIFN0eWxlRGlmZmVy
ZW5jZSBtaW5pbWFsU3R5bGVEaQogICAgIC8vIGNoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGxheW91
dCBub3csIGFuZCBkZWNpZGUgaWYgd2UgbmVlZCB0byByZXBhaW50LgogICAgIFN0eWxlRGlmZmVy
ZW5jZSB1cGRhdGVkRGlmZiA9IGFkanVzdFN0eWxlRGlmZmVyZW5jZShkaWZmLCBjb250ZXh0U2Vu
c2l0aXZlUHJvcGVydGllcyk7CiAgICAgCi0gICAgaWYgKGRpZmYgPD0gU3R5bGVEaWZmZXJlbmNl
OjpMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQorICAgIGlmIChkaWZmIDw9IFN0eWxlRGlm
ZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5KQogICAgICAgICBzZXROZWVkc0xh
eW91dEZvclN0eWxlRGlmZmVyZW5jZSh1cGRhdGVkRGlmZiwgJm9sZFN0eWxlKTsKIAogICAgIGlm
ICghZGlkUmVwYWludCAmJiAodXBkYXRlZERpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50
TGF5ZXIgfHwgc2hvdWxkUmVwYWludEZvclN0eWxlRGlmZmVyZW5jZSh1cGRhdGVkRGlmZikpKSB7
CkBAIC05NzYsNyArOTc1LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgfQog
CiAgICAgICAgIC8vIHJlc2V0IHN0eWxlIGZsYWdzCi0gICAgICAgIGlmIChkaWZmID09IFN0eWxl
RGlmZmVyZW5jZTo6TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRQb3Np
dGlvbmVkTW92ZW1lbnRPbmx5KSB7CisgICAgICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZTo6TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3Zl
bWVudE9ubHkpIHsKICAgICAgICAgICAgIHNldEZsb2F0aW5nKGZhbHNlKTsKICAgICAgICAgICAg
IGNsZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgICAgIH0KQEAgLTEyMjEsMTggKzEyMjAsMTgg
QEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgICAgICBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZSgqcHJvdGVjdGVkRWxlbWVudCgpKTsK
IH0KIAotdm9pZCBSZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91
dChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5l
ZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQog
ewogICAgIEFTU0VSVCghaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigpKTsKLSAgICBpZiAobmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKSkKKyAgICBpZiAobmVlZHNPdXRPZkZsb3dNb3Zl
bWVudExheW91dCgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2V0TmVlZHNQb3NpdGlvbmVkTW92
ZW1lbnRMYXlvdXRCaXQodHJ1ZSk7CisgICAgc2V0TmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91
dEJpdCh0cnVlKTsKICAgICBzY2hlZHVsZUxheW91dChtYXJrQ29udGFpbmluZ0Jsb2Nrc0Zvckxh
eW91dCgpKTsKICAgICBpZiAoaGFzTGF5ZXIoKSkgewogICAgICAgICBpZiAob2xkU3R5bGUgJiYg
c3R5bGUoKS5kaWZmUmVxdWlyZXNMYXllclJlcGFpbnQoKm9sZFN0eWxlLCBkb3duY2FzdDxSZW5k
ZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcykubGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpKQogICAg
ICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91
dCgpOworICAgICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92
ZW1lbnRMYXlvdXQoKTsKICAgICB9CiB9CiAKQEAgLTEyNDEsNyArMTI0MCw3IEBAIHZvaWQgUmVu
ZGVyRWxlbWVudDo6Y2xlYXJDaGlsZE5lZWRzTGF5b3V0KCkKICAgICBzZXROb3JtYWxDaGlsZE5l
ZWRzTGF5b3V0Qml0KGZhbHNlKTsKICAgICBzZXRPdXRPZkZsb3dDaGlsZE5lZWRzTGF5b3V0Qml0
KGZhbHNlKTsKICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0Qml0KGZhbHNl
KTsKLSAgICBzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dEJpdChmYWxzZSk7CisgICAg
c2V0TmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dEJpdChmYWxzZSk7CiAgICAgc2V0T3V0T2ZG
bG93Q2hpbGROZWVkc1N0YXRpY1Bvc2l0aW9uTGF5b3V0Qml0KGZhbHNlKTsKIH0KIApAQCAtMTI0
OSwxMCArMTI0OCwxMCBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5lZWRzTGF5b3V0Rm9yU3R5
bGVEaWZmZXJlbmNlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdAogewogICAgIGlmIChkaWZm
ID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0KQogICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZlcnJlZFdpZHRoc1VwZGF0ZSgpOwotICAgIGVsc2UgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJl
bmNlOjpMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQotICAgICAgICBzZXROZWVkc1Bvc2l0
aW9uZWRNb3ZlbWVudExheW91dChvbGRTdHlsZSk7Ci0gICAgZWxzZSBpZiAoZGlmZiA9PSBTdHls
ZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50KSB7Ci0gICAgICAgIHNl
dE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKKyAgICBlbHNlIGlmIChk
aWZmID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5KQorICAg
ICAgICBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKKyAgICBlbHNl
IGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZTo6T3ZlcmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVu
dCkgeworICAgICAgICBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsK
ICAgICAgICAgc2V0TmVlZHNMYXlvdXRGb3JPdmVyZmxvd0NoYW5nZSgpOwogICAgIH0gZWxzZSBp
ZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93KQogICAgICAgICBzZXROZWVkc0xh
eW91dEZvck92ZXJmbG93Q2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuaAppbmRleCA2NGMzZjU5ZWY5NzYuLjkyZTYwYmMxZDQ0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0Q2hpbGROZWVkc0xheW91dChNYXJraW5nQmVoYXZpb3IgPSBNYXJrQ29udGFp
bmluZ0Jsb2NrQ2hhaW4pOwogICAgIHZvaWQgc2V0T3V0T2ZGbG93Q2hpbGROZWVkc1N0YXRpY1Bv
c2l0aW9uTGF5b3V0KCk7CiAgICAgdm9pZCBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKLSAgICB2
b2lkIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CisgICAgdm9pZCBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdm9pZCBzZXROZWVkc0xheW91dEZvclN0eWxl
RGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7
CiAgICAgdm9pZCBzZXROZWVkc0xheW91dEZvck92ZXJmbG93Q2hhbmdlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDVmYTcxNjAwMDhkZi4uYThmYzU2
NmM3ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0
MDcsNyArMjQwNyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRlckxheW91
dCgpIGNvbnN0CiAKICAgICAvLyBDb21wb3NpdGVkIGxheWVycyB0aGF0IHdlcmUgbW92ZWQgZHVy
aW5nIGEgcG9zaXRpb25lZCBtb3ZlbWVudCBvbmx5CiAgICAgLy8gbGF5b3V0LCBkb24ndCBuZWVk
IHRvIGJlIHJlcGFpbnRlZC4gVGhleSBqdXN0IG5lZWQgdG8gYmUgcmVjb21wb3NpdGVkLgotICAg
IEFTU0VSVChtX3JlcGFpbnRTdGF0dXMgPT0gUmVwYWludFN0YXR1czo6TmVlZHNGdWxsUmVwYWlu
dEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dCk7CisgICAgQVNTRVJUKG1fcmVwYWludFN0YXR1
cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRM
YXlvdXQpOwogICAgIHJldHVybiAhaXNDb21wb3NpdGVkKCkgfHwgYmFja2luZygpLT5wYWludHNJ
bnRvQ29tcG9zaXRlZEFuY2VzdG9yKCk7CiB9CiAKQEAgLTYyMzgsNyArNjIzOCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAgIGRpcnR5QW5jZXN0b3JDaGFpbkhhc1ZpZXdwb3J0
Q29uc3RyYWluZWREZXNjZW5kYW50U3RhdHVzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZTo6UmVjb21wb3NpdGVMYXllciB8fCBkaWZmID49IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9z
aXRpb25lZE1vdmVtZW50T25seSkKKyAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2U6OlJl
Y29tcG9zaXRlTGF5ZXIgfHwgZGlmZiA+PSBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91dE9mRmxv
d01vdmVtZW50T25seSkKICAgICAgICAgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmludmFsaWRhdGVS
ZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShkaWZm
KTsKQEAgLTY5MzgsNyArNjkzOCw3IEBAIHZvaWQgb3V0cHV0TGF5ZXJQb3NpdGlvblRyZWVSZWN1
cnNpdmUoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBXZWJDb3JlOjpSZW5kZXJMCiAKICAgICBz
dHJlYW0gPDwgIiAiX3M7CiAKLSAgICBpZiAobGF5ZXIucmVwYWludFN0YXR1cygpID09IFdlYkNv
cmU6OlJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRM
YXlvdXQpCisgICAgaWYgKGxheWVyLnJlcGFpbnRTdGF0dXMoKSA9PSBXZWJDb3JlOjpSZXBhaW50
U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpCiAgICAg
ICAgIHN0cmVhbSA8PCAiUCI7CiAgICAgZWxzZSBpZiAobGF5ZXIucmVwYWludFN0YXR1cygpID09
IFdlYkNvcmU6OlJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnQpCiAgICAgICAgIHN0cmVh
bSA8PCAiRiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGUyOTU1
MjJkMWFhNy4uODhjMzQ0ZDdjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaApAQCAtOTgsNyArOTgsNyBAQCBlbnVtIGNsYXNzIExheW91dFVwVG9EYXRlIDogYm9vbCB7
IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgUmVwYWludFN0YXR1cyA6IHVpbnQ4X3QgewogICAgIE5l
ZWRzTm9ybWFsUmVwYWludCwKICAgICBOZWVkc0Z1bGxSZXBhaW50LAotICAgIE5lZWRzRnVsbFJl
cGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQKKyAgICBOZWVkc0Z1bGxSZXBhaW50Rm9y
T3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQKIH07CiAKIGVudW0gQ2xpcFJlY3RzVHlwZSB7CkBAIC03
ODQsNyArNzg0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRSZXBhaW50U3RhdHVzKFJlcGFp
bnRTdGF0dXMpOwogICAgIFJlcGFpbnRTdGF0dXMgcmVwYWludFN0YXR1cygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwYWludFN0YXR1czsgfQotICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVwYWludFN0YXR1cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBh
aW50IHx8IG1fcmVwYWludFN0YXR1cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50
Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0OyB9CisgICAgYm9vbCBuZWVkc0Z1bGxSZXBhaW50
KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50U3RhdHVzID09IFJlcGFpbnRTdGF0dXM6Ok5lZWRz
RnVsbFJlcGFpbnQgfHwgbV9yZXBhaW50U3RhdHVzID09IFJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVs
bFJlcGFpbnRGb3JPdXRPZkZsb3dNb3ZlbWVudExheW91dDsgfQogCiAgICAgTGF5b3V0VW5pdCBz
dGF0aWNJbmxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24u
d2lkdGgoKTsgfQogICAgIExheW91dFVuaXQgc3RhdGljQmxvY2tQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24uaGVpZ2h0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNTRiODY3YzJm
M2Y2Li40NjU2MzI0YjIzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yMTk2LDcgKzIxOTYsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJTdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IFJlbmRlckxheWVyJgogICAgIGNvbnN0IGF1dG8mIG5ld1N0eWxlID0gbGF5ZXIucmVuZGVyZXIo
KS5zdHlsZSgpOwogCiAgICAgaWYgKGhhc0NvbnRlbnRDb21wb3NpdGluZ0xheWVycygpKSB7Ci0g
ICAgICAgIGlmIChkaWZmID49IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVt
ZW50T25seSkgeworICAgICAgICBpZiAoZGlmZiA+PSBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91
dE9mRmxvd01vdmVtZW50T25seSkgewogICAgICAgICAgICAgbGF5ZXIuc2V0TmVlZHNQb3N0TGF5
b3V0Q29tcG9zaXRpbmdVcGRhdGUoKTsKICAgICAgICAgICAgIGxheWVyLnNldE5lZWRzQ29tcG9z
aXRpbmdHZW9tZXRyeVVwZGF0ZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGVjOTkyMGEyYzNlMy4uY2QyYmU5NTMwY2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNTc2LDcgKzU3Niw3
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpjbGVhck5lZWRzTGF5b3V0KEhhZFNraXBwZWRMYXlvdXQg
aGFkU2tpcHBlZExheW91dCkKICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
Qml0KGZhbHNlKTsKICAgICBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGZhbHNlKTsKICAg
ICBzZXRPdXRPZkZsb3dDaGlsZE5lZWRzU3RhdGljUG9zaXRpb25MYXlvdXRCaXQoZmFsc2UpOwot
ICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsKKyAgICBzZXRO
ZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsKICNpZiBBU1NFUlRfRU5BQkxF
RAogICAgIGF1dG8gY2hlY2tJZk91dE9mRmxvd0Rlc2NlbmRhbnRzTmVlZExheW91dCA9IFsmXShh
dXRvJiByZW5kZXJCbG9jaykgewogICAgICAgICBpZiAoYXV0byogb3V0T2ZGbG93RGVzY2VuZGFu
dHMgPSByZW5kZXJCbG9jay5vdXRPZkZsb3dCb3hlcygpKSB7CkBAIC03MTUsMTAgKzcxNSwxMCBA
QCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCkKICAgICBkb3du
Y2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcykuY2hlY2tlZExheWVyKCktPnNldFJl
cGFpbnRTdGF0dXMoUmVwYWludFN0YXR1czo6TmVlZHNGdWxsUmVwYWludCk7CiB9CiAKLXZvaWQg
UmVuZGVyT2JqZWN0OjpzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1l
bnRMYXlvdXQoKQordm9pZCBSZW5kZXJPYmplY3Q6OnNldExheWVyTmVlZHNGdWxsUmVwYWludEZv
ck91dE9mRmxvd01vdmVtZW50TGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaGFzTGF5ZXIoKSk7Ci0g
ICAgZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMpLmNoZWNrZWRMYXllcigp
LT5zZXRSZXBhaW50U3RhdHVzKFJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnRGb3JQb3Np
dGlvbmVkTW92ZW1lbnRMYXlvdXQpOworICAgIGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q+KCp0aGlzKS5jaGVja2VkTGF5ZXIoKS0+c2V0UmVwYWludFN0YXR1cyhSZXBhaW50U3RhdHVz
OjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpOwogfQogCiBzdGF0
aWMgaW5saW5lIFJlbmRlckJsb2NrKiBuZWFyZXN0Tm9uQW5vbnltb3VzQ29udGFpbmluZ0Jsb2Nr
SW5jbHVkaW5nU2VsZihSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKQEAgLTE0NjIsOCArMTQ2Miw4
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBib29sIG1hcmssIGludCBkZXB0aCkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiW291dC1v
Zi1mbG93IGNoaWxkXSI7CiAgICAgICAgIGlmIChuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5
b3V0KCkpCiAgICAgICAgICAgICBzdHJlYW0gPDwgIltzaW1wbGlmaWVkXSI7Ci0gICAgICAgIGlm
IChuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpKQotICAgICAgICAgICAgc3RyZWFtIDw8
ICJbcG9zaXRpb25lZCBtb3ZlbWVudF0iOworICAgICAgICBpZiAobmVlZHNPdXRPZkZsb3dNb3Zl
bWVudExheW91dCgpKQorICAgICAgICAgICAgc3RyZWFtIDw8ICJbb3V0LW9mLWZsb3cgbW92ZW1l
bnRdIjsKICAgICAgICAgaWYgKG91dE9mRmxvd0NoaWxkTmVlZHNTdGF0aWNQb3NpdGlvbkxheW91
dCgpKQogICAgICAgICAgICAgc3RyZWFtIDw8ICJbb3V0IG9mIGZsb3cgY2hpbGQgbmVlZHMgcGFy
ZW50IGxheW91dF0iOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCBlMjdiNmI2MGYxZTQuLjhkMWZkMThkYmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjk4LDggKzY5OCw4IEBAIHB1YmxpYzoKICAgICBib29s
IG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6OlByZWZlcnJlZExvZ2ljYWxXaWR0aHNOZWVk
VXBkYXRlKTsgfQogCiAgICAgYm9vbCBzZWxmTmVlZHNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlQml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpOZWVkc0xheW91dCk7IH0KLSAgICBi
b29sIG5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlv
dXQpOyB9Ci0gICAgYm9vbCBuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dE9ubHkoKSBjb25z
dDsKKyAgICBib29sIG5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSBjb25zdCB7IHJldHVy
biBtX3N0YXRlQml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpOZWVkc091dE9mRmxvd01vdmVt
ZW50TGF5b3V0KTsgfQorICAgIGJvb2wgbmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHko
KSBjb25zdDsKIAogICAgIGJvb2wgb3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6Ok91dE9mRmxvd0NoaWxk
TmVlZHNMYXlvdXQpOyB9CiAgICAgYm9vbCBuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6TmVl
ZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCk7IH0KQEAgLTExMzksNyArMTEzOSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHNldElzQmVpbmdEZXN0cm95ZWQoKSB7IG1fc3RhdGVCaXRmaWVs
ZHMuc2V0RmxhZyhTdGF0ZUZsYWc6OkJlaW5nRGVzdHJveWVkKTsgfQogCiAgICAgdm9pZCBzY2hl
ZHVsZUxheW91dChSZW5kZXJFbGVtZW50KiBsYXlvdXRSb290KTsKLSAgICB2b2lkIHNldE5lZWRz
UG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGJvb2wgYikgeyBtX3N0YXRlQml0ZmllbGRzLnNl
dEZsYWcoU3RhdGVGbGFnOjpOZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCwgYik7IH0KKyAg
ICB2b2lkIHNldE5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRCaXQoYm9vbCBiKSB7IG1fc3Rh
dGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZsYWc6Ok5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlv
dXQsIGIpOyB9CiAgICAgdm9pZCBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGJvb2wgYikg
eyBtX3N0YXRlQml0ZmllbGRzLnNldEZsYWcoU3RhdGVGbGFnOjpOb3JtYWxDaGlsZE5lZWRzTGF5
b3V0LCBiKTsgfQogICAgIHZvaWQgc2V0T3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dEJpdChib29s
IGIpIHsgbV9zdGF0ZUJpdGZpZWxkcy5zZXRGbGFnKFN0YXRlRmxhZzo6T3V0T2ZGbG93Q2hpbGRO
ZWVkc0xheW91dCwgYik7IH0KICAgICB2b2lkIHNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dM
YXlvdXRCaXQoYm9vbCBiKSB7IG1fc3RhdGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZsYWc6Ok5l
ZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQsIGIpOyB9CkBAIC0xMTY2LDcgKzExNjYsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRBYnNvbHV0ZVJlY3RGb3JMYXllcihMYXlvdXRSZWN0
JiByZXN1bHQpOwogICAgIHZvaWQgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7Ci0gICAgdm9p
ZCBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsK
KyAgICB2b2lkIHNldExheWVyTmVlZHNGdWxsUmVwYWludEZvck91dE9mRmxvd01vdmVtZW50TGF5
b3V0KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGVDb250YWluZXJQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKCk7CiAKQEAgLTEyMDMsNyArMTIwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIElzUmVwbGFj
ZWRPckF0b21pY0lubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKICAg
ICAgICAgQmVpbmdEZXN0cm95ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMSA8PCAyLAogICAgICAgICBOZWVkc0xheW91dCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIE5lZWRzUG9zaXRpb25lZE1vdmVtZW50
TGF5b3V0ICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgTmVlZHNPdXRP
ZkZsb3dNb3ZlbWVudExheW91dCAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA0LAogICAg
ICAgICBOb3JtYWxDaGlsZE5lZWRzTGF5b3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxIDw8IDUsCiAgICAgICAgIE91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEgPDwgNiwKICAgICAgICAgTmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxv
d0xheW91dCAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA3LApAQCAtMTM1Niw3ICsxMzU2LDcg
QEAgaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjppbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0
aW9uU3RhdHVzKCkKIGlubGluZSBib29sIFJlbmRlck9iamVjdDo6bmVlZHNTaW1wbGlmaWVkTm9y
bWFsRmxvd0xheW91dE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBuZWVkc1NpbXBsaWZpZWRO
b3JtYWxGbG93TGF5b3V0KCkgJiYgIXNlbGZOZWVkc0xheW91dCgpICYmICFub3JtYWxDaGlsZE5l
ZWRzTGF5b3V0KCkKLSAgICAgICAgJiYgIW91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQoKSAmJiAh
bmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKKyAgICAgICAgJiYgIW91dE9mRmxvd0No
aWxkTmVlZHNMYXlvdXQoKSAmJiAhbmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCgpOwogfQog
CiBpbmxpbmUgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIFJlbmRlck9iamVjdDo6ZW5jbG9zaW5nRnJh
Z21lbnRlZEZsb3coKSBjb25zdApAQCAtMTM3MywxMiArMTM3MywxMiBAQCBpbmxpbmUgYm9vbCBS
ZW5kZXJPYmplY3Q6Om5lZWRzTGF5b3V0KCkgY29uc3QKICAgICAgICAgfHwgbm9ybWFsQ2hpbGRO
ZWVkc0xheW91dCgpCiAgICAgICAgIHx8IG91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQoKQogICAg
ICAgICB8fCBuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCkKLSAgICAgICAgfHwgbmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKKyAgICAgICAgfHwgbmVlZHNPdXRPZkZsb3dN
b3ZlbWVudExheW91dCgpOwogfQogCi1pbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6Om5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0T25seSgpIGNvbnN0CitpbmxpbmUgYm9vbCBSZW5kZXJPYmpl
Y3Q6Om5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRPbmx5KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKQorICAgIHJldHVybiBuZWVkc091dE9m
Rmxvd01vdmVtZW50TGF5b3V0KCkKICAgICAgICAgJiYgIXNlbGZOZWVkc0xheW91dCgpCiAgICAg
ICAgICYmICFub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkKICAgICAgICAgJiYgIW91dE9mRmxvd0No
aWxkTmVlZHNMYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwCmluZGV4IDI5ZmRmYWRhMGE5My4uZGMwNTYxNDcyYTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC00MDMsNyArNDAzLDcg
QEAgdm9pZCB3cml0ZURlYnVnSW5mbyhUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0
JiBvYmplY3QsIE9wdGlvblNldDxSZW5kZXIKICAgICB9CiAKICAgICBpZiAoYmVoYXZpb3IuY29u
dGFpbnMoUmVuZGVyQXNUZXh0RmxhZzo6U2hvd0xheW91dFN0YXRlKSkgewotICAgICAgICBib29s
IG5lZWRzTGF5b3V0ID0gb2JqZWN0LnNlbGZOZWVkc0xheW91dCgpIHx8IG9iamVjdC5uZWVkc1Bv
c2l0aW9uZWRNb3ZlbWVudExheW91dCgpIHx8IG9iamVjdC5vdXRPZkZsb3dDaGlsZE5lZWRzTGF5
b3V0KCkgfHwgb2JqZWN0Lm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgYm9vbCBu
ZWVkc0xheW91dCA9IG9iamVjdC5zZWxmTmVlZHNMYXlvdXQoKSB8fCBvYmplY3QubmVlZHNPdXRP
ZkZsb3dNb3ZlbWVudExheW91dCgpIHx8IG9iamVjdC5vdXRPZkZsb3dDaGlsZE5lZWRzTGF5b3V0
KCkgfHwgb2JqZWN0Lm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKTsKICAgICAgICAgaWYgKG5lZWRz
TGF5b3V0KQogICAgICAgICAgICAgdHMgPDwgIiAobmVlZHMgbGF5b3V0OiJfczsKICAgICAgICAg
CkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCB3cml0ZURlYnVnSW5mbyhUZXh0U3RyZWFtJiB0cywg
Y29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QsIE9wdGlvblNldDxSZW5kZXIKICAgICAgICAgICAg
IGhhdmVQcmV2aW91cyA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAob2JqZWN0Lm5l
ZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkpIHsKKyAgICAgICAgaWYgKG9iamVjdC5uZWVk
c091dE9mRmxvd01vdmVtZW50TGF5b3V0KCkpIHsKICAgICAgICAgICAgIGlmIChoYXZlUHJldmlv
dXMpCiAgICAgICAgICAgICAgICAgdHMgPDwgJywnOwogICAgICAgICAgICAgaGF2ZVByZXZpb3Vz
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCmluZGV4IGExZTM4YmIxYmY2NS4uMzQyNmFmYTdlODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTExNTAsMTggKzExNTAsMTMg
QEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgUmVuZGVyU3R5
bGUmIG90aGVyLCBPcHRpb25TZXQ8U3R5bGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wg
UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9ubHkoY29uc3QgUmVu
ZGVyU3R5bGUmIG90aGVyLCBPcHRpb25TZXQ8U3R5bGVEaWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2
ZVByb3BlcnR5PiYpIGNvbnN0Citib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc091dE9m
Rmxvd01vdmVtZW50TGF5b3V0T25seShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIsIE9wdGlvblNl
dDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JikgY29uc3QKIHsKLSAg
ICBpZiAocG9zaXRpb24oKSA9PSBQb3NpdGlvblR5cGU6OlN0YXRpYykKKyAgICBpZiAocG9zaXRp
b24oKSAhPSBQb3NpdGlvblR5cGU6OkFic29sdXRlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAobV9ub25Jbmhlcml0ZWREYXRhLT5zdXJyb3VuZERhdGEtPmluc2V0ICE9IG90aGVy
Lm1fbm9uSW5oZXJpdGVkRGF0YS0+c3Vycm91bmREYXRhLT5pbnNldCkgewotICAgICAgICAvLyBP
cHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgYSBwb3NpdGlvbmVkIGxheWVyIGlzIG1vdmluZyBi
dXQgbm90IGNoYW5naW5nIHNpemUuCi0gICAgICAgIGlmIChwb3NpdGlvbigpID09IFBvc2l0aW9u
VHlwZTo6QWJzb2x1dGUgJiYgcG9zaXRpb25DaGFuZ2VJc01vdmVtZW50T25seShtX25vbkluaGVy
aXRlZERhdGEtPnN1cnJvdW5kRGF0YS0+aW5zZXQsIG90aGVyLm1fbm9uSW5oZXJpdGVkRGF0YS0+
c3Vycm91bmREYXRhLT5pbnNldCwgbV9ub25Jbmhlcml0ZWREYXRhLT5ib3hEYXRhLT53aWR0aCgp
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgLy8gT3B0aW1pemUgZm9yIHRoZSBjYXNlIHdoZXJlIGEgb3V0LW9mLWZsb3cgYm94
IGlzIG1vdmluZyBidXQgbm90IGNoYW5naW5nIHNpemUuCisgICAgcmV0dXJuIChtX25vbkluaGVy
aXRlZERhdGEtPnN1cnJvdW5kRGF0YS0+aW5zZXQgIT0gb3RoZXIubV9ub25Jbmhlcml0ZWREYXRh
LT5zdXJyb3VuZERhdGEtPmluc2V0KSAmJiBwb3NpdGlvbkNoYW5nZUlzTW92ZW1lbnRPbmx5KG1f
bm9uSW5oZXJpdGVkRGF0YS0+c3Vycm91bmREYXRhLT5pbnNldCwgb3RoZXIubV9ub25Jbmhlcml0
ZWREYXRhLT5zdXJyb3VuZERhdGEtPmluc2V0LCBtX25vbkluaGVyaXRlZERhdGEtPmJveERhdGEt
PndpZHRoKCkpOwogfQogCiBzdGF0aWMgYm9vbCBtaXNjRGF0YUNoYW5nZVJlcXVpcmVzTGF5ZXJS
ZXBhaW50KGNvbnN0IFN0eWxlTWlzY05vbkluaGVyaXRlZERhdGEmIGZpcnN0LCBjb25zdCBTdHls
ZU1pc2NOb25Jbmhlcml0ZWREYXRhJiBzZWNvbmQsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VD
b250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRp
ZXMpCkBAIC0xNDg5LDggKzE0ODQsOCBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRp
ZmYoY29uc3QgUmVuZGVyU3R5bGUmIG90aGVyLCBPcHRpb25TZXQ8U3R5bGVEaWZmZQogICAgIGlm
IChjaGFuZ2VSZXF1aXJlc0xheW91dChvdGhlciwgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9w
ZXJ0aWVzKSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0OwogCi0gICAg
aWYgKGNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9ubHkob3RoZXIsIGNoYW5nZWRDb250
ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2U6
OkxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHk7CisgICAgaWYgKGNoYW5nZVJlcXVpcmVzT3V0
T2ZGbG93TW92ZW1lbnRMYXlvdXRPbmx5KG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVBy
b3BlcnRpZXMpKQorICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZs
b3dNb3ZlbWVudE9ubHk7CiAKICAgICBpZiAoY2hhbmdlUmVxdWlyZXNMYXllclJlcGFpbnQob3Ro
ZXIsIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCiAgICAgICAgIHJldHVybiBT
dHlsZURpZmZlcmVuY2U6OlJlcGFpbnRMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggM2UyZjdjYTA3NTYzLi5mYjU2NzA0NDJlNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0yNTE1
LDcgKzI1MTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjaGFuZ2VBZmZlY3RzVmlzdWFsT3Zl
cmZsb3coY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICBib29sIGNoYW5nZVJlcXVpcmVz
TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykg
Y29uc3Q7Ci0gICAgYm9vbCBjaGFuZ2VSZXF1aXJlc1Bvc2l0aW9uZWRMYXlvdXRPbmx5KGNvbnN0
IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQ
cm9wZXJ0eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CisgICAg
Ym9vbCBjaGFuZ2VSZXF1aXJlc091dE9mRmxvd01vdmVtZW50TGF5b3V0T25seShjb25zdCBSZW5k
ZXJTdHlsZSYsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVy
dHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OwogICAgIGJvb2wg
Y2hhbmdlUmVxdWlyZXNMYXllclJlcGFpbnQoY29uc3QgUmVuZGVyU3R5bGUmLCBPcHRpb25TZXQ8
U3R5bGVEaWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5PiYgY2hhbmdlZENvbnRleHRT
ZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdDsKICAgICBib29sIGNoYW5nZVJlcXVpcmVzUmVwYWlu
dChjb25zdCBSZW5kZXJTdHlsZSYsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vu
c2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0
OwogICAgIGJvb2wgY2hhbmdlUmVxdWlyZXNSZXBhaW50SWZUZXh0KGNvbnN0IFJlbmRlclN0eWxl
JiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eT4mIGNo
YW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAppbmRl
eCAwN2M0N2I4ODgzNTIuLjliYjc4NTAzN2EwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCkBAIC0xMTAxLDkg
KzExMDEsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBTdHlsZURp
ZmZlcmVuY2UgZGlmZikKICAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludDogdHMgPDwg
InJlcGFpbnQiX3M7IGJyZWFrOwogICAgIGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50SWZU
ZXh0OiB0cyA8PCAicmVwYWludCBpZiB0ZXh0Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlm
ZmVyZW5jZTo6UmVwYWludExheWVyOiB0cyA8PCAicmVwYWludCBsYXllciJfczsgYnJlYWs7Ci0g
ICAgY2FzZSBTdHlsZURpZmZlcmVuY2U6OkxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHk6IHRz
IDw8ICJsYXlvdXQgcG9zaXRpb25lZCBtb3ZlbWVudCBvbmx5Il9zOyBicmVhazsKKyAgICBjYXNl
IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5OiB0cyA8PCAibGF5
b3V0IHBvc2l0aW9uZWQgbW92ZW1lbnQgb25seSJfczsgYnJlYWs7CiAgICAgY2FzZSBTdHlsZURp
ZmZlcmVuY2U6Ok92ZXJmbG93OiB0cyA8PCAib3ZlcmZsb3ciX3M7IGJyZWFrOwotICAgIGNhc2Ug
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvd0FuZFBvc2l0aW9uZWRNb3ZlbWVudDogdHMgPDwgIm92
ZXJmbG93IGFuZCBwb3NpdGlvbmVkIG1vdmVtZW50Il9zOyBicmVhazsKKyAgICBjYXNlIFN0eWxl
RGlmZmVyZW5jZTo6T3ZlcmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVudDogdHMgPDwgIm92ZXJmbG93
IGFuZCBwb3NpdGlvbmVkIG1vdmVtZW50Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlmZmVy
ZW5jZTo6TGF5b3V0OiB0cyA8PCAibGF5b3V0Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlm
ZmVyZW5jZTo6TmV3U3R5bGU6IHRzIDw8ICJuZXcgc3R5bGUiX3M7IGJyZWFrOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmgKaW5kZXggZGI0OGI0N2Y3MTNmLi5kZGE4NjZiNDIwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01
MSw5ICs1MSw5IEBAIGVudW0gY2xhc3MgUHJpbnRDb2xvckFkanVzdCA6IGJvb2wgewogLy8gLSBT
dHlsZURpZmZlcmVuY2U6OlJlcGFpbnQgLSBUaGUgb2JqZWN0IGp1c3QgbmVlZHMgdG8gYmUgcmVw
YWludGVkLgogLy8gLSBTdHlsZURpZmZlcmVuY2U6OlJlcGFpbnRJZlRleHQgLSBUaGUgb2JqZWN0
IG5lZWRzIHRvIGJlIHJlcGFpbnRlZCBpZiBpdCBjb250YWlucyB0ZXh0LgogLy8gLSBTdHlsZURp
ZmZlcmVuY2U6OlJlcGFpbnRMYXllciAtIFRoZSBsYXllciBhbmQgaXRzIGRlc2NlbmRhbnQgbGF5
ZXJzIG5lZWRzIHRvIGJlIHJlcGFpbnRlZC4KLS8vIC0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRQ
b3NpdGlvbmVkTW92ZW1lbnRPbmx5IC0gT25seSB0aGUgcG9zaXRpb24gb2YgdGhpcyBwb3NpdGlv
bmVkIG9iamVjdCBoYXMgYmVlbiB1cGRhdGVkCisvLyAtIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0
T3V0T2ZGbG93TW92ZW1lbnRPbmx5IC0gT25seSB0aGUgcG9zaXRpb24gb2YgdGhpcyBvdXQtb2Yt
ZmxvdyBib3ggaGFzIGJlZW4gdXBkYXRlZAogLy8gLSBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93
IC0gT25seSBvdmVyZmxvdyBuZWVkcyB0byBiZSByZWNvbXB1dGVkCi0vLyAtIFN0eWxlRGlmZmVy
ZW5jZTo6T3ZlcmZsb3dBbmRQb3NpdGlvbmVkTW92ZW1lbnQgLSBCb3RoIHBvc2l0aW9uZWQgbW92
ZW1lbnQgYW5kIG92ZXJmbG93IHVwZGF0ZXMgYXJlIHJlcXVpcmVkLgorLy8gLSBTdHlsZURpZmZl
cmVuY2U6Ok92ZXJmbG93QW5kT3V0T2ZGbG93TW92ZW1lbnQgLSBCb3RoIG91dC1vZi1mbG93IG1v
dmVtZW50IGFuZCBvdmVyZmxvdyB1cGRhdGVzIGFyZSByZXF1aXJlZC4KIC8vIC0gU3R5bGVEaWZm
ZXJlbmNlOjpMYXlvdXQgLSBBIGZ1bGwgbGF5b3V0IGlzIHJlcXVpcmVkLgogZW51bSBjbGFzcyBT
dHlsZURpZmZlcmVuY2UgOiB1aW50OF90IHsKICAgICBFcXVhbCwKQEAgLTYxLDkgKzYxLDkgQEAg
ZW51bSBjbGFzcyBTdHlsZURpZmZlcmVuY2UgOiB1aW50OF90IHsKICAgICBSZXBhaW50LAogICAg
IFJlcGFpbnRJZlRleHQsCiAgICAgUmVwYWludExheWVyLAotICAgIExheW91dFBvc2l0aW9uZWRN
b3ZlbWVudE9ubHksCisgICAgTGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5LAogICAgIE92ZXJm
bG93LAotICAgIE92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50LAorICAgIE92ZXJmbG93QW5k
T3V0T2ZGbG93TW92ZW1lbnQsCiAgICAgTGF5b3V0LAogICAgIE5ld1N0eWxlCiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475628</attachid>
            <date>2025-06-23 05:36:11 -0700</date>
            <delta_ts>2025-06-23 07:36:28 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-294801-20250623053610.patch</filename>
            <type>text/plain</type>
            <size>30146</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4ZGRkN2Q0MjJjY2MyOTFhNTdlYTE1YjY2NjExZWIyY2Q5MzA2ODJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjEgSnVuIDIwMjUgMDk6NDA6NDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuYW1lIExheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgdG8KIExheW91dE91dE9mRmxv
d01vdmVtZW50T25seSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk0
ODAxCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCkhlcmUsICdQb3NpdGlvbmVkTW92ZW1l
bnQnIHJlZmVycyB0byBtb3ZpbmcgYW4gb3V0LW9mLWZsb3cgYm94LCBub3QganVzdCBhbnkgcG9z
aXRpb25lZCBib3ggKGUuZy4sIG9uZSB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSkuCgoqIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5
b3V0SWZEaW1lbnNpb25zT3V0T2ZEYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQpOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dE91dE9mRmxvd0JveCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oOgooV2ViQ29yZTo6UmVuZGVyQm94Ojp0cnlMYXlvdXRE
b2luZ091dE9mRmxvd01vdmVtZW50T25seSk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnRyeUxheW91
dERvaW5nUG9zaXRpb25lZE1vdmVtZW50T25seSk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6YWRq
dXN0U3R5bGVEaWZmZXJlbmNlIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNldFN0
eWxlKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZSk6CihXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KToKKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6OmNsZWFyQ2hpbGROZWVkc0xheW91dCk6CihXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50OjpzZXROZWVkc0xheW91dEZvclN0eWxlRGlmZmVyZW5jZSk6CihXZWJDb3JlOjpS
ZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNo
b3VsZFJlcGFpbnRBZnRlckxheW91dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2Fs
Y3VsYXRlQ2xpcFJlY3RzIGNvbnN0KToKKFdlYkNvcmU6Om91dHB1dExheWVyUG9zaXRpb25UcmVl
UmVjdXJzaXZlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJTdHlsZUNoYW5nZWQpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpjbGVhck5lZWRzTGF5b3V0KToKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVk
c0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpOgooV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOiBE
ZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRCaXQp
OgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
T25seSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om5lZWRzTGF5b3V0IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHkg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExh
eW91dCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6bmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXRPbmx5IGNvbnN0KTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CihXZWJDb3JlOjp3
cml0ZURlYnVnSW5mbyk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc091dE9mRmxvd01v
dmVtZW50TGF5b3V0T25seSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZiBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNQb3NpdGlvbmVkTGF5b3V0
T25seSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgotLS0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8ICA0ICstLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCAgICB8IDI5ICsrKysrKysrKy0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgfCAgNiArKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCAgICAgICAgfCAgNCArLS0KIC4uLi9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgfCAxMCArKystLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAxOCArKysrKystLS0t
LS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCB8ICA0ICst
LQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgIHwgMTcgKysr
Ky0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oICB8
ICAyICstCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCAgfCAg
NCArLS0KIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCAgICB8ICA4
ICsrLS0tCiAxNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3YzM4Y2ExODU2NGEuLjAxMDA4MWQ0M2Iw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMTg3LDcgKzMxODcsNyBAQCBib29sIERv
Y3VtZW50Ojp1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYgZWxlbWVu
dCwgT3B0aW9uU2V0PERpbQogICAgIGJvb2wgcmVxdWlyZUZ1bGxMYXlvdXQgPSBpczxIVE1MSW5w
dXRFbGVtZW50PihlbGVtZW50KTsKICAgICB7CiAgICAgICAgIENoZWNrZWRQdHIgcmVuZGVyZXIg
PSBlbGVtZW50LnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlci0+c2VsZk5lZWRzTGF5
b3V0KCkgfHwgcmVuZGVyZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSB8fCByZW5kZXJlci0+
b3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpIHx8IHJlbmRlcmVyLT5uZWVkc1Bvc2l0aW9uZWRN
b3ZlbWVudExheW91dCgpKQorICAgICAgICBpZiAocmVuZGVyZXItPnNlbGZOZWVkc0xheW91dCgp
IHx8IHJlbmRlcmVyLT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkgfHwgcmVuZGVyZXItPm91dE9m
Rmxvd0NoaWxkTmVlZHNMYXlvdXQoKSB8fCByZW5kZXJlci0+bmVlZHNPdXRPZkZsb3dNb3ZlbWVu
dExheW91dCgpKQogICAgICAgICAgICAgcmVxdWlyZUZ1bGxMYXlvdXQgPSB0cnVlOwogICAgICAg
ICBpZiAocmVuZGVyZXItPm5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKSkgewogICAg
ICAgICAgICAgaWYgKCFkaW1lbnNpb25zQ2hlY2suY29udGFpbnMoRGltZW5zaW9uc0NoZWNrOjpJ
Z25vcmVPdmVyZmxvdykpCkBAIC0zMjE1LDcgKzMyMTUsNyBAQCBib29sIERvY3VtZW50Ojp1cGRh
dGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYgZWxlbWVudCwgT3B0aW9uU2V0
PERpbQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoZGltZW5zaW9uc0NoZWNrLmNvbnRhaW5zQW55KHsgRGltZW5zaW9uc0NoZWNrOjpMZWZ0
LCBEaW1lbnNpb25zQ2hlY2s6OlRvcCB9KSAmJiBjdXJyZW50UmVuZGVyZXItPm5lZWRzUG9zaXRp
b25lZE1vdmVtZW50TGF5b3V0KCkpIHsKKyAgICAgICAgICAgIGlmIChkaW1lbnNpb25zQ2hlY2su
Y29udGFpbnNBbnkoeyBEaW1lbnNpb25zQ2hlY2s6OkxlZnQsIERpbWVuc2lvbnNDaGVjazo6VG9w
IH0pICYmIGN1cnJlbnRSZW5kZXJlci0+bmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCgpKSB7
CiAgICAgICAgICAgICAgICAgcmVxdWlyZUZ1bGxMYXlvdXQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggOWRmYmUwZTBlZmRhLi4zOWRlNDdjODNhZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNzY5LDcgKzc2OSw3IEBAIGJvb2wgUmVu
ZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoKnRoaXMsIGxvY2F0aW9uT2Zmc2V0
KCksIGlzVHJhbnNmb3JtZWQoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgd3JpdGluZ01vZGUoKS5p
c0Jsb2NrRmxpcHBlZCgpKTsKLSAgICBpZiAobmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQo
KSAmJiAhdHJ5TGF5b3V0RG9pbmdQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KCkpCisgICAgaWYgKG5l
ZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSAmJiAhdHJ5TGF5b3V0RG9pbmdPdXRPZkZsb3dN
b3ZlbWVudE9ubHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTGF5IG91dCBw
b3NpdGlvbmVkIGRlc2NlbmRhbnRzIG9yIG9iamVjdHMgdGhhdCBqdXN0IG5lZWQgdG8gcmVjb21w
dXRlIG92ZXJmbG93LgpAQCAtODg3LDcgKzg4Nyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dE91dE9mRmxvd0JveChSZW5kZXJCb3gmIG91dE9mRmxvd0JveCwgUmVsYXlvdXRDaGlsZHJlbiBy
CiAgICAgCiAgICAgLy8gV2UgZG9uJ3QgaGF2ZSB0byBkbyBhIGZ1bGwgbGF5b3V0LiAgV2UganVz
dCBoYXZlIHRvIHVwZGF0ZSBvdXIgcG9zaXRpb24uIFRyeSB0aGF0IGZpcnN0LiBJZiB3ZSBoYXZl
IHNocmluay10by1maXQgd2lkdGgKICAgICAvLyBhbmQgd2UgaGl0IHRoZSBhdmFpbGFibGUgd2lk
dGggY29uc3RyYWludCwgdGhlIGxheW91dElmTmVlZGVkKCkgd2lsbCBjYXRjaCBpdCBhbmQgZG8g
YSBmdWxsIGxheW91dC4KLSAgICBpZiAob3V0T2ZGbG93Qm94Lm5lZWRzUG9zaXRpb25lZE1vdmVt
ZW50TGF5b3V0T25seSgpICYmIG91dE9mRmxvd0JveC50cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRN
b3ZlbWVudE9ubHkoKSkKKyAgICBpZiAob3V0T2ZGbG93Qm94Lm5lZWRzT3V0T2ZGbG93TW92ZW1l
bnRMYXlvdXRPbmx5KCkgJiYgb3V0T2ZGbG93Qm94LnRyeUxheW91dERvaW5nT3V0T2ZGbG93TW92
ZW1lbnRPbmx5KCkpCiAgICAgICAgIG91dE9mRmxvd0JveC5jbGVhck5lZWRzTGF5b3V0KCk7CiAK
ICAgICAvLyBJZiB3ZSBhcmUgcGFnaW5hdGVkIG9yIGluIGEgbGluZSBncmlkLCBjb21wdXRlIGEg
dmVydGljYWwgcG9zaXRpb24gZm9yIG91ciBvYmplY3Qgbm93LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCmluZGV4IDNjYzAyZmQ2MGQyMS4uNTkyMTliYmM4MWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTcsOSArNDk3LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwYWludENsaXBwaW5nTWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCogPSBudWxscHRyKSBvdmVycmlkZTsKIAotICAgIC8vIENhbGxlZCB3aGVuIGEgcG9zaXRp
b25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdlIHNpemUuICBB
IHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZAorICAgIC8vIENhbGxlZCB3aGVuIGFuIG91
dC1vZi1mbG93IGJveCBtb3ZlcyBidXQgZG9lc24ndCBuZWNlc3NhcmlseSBjaGFuZ2Ugc2l6ZS4g
QSBzaW1wbGlmaWVkIGxheW91dCBpcyBhdHRlbXB0ZWQKICAgICAvLyB0aGF0IGp1c3QgdXBkYXRl
cyB0aGUgb2JqZWN0J3MgcG9zaXRpb24uIElmIHRoZSBzaXplIGRvZXMgY2hhbmdlLCB0aGUgb2Jq
ZWN0IHJlbWFpbnMgZGlydHkuCi0gICAgYm9vbCB0cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRNb3Zl
bWVudE9ubHkoKQorICAgIGJvb2wgdHJ5TGF5b3V0RG9pbmdPdXRPZkZsb3dNb3ZlbWVudE9ubHko
KQogICAgIHsKICAgICAgICAgTGF5b3V0VW5pdCBvbGRXaWR0aCA9IHdpZHRoKCk7CiAgICAgICAg
IHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCmluZGV4IDg0ZDIzZDBjNjQ0OS4uNjNlMDBmY2UzODliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yODgsMTEgKzI4OCwxMCBAQCBT
dHlsZURpZmZlcmVuY2UgUmVuZGVyRWxlbWVudDo6YWRqdXN0U3R5bGVEaWZmZXJlbmNlKFN0eWxl
RGlmZmVyZW5jZSBkaWZmLCBPcHRpbwogICAgICAgICAgICAgaWYgKCFoYXNMYXllcigpKQogICAg
ICAgICAgICAgICAgIGRpZmYgPSBzdGQ6Om1heChkaWZmLCBTdHlsZURpZmZlcmVuY2U6OkxheW91
dCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHNl
dCBhdCBsZWFzdCBPdmVyZmxvdywgYnV0IGlmIFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgaXMgYWxy
ZWFkeSBzZXQKLSAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjdHVhbGx5IG5lZWQgT3ZlcmZs
b3dBbmRQb3NpdGlvbmVkTW92ZW1lbnQuCi0gICAgICAgICAgICAgICAgZGlmZiA9IHN0ZDo6bWF4
KGRpZmYsIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50
T25seSkgPyBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50IDog
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvdyk7CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBzZXQgYXQgbGVhc3QgT3ZlcmZsb3csIGJ1dCBpZiBPdXRPZkZsb3dNb3ZlbWVudE9ubHkgaXMg
YWxyZWFkeSBzZXQKKyAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjdHVhbGx5IG5lZWQgT3Zl
cmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVudC4KKyAgICAgICAgICAgICAgICBkaWZmID0gc3RkOjpt
YXgoZGlmZiwgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3ZlbWVu
dE9ubHkpID8gU3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvd0FuZE91dE9mRmxvd01vdmVtZW50IDog
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvdyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIAogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIGRpZmYgPSBzdGQ6Om1heChkaWZmLCBTdHlsZURpZmZl
cmVuY2U6OlJlY29tcG9zaXRlTGF5ZXIpOwogICAgIH0KQEAgLTYxNyw3ICs2MTYsNyBAQCB2b2lk
IFJlbmRlckVsZW1lbnQ6OnNldFN0eWxlKFJlbmRlclN0eWxlJiYgc3R5bGUsIFN0eWxlRGlmZmVy
ZW5jZSBtaW5pbWFsU3R5bGVEaQogICAgIC8vIGNoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGxheW91
dCBub3csIGFuZCBkZWNpZGUgaWYgd2UgbmVlZCB0byByZXBhaW50LgogICAgIFN0eWxlRGlmZmVy
ZW5jZSB1cGRhdGVkRGlmZiA9IGFkanVzdFN0eWxlRGlmZmVyZW5jZShkaWZmLCBjb250ZXh0U2Vu
c2l0aXZlUHJvcGVydGllcyk7CiAgICAgCi0gICAgaWYgKGRpZmYgPD0gU3R5bGVEaWZmZXJlbmNl
OjpMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQorICAgIGlmIChkaWZmIDw9IFN0eWxlRGlm
ZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5KQogICAgICAgICBzZXROZWVkc0xh
eW91dEZvclN0eWxlRGlmZmVyZW5jZSh1cGRhdGVkRGlmZiwgJm9sZFN0eWxlKTsKIAogICAgIGlm
ICghZGlkUmVwYWludCAmJiAodXBkYXRlZERpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50
TGF5ZXIgfHwgc2hvdWxkUmVwYWludEZvclN0eWxlRGlmZmVyZW5jZSh1cGRhdGVkRGlmZikpKSB7
CkBAIC05NzYsNyArOTc1LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgfQog
CiAgICAgICAgIC8vIHJlc2V0IHN0eWxlIGZsYWdzCi0gICAgICAgIGlmIChkaWZmID09IFN0eWxl
RGlmZmVyZW5jZTo6TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRQb3Np
dGlvbmVkTW92ZW1lbnRPbmx5KSB7CisgICAgICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZTo6TGF5b3V0IHx8IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZsb3dNb3Zl
bWVudE9ubHkpIHsKICAgICAgICAgICAgIHNldEZsb2F0aW5nKGZhbHNlKTsKICAgICAgICAgICAg
IGNsZWFyUG9zaXRpb25lZFN0YXRlKCk7CiAgICAgICAgIH0KQEAgLTEyMjEsMTggKzEyMjAsMTgg
QEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgICAgICBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZSgqcHJvdGVjdGVkRWxlbWVudCgpKTsK
IH0KIAotdm9pZCBSZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91
dChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5l
ZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQog
ewogICAgIEFTU0VSVCghaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigpKTsKLSAgICBpZiAobmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKSkKKyAgICBpZiAobmVlZHNPdXRPZkZsb3dNb3Zl
bWVudExheW91dCgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2V0TmVlZHNQb3NpdGlvbmVkTW92
ZW1lbnRMYXlvdXRCaXQodHJ1ZSk7CisgICAgc2V0TmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91
dEJpdCh0cnVlKTsKICAgICBzY2hlZHVsZUxheW91dChtYXJrQ29udGFpbmluZ0Jsb2Nrc0Zvckxh
eW91dCgpKTsKICAgICBpZiAoaGFzTGF5ZXIoKSkgewogICAgICAgICBpZiAob2xkU3R5bGUgJiYg
c3R5bGUoKS5kaWZmUmVxdWlyZXNMYXllclJlcGFpbnQoKm9sZFN0eWxlLCBkb3duY2FzdDxSZW5k
ZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcykubGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpKQogICAg
ICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91
dCgpOworICAgICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92
ZW1lbnRMYXlvdXQoKTsKICAgICB9CiB9CiAKQEAgLTEyNDEsNyArMTI0MCw3IEBAIHZvaWQgUmVu
ZGVyRWxlbWVudDo6Y2xlYXJDaGlsZE5lZWRzTGF5b3V0KCkKICAgICBzZXROb3JtYWxDaGlsZE5l
ZWRzTGF5b3V0Qml0KGZhbHNlKTsKICAgICBzZXRPdXRPZkZsb3dDaGlsZE5lZWRzTGF5b3V0Qml0
KGZhbHNlKTsKICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0Qml0KGZhbHNl
KTsKLSAgICBzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dEJpdChmYWxzZSk7CisgICAg
c2V0TmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dEJpdChmYWxzZSk7CiAgICAgc2V0T3V0T2ZG
bG93Q2hpbGROZWVkc1N0YXRpY1Bvc2l0aW9uTGF5b3V0Qml0KGZhbHNlKTsKIH0KIApAQCAtMTI0
OSwxMCArMTI0OCwxMCBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5lZWRzTGF5b3V0Rm9yU3R5
bGVEaWZmZXJlbmNlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdAogewogICAgIGlmIChkaWZm
ID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0KQogICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZlcnJlZFdpZHRoc1VwZGF0ZSgpOwotICAgIGVsc2UgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJl
bmNlOjpMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQotICAgICAgICBzZXROZWVkc1Bvc2l0
aW9uZWRNb3ZlbWVudExheW91dChvbGRTdHlsZSk7Ci0gICAgZWxzZSBpZiAoZGlmZiA9PSBTdHls
ZURpZmZlcmVuY2U6Ok92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50KSB7Ci0gICAgICAgIHNl
dE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKKyAgICBlbHNlIGlmIChk
aWZmID09IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5KQorICAg
ICAgICBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKKyAgICBlbHNl
IGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZTo6T3ZlcmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVu
dCkgeworICAgICAgICBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsK
ICAgICAgICAgc2V0TmVlZHNMYXlvdXRGb3JPdmVyZmxvd0NoYW5nZSgpOwogICAgIH0gZWxzZSBp
ZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93KQogICAgICAgICBzZXROZWVkc0xh
eW91dEZvck92ZXJmbG93Q2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuaAppbmRleCA2NGMzZjU5ZWY5NzYuLjkyZTYwYmMxZDQ0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0Q2hpbGROZWVkc0xheW91dChNYXJraW5nQmVoYXZpb3IgPSBNYXJrQ29udGFp
bmluZ0Jsb2NrQ2hhaW4pOwogICAgIHZvaWQgc2V0T3V0T2ZGbG93Q2hpbGROZWVkc1N0YXRpY1Bv
c2l0aW9uTGF5b3V0KCk7CiAgICAgdm9pZCBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKLSAgICB2
b2lkIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CisgICAgdm9pZCBzZXROZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0KGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdm9pZCBzZXROZWVkc0xheW91dEZvclN0eWxl
RGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7
CiAgICAgdm9pZCBzZXROZWVkc0xheW91dEZvck92ZXJmbG93Q2hhbmdlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDVmYTcxNjAwMDhkZi4uYThmYzU2
NmM3ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0
MDcsNyArMjQwNyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRlckxheW91
dCgpIGNvbnN0CiAKICAgICAvLyBDb21wb3NpdGVkIGxheWVycyB0aGF0IHdlcmUgbW92ZWQgZHVy
aW5nIGEgcG9zaXRpb25lZCBtb3ZlbWVudCBvbmx5CiAgICAgLy8gbGF5b3V0LCBkb24ndCBuZWVk
IHRvIGJlIHJlcGFpbnRlZC4gVGhleSBqdXN0IG5lZWQgdG8gYmUgcmVjb21wb3NpdGVkLgotICAg
IEFTU0VSVChtX3JlcGFpbnRTdGF0dXMgPT0gUmVwYWludFN0YXR1czo6TmVlZHNGdWxsUmVwYWlu
dEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dCk7CisgICAgQVNTRVJUKG1fcmVwYWludFN0YXR1
cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRM
YXlvdXQpOwogICAgIHJldHVybiAhaXNDb21wb3NpdGVkKCkgfHwgYmFja2luZygpLT5wYWludHNJ
bnRvQ29tcG9zaXRlZEFuY2VzdG9yKCk7CiB9CiAKQEAgLTYyMzgsNyArNjIzOCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAgIGRpcnR5QW5jZXN0b3JDaGFpbkhhc1ZpZXdwb3J0
Q29uc3RyYWluZWREZXNjZW5kYW50U3RhdHVzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZTo6UmVjb21wb3NpdGVMYXllciB8fCBkaWZmID49IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9z
aXRpb25lZE1vdmVtZW50T25seSkKKyAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2U6OlJl
Y29tcG9zaXRlTGF5ZXIgfHwgZGlmZiA+PSBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91dE9mRmxv
d01vdmVtZW50T25seSkKICAgICAgICAgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmludmFsaWRhdGVS
ZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShkaWZm
KTsKQEAgLTY5MzgsNyArNjkzOCw3IEBAIHZvaWQgb3V0cHV0TGF5ZXJQb3NpdGlvblRyZWVSZWN1
cnNpdmUoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBXZWJDb3JlOjpSZW5kZXJMCiAKICAgICBz
dHJlYW0gPDwgIiAiX3M7CiAKLSAgICBpZiAobGF5ZXIucmVwYWludFN0YXR1cygpID09IFdlYkNv
cmU6OlJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRM
YXlvdXQpCisgICAgaWYgKGxheWVyLnJlcGFpbnRTdGF0dXMoKSA9PSBXZWJDb3JlOjpSZXBhaW50
U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpCiAgICAg
ICAgIHN0cmVhbSA8PCAiUCI7CiAgICAgZWxzZSBpZiAobGF5ZXIucmVwYWludFN0YXR1cygpID09
IFdlYkNvcmU6OlJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnQpCiAgICAgICAgIHN0cmVh
bSA8PCAiRiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGUyOTU1
MjJkMWFhNy4uODhjMzQ0ZDdjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaApAQCAtOTgsNyArOTgsNyBAQCBlbnVtIGNsYXNzIExheW91dFVwVG9EYXRlIDogYm9vbCB7
IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgUmVwYWludFN0YXR1cyA6IHVpbnQ4X3QgewogICAgIE5l
ZWRzTm9ybWFsUmVwYWludCwKICAgICBOZWVkc0Z1bGxSZXBhaW50LAotICAgIE5lZWRzRnVsbFJl
cGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQKKyAgICBOZWVkc0Z1bGxSZXBhaW50Rm9y
T3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQKIH07CiAKIGVudW0gQ2xpcFJlY3RzVHlwZSB7CkBAIC03
ODQsNyArNzg0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRSZXBhaW50U3RhdHVzKFJlcGFp
bnRTdGF0dXMpOwogICAgIFJlcGFpbnRTdGF0dXMgcmVwYWludFN0YXR1cygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwYWludFN0YXR1czsgfQotICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVwYWludFN0YXR1cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBh
aW50IHx8IG1fcmVwYWludFN0YXR1cyA9PSBSZXBhaW50U3RhdHVzOjpOZWVkc0Z1bGxSZXBhaW50
Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0OyB9CisgICAgYm9vbCBuZWVkc0Z1bGxSZXBhaW50
KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50U3RhdHVzID09IFJlcGFpbnRTdGF0dXM6Ok5lZWRz
RnVsbFJlcGFpbnQgfHwgbV9yZXBhaW50U3RhdHVzID09IFJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVs
bFJlcGFpbnRGb3JPdXRPZkZsb3dNb3ZlbWVudExheW91dDsgfQogCiAgICAgTGF5b3V0VW5pdCBz
dGF0aWNJbmxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24u
d2lkdGgoKTsgfQogICAgIExheW91dFVuaXQgc3RhdGljQmxvY2tQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24uaGVpZ2h0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNTRiODY3YzJm
M2Y2Li40NjU2MzI0YjIzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yMTk2LDcgKzIxOTYsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJTdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IFJlbmRlckxheWVyJgogICAgIGNvbnN0IGF1dG8mIG5ld1N0eWxlID0gbGF5ZXIucmVuZGVyZXIo
KS5zdHlsZSgpOwogCiAgICAgaWYgKGhhc0NvbnRlbnRDb21wb3NpdGluZ0xheWVycygpKSB7Ci0g
ICAgICAgIGlmIChkaWZmID49IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVt
ZW50T25seSkgeworICAgICAgICBpZiAoZGlmZiA+PSBTdHlsZURpZmZlcmVuY2U6OkxheW91dE91
dE9mRmxvd01vdmVtZW50T25seSkgewogICAgICAgICAgICAgbGF5ZXIuc2V0TmVlZHNQb3N0TGF5
b3V0Q29tcG9zaXRpbmdVcGRhdGUoKTsKICAgICAgICAgICAgIGxheWVyLnNldE5lZWRzQ29tcG9z
aXRpbmdHZW9tZXRyeVVwZGF0ZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGVjOTkyMGEyYzNlMy4uY2QyYmU5NTMwY2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNTc2LDcgKzU3Niw3
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpjbGVhck5lZWRzTGF5b3V0KEhhZFNraXBwZWRMYXlvdXQg
aGFkU2tpcHBlZExheW91dCkKICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
Qml0KGZhbHNlKTsKICAgICBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGZhbHNlKTsKICAg
ICBzZXRPdXRPZkZsb3dDaGlsZE5lZWRzU3RhdGljUG9zaXRpb25MYXlvdXRCaXQoZmFsc2UpOwot
ICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsKKyAgICBzZXRO
ZWVkc091dE9mRmxvd01vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsKICNpZiBBU1NFUlRfRU5BQkxF
RAogICAgIGF1dG8gY2hlY2tJZk91dE9mRmxvd0Rlc2NlbmRhbnRzTmVlZExheW91dCA9IFsmXShh
dXRvJiByZW5kZXJCbG9jaykgewogICAgICAgICBpZiAoYXV0byogb3V0T2ZGbG93RGVzY2VuZGFu
dHMgPSByZW5kZXJCbG9jay5vdXRPZkZsb3dCb3hlcygpKSB7CkBAIC03MTUsMTAgKzcxNSwxMCBA
QCB2b2lkIFJlbmRlck9iamVjdDo6c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCkKICAgICBkb3du
Y2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcykuY2hlY2tlZExheWVyKCktPnNldFJl
cGFpbnRTdGF0dXMoUmVwYWludFN0YXR1czo6TmVlZHNGdWxsUmVwYWludCk7CiB9CiAKLXZvaWQg
UmVuZGVyT2JqZWN0OjpzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1l
bnRMYXlvdXQoKQordm9pZCBSZW5kZXJPYmplY3Q6OnNldExheWVyTmVlZHNGdWxsUmVwYWludEZv
ck91dE9mRmxvd01vdmVtZW50TGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaGFzTGF5ZXIoKSk7Ci0g
ICAgZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMpLmNoZWNrZWRMYXllcigp
LT5zZXRSZXBhaW50U3RhdHVzKFJlcGFpbnRTdGF0dXM6Ok5lZWRzRnVsbFJlcGFpbnRGb3JQb3Np
dGlvbmVkTW92ZW1lbnRMYXlvdXQpOworICAgIGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q+KCp0aGlzKS5jaGVja2VkTGF5ZXIoKS0+c2V0UmVwYWludFN0YXR1cyhSZXBhaW50U3RhdHVz
OjpOZWVkc0Z1bGxSZXBhaW50Rm9yT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQpOwogfQogCiBzdGF0
aWMgaW5saW5lIFJlbmRlckJsb2NrKiBuZWFyZXN0Tm9uQW5vbnltb3VzQ29udGFpbmluZ0Jsb2Nr
SW5jbHVkaW5nU2VsZihSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKQEAgLTE0NjIsOCArMTQ2Miw4
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBib29sIG1hcmssIGludCBkZXB0aCkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiW291dC1v
Zi1mbG93IGNoaWxkXSI7CiAgICAgICAgIGlmIChuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5
b3V0KCkpCiAgICAgICAgICAgICBzdHJlYW0gPDwgIltzaW1wbGlmaWVkXSI7Ci0gICAgICAgIGlm
IChuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpKQotICAgICAgICAgICAgc3RyZWFtIDw8
ICJbcG9zaXRpb25lZCBtb3ZlbWVudF0iOworICAgICAgICBpZiAobmVlZHNPdXRPZkZsb3dNb3Zl
bWVudExheW91dCgpKQorICAgICAgICAgICAgc3RyZWFtIDw8ICJbb3V0LW9mLWZsb3cgbW92ZW1l
bnRdIjsKICAgICAgICAgaWYgKG91dE9mRmxvd0NoaWxkTmVlZHNTdGF0aWNQb3NpdGlvbkxheW91
dCgpKQogICAgICAgICAgICAgc3RyZWFtIDw8ICJbb3V0IG9mIGZsb3cgY2hpbGQgbmVlZHMgcGFy
ZW50IGxheW91dF0iOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCBlMjdiNmI2MGYxZTQuLjhkMWZkMThkYmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjk4LDggKzY5OCw4IEBAIHB1YmxpYzoKICAgICBib29s
IG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6OlByZWZlcnJlZExvZ2ljYWxXaWR0aHNOZWVk
VXBkYXRlKTsgfQogCiAgICAgYm9vbCBzZWxmTmVlZHNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlQml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpOZWVkc0xheW91dCk7IH0KLSAgICBi
b29sIG5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlv
dXQpOyB9Ci0gICAgYm9vbCBuZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dE9ubHkoKSBjb25z
dDsKKyAgICBib29sIG5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXQoKSBjb25zdCB7IHJldHVy
biBtX3N0YXRlQml0ZmllbGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpOZWVkc091dE9mRmxvd01vdmVt
ZW50TGF5b3V0KTsgfQorICAgIGJvb2wgbmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dE9ubHko
KSBjb25zdDsKIAogICAgIGJvb2wgb3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6Ok91dE9mRmxvd0NoaWxk
TmVlZHNMYXlvdXQpOyB9CiAgICAgYm9vbCBuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6TmVl
ZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCk7IH0KQEAgLTExMzksNyArMTEzOSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHNldElzQmVpbmdEZXN0cm95ZWQoKSB7IG1fc3RhdGVCaXRmaWVs
ZHMuc2V0RmxhZyhTdGF0ZUZsYWc6OkJlaW5nRGVzdHJveWVkKTsgfQogCiAgICAgdm9pZCBzY2hl
ZHVsZUxheW91dChSZW5kZXJFbGVtZW50KiBsYXlvdXRSb290KTsKLSAgICB2b2lkIHNldE5lZWRz
UG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGJvb2wgYikgeyBtX3N0YXRlQml0ZmllbGRzLnNl
dEZsYWcoU3RhdGVGbGFnOjpOZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCwgYik7IH0KKyAg
ICB2b2lkIHNldE5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRCaXQoYm9vbCBiKSB7IG1fc3Rh
dGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZsYWc6Ok5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlv
dXQsIGIpOyB9CiAgICAgdm9pZCBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGJvb2wgYikg
eyBtX3N0YXRlQml0ZmllbGRzLnNldEZsYWcoU3RhdGVGbGFnOjpOb3JtYWxDaGlsZE5lZWRzTGF5
b3V0LCBiKTsgfQogICAgIHZvaWQgc2V0T3V0T2ZGbG93Q2hpbGROZWVkc0xheW91dEJpdChib29s
IGIpIHsgbV9zdGF0ZUJpdGZpZWxkcy5zZXRGbGFnKFN0YXRlRmxhZzo6T3V0T2ZGbG93Q2hpbGRO
ZWVkc0xheW91dCwgYik7IH0KICAgICB2b2lkIHNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dM
YXlvdXRCaXQoYm9vbCBiKSB7IG1fc3RhdGVCaXRmaWVsZHMuc2V0RmxhZyhTdGF0ZUZsYWc6Ok5l
ZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQsIGIpOyB9CkBAIC0xMTY2LDcgKzExNjYsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRBYnNvbHV0ZVJlY3RGb3JMYXllcihMYXlvdXRSZWN0
JiByZXN1bHQpOwogICAgIHZvaWQgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7Ci0gICAgdm9p
ZCBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsK
KyAgICB2b2lkIHNldExheWVyTmVlZHNGdWxsUmVwYWludEZvck91dE9mRmxvd01vdmVtZW50TGF5
b3V0KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGVDb250YWluZXJQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKCk7CiAKQEAgLTEyMDMsNyArMTIwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIElzUmVwbGFj
ZWRPckF0b21pY0lubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKICAg
ICAgICAgQmVpbmdEZXN0cm95ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMSA8PCAyLAogICAgICAgICBOZWVkc0xheW91dCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIE5lZWRzUG9zaXRpb25lZE1vdmVtZW50
TGF5b3V0ICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgTmVlZHNPdXRP
ZkZsb3dNb3ZlbWVudExheW91dCAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA0LAogICAg
ICAgICBOb3JtYWxDaGlsZE5lZWRzTGF5b3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxIDw8IDUsCiAgICAgICAgIE91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEgPDwgNiwKICAgICAgICAgTmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxv
d0xheW91dCAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA3LApAQCAtMTM1Niw3ICsxMzU2LDcg
QEAgaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjppbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0
aW9uU3RhdHVzKCkKIGlubGluZSBib29sIFJlbmRlck9iamVjdDo6bmVlZHNTaW1wbGlmaWVkTm9y
bWFsRmxvd0xheW91dE9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBuZWVkc1NpbXBsaWZpZWRO
b3JtYWxGbG93TGF5b3V0KCkgJiYgIXNlbGZOZWVkc0xheW91dCgpICYmICFub3JtYWxDaGlsZE5l
ZWRzTGF5b3V0KCkKLSAgICAgICAgJiYgIW91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQoKSAmJiAh
bmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKKyAgICAgICAgJiYgIW91dE9mRmxvd0No
aWxkTmVlZHNMYXlvdXQoKSAmJiAhbmVlZHNPdXRPZkZsb3dNb3ZlbWVudExheW91dCgpOwogfQog
CiBpbmxpbmUgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIFJlbmRlck9iamVjdDo6ZW5jbG9zaW5nRnJh
Z21lbnRlZEZsb3coKSBjb25zdApAQCAtMTM3MywxMiArMTM3MywxMiBAQCBpbmxpbmUgYm9vbCBS
ZW5kZXJPYmplY3Q6Om5lZWRzTGF5b3V0KCkgY29uc3QKICAgICAgICAgfHwgbm9ybWFsQ2hpbGRO
ZWVkc0xheW91dCgpCiAgICAgICAgIHx8IG91dE9mRmxvd0NoaWxkTmVlZHNMYXlvdXQoKQogICAg
ICAgICB8fCBuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCkKLSAgICAgICAgfHwgbmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKKyAgICAgICAgfHwgbmVlZHNPdXRPZkZsb3dN
b3ZlbWVudExheW91dCgpOwogfQogCi1pbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6Om5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0T25seSgpIGNvbnN0CitpbmxpbmUgYm9vbCBSZW5kZXJPYmpl
Y3Q6Om5lZWRzT3V0T2ZGbG93TW92ZW1lbnRMYXlvdXRPbmx5KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKQorICAgIHJldHVybiBuZWVkc091dE9m
Rmxvd01vdmVtZW50TGF5b3V0KCkKICAgICAgICAgJiYgIXNlbGZOZWVkc0xheW91dCgpCiAgICAg
ICAgICYmICFub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkKICAgICAgICAgJiYgIW91dE9mRmxvd0No
aWxkTmVlZHNMYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwCmluZGV4IDI5ZmRmYWRhMGE5My4uZGMwNTYxNDcyYTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC00MDMsNyArNDAzLDcg
QEAgdm9pZCB3cml0ZURlYnVnSW5mbyhUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0
JiBvYmplY3QsIE9wdGlvblNldDxSZW5kZXIKICAgICB9CiAKICAgICBpZiAoYmVoYXZpb3IuY29u
dGFpbnMoUmVuZGVyQXNUZXh0RmxhZzo6U2hvd0xheW91dFN0YXRlKSkgewotICAgICAgICBib29s
IG5lZWRzTGF5b3V0ID0gb2JqZWN0LnNlbGZOZWVkc0xheW91dCgpIHx8IG9iamVjdC5uZWVkc1Bv
c2l0aW9uZWRNb3ZlbWVudExheW91dCgpIHx8IG9iamVjdC5vdXRPZkZsb3dDaGlsZE5lZWRzTGF5
b3V0KCkgfHwgb2JqZWN0Lm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgYm9vbCBu
ZWVkc0xheW91dCA9IG9iamVjdC5zZWxmTmVlZHNMYXlvdXQoKSB8fCBvYmplY3QubmVlZHNPdXRP
ZkZsb3dNb3ZlbWVudExheW91dCgpIHx8IG9iamVjdC5vdXRPZkZsb3dDaGlsZE5lZWRzTGF5b3V0
KCkgfHwgb2JqZWN0Lm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKTsKICAgICAgICAgaWYgKG5lZWRz
TGF5b3V0KQogICAgICAgICAgICAgdHMgPDwgIiAobmVlZHMgbGF5b3V0OiJfczsKICAgICAgICAg
CkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCB3cml0ZURlYnVnSW5mbyhUZXh0U3RyZWFtJiB0cywg
Y29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QsIE9wdGlvblNldDxSZW5kZXIKICAgICAgICAgICAg
IGhhdmVQcmV2aW91cyA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAob2JqZWN0Lm5l
ZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkpIHsKKyAgICAgICAgaWYgKG9iamVjdC5uZWVk
c091dE9mRmxvd01vdmVtZW50TGF5b3V0KCkpIHsKICAgICAgICAgICAgIGlmIChoYXZlUHJldmlv
dXMpCiAgICAgICAgICAgICAgICAgdHMgPDwgJywnOwogICAgICAgICAgICAgaGF2ZVByZXZpb3Vz
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCmluZGV4IGExZTM4YmIxYmY2NS4uMzQyNmFmYTdlODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTExNTAsMTggKzExNTAsMTMg
QEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgUmVuZGVyU3R5
bGUmIG90aGVyLCBPcHRpb25TZXQ8U3R5bGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wg
UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9ubHkoY29uc3QgUmVu
ZGVyU3R5bGUmIG90aGVyLCBPcHRpb25TZXQ8U3R5bGVEaWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2
ZVByb3BlcnR5PiYpIGNvbnN0Citib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc091dE9m
Rmxvd01vdmVtZW50TGF5b3V0T25seShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIsIE9wdGlvblNl
dDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JikgY29uc3QKIHsKLSAg
ICBpZiAocG9zaXRpb24oKSA9PSBQb3NpdGlvblR5cGU6OlN0YXRpYykKKyAgICBpZiAocG9zaXRp
b24oKSAhPSBQb3NpdGlvblR5cGU6OkFic29sdXRlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAobV9ub25Jbmhlcml0ZWREYXRhLT5zdXJyb3VuZERhdGEtPmluc2V0ICE9IG90aGVy
Lm1fbm9uSW5oZXJpdGVkRGF0YS0+c3Vycm91bmREYXRhLT5pbnNldCkgewotICAgICAgICAvLyBP
cHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgYSBwb3NpdGlvbmVkIGxheWVyIGlzIG1vdmluZyBi
dXQgbm90IGNoYW5naW5nIHNpemUuCi0gICAgICAgIGlmIChwb3NpdGlvbigpID09IFBvc2l0aW9u
VHlwZTo6QWJzb2x1dGUgJiYgcG9zaXRpb25DaGFuZ2VJc01vdmVtZW50T25seShtX25vbkluaGVy
aXRlZERhdGEtPnN1cnJvdW5kRGF0YS0+aW5zZXQsIG90aGVyLm1fbm9uSW5oZXJpdGVkRGF0YS0+
c3Vycm91bmREYXRhLT5pbnNldCwgbV9ub25Jbmhlcml0ZWREYXRhLT5ib3hEYXRhLT53aWR0aCgp
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgLy8gT3B0aW1pemUgZm9yIHRoZSBjYXNlIHdoZXJlIGEgb3V0LW9mLWZsb3cgYm94
IGlzIG1vdmluZyBidXQgbm90IGNoYW5naW5nIHNpemUuCisgICAgcmV0dXJuIChtX25vbkluaGVy
aXRlZERhdGEtPnN1cnJvdW5kRGF0YS0+aW5zZXQgIT0gb3RoZXIubV9ub25Jbmhlcml0ZWREYXRh
LT5zdXJyb3VuZERhdGEtPmluc2V0KSAmJiBwb3NpdGlvbkNoYW5nZUlzTW92ZW1lbnRPbmx5KG1f
bm9uSW5oZXJpdGVkRGF0YS0+c3Vycm91bmREYXRhLT5pbnNldCwgb3RoZXIubV9ub25Jbmhlcml0
ZWREYXRhLT5zdXJyb3VuZERhdGEtPmluc2V0LCBtX25vbkluaGVyaXRlZERhdGEtPmJveERhdGEt
PndpZHRoKCkpOwogfQogCiBzdGF0aWMgYm9vbCBtaXNjRGF0YUNoYW5nZVJlcXVpcmVzTGF5ZXJS
ZXBhaW50KGNvbnN0IFN0eWxlTWlzY05vbkluaGVyaXRlZERhdGEmIGZpcnN0LCBjb25zdCBTdHls
ZU1pc2NOb25Jbmhlcml0ZWREYXRhJiBzZWNvbmQsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VD
b250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRp
ZXMpCkBAIC0xNDg5LDggKzE0ODQsOCBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRp
ZmYoY29uc3QgUmVuZGVyU3R5bGUmIG90aGVyLCBPcHRpb25TZXQ8U3R5bGVEaWZmZQogICAgIGlm
IChjaGFuZ2VSZXF1aXJlc0xheW91dChvdGhlciwgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9w
ZXJ0aWVzKSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0OwogCi0gICAg
aWYgKGNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9ubHkob3RoZXIsIGNoYW5nZWRDb250
ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2U6
OkxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHk7CisgICAgaWYgKGNoYW5nZVJlcXVpcmVzT3V0
T2ZGbG93TW92ZW1lbnRMYXlvdXRPbmx5KG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVBy
b3BlcnRpZXMpKQorICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRPdXRPZkZs
b3dNb3ZlbWVudE9ubHk7CiAKICAgICBpZiAoY2hhbmdlUmVxdWlyZXNMYXllclJlcGFpbnQob3Ro
ZXIsIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCiAgICAgICAgIHJldHVybiBT
dHlsZURpZmZlcmVuY2U6OlJlcGFpbnRMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggM2UyZjdjYTA3NTYzLi5mYjU2NzA0NDJlNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0yNTE1
LDcgKzI1MTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjaGFuZ2VBZmZlY3RzVmlzdWFsT3Zl
cmZsb3coY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICBib29sIGNoYW5nZVJlcXVpcmVz
TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykg
Y29uc3Q7Ci0gICAgYm9vbCBjaGFuZ2VSZXF1aXJlc1Bvc2l0aW9uZWRMYXlvdXRPbmx5KGNvbnN0
IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQ
cm9wZXJ0eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CisgICAg
Ym9vbCBjaGFuZ2VSZXF1aXJlc091dE9mRmxvd01vdmVtZW50TGF5b3V0T25seShjb25zdCBSZW5k
ZXJTdHlsZSYsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVy
dHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OwogICAgIGJvb2wg
Y2hhbmdlUmVxdWlyZXNMYXllclJlcGFpbnQoY29uc3QgUmVuZGVyU3R5bGUmLCBPcHRpb25TZXQ8
U3R5bGVEaWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5PiYgY2hhbmdlZENvbnRleHRT
ZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdDsKICAgICBib29sIGNoYW5nZVJlcXVpcmVzUmVwYWlu
dChjb25zdCBSZW5kZXJTdHlsZSYsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vu
c2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0
OwogICAgIGJvb2wgY2hhbmdlUmVxdWlyZXNSZXBhaW50SWZUZXh0KGNvbnN0IFJlbmRlclN0eWxl
JiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eT4mIGNo
YW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAppbmRl
eCAwN2M0N2I4ODgzNTIuLjliYjc4NTAzN2EwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCkBAIC0xMTAxLDkg
KzExMDEsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBTdHlsZURp
ZmZlcmVuY2UgZGlmZikKICAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludDogdHMgPDwg
InJlcGFpbnQiX3M7IGJyZWFrOwogICAgIGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50SWZU
ZXh0OiB0cyA8PCAicmVwYWludCBpZiB0ZXh0Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlm
ZmVyZW5jZTo6UmVwYWludExheWVyOiB0cyA8PCAicmVwYWludCBsYXllciJfczsgYnJlYWs7Ci0g
ICAgY2FzZSBTdHlsZURpZmZlcmVuY2U6OkxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHk6IHRz
IDw8ICJsYXlvdXQgcG9zaXRpb25lZCBtb3ZlbWVudCBvbmx5Il9zOyBicmVhazsKKyAgICBjYXNl
IFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5OiB0cyA8PCAibGF5
b3V0IHBvc2l0aW9uZWQgbW92ZW1lbnQgb25seSJfczsgYnJlYWs7CiAgICAgY2FzZSBTdHlsZURp
ZmZlcmVuY2U6Ok92ZXJmbG93OiB0cyA8PCAib3ZlcmZsb3ciX3M7IGJyZWFrOwotICAgIGNhc2Ug
U3R5bGVEaWZmZXJlbmNlOjpPdmVyZmxvd0FuZFBvc2l0aW9uZWRNb3ZlbWVudDogdHMgPDwgIm92
ZXJmbG93IGFuZCBwb3NpdGlvbmVkIG1vdmVtZW50Il9zOyBicmVhazsKKyAgICBjYXNlIFN0eWxl
RGlmZmVyZW5jZTo6T3ZlcmZsb3dBbmRPdXRPZkZsb3dNb3ZlbWVudDogdHMgPDwgIm92ZXJmbG93
IGFuZCBwb3NpdGlvbmVkIG1vdmVtZW50Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlmZmVy
ZW5jZTo6TGF5b3V0OiB0cyA8PCAibGF5b3V0Il9zOyBicmVhazsKICAgICBjYXNlIFN0eWxlRGlm
ZmVyZW5jZTo6TmV3U3R5bGU6IHRzIDw8ICJuZXcgc3R5bGUiX3M7IGJyZWFrOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmgKaW5kZXggZGI0OGI0N2Y3MTNmLi5kZGE4NjZiNDIwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01
MSw5ICs1MSw5IEBAIGVudW0gY2xhc3MgUHJpbnRDb2xvckFkanVzdCA6IGJvb2wgewogLy8gLSBT
dHlsZURpZmZlcmVuY2U6OlJlcGFpbnQgLSBUaGUgb2JqZWN0IGp1c3QgbmVlZHMgdG8gYmUgcmVw
YWludGVkLgogLy8gLSBTdHlsZURpZmZlcmVuY2U6OlJlcGFpbnRJZlRleHQgLSBUaGUgb2JqZWN0
IG5lZWRzIHRvIGJlIHJlcGFpbnRlZCBpZiBpdCBjb250YWlucyB0ZXh0LgogLy8gLSBTdHlsZURp
ZmZlcmVuY2U6OlJlcGFpbnRMYXllciAtIFRoZSBsYXllciBhbmQgaXRzIGRlc2NlbmRhbnQgbGF5
ZXJzIG5lZWRzIHRvIGJlIHJlcGFpbnRlZC4KLS8vIC0gU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXRQ
b3NpdGlvbmVkTW92ZW1lbnRPbmx5IC0gT25seSB0aGUgcG9zaXRpb24gb2YgdGhpcyBwb3NpdGlv
bmVkIG9iamVjdCBoYXMgYmVlbiB1cGRhdGVkCisvLyAtIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0
T3V0T2ZGbG93TW92ZW1lbnRPbmx5IC0gT25seSB0aGUgcG9zaXRpb24gb2YgdGhpcyBvdXQtb2Yt
ZmxvdyBib3ggaGFzIGJlZW4gdXBkYXRlZAogLy8gLSBTdHlsZURpZmZlcmVuY2U6Ok92ZXJmbG93
IC0gT25seSBvdmVyZmxvdyBuZWVkcyB0byBiZSByZWNvbXB1dGVkCi0vLyAtIFN0eWxlRGlmZmVy
ZW5jZTo6T3ZlcmZsb3dBbmRQb3NpdGlvbmVkTW92ZW1lbnQgLSBCb3RoIHBvc2l0aW9uZWQgbW92
ZW1lbnQgYW5kIG92ZXJmbG93IHVwZGF0ZXMgYXJlIHJlcXVpcmVkLgorLy8gLSBTdHlsZURpZmZl
cmVuY2U6Ok92ZXJmbG93QW5kT3V0T2ZGbG93TW92ZW1lbnQgLSBCb3RoIG91dC1vZi1mbG93IG1v
dmVtZW50IGFuZCBvdmVyZmxvdyB1cGRhdGVzIGFyZSByZXF1aXJlZC4KIC8vIC0gU3R5bGVEaWZm
ZXJlbmNlOjpMYXlvdXQgLSBBIGZ1bGwgbGF5b3V0IGlzIHJlcXVpcmVkLgogZW51bSBjbGFzcyBT
dHlsZURpZmZlcmVuY2UgOiB1aW50OF90IHsKICAgICBFcXVhbCwKQEAgLTYxLDkgKzYxLDkgQEAg
ZW51bSBjbGFzcyBTdHlsZURpZmZlcmVuY2UgOiB1aW50OF90IHsKICAgICBSZXBhaW50LAogICAg
IFJlcGFpbnRJZlRleHQsCiAgICAgUmVwYWludExheWVyLAotICAgIExheW91dFBvc2l0aW9uZWRN
b3ZlbWVudE9ubHksCisgICAgTGF5b3V0T3V0T2ZGbG93TW92ZW1lbnRPbmx5LAogICAgIE92ZXJm
bG93LAotICAgIE92ZXJmbG93QW5kUG9zaXRpb25lZE1vdmVtZW50LAorICAgIE92ZXJmbG93QW5k
T3V0T2ZGbG93TW92ZW1lbnQsCiAgICAgTGF5b3V0LAogICAgIE5ld1N0eWxlCiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>