<?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>231341</bug_id>
          
          <creation_ts>2021-10-06 17:02:38 -0700</creation_ts>
          <short_desc>[LFC][IFC] InlineDisplay::Box should be able to tell if it&apos;s the first or the last box within the associated Layout::Box</short_desc>
          <delta_ts>2021-10-07 08:41:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801430</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-10-06 17:02:38 -0700</bug_when>
    <thetext>this is to help speed up box iterators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801435</commentid>
    <comment_count>1</comment_count>
      <attachid>440457</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-06 17:08:30 -0700</bug_when>
    <thetext>Created attachment 440457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801556</commentid>
    <comment_count>2</comment_count>
      <attachid>440457</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-07 02:52:09 -0700</bug_when>
    <thetext>Comment on attachment 440457
Patch

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

&gt; Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:47
&gt; +    if (inlineBox.isFirstBox() &amp;&amp; inlineBox.isLastBox())
&gt; +        return { InlineDisplay::Box::PositionWithinInlineLevelBox::First, InlineDisplay::Box::PositionWithinInlineLevelBox::Last };
&gt; +    if (inlineBox.isFirstBox())
&gt; +        return { InlineDisplay::Box::PositionWithinInlineLevelBox::First };
&gt; +    if (inlineBox.isLastBox())
&gt; +        return { InlineDisplay::Box::PositionWithinInlineLevelBox::Last };
&gt; +    return { };

I&apos;d do

OptionSet&lt;InlineDisplay::Box::PositionWithinInlineLevelBox&gt; result;
if (inlineBox.isFirstBox())
    result.add(InlineDisplay::Box::PositionWithinInlineLevelBox::First);
if (inlineBox.isLastBox())
    result.add(InlineDisplay::Box::PositionWithinInlineLevelBox::Last);
return result;

&gt; Source/WebCore/layout/formattingContexts/inline/InlineLevelBox.h:147
&gt; +    // These bits are about whether this inline level box is the first/last generated box of the associated Layout::Box
&gt; +    // (e.g. always true for atomic inline level boxes, but inline boxes spanning over multiple lines can produce separate first/last boxes).
&gt; +    bool m_isFirstWithinLayoutBox : 1;
&gt; +    bool m_isLastWithinLayoutBox : 1;

These could move up with other bools and probably don&apos;t need to be bitfields (or all of them should be).

&gt; Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayBox.h:135
&gt; +    bool m_isFirstWithinInlineLevelBox : 1;
&gt; +    bool m_isLastWithinInlineLevelBox : 1;

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801605</commentid>
    <comment_count>3</comment_count>
      <attachid>440503</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-07 08:03:27 -0700</bug_when>
    <thetext>Created attachment 440503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801613</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-07 08:40:48 -0700</bug_when>
    <thetext>Committed r283715 (242641@main): &lt;https://commits.webkit.org/242641@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440503.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801614</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-07 08:41:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/83982733&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440457</attachid>
            <date>2021-10-06 17:08:30 -0700</date>
            <delta_ts>2021-10-07 08:03:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231341-20211006170829.patch</filename>
            <type>text/plain</type>
            <size>17407</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmZWY2YTk5ZjZhYzJh
ODk1N2IwNDEzMzI1NTg5OTM0YTZjNTY4NC4uYTNmNDg3MmQyM2FmYTQ3YTU3NzJiOTc3YWMxNTg0
MTNlYmJhMDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTEwLTA2ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIElubGluZURp
c3BsYXk6OkJveCBzaG91bGQgYmUgYWJsZSB0byB0ZWxsIGlmIGl0J3MgdGhlIGZpcnN0IG9yIHRo
ZSBsYXN0IGJveCB3aXRoaW4gdGhlIGFzc29jaWF0ZWQgTGF5b3V0OjpCb3gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaGVscHMgdGhl
IGl0ZXJhdG9ycyB0byBqdW1wIHJpZ2h0IHRvIHRoZSBmaXJzdC9sYXN0IGRpc3BsYXkgYm94IGlu
c2lkZSBhIGxheW91dCBib3guIFRoaXMgaXMgdXNlZCB3aGVuIGEgY2VydGFpbiBMYXlvdXQ6OkJv
eCAoZS5nLiA8c3Bhbj4pCisgICAgICAgIG92ZXJsYXBzIG11bHRpcGxlIGxpbmVzIHByb2R1Y2lu
ZyBtdWx0aXBsZSBkaXNwbGF5IGJveGVzLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6aXNGaXJzdExhc3RCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmJ1aWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVCb3hlc0FuZFVw
ZGF0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlG
b3JMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lTGV2ZWxCb3g6OmlzRmlyc3RCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6aXNMYXN0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lTGV2ZWxCb3g6OklubGluZUxldmVsQm94KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxCb3g6OnNldElzRmlyc3RCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6c2V0SXNMYXN0Qm94KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6bV9pc0xhc3RXaXRoaW5MYXlvdXRCb3gpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KToKKyAgICAgICAg
KiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6TGluZUJveCk6CisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCb3hCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1
aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWduSW5saW5lTGV2ZWxCb3hlcyk6CisgICAgICAgICogbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OkJveCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OmlzRmlyc3RCb3ggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94Ojppc0xhc3RCb3ggY29uc3QpOgorCiAyMDIxLTEw
LTA2ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGNvbnRh
aW5lckZvckVsZW1lbnQgbG9naWMgbW9yZSBleHBsaWNpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggNmI0Zjg4OTE1MzM0
ZDE2YTYyMDMzMGQzY2ZmM2UwY2EzMmVjOTg4Zi4uMmNkZTVlODAxZmI0YjU1ZjUxNDZhYWRmYjIw
YmY0YjJmOGU1YzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0zNiw2ICszNiwxNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKK3N0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PElubGlu
ZURpc3BsYXk6OkJveDo6UG9zaXRpb25XaXRoaW5JbmxpbmVMZXZlbEJveD4gaXNGaXJzdExhc3RC
b3goY29uc3QgSW5saW5lTGV2ZWxCb3gmIGlubGluZUJveCkKK3sKKyAgICBpZiAoaW5saW5lQm94
LmlzRmlyc3RCb3goKSAmJiBpbmxpbmVCb3guaXNMYXN0Qm94KCkpCisgICAgICAgIHJldHVybiB7
IElubGluZURpc3BsYXk6OkJveDo6UG9zaXRpb25XaXRoaW5JbmxpbmVMZXZlbEJveDo6Rmlyc3Qs
IElubGluZURpc3BsYXk6OkJveDo6UG9zaXRpb25XaXRoaW5JbmxpbmVMZXZlbEJveDo6TGFzdCB9
OworICAgIGlmIChpbmxpbmVCb3guaXNGaXJzdEJveCgpKQorICAgICAgICByZXR1cm4geyBJbmxp
bmVEaXNwbGF5OjpCb3g6OlBvc2l0aW9uV2l0aGluSW5saW5lTGV2ZWxCb3g6OkZpcnN0IH07Cisg
ICAgaWYgKGlubGluZUJveC5pc0xhc3RCb3goKSkKKyAgICAgICAgcmV0dXJuIHsgSW5saW5lRGlz
cGxheTo6Qm94OjpQb3NpdGlvbldpdGhpbklubGluZUxldmVsQm94OjpMYXN0IH07CisgICAgcmV0
dXJuIHsgfTsKK30KKwogSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpJbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3Qs
IElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKQogICAgIDogbV9mb3JtYXR0
aW5nQ29udGV4dFJvb3QoZm9ybWF0dGluZ0NvbnRleHRSb290KQogICAgICwgbV9mb3JtYXR0aW5n
U3RhdGUoZm9ybWF0dGluZ1N0YXRlKQpAQCAtNTAsNyArNjEsNyBAQCBEaXNwbGF5Qm94ZXMgSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpidWlsZChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNv
bnRlbnQmCiAgICAgLy8gRXZlcnkgbGluZSBzdGFydHMgd2l0aCBhIHJvb3QgYm94LCBldmVuIHRo
ZSBlbXB0eSBvbmVzLgogICAgIGF1dG8gcm9vdElubGluZUJveFJlY3QgPSBsaW5lQm94LmxvZ2lj
YWxSZWN0Rm9yUm9vdElubGluZUJveCgpOwogICAgIHJvb3RJbmxpbmVCb3hSZWN0Lm1vdmVCeShs
aW5lQm94TG9naWNhbFRvcExlZnQpOwotICAgIGJveGVzLmFwcGVuZCh7IGxpbmVJbmRleCwgSW5s
aW5lRGlzcGxheTo6Qm94OjpUeXBlOjpSb290SW5saW5lQm94LCByb290KCksICFsaW5lSW5kZXgg
PyByb290KCkuZmlyc3RMaW5lU3R5bGUoKSA6IHJvb3QoKS5zdHlsZSgpLCByb290SW5saW5lQm94
UmVjdCwgcm9vdElubGluZUJveFJlY3QsIHsgfSwgeyB9LCAgbGluZUJveC5yb290SW5saW5lQm94
KCkuaGFzQ29udGVudCgpfSk7CisgICAgYm94ZXMuYXBwZW5kKHsgbGluZUluZGV4LCBJbmxpbmVE
aXNwbGF5OjpCb3g6OlR5cGU6OlJvb3RJbmxpbmVCb3gsIHJvb3QoKSwgIWxpbmVJbmRleCA/IHJv
b3QoKS5maXJzdExpbmVTdHlsZSgpIDogcm9vdCgpLnN0eWxlKCksIHJvb3RJbmxpbmVCb3hSZWN0
LCByb290SW5saW5lQm94UmVjdCwgeyB9LCB7IH0sIGxpbmVCb3gucm9vdElubGluZUJveCgpLmhh
c0NvbnRlbnQoKSB9KTsKIAogICAgIGNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5l
U3Bhbm5pbmdJbmxpbmVCb3hlcyhsaW5lQm94LCBsaW5lQm94TG9naWNhbFRvcExlZnQsIGxpbmVJ
bmRleCwgYm94ZXMpOwogICAgIGNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29u
dGVudChsaW5lQ29udGVudCwgbGluZUJveCwgbGluZUJveExvZ2ljYWxUb3BMZWZ0LCBsaW5lSW5k
ZXgsIGJveGVzKTsKQEAgLTE2Myw3ICsxNzQsMTEgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb24K
ICAgICAgICAgICAgIGlmIChsaW5lQm94Lmhhc0NvbnRlbnQoKSkgewogICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJdCdzIGV4cGVjdGVkIHRvIG5vdCBoYXZlIGFueSBib3hlcyBvbiBlbXB0eSBs
aW5lcy4gV2Ugc2hvdWxkIHJlY29uc2lkZXIgdGhpcy4KICAgICAgICAgICAgICAgICBtX2lubGlu
ZUJveEluZGV4TWFwLmFkZCgmbGF5b3V0Qm94LCBib3hlcy5zaXplKCkpOwotICAgICAgICAgICAg
ICAgIGJveGVzLmFwcGVuZCh7IGxpbmVJbmRleCwgSW5saW5lRGlzcGxheTo6Qm94OjpUeXBlOjpO
b25Sb290SW5saW5lQm94LCBsYXlvdXRCb3gsIHN0eWxlLCBpbmxpbmVCb3hCb3JkZXJCb3gsIGlu
bGluZUJveEJvcmRlckJveCwgeyB9LCB7IH0sIGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlv
dXRCb3gobGF5b3V0Qm94KS5oYXNDb250ZW50KCkgfSk7CisKKyAgICAgICAgICAgICAgICBhdXRv
JiBpbmxpbmVCb3ggPSBsaW5lQm94LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJv
eCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlubGluZUJveC5pc0lubGluZUJveCgpKTsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQoaW5saW5lQm94LmlzRmlyc3RCb3goKSk7CisgICAgICAgICAg
ICAgICAgYm94ZXMuYXBwZW5kKHsgbGluZUluZGV4LCBJbmxpbmVEaXNwbGF5OjpCb3g6OlR5cGU6
Ok5vblJvb3RJbmxpbmVCb3gsIGxheW91dEJveCwgc3R5bGUsIGlubGluZUJveEJvcmRlckJveCwg
aW5saW5lQm94Qm9yZGVyQm94LCB7IH0sIHsgfSwgaW5saW5lQm94Lmhhc0NvbnRlbnQoKSwgaXNG
aXJzdExhc3RCb3goaW5saW5lQm94KSB9KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
YXV0byBpbmxpbmVCb3hTaXplID0gTGF5b3V0U2l6ZSB7IExheW91dFVuaXQ6OmZyb21GbG9hdENl
aWwoaW5saW5lQm94Qm9yZGVyQm94LndpZHRoKCkpLCBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWls
KGlubGluZUJveEJvcmRlckJveC5oZWlnaHQoKSkgfTsKQEAgLTE5NSw2ICsyMTAsOCBAQCB2b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3JlYXRlQm94ZXNBbmRVcGRhdGVHZW9tZXRy
eUZvckxpbmVTcGFubmluZ0lubAogICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBsaW5l
Qm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCkpIHsKICAgICAgICAgaWYgKCFpbmxpbmVMZXZl
bEJveC5pc0xpbmVTcGFubmluZ0lubGluZUJveCgpKQogICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIEFTU0VSVChpbmxpbmVMZXZlbEJveC5pc0lubGluZUJveCgpKTsKKwogICAgICAgICBh
dXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKTsKICAgICAgICAgYXV0
byYgc3R5bGUgPSBbJl0gKCkgLT4gY29uc3QgUmVuZGVyU3R5bGUmIHsKICAgICAgICAgICAgIHJl
dHVybiAhbGluZUluZGV4ID8gbGF5b3V0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiBsYXlvdXRCb3gu
c3R5bGUoKTsKQEAgLTIwNSw3ICsyMjIsOSBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6Y3JlYXRlQm94ZXNBbmRVcGRhdGVHZW9tZXRyeUZvckxpbmVTcGFubmluZ0lubAogICAg
ICAgICBpbmxpbmVCb3hCb3JkZXJCb3gubW92ZUJ5KGxpbmVCb3hMb2dpY2FsVG9wTGVmdCk7CiAK
ICAgICAgICAgbV9pbmxpbmVCb3hJbmRleE1hcC5hZGQoJmxheW91dEJveCwgYm94ZXMuc2l6ZSgp
KTsKLSAgICAgICAgYm94ZXMuYXBwZW5kKHsgbGluZUluZGV4LCBJbmxpbmVEaXNwbGF5OjpCb3g6
OlR5cGU6Ok5vblJvb3RJbmxpbmVCb3gsIGxheW91dEJveCwgc3R5bGUsIGlubGluZUJveEJvcmRl
ckJveCwgaW5saW5lQm94Qm9yZGVyQm94LCB7IH0sIHsgfSwgaW5saW5lTGV2ZWxCb3guaGFzQ29u
dGVudCgpIH0pOworCisgICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3guaXNGaXJzdEJveCgp
KTsKKyAgICAgICAgYm94ZXMuYXBwZW5kKHsgbGluZUluZGV4LCBJbmxpbmVEaXNwbGF5OjpCb3g6
OlR5cGU6Ok5vblJvb3RJbmxpbmVCb3gsIGxheW91dEJveCwgc3R5bGUsIGlubGluZUJveEJvcmRl
ckJveCwgaW5saW5lQm94Qm9yZGVyQm94LCB7IH0sIHsgfSwgaW5saW5lTGV2ZWxCb3guaGFzQ29u
dGVudCgpLCBpc0ZpcnN0TGFzdEJveChpbmxpbmVMZXZlbEJveCkgfSk7CiAKICAgICAgICAgYXV0
byBpbmxpbmVCb3hTaXplID0gTGF5b3V0U2l6ZSB7IExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwo
aW5saW5lQm94Qm9yZGVyQm94LndpZHRoKCkpLCBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGlu
bGluZUJveEJvcmRlckJveC5oZWlnaHQoKSkgfTsKICAgICAgICAgYXV0byBsb2dpY2FsUmVjdCA9
IFJlY3QgeyBMYXlvdXRQb2ludCB7IGlubGluZUJveEJvcmRlckJveC50b3BMZWZ0KCkgfSwgaW5s
aW5lQm94U2l6ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVsQm94LmgKaW5kZXggMmVhOWE1
ZWE1MTg2ZjMyM2I4ZTY1NzA0ZThiZWY4YTA1N2MyYjc1Mi4uNmFhYjM3ZDg0ZTZiYzcyMzViMzE4
MDVlOWY0MmUzNThiMmI4YTVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJveC5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW5saW5lUmVjdC5oIgogI2luY2x1ZGUgIkxheW91
dEJveC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAgLTkxLDkg
KzkyLDE2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXlvdXRCb3g7IH0KIAotICAgIElubGluZUxldmVsQm94KGNvbnN0IEJveCYsIGNv
bnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5
b3V0U2l6ZSwgVHlwZSk7CisgICAgYm9vbCBpc0ZpcnN0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9p
c0ZpcnN0V2l0aGluTGF5b3V0Qm94OyB9CisgICAgYm9vbCBpc0xhc3RCb3goKSBjb25zdCB7IHJl
dHVybiBtX2lzTGFzdFdpdGhpbkxheW91dEJveDsgfQogCiBwcml2YXRlOgorICAgIGVudW0gY2xh
c3MgUG9zaXRpb25XaXRoaW5MYXlvdXRCb3ggeworICAgICAgICBGaXJzdCA9IDEgPDwgMCwKKyAg
ICAgICAgTGFzdCAgPSAxIDw8IDEKKyAgICB9OworICAgIElubGluZUxldmVsQm94KGNvbnN0IEJv
eCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5s
aW5lTGF5b3V0U2l6ZSwgVHlwZSwgT3B0aW9uU2V0PFBvc2l0aW9uV2l0aGluTGF5b3V0Qm94PiA9
IHsgUG9zaXRpb25XaXRoaW5MYXlvdXRCb3g6OkZpcnN0LCBQb3NpdGlvbldpdGhpbkxheW91dEJv
eDo6TGFzdCB9KTsKKwogICAgIGZyaWVuZCBjbGFzcyBMaW5lQm94OwogICAgIGZyaWVuZCBjbGFz
cyBMaW5lQm94QnVpbGRlcjsKICAgICBmcmllbmQgY2xhc3MgTGluZUJveFZlcnRpY2FsQWxpZ25l
cjsKQEAgLTExMyw2ICsxMjEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0RGVzY2VudChJbmxp
bmVMYXlvdXRVbml0IGRlc2NlbnQpIHsgbV9kZXNjZW50ID0gcm91bmRUb0ludChkZXNjZW50KTsg
fQogICAgIHZvaWQgc2V0TGF5b3V0Qm91bmRzKGNvbnN0IExheW91dEJvdW5kcyYgbGF5b3V0Qm91
bmRzKSB7IG1fbGF5b3V0Qm91bmRzID0geyBJbmxpbmVMYXlvdXRVbml0KHJvdW5kVG9JbnQobGF5
b3V0Qm91bmRzLmFzY2VudCkpLCBJbmxpbmVMYXlvdXRVbml0KHJvdW5kVG9JbnQobGF5b3V0Qm91
bmRzLmRlc2NlbnQpKSB9OyB9CiAKKyAgICB2b2lkIHNldElzRmlyc3RCb3goKSB7IG1faXNGaXJz
dFdpdGhpbkxheW91dEJveCA9IHRydWU7IH0KKyAgICB2b2lkIHNldElzTGFzdEJveCgpIHsgbV9p
c0xhc3RXaXRoaW5MYXlvdXRCb3ggPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgQ2hlY2tlZFJl
Zjxjb25zdCBCb3g+IG1fbGF5b3V0Qm94OwogICAgIC8vIFRoaXMgaXMgdGhlIGNvbWJpbmF0aW9u
IG9mIG1hcmdpbiBhbmQgYm9yZGVyIGJveGVzLiBJbmxpbmUgbGV2ZWwgYm94ZXMgYXJlIHZlcnRp
Y2FsbHkgYWxpZ25lZCB1c2luZyB0aGVpciBtYXJnaW4gYm94ZXMuCkBAIC0xMzAsMTMgKzE0MSwx
OSBAQCBwcml2YXRlOgogICAgICAgICBWZXJ0aWNhbEFsaWdubWVudCB2ZXJ0aWNhbEFsaWdubWVu
dCB7IH07CiAgICAgfTsKICAgICBTdHlsZSBtX3N0eWxlOworICAgIC8vIFRoZXNlIGJpdHMgYXJl
IGFib3V0IHdoZXRoZXIgdGhpcyBpbmxpbmUgbGV2ZWwgYm94IGlzIHRoZSBmaXJzdC9sYXN0IGdl
bmVyYXRlZCBib3ggb2YgdGhlIGFzc29jaWF0ZWQgTGF5b3V0OjpCb3gKKyAgICAvLyAoZS5nLiBh
bHdheXMgdHJ1ZSBmb3IgYXRvbWljIGlubGluZSBsZXZlbCBib3hlcywgYnV0IGlubGluZSBib3hl
cyBzcGFubmluZyBvdmVyIG11bHRpcGxlIGxpbmVzIGNhbiBwcm9kdWNlIHNlcGFyYXRlIGZpcnN0
L2xhc3QgYm94ZXMpLgorICAgIGJvb2wgbV9pc0ZpcnN0V2l0aGluTGF5b3V0Qm94IDogMTsKKyAg
ICBib29sIG1faXNMYXN0V2l0aGluTGF5b3V0Qm94IDogMTsKIH07CiAKLWlubGluZSBJbmxpbmVM
ZXZlbEJveDo6SW5saW5lTGV2ZWxCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0
U2l6ZSBsb2dpY2FsU2l6ZSwgVHlwZSB0eXBlKQoraW5saW5lIElubGluZUxldmVsQm94OjpJbmxp
bmVMZXZlbEJveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRTaXplIGxvZ2ljYWxT
aXplLCBUeXBlIHR5cGUsIE9wdGlvblNldDxQb3NpdGlvbldpdGhpbkxheW91dEJveD4gcG9zaXRp
b25XaXRoaW5MYXlvdXRCb3gpCiAgICAgOiBtX2xheW91dEJveChsYXlvdXRCb3gpCiAgICAgLCBt
X2xvZ2ljYWxSZWN0KHsgfSwgbG9naWNhbExlZnQsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2lj
YWxTaXplLmhlaWdodCgpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3N0eWxlKHsgc3R5
bGUuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9udCgpLmZvbnRNZXRyaWNzKCksIHN0eWxlLmxpbmVI
ZWlnaHQoKSwgSW5saW5lTGF5b3V0VW5pdChzdHlsZS5mb250Q2FzY2FkZSgpLmZvbnREZXNjcmlw
dGlvbigpLmNvbXB1dGVkUGl4ZWxTaXplKCkpLCB7IH0gfSkKKyAgICAsIG1faXNGaXJzdFdpdGhp
bkxheW91dEJveChwb3NpdGlvbldpdGhpbkxheW91dEJveC5jb250YWlucyhQb3NpdGlvbldpdGhp
bkxheW91dEJveDo6Rmlyc3QpKQorICAgICwgbV9pc0xhc3RXaXRoaW5MYXlvdXRCb3gocG9zaXRp
b25XaXRoaW5MYXlvdXRCb3guY29udGFpbnMoUG9zaXRpb25XaXRoaW5MYXlvdXRCb3g6Okxhc3Qp
KQogewogICAgIG1fc3R5bGUudmVydGljYWxBbGlnbm1lbnQudHlwZSA9IHN0eWxlLnZlcnRpY2Fs
QWxpZ24oKTsKICAgICBpZiAobV9zdHlsZS52ZXJ0aWNhbEFsaWdubWVudC50eXBlID09IFZlcnRp
Y2FsQWxpZ246Okxlbmd0aCkKQEAgLTE5NCw3ICsyMTEsNyBAQCBpbmxpbmUgSW5saW5lTGV2ZWxC
b3ggSW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUF0b21pY0lubGluZUxldmVsQm94KGNvbnN0IEJveCYg
bGF5bwogCiBpbmxpbmUgSW5saW5lTGV2ZWxCb3ggSW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUlubGlu
ZUJveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwg
TGluZVNwYW5uaW5nSW5saW5lQm94IGlzTGluZVNwYW5uaW5nKQogewotICAgIHJldHVybiBJbmxp
bmVMZXZlbEJveCB7IGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRT
aXplIHsgbG9naWNhbFdpZHRoLCB7IH0gfSwgaXNMaW5lU3Bhbm5pbmcgPT0gTGluZVNwYW5uaW5n
SW5saW5lQm94OjpZZXMgPyBUeXBlOjpMaW5lU3Bhbm5pbmdJbmxpbmVCb3ggOiBUeXBlOjpJbmxp
bmVCb3ggfTsKKyAgICByZXR1cm4gSW5saW5lTGV2ZWxCb3ggeyBsYXlvdXRCb3gsIHN0eWxlLCBs
b2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSB7IGxvZ2ljYWxXaWR0aCwgeyB9IH0sIGlzTGlu
ZVNwYW5uaW5nID09IExpbmVTcGFubmluZ0lubGluZUJveDo6WWVzID8gVHlwZTo6TGluZVNwYW5u
aW5nSW5saW5lQm94IDogVHlwZTo6SW5saW5lQm94LCB7IH0gfTsKIH0KIAogaW5saW5lIElubGlu
ZUxldmVsQm94IElubGluZUxldmVsQm94OjpjcmVhdGVMaW5lQnJlYWtCb3goY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsTGVmdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5jcHAKaW5kZXggMzA3MzVhNTQ4
Mzc5NTUyZWEyMTc5OTNkYjlkZGFiMzNiYWRhNjQzZC4uZjU0NTEzMzQ1YTYzNmEzNjZhZTk1ODNl
ZWRkYzUyMzYwMzU3NTVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAK
IExpbmVCb3g6OkxpbmVCb3goY29uc3QgQm94JiByb290TGF5b3V0Qm94LCBJbmxpbmVMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFdp
ZHRoLCBzaXplX3QgbGluZUluZGV4LCBzaXplX3Qgbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENv
dW50KQotICAgIDogbV9yb290SW5saW5lQm94KHJvb3RMYXlvdXRCb3gsICFsaW5lSW5kZXggPyBy
b290TGF5b3V0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiByb290TGF5b3V0Qm94LnN0eWxlKCksIGNv
bnRlbnRMb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSB7IGNvbnRlbnRMb2dpY2FsV2lkdGgs
IHsgfSB9LCBJbmxpbmVMZXZlbEJveDo6VHlwZTo6Um9vdElubGluZUJveCkKKyAgICA6IG1fcm9v
dElubGluZUJveCh7IHJvb3RMYXlvdXRCb3gsICFsaW5lSW5kZXggPyByb290TGF5b3V0Qm94LmZp
cnN0TGluZVN0eWxlKCkgOiByb290TGF5b3V0Qm94LnN0eWxlKCksIGNvbnRlbnRMb2dpY2FsTGVm
dCwgSW5saW5lTGF5b3V0U2l6ZSB7IGNvbnRlbnRMb2dpY2FsV2lkdGgsIHsgfSB9LCBJbmxpbmVM
ZXZlbEJveDo6VHlwZTo6Um9vdElubGluZUJveCB9KQogewogICAgIG1fbm9uUm9vdElubGluZUxl
dmVsQm94TGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG5vblNwYW5uaW5nSW5saW5lTGV2ZWxC
b3hDb3VudCk7CiAgICAgbV9ub25Sb290SW5saW5lTGV2ZWxCb3hNYXAucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJv
eEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCmluZGV4IDg3MzcxZThmM2FjYWVkOGM4YjRl
ODdmN2QxOGFkZWY1NWFiZGJlZDguLmQ0NWFiNzA3NjQwMzhmYjQxNmM4OGExZjA2OGU3ZDNjMTJi
NjI3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAK
QEAgLTM1MCw2ICszNTAsNyBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25z
dHJ1Y3RBbmRBbGlnbklubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAgICAgICAg
YXV0byBpbml0aWFsTG9naWNhbFdpZHRoID0gcm9vdElubGluZUJveC5sb2dpY2FsV2lkdGgoKSAt
IChydW4ubG9naWNhbExlZnQoKSArIG1hcmdpblN0YXJ0KTsKICAgICAgICAgICAgIEFTU0VSVChp
bml0aWFsTG9naWNhbFdpZHRoID49IDApOwogICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJ
bmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxM
ZWZ0ICsgbWFyZ2luU3RhcnQsIGluaXRpYWxMb2dpY2FsV2lkdGgpOworICAgICAgICAgICAgaW5s
aW5lQm94LnNldElzRmlyc3RCb3goKTsKICAgICAgICAgICAgIHNldEluaXRpYWxWZXJ0aWNhbEdl
b21ldHJ5Rm9ySW5saW5lQm94KGlubGluZUJveCk7CiAgICAgICAgICAgICB1cGRhdGVDYW5Vc2VT
aW1wbGlmaWVkQWxpZ25tZW50KGlubGluZUJveCk7CiAgICAgICAgICAgICBsaW5lQm94LmFkZElu
bGluZUxldmVsQm94KFdURk1vdmUoaW5saW5lQm94KSk7CkBAIC0zNjgsNiArMzY5LDcgQEAgSW5s
aW5lTGF5b3V0VW5pdCBMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZl
bEJveGVzKExpbmVCb3gmIGxpbmUKICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNvbnRlbnQgcHVs
bHMgdGhlIDwvc3Bhbj4gdG8gdGhlIGxvZ2ljYWwgbGVmdCBkaXJlY3Rpb24gKGUuZy4gbmVnYXRp
dmUgbGV0dGVyIHNwYWNlKQogICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGRvbid0IGVuZCB1
cCB3aXRoIG5lZ2F0aXZlIGxvZ2ljYWwgd2lkdGggb24gdGhlIGlubGluZSBib3guCiAgICAgICAg
ICAgICBpbmxpbmVCb3guc2V0TG9naWNhbFdpZHRoKHN0ZDo6bWF4KDAuZiwgaW5saW5lQm94TG9n
aWNhbFJpZ2h0IC0gaW5saW5lQm94LmxvZ2ljYWxMZWZ0KCkpKTsKKyAgICAgICAgICAgIGlubGlu
ZUJveC5zZXRJc0xhc3RCb3goKTsKICAgICAgICAgICAgIHVwZGF0ZUNhblVzZVNpbXBsaWZpZWRB
bGlnbm1lbnQoaW5saW5lQm94KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCmluZGV4IGZj
Y2U1ODZiMWM1OWM3N2ViYjkzODNlZWU1ZTBjZmZlMGRjODhkZWYuLmYwYTQyZmNiOTViMDZiMWI1
MjYxMGRiNTQ5OWUwNDZlNmJkODRlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3Bs
YXkvSW5saW5lRGlzcGxheUJveC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSW5saW5l
UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgor
I2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIElubGluZURpc3BsYXkgewpAQCAtNjcsNyArNjgsMTEgQEAgc3RydWN0IEJveCB7CiAgICAg
ICAgIEdlbmVyaWNJbmxpbmVMZXZlbEJveAogICAgIH07CiAgICAgc3RydWN0IEV4cGFuc2lvbjsK
LSAgICBCb3goc2l6ZV90IGxpbmVJbmRleCwgVHlwZSwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYsIGNvbnN0IExheW91dDo6
SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiA9
IHN0ZDo6bnVsbG9wdCwgYm9vbCBoYXNDb250ZW50ID0gdHJ1ZSk7CisgICAgZW51bSBjbGFzcyBQ
b3NpdGlvbldpdGhpbklubGluZUxldmVsQm94IHsKKyAgICAgICAgRmlyc3QgPSAxIDw8IDAsCisg
ICAgICAgIExhc3QgID0gMSA8PCAxCisgICAgfTsKKyAgICBCb3goc2l6ZV90IGxpbmVJbmRleCwg
VHlwZSwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IExheW91
dDo6SW5saW5lUmVjdCYsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4
cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiA9IHN0ZDo6bnVsbG9wdCwgYm9vbCBoYXNDb250
ZW50ID0gdHJ1ZSwgT3B0aW9uU2V0PFBvc2l0aW9uV2l0aGluSW5saW5lTGV2ZWxCb3g+ID0geyBQ
b3NpdGlvbldpdGhpbklubGluZUxldmVsQm94OjpGaXJzdCwgUG9zaXRpb25XaXRoaW5JbmxpbmVM
ZXZlbEJveDo6TGFzdCB9KTsKIAogICAgIGJvb2wgaXNUZXh0KCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OlRleHQ7IH0KICAgICBib29sIGlzU29mdExpbmVCcmVhaygpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpTb2Z0TGluZUJyZWFrOyB9CkBAIC0xMTEsNiArMTE2LDEw
IEBAIHN0cnVjdCBCb3ggewogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3R5bGU7IH0KIAogICAgIHNpemVfdCBsaW5lSW5kZXgoKSBjb25zdCB7IHJldHVy
biBtX2xpbmVJbmRleDsgfQorICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyB0ZWxsIHlvdSB3aGV0aGVy
IHRoaXMgZGlzcGxheSBib3ggaXMgdGhlIGZpcnN0L2xhc3QgZm9yIHRoZSBhc3NvY2lhdGVkIGlu
bGluZSBsZXZlbCBib3ggKExheW91dDo6Qm94KSBhbmQgbm90IHdoZXRoZXIgaXQncyB0aGUgZmly
c3QvbGFzdCBib3ggb24gdGhlIGxpbmUuCisgICAgLy8gKGUuZy4gYWx3YXlzIHRydWUgZm9yIGF0
b21pYyBib3hlcywgYnV0IGlubGluZSBib3hlcyBzcGFubmluZyBvdmVyIG11bHRpcGxlIGxpbmVz
IGNhbiBwcm9kdWNlIGluZGl2aWR1YWwgZmlyc3QvbGFzdCBib3hlcykuCisgICAgYm9vbCBpc0Zp
cnN0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZpcnN0V2l0aGluSW5saW5lTGV2ZWxCb3g7IH0K
KyAgICBib29sIGlzTGFzdEJveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0V2l0aGluSW5saW5l
TGV2ZWxCb3g7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXggeyAw
IH07CkBAIC0xMjIsOSArMTMxLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0NvbnRlbnQg
eyB0cnVlIH07CiAgICAgRXhwYW5zaW9uIG1fZXhwYW5zaW9uOwogICAgIHN0ZDo6b3B0aW9uYWw8
VGV4dD4gbV90ZXh0OworICAgIGJvb2wgbV9pc0ZpcnN0V2l0aGluSW5saW5lTGV2ZWxCb3ggOiAx
OworICAgIGJvb2wgbV9pc0xhc3RXaXRoaW5JbmxpbmVMZXZlbEJveCA6IDE7CiB9OwogCi1pbmxp
bmUgQm94OjpCb3goc2l6ZV90IGxpbmVJbmRleCwgVHlwZSB0eXBlLCBjb25zdCBMYXlvdXQ6OkJv
eCYgbGF5b3V0Qm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IExheW91dDo6SW5s
aW5lUmVjdCYgbG9naWNhbFJlY3QsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZs
b3csIEV4cGFuc2lvbiBleHBhbnNpb24sIHN0ZDo6b3B0aW9uYWw8VGV4dD4gdGV4dCwgYm9vbCBo
YXNDb250ZW50KQoraW5saW5lIEJveDo6Qm94KHNpemVfdCBsaW5lSW5kZXgsIFR5cGUgdHlwZSwg
Y29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBj
b25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGxvZ2ljYWxSZWN0LCBjb25zdCBMYXlvdXQ6OklubGlu
ZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBzdGQ6Om9wdGlvbmFsPFRl
eHQ+IHRleHQsIGJvb2wgaGFzQ29udGVudCwgT3B0aW9uU2V0PFBvc2l0aW9uV2l0aGluSW5saW5l
TGV2ZWxCb3g+IHBvc2l0aW9uV2l0aGluSW5saW5lTGV2ZWxCb3gpCiAgICAgOiBtX2xpbmVJbmRl
eChsaW5lSW5kZXgpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fbGF5b3V0Qm94KGxheW91
dEJveCkKQEAgLTEzNCw2ICsxNDUsOCBAQCBpbmxpbmUgQm94OjpCb3goc2l6ZV90IGxpbmVJbmRl
eCwgVHlwZSB0eXBlLCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdAogICAgICwg
bV9oYXNDb250ZW50KGhhc0NvbnRlbnQpCiAgICAgLCBtX2V4cGFuc2lvbihleHBhbnNpb24pCiAg
ICAgLCBtX3RleHQodGV4dCkKKyAgICAsIG1faXNGaXJzdFdpdGhpbklubGluZUxldmVsQm94KHBv
c2l0aW9uV2l0aGluSW5saW5lTGV2ZWxCb3guY29udGFpbnMoUG9zaXRpb25XaXRoaW5JbmxpbmVM
ZXZlbEJveDo6Rmlyc3QpKQorICAgICwgbV9pc0xhc3RXaXRoaW5JbmxpbmVMZXZlbEJveChwb3Np
dGlvbldpdGhpbklubGluZUxldmVsQm94LmNvbnRhaW5zKFBvc2l0aW9uV2l0aGluSW5saW5lTGV2
ZWxCb3g6Okxhc3QpKQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440503</attachid>
            <date>2021-10-07 08:03:27 -0700</date>
            <delta_ts>2021-10-07 08:40:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231341-20211007080326.patch</filename>
            <type>text/plain</type>
            <size>17507</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3NzY1MzZjYzk0Yzcz
NWU5MDA4ZDMxZTQyMDAxNzBmZTBhMjYzZS4uMjNjZjdhZjJlOWU2OTBjZTBlYjc4ZTFjZmIxOWZl
OWFhZjQ1ZDRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTEwLTA3ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIElubGluZURp
c3BsYXk6OkJveCBzaG91bGQgYmUgYWJsZSB0byB0ZWxsIGlmIGl0J3MgdGhlIGZpcnN0IG9yIHRo
ZSBsYXN0IGJveCB3aXRoaW4gdGhlIGFzc29jaWF0ZWQgTGF5b3V0OjpCb3gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaGVscHMgdGhl
IGl0ZXJhdG9ycyB0byBqdW1wIHJpZ2h0IHRvIHRoZSBmaXJzdC9sYXN0IGRpc3BsYXkgYm94IGlu
c2lkZSBhIGxheW91dCBib3guIFRoaXMgaXMgdXNlZCB3aGVuIGEgY2VydGFpbiBMYXlvdXQ6OkJv
eCAoZS5nLiA8c3Bhbj4pCisgICAgICAgIG92ZXJsYXBzIG11bHRpcGxlIGxpbmVzIHByb2R1Y2lu
ZyBtdWx0aXBsZSBkaXNwbGF5IGJveGVzLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6aXNGaXJzdExhc3RCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmJ1aWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVCb3hlc0FuZFVw
ZGF0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlG
b3JMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lTGV2ZWxCb3g6OmlzRmlyc3RCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6aXNMYXN0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lTGV2ZWxCb3g6OklubGluZUxldmVsQm94KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxCb3g6OnNldElzRmlyc3RCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6c2V0SXNMYXN0Qm94KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6bV9pc0xhc3RXaXRoaW5MYXlvdXRCb3gpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KToKKyAgICAgICAg
KiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6TGluZUJveCk6CisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCb3hCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1
aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWduSW5saW5lTGV2ZWxCb3hlcyk6CisgICAgICAgICogbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OkJveCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OmlzRmlyc3RCb3ggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94Ojppc0xhc3RCb3ggY29uc3QpOgorCiAyMDIxLTEw
LTA3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChJRkMgc2VsZWN0aW9ucyk6IE92ZXJsYXBwaW5nIHNlbGVjdGlvbiByZWN0YW5nbGVzIHdo
ZW4gc2VsZWN0aW5nIHByZWZvcm1hdHRlZCB0ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCAwYjVmNzIzZGMzZGZmYmQy
M2I4MzQxZjNmMTNmZmEzYzJjMWFiY2Q3Li5iY2UzZDMyODVkZmMyMmNkODYxMmZjODllNDliNzgz
Mjc3NTliNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZURpc3BsYXlD
b250ZW50QnVpbGRlci5jcHAKQEAgLTM2LDYgKzM2LDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAorc3RhdGljIGlubGluZSBPcHRpb25TZXQ8SW5saW5lRGlz
cGxheTo6Qm94OjpQb3NpdGlvbldpdGhpbklubGluZUxldmVsQm94PiBpc0ZpcnN0TGFzdEJveChj
b25zdCBJbmxpbmVMZXZlbEJveCYgaW5saW5lQm94KQoreworICAgIGF1dG8gcG9zaXRpb25XaXRo
aW5JbmxpbmVMZXZlbEJveCA9IE9wdGlvblNldDxJbmxpbmVEaXNwbGF5OjpCb3g6OlBvc2l0aW9u
V2l0aGluSW5saW5lTGV2ZWxCb3g+IHsgfTsKKyAgICBpZiAoaW5saW5lQm94LmlzRmlyc3RCb3go
KSkKKyAgICAgICAgcG9zaXRpb25XaXRoaW5JbmxpbmVMZXZlbEJveC5hZGQoSW5saW5lRGlzcGxh
eTo6Qm94OjpQb3NpdGlvbldpdGhpbklubGluZUxldmVsQm94OjpGaXJzdCk7CisgICAgaWYgKGlu
bGluZUJveC5pc0xhc3RCb3goKSkKKyAgICAgICAgcG9zaXRpb25XaXRoaW5JbmxpbmVMZXZlbEJv
eC5hZGQoSW5saW5lRGlzcGxheTo6Qm94OjpQb3NpdGlvbldpdGhpbklubGluZUxldmVsQm94OjpM
YXN0KTsKKyAgICByZXR1cm4gcG9zaXRpb25XaXRoaW5JbmxpbmVMZXZlbEJveDsKK30KKwogSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIoY29u
c3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIElubGluZUZvcm1hdHRpbmdT
dGF0ZSYgZm9ybWF0dGluZ1N0YXRlKQogICAgIDogbV9mb3JtYXR0aW5nQ29udGV4dFJvb3QoZm9y
bWF0dGluZ0NvbnRleHRSb290KQogICAgICwgbV9mb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ1N0
YXRlKQpAQCAtNTAsNyArNjAsNyBAQCBEaXNwbGF5Qm94ZXMgSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyOjpidWlsZChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmCiAgICAgLy8gRXZl
cnkgbGluZSBzdGFydHMgd2l0aCBhIHJvb3QgYm94LCBldmVuIHRoZSBlbXB0eSBvbmVzLgogICAg
IGF1dG8gcm9vdElubGluZUJveFJlY3QgPSBsaW5lQm94LmxvZ2ljYWxSZWN0Rm9yUm9vdElubGlu
ZUJveCgpOwogICAgIHJvb3RJbmxpbmVCb3hSZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExl
ZnQpOwotICAgIGJveGVzLmFwcGVuZCh7IGxpbmVJbmRleCwgSW5saW5lRGlzcGxheTo6Qm94OjpU
eXBlOjpSb290SW5saW5lQm94LCByb290KCksIHJvb3RJbmxpbmVCb3hSZWN0LCByb290SW5saW5l
Qm94UmVjdCwgeyB9LCB7IH0sICBsaW5lQm94LnJvb3RJbmxpbmVCb3goKS5oYXNDb250ZW50KCl9
KTsKKyAgICBib3hlcy5hcHBlbmQoeyBsaW5lSW5kZXgsIElubGluZURpc3BsYXk6OkJveDo6VHlw
ZTo6Um9vdElubGluZUJveCwgcm9vdCgpLCByb290SW5saW5lQm94UmVjdCwgcm9vdElubGluZUJv
eFJlY3QsIHsgfSwgeyB9LCBsaW5lQm94LnJvb3RJbmxpbmVCb3goKS5oYXNDb250ZW50KCkgfSk7
CiAKICAgICBjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5saW5l
Qm94ZXMobGluZUJveCwgbGluZUJveExvZ2ljYWxUb3BMZWZ0LCBsaW5lSW5kZXgsIGJveGVzKTsK
ICAgICBjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQobGluZUNvbnRl
bnQsIGxpbmVCb3gsIGxpbmVCb3hMb2dpY2FsVG9wTGVmdCwgbGluZUluZGV4LCBib3hlcyk7CkBA
IC0xNjEsNyArMTcxLDExIEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVh
dGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uCiAgICAgICAgICAgICBp
ZiAobGluZUJveC5oYXNDb250ZW50KCkpIHsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQn
cyBleHBlY3RlZCB0byBub3QgaGF2ZSBhbnkgYm94ZXMgb24gZW1wdHkgbGluZXMuIFdlIHNob3Vs
ZCByZWNvbnNpZGVyIHRoaXMuCiAgICAgICAgICAgICAgICAgbV9pbmxpbmVCb3hJbmRleE1hcC5h
ZGQoJmxheW91dEJveCwgYm94ZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBib3hlcy5hcHBl
bmQoeyBsaW5lSW5kZXgsIElubGluZURpc3BsYXk6OkJveDo6VHlwZTo6Tm9uUm9vdElubGluZUJv
eCwgbGF5b3V0Qm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIGlubGluZUJveEJvcmRlckJveCwgeyB9
LCB7IH0sIGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KS5oYXND
b250ZW50KCkgfSk7CisKKyAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVCb3ggPSBsaW5lQm94
LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCk7CisgICAgICAgICAgICAgICAg
QVNTRVJUKGlubGluZUJveC5pc0lubGluZUJveCgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
aW5saW5lQm94LmlzRmlyc3RCb3goKSk7CisgICAgICAgICAgICAgICAgYm94ZXMuYXBwZW5kKHsg
bGluZUluZGV4LCBJbmxpbmVEaXNwbGF5OjpCb3g6OlR5cGU6Ok5vblJvb3RJbmxpbmVCb3gsIGxh
eW91dEJveCwgaW5saW5lQm94Qm9yZGVyQm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIHsgfSwgeyB9
LCBpbmxpbmVCb3guaGFzQ29udGVudCgpLCBpc0ZpcnN0TGFzdEJveChpbmxpbmVCb3gpIH0pOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBhdXRvIGlubGluZUJveFNpemUgPSBMYXlvdXRT
aXplIHsgTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChpbmxpbmVCb3hCb3JkZXJCb3gud2lkdGgo
KSksIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwoaW5saW5lQm94Qm9yZGVyQm94LmhlaWdodCgp
KSB9OwpAQCAtMTkzLDYgKzIwNyw4IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVy
OjpjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5sCiAgICAgZm9y
IChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IGxpbmVCb3gubm9uUm9vdElubGluZUxldmVsQm94ZXMo
KSkgewogICAgICAgICBpZiAoIWlubGluZUxldmVsQm94LmlzTGluZVNwYW5uaW5nSW5saW5lQm94
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQVNTRVJUKGlubGluZUxldmVsQm94
LmlzSW5saW5lQm94KCkpOworCiAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGlubGluZUxldmVs
Qm94LmxheW91dEJveCgpOwogICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdT
dGF0ZS5ib3hHZW9tZXRyeShsYXlvdXRCb3gpOwogICAgICAgICAvLyBJbmxpbmUgYm94ZXMgbWF5
IG9yIG1heSBub3QgYmUgd3JhcHBlZCBhbmQgaGF2ZSBib3hlcyBvbiBtdWx0aXBsZSBsaW5lcyAo
ZS5nLiA8c3Bhbj5maXJzdCBsaW5lPGJyPnNlY29uZCBsaW5lPGJyPnRoaXJkIGxpbmU8L3NwYW4+
KQpAQCAtMjAwLDcgKzIxNiw5IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpj
cmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZVNwYW5uaW5nSW5sCiAgICAgICAgIGlu
bGluZUJveEJvcmRlckJveC5tb3ZlQnkobGluZUJveExvZ2ljYWxUb3BMZWZ0KTsKIAogICAgICAg
ICBtX2lubGluZUJveEluZGV4TWFwLmFkZCgmbGF5b3V0Qm94LCBib3hlcy5zaXplKCkpOwotICAg
ICAgICBib3hlcy5hcHBlbmQoeyBsaW5lSW5kZXgsIElubGluZURpc3BsYXk6OkJveDo6VHlwZTo6
Tm9uUm9vdElubGluZUJveCwgbGF5b3V0Qm94LCBpbmxpbmVCb3hCb3JkZXJCb3gsIGlubGluZUJv
eEJvcmRlckJveCwgeyB9LCB7IH0sIGlubGluZUxldmVsQm94Lmhhc0NvbnRlbnQoKSB9KTsKKwor
ICAgICAgICBBU1NFUlQoIWlubGluZUxldmVsQm94LmlzRmlyc3RCb3goKSk7CisgICAgICAgIGJv
eGVzLmFwcGVuZCh7IGxpbmVJbmRleCwgSW5saW5lRGlzcGxheTo6Qm94OjpUeXBlOjpOb25Sb290
SW5saW5lQm94LCBsYXlvdXRCb3gsIGlubGluZUJveEJvcmRlckJveCwgaW5saW5lQm94Qm9yZGVy
Qm94LCB7IH0sIHsgfSwgaW5saW5lTGV2ZWxCb3guaGFzQ29udGVudCgpLCBpc0ZpcnN0TGFzdEJv
eChpbmxpbmVMZXZlbEJveCkgfSk7CiAKICAgICAgICAgYXV0byBpbmxpbmVCb3hTaXplID0gTGF5
b3V0U2l6ZSB7IExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwoaW5saW5lQm94Qm9yZGVyQm94Lndp
ZHRoKCkpLCBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGlubGluZUJveEJvcmRlckJveC5oZWln
aHQoKSkgfTsKICAgICAgICAgYXV0byBsb2dpY2FsUmVjdCA9IFJlY3QgeyBMYXlvdXRQb2ludCB7
IGlubGluZUJveEJvcmRlckJveC50b3BMZWZ0KCkgfSwgaW5saW5lQm94U2l6ZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGV2ZWxCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxldmVsQm94LmgKaW5kZXggMmVhOWE1ZWE1MTg2ZjMyM2I4ZTY1NzA0ZThi
ZWY4YTA1N2MyYjc1Mi4uMDJmYzE1MzE4ZDQxMjc1OGFiNTgzZmIwNzc0YmJhYTk4MWI4MTUyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGV2ZWxCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJveC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiSW5saW5lUmVjdC5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxh
eW91dFVuaXRzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAgLTkxLDkgKzkyLDE2IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IEJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3g7IH0K
IAotICAgIElubGluZUxldmVsQm94KGNvbnN0IEJveCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSwgVHlwZSk7CisgICAg
Ym9vbCBpc0ZpcnN0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZpcnN0V2l0aGluTGF5b3V0Qm94
OyB9CisgICAgYm9vbCBpc0xhc3RCb3goKSBjb25zdCB7IHJldHVybiBtX2lzTGFzdFdpdGhpbkxh
eW91dEJveDsgfQogCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgUG9zaXRpb25XaXRoaW5MYXlv
dXRCb3ggeworICAgICAgICBGaXJzdCA9IDEgPDwgMCwKKyAgICAgICAgTGFzdCAgPSAxIDw8IDEK
KyAgICB9OworICAgIElubGluZUxldmVsQm94KGNvbnN0IEJveCYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSwgVHlwZSwg
T3B0aW9uU2V0PFBvc2l0aW9uV2l0aGluTGF5b3V0Qm94PiA9IHsgUG9zaXRpb25XaXRoaW5MYXlv
dXRCb3g6OkZpcnN0LCBQb3NpdGlvbldpdGhpbkxheW91dEJveDo6TGFzdCB9KTsKKwogICAgIGZy
aWVuZCBjbGFzcyBMaW5lQm94OwogICAgIGZyaWVuZCBjbGFzcyBMaW5lQm94QnVpbGRlcjsKICAg
ICBmcmllbmQgY2xhc3MgTGluZUJveFZlcnRpY2FsQWxpZ25lcjsKQEAgLTExMyw2ICsxMjEsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0RGVzY2VudChJbmxpbmVMYXlvdXRVbml0IGRlc2NlbnQp
IHsgbV9kZXNjZW50ID0gcm91bmRUb0ludChkZXNjZW50KTsgfQogICAgIHZvaWQgc2V0TGF5b3V0
Qm91bmRzKGNvbnN0IExheW91dEJvdW5kcyYgbGF5b3V0Qm91bmRzKSB7IG1fbGF5b3V0Qm91bmRz
ID0geyBJbmxpbmVMYXlvdXRVbml0KHJvdW5kVG9JbnQobGF5b3V0Qm91bmRzLmFzY2VudCkpLCBJ
bmxpbmVMYXlvdXRVbml0KHJvdW5kVG9JbnQobGF5b3V0Qm91bmRzLmRlc2NlbnQpKSB9OyB9CiAK
KyAgICB2b2lkIHNldElzRmlyc3RCb3goKSB7IG1faXNGaXJzdFdpdGhpbkxheW91dEJveCA9IHRy
dWU7IH0KKyAgICB2b2lkIHNldElzTGFzdEJveCgpIHsgbV9pc0xhc3RXaXRoaW5MYXlvdXRCb3gg
PSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgQ2hlY2tlZFJlZjxjb25zdCBCb3g+IG1fbGF5b3V0
Qm94OwogICAgIC8vIFRoaXMgaXMgdGhlIGNvbWJpbmF0aW9uIG9mIG1hcmdpbiBhbmQgYm9yZGVy
IGJveGVzLiBJbmxpbmUgbGV2ZWwgYm94ZXMgYXJlIHZlcnRpY2FsbHkgYWxpZ25lZCB1c2luZyB0
aGVpciBtYXJnaW4gYm94ZXMuCkBAIC0xMjEsNiArMTMyLDEwIEBAIHByaXZhdGU6CiAgICAgSW5s
aW5lTGF5b3V0VW5pdCBtX2Jhc2VsaW5lIHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5l
TGF5b3V0VW5pdD4gbV9kZXNjZW50OwogICAgIGJvb2wgbV9oYXNDb250ZW50IHsgZmFsc2UgfTsK
KyAgICAvLyBUaGVzZSBiaXRzIGFyZSBhYm91dCB3aGV0aGVyIHRoaXMgaW5saW5lIGxldmVsIGJv
eCBpcyB0aGUgZmlyc3QvbGFzdCBnZW5lcmF0ZWQgYm94IG9mIHRoZSBhc3NvY2lhdGVkIExheW91
dDo6Qm94CisgICAgLy8gKGUuZy4gYWx3YXlzIHRydWUgZm9yIGF0b21pYyBpbmxpbmUgbGV2ZWwg
Ym94ZXMsIGJ1dCBpbmxpbmUgYm94ZXMgc3Bhbm5pbmcgb3ZlciBtdWx0aXBsZSBsaW5lcyBjYW4g
cHJvZHVjZSBzZXBhcmF0ZSBmaXJzdC9sYXN0IGJveGVzKS4KKyAgICBib29sIG1faXNGaXJzdFdp
dGhpbkxheW91dEJveCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzTGFzdFdpdGhpbkxheW91dEJv
eCB7IGZhbHNlIH07CiAgICAgVHlwZSBtX3R5cGUgeyBUeXBlOjpJbmxpbmVCb3ggfTsKIAogICAg
IHN0cnVjdCBTdHlsZSB7CkBAIC0xMzIsOSArMTQ3LDExIEBAIHByaXZhdGU6CiAgICAgU3R5bGUg
bV9zdHlsZTsKIH07CiAKLWlubGluZSBJbmxpbmVMZXZlbEJveDo6SW5saW5lTGV2ZWxCb3goY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSBsb2dpY2FsU2l6ZSwgVHlwZSB0eXBl
KQoraW5saW5lIElubGluZUxldmVsQm94OjpJbmxpbmVMZXZlbEJveChjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxM
ZWZ0LCBJbmxpbmVMYXlvdXRTaXplIGxvZ2ljYWxTaXplLCBUeXBlIHR5cGUsIE9wdGlvblNldDxQ
b3NpdGlvbldpdGhpbkxheW91dEJveD4gcG9zaXRpb25XaXRoaW5MYXlvdXRCb3gpCiAgICAgOiBt
X2xheW91dEJveChsYXlvdXRCb3gpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHsgfSwgbG9naWNhbExl
ZnQsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXplLmhlaWdodCgpKQorICAgICwgbV9p
c0ZpcnN0V2l0aGluTGF5b3V0Qm94KHBvc2l0aW9uV2l0aGluTGF5b3V0Qm94LmNvbnRhaW5zKFBv
c2l0aW9uV2l0aGluTGF5b3V0Qm94OjpGaXJzdCkpCisgICAgLCBtX2lzTGFzdFdpdGhpbkxheW91
dEJveChwb3NpdGlvbldpdGhpbkxheW91dEJveC5jb250YWlucyhQb3NpdGlvbldpdGhpbkxheW91
dEJveDo6TGFzdCkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fc3R5bGUoeyBzdHlsZS5m
b250Q2FzY2FkZSgpLnByaW1hcnlGb250KCkuZm9udE1ldHJpY3MoKSwgc3R5bGUubGluZUhlaWdo
dCgpLCBJbmxpbmVMYXlvdXRVbml0KHN0eWxlLmZvbnRDYXNjYWRlKCkuZm9udERlc2NyaXB0aW9u
KCkuY29tcHV0ZWRQaXhlbFNpemUoKSksIHsgfSB9KQogewpAQCAtMTk0LDcgKzIxMSw3IEBAIGlu
bGluZSBJbmxpbmVMZXZlbEJveCBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlQXRvbWljSW5saW5lTGV2
ZWxCb3goY29uc3QgQm94JiBsYXlvCiAKIGlubGluZSBJbmxpbmVMZXZlbEJveCBJbmxpbmVMZXZl
bEJveDo6Y3JlYXRlSW5saW5lQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVu
aXQgbG9naWNhbFdpZHRoLCBMaW5lU3Bhbm5pbmdJbmxpbmVCb3ggaXNMaW5lU3Bhbm5pbmcpCiB7
Ci0gICAgcmV0dXJuIElubGluZUxldmVsQm94IHsgbGF5b3V0Qm94LCBzdHlsZSwgbG9naWNhbExl
ZnQsIElubGluZUxheW91dFNpemUgeyBsb2dpY2FsV2lkdGgsIHsgfSB9LCBpc0xpbmVTcGFubmlu
ZyA9PSBMaW5lU3Bhbm5pbmdJbmxpbmVCb3g6OlllcyA/IFR5cGU6OkxpbmVTcGFubmluZ0lubGlu
ZUJveCA6IFR5cGU6OklubGluZUJveCB9OworICAgIHJldHVybiBJbmxpbmVMZXZlbEJveCB7IGxh
eW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRTaXplIHsgbG9naWNhbFdp
ZHRoLCB7IH0gfSwgaXNMaW5lU3Bhbm5pbmcgPT0gTGluZVNwYW5uaW5nSW5saW5lQm94OjpZZXMg
PyBUeXBlOjpMaW5lU3Bhbm5pbmdJbmxpbmVCb3ggOiBUeXBlOjpJbmxpbmVCb3gsIHsgfSB9Owog
fQogCiBpbmxpbmUgSW5saW5lTGV2ZWxCb3ggSW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUxpbmVCcmVh
a0JveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94LmNw
cAppbmRleCAzMDczNWE1NDgzNzk1NTJlYTIxNzk5M2RiOWRkYWIzM2JhZGE2NDNkLi5mNTQ1MTMz
NDVhNjM2YTM2NmFlOTU4M2VlZGRjNTIzNjAzNTc1NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQm94LmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1l
c3BhY2UgTGF5b3V0IHsKIAogTGluZUJveDo6TGluZUJveChjb25zdCBCb3gmIHJvb3RMYXlvdXRC
b3gsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0
IGNvbnRlbnRMb2dpY2FsV2lkdGgsIHNpemVfdCBsaW5lSW5kZXgsIHNpemVfdCBub25TcGFubmlu
Z0lubGluZUxldmVsQm94Q291bnQpCi0gICAgOiBtX3Jvb3RJbmxpbmVCb3gocm9vdExheW91dEJv
eCwgIWxpbmVJbmRleCA/IHJvb3RMYXlvdXRCb3guZmlyc3RMaW5lU3R5bGUoKSA6IHJvb3RMYXlv
dXRCb3guc3R5bGUoKSwgY29udGVudExvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRTaXplIHsgY29u
dGVudExvZ2ljYWxXaWR0aCwgeyB9IH0sIElubGluZUxldmVsQm94OjpUeXBlOjpSb290SW5saW5l
Qm94KQorICAgIDogbV9yb290SW5saW5lQm94KHsgcm9vdExheW91dEJveCwgIWxpbmVJbmRleCA/
IHJvb3RMYXlvdXRCb3guZmlyc3RMaW5lU3R5bGUoKSA6IHJvb3RMYXlvdXRCb3guc3R5bGUoKSwg
Y29udGVudExvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRTaXplIHsgY29udGVudExvZ2ljYWxXaWR0
aCwgeyB9IH0sIElubGluZUxldmVsQm94OjpUeXBlOjpSb290SW5saW5lQm94IH0pCiB7CiAgICAg
bV9ub25Sb290SW5saW5lTGV2ZWxCb3hMaXN0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobm9uU3Bh
bm5pbmdJbmxpbmVMZXZlbEJveENvdW50KTsKICAgICBtX25vblJvb3RJbmxpbmVMZXZlbEJveE1h
cC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG5vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggODcz
NzFlOGYzYWNhZWQ4YzhiNGU4N2Y3ZDE4YWRlZjU1YWJkYmVkOC4uZDQ1YWI3MDc2NDAzOGZiNDE2
Yzg4YTFmMDY4ZTdkM2MxMmI2Mjc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCb3hCdWlsZGVyLmNwcApAQCAtMzUwLDYgKzM1MCw3IEBAIElubGluZUxheW91dFVuaXQgTGlu
ZUJveEJ1aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWduSW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94JiBs
aW5lCiAgICAgICAgICAgICBhdXRvIGluaXRpYWxMb2dpY2FsV2lkdGggPSByb290SW5saW5lQm94
LmxvZ2ljYWxXaWR0aCgpIC0gKHJ1bi5sb2dpY2FsTGVmdCgpICsgbWFyZ2luU3RhcnQpOwogICAg
ICAgICAgICAgQVNTRVJUKGluaXRpYWxMb2dpY2FsV2lkdGggPj0gMCk7CiAgICAgICAgICAgICBh
dXRvIGlubGluZUJveCA9IElubGluZUxldmVsQm94OjpjcmVhdGVJbmxpbmVCb3gobGF5b3V0Qm94
LCBzdHlsZSwgbG9naWNhbExlZnQgKyBtYXJnaW5TdGFydCwgaW5pdGlhbExvZ2ljYWxXaWR0aCk7
CisgICAgICAgICAgICBpbmxpbmVCb3guc2V0SXNGaXJzdEJveCgpOwogICAgICAgICAgICAgc2V0
SW5pdGlhbFZlcnRpY2FsR2VvbWV0cnlGb3JJbmxpbmVCb3goaW5saW5lQm94KTsKICAgICAgICAg
ICAgIHVwZGF0ZUNhblVzZVNpbXBsaWZpZWRBbGlnbm1lbnQoaW5saW5lQm94KTsKICAgICAgICAg
ICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShpbmxpbmVCb3gpKTsKQEAgLTM2
OCw2ICszNjksNyBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RB
bmRBbGlnbklubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAgICAgICAgLy8gV2hl
biB0aGUgY29udGVudCBwdWxscyB0aGUgPC9zcGFuPiB0byB0aGUgbG9naWNhbCBsZWZ0IGRpcmVj
dGlvbiAoZS5nLiBuZWdhdGl2ZSBsZXR0ZXIgc3BhY2UpCiAgICAgICAgICAgICAvLyBtYWtlIHN1
cmUgd2UgZG9uJ3QgZW5kIHVwIHdpdGggbmVnYXRpdmUgbG9naWNhbCB3aWR0aCBvbiB0aGUgaW5s
aW5lIGJveC4KICAgICAgICAgICAgIGlubGluZUJveC5zZXRMb2dpY2FsV2lkdGgoc3RkOjptYXgo
MC5mLCBpbmxpbmVCb3hMb2dpY2FsUmlnaHQgLSBpbmxpbmVCb3gubG9naWNhbExlZnQoKSkpOwor
ICAgICAgICAgICAgaW5saW5lQm94LnNldElzTGFzdEJveCgpOwogICAgICAgICAgICAgdXBkYXRl
Q2FuVXNlU2ltcGxpZmllZEFsaWdubWVudChpbmxpbmVCb3gpOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Qm94LmgKaW5kZXggZThiMmMyOTkyNmYyYWNjNzA1NTc3ODRiZjgzMWViMzIzOTgxM2VlNS4u
MmZkMWM2NDE5ZDNhYTlmMGUwMjhmNTMzZTNiMjE2Njk1MWQwZDc2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9Jbmxp
bmVEaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVk
ZSAiVGV4dEZsYWdzLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBuYW1lc3BhY2UgSW5saW5lRGlzcGxheSB7CkBAIC02Nyw3ICs2OCwxMSBAQCBz
dHJ1Y3QgQm94IHsKICAgICAgICAgR2VuZXJpY0lubGluZUxldmVsQm94CiAgICAgfTsKICAgICBz
dHJ1Y3QgRXhwYW5zaW9uOwotICAgIEJveChzaXplX3QgbGluZUluZGV4LCBUeXBlLCBjb25zdCBM
YXlvdXQ6OkJveCYsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYsIGNvbnN0IExheW91dDo6SW5s
aW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiA9IHN0
ZDo6bnVsbG9wdCwgYm9vbCBoYXNDb250ZW50ID0gdHJ1ZSk7CisgICAgZW51bSBjbGFzcyBQb3Np
dGlvbldpdGhpbklubGluZUxldmVsQm94IHsKKyAgICAgICAgRmlyc3QgPSAxIDw8IDAsCisgICAg
ICAgIExhc3QgID0gMSA8PCAxCisgICAgfTsKKyAgICBCb3goc2l6ZV90IGxpbmVJbmRleCwgVHlw
ZSwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmLCBjb25zdCBM
YXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24sIHN0ZDo6b3B0aW9uYWw8
VGV4dD4gPSBzdGQ6Om51bGxvcHQsIGJvb2wgaGFzQ29udGVudCA9IHRydWUsIE9wdGlvblNldDxQ
b3NpdGlvbldpdGhpbklubGluZUxldmVsQm94PiA9IHsgUG9zaXRpb25XaXRoaW5JbmxpbmVMZXZl
bEJveDo6Rmlyc3QsIFBvc2l0aW9uV2l0aGluSW5saW5lTGV2ZWxCb3g6Okxhc3QgfSk7CiAKICAg
ICBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpUZXh0OyB9CiAg
ICAgYm9vbCBpc1NvZnRMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6
U29mdExpbmVCcmVhazsgfQpAQCAtMTExLDYgKzExNiwxMCBAQCBzdHJ1Y3QgQm94IHsKICAgICBj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUoKSBjb25zdCB7IHJldHVybiAhbGluZUluZGV4KCkgPyBs
YXlvdXRCb3goKS5maXJzdExpbmVTdHlsZSgpIDogbGF5b3V0Qm94KCkuc3R5bGUoKTsgfQogCiAg
ICAgc2l6ZV90IGxpbmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUluZGV4OyB9CisgICAg
Ly8gVGhlc2UgZnVuY3Rpb25zIHRlbGwgeW91IHdoZXRoZXIgdGhpcyBkaXNwbGF5IGJveCBpcyB0
aGUgZmlyc3QvbGFzdCBmb3IgdGhlIGFzc29jaWF0ZWQgaW5saW5lIGxldmVsIGJveCAoTGF5b3V0
OjpCb3gpIGFuZCBub3Qgd2hldGhlciBpdCdzIHRoZSBmaXJzdC9sYXN0IGJveCBvbiB0aGUgbGlu
ZS4KKyAgICAvLyAoZS5nLiBhbHdheXMgdHJ1ZSBmb3IgYXRvbWljIGJveGVzLCBidXQgaW5saW5l
IGJveGVzIHNwYW5uaW5nIG92ZXIgbXVsdGlwbGUgbGluZXMgY2FuIHByb2R1Y2UgaW5kaXZpZHVh
bCBmaXJzdC9sYXN0IGJveGVzKS4KKyAgICBib29sIGlzRmlyc3RCb3goKSBjb25zdCB7IHJldHVy
biBtX2lzRmlyc3RXaXRoaW5JbmxpbmVMZXZlbEJveDsgfQorICAgIGJvb2wgaXNMYXN0Qm94KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0xhc3RXaXRoaW5JbmxpbmVMZXZlbEJveDsgfQogCiBwcml2YXRl
OgogICAgIGNvbnN0IHNpemVfdCBtX2xpbmVJbmRleCB7IDAgfTsKQEAgLTExOCwxOCArMTI3LDIy
IEBAIHByaXZhdGU6CiAgICAgQ2hlY2tlZFJlZjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRC
b3g7CiAgICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CiAgICAgTGF5b3V0OjpJ
bmxpbmVSZWN0IG1faW5rT3ZlcmZsb3c7Ci0gICAgYm9vbCBtX2hhc0NvbnRlbnQgeyB0cnVlIH07
CisgICAgYm9vbCBtX2hhc0NvbnRlbnQgOiAxOworICAgIGJvb2wgbV9pc0ZpcnN0V2l0aGluSW5s
aW5lTGV2ZWxCb3ggOiAxOworICAgIGJvb2wgbV9pc0xhc3RXaXRoaW5JbmxpbmVMZXZlbEJveCA6
IDE7CiAgICAgRXhwYW5zaW9uIG1fZXhwYW5zaW9uOwogICAgIHN0ZDo6b3B0aW9uYWw8VGV4dD4g
bV90ZXh0OwogfTsKIAotaW5saW5lIEJveDo6Qm94KHNpemVfdCBsaW5lSW5kZXgsIFR5cGUgdHlw
ZSwgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0
JiBsb2dpY2FsUmVjdCwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgRXhw
YW5zaW9uIGV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiB0ZXh0LCBib29sIGhhc0NvbnRl
bnQpCitpbmxpbmUgQm94OjpCb3goc2l6ZV90IGxpbmVJbmRleCwgVHlwZSB0eXBlLCBjb25zdCBM
YXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGxvZ2ljYWxS
ZWN0LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhw
YW5zaW9uLCBzdGQ6Om9wdGlvbmFsPFRleHQ+IHRleHQsIGJvb2wgaGFzQ29udGVudCwgT3B0aW9u
U2V0PFBvc2l0aW9uV2l0aGluSW5saW5lTGV2ZWxCb3g+IHBvc2l0aW9uV2l0aGluSW5saW5lTGV2
ZWxCb3gpCiAgICAgOiBtX2xpbmVJbmRleChsaW5lSW5kZXgpCiAgICAgLCBtX3R5cGUodHlwZSkK
ICAgICAsIG1fbGF5b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fbG9naWNhbFJlY3QobG9naWNh
bFJlY3QpCiAgICAgLCBtX2lua092ZXJmbG93KGlua092ZXJmbG93KQogICAgICwgbV9oYXNDb250
ZW50KGhhc0NvbnRlbnQpCisgICAgLCBtX2lzRmlyc3RXaXRoaW5JbmxpbmVMZXZlbEJveChwb3Np
dGlvbldpdGhpbklubGluZUxldmVsQm94LmNvbnRhaW5zKFBvc2l0aW9uV2l0aGluSW5saW5lTGV2
ZWxCb3g6OkZpcnN0KSkKKyAgICAsIG1faXNMYXN0V2l0aGluSW5saW5lTGV2ZWxCb3gocG9zaXRp
b25XaXRoaW5JbmxpbmVMZXZlbEJveC5jb250YWlucyhQb3NpdGlvbldpdGhpbklubGluZUxldmVs
Qm94OjpMYXN0KSkKICAgICAsIG1fZXhwYW5zaW9uKGV4cGFuc2lvbikKICAgICAsIG1fdGV4dCh0
ZXh0KQogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>