<?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>189141</bug_id>
          
          <creation_ts>2018-08-29 19:54:21 -0700</creation_ts>
          <short_desc>[LFC][Margins] Add non-computed horizontal margins to DisplayBox</short_desc>
          <delta_ts>2018-08-30 07:26: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>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>1455121</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-29 19:54:21 -0700</bug_when>
    <thetext>in-flow block boxes&apos; horizontal margin extends to the containing block&apos;s content box. In some cases (float avoiding) we need the non-extended, original values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455122</commentid>
    <comment_count>1</comment_count>
      <attachid>348473</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-29 20:00:34 -0700</bug_when>
    <thetext>Created attachment 348473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455149</commentid>
    <comment_count>2</comment_count>
      <attachid>348482</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-29 21:15:35 -0700</bug_when>
    <thetext>Created attachment 348482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455199</commentid>
    <comment_count>3</comment_count>
      <attachid>348482</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-30 06:42:54 -0700</bug_when>
    <thetext>Comment on attachment 348482
Patch

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

&gt; Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp:241
&gt; +        return WidthAndMargin { *width, { *marginLeft, *marginRight }, { nonComputedMarginLeft, nonComputedMarginRight } };

return { *width, { *marginLeft, *marginRight }, { nonComputedMarginLeft, nonComputedMarginRight } } ;

should work too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455200</commentid>
    <comment_count>4</comment_count>
      <attachid>348482</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-30 06:45:35 -0700</bug_when>
    <thetext>Comment on attachment 348482
Patch

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

&gt; Source/WebCore/layout/FormattingContextGeometry.cpp:420
&gt; +    return { *left, *right, { *width, { *marginLeft, *marginRight }, {nonComputedMarginLeft, nonComputedMarginRight } } };

Missing space before nonComputedMarginLeft</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455207</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-30 07:25:59 -0700</bug_when>
    <thetext>Committed r235501: &lt;https://trac.webkit.org/changeset/235501&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455208</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-30 07:26:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/43884877&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348473</attachid>
            <date>2018-08-29 20:00:34 -0700</date>
            <delta_ts>2018-08-29 21:15:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189141-20180829200033.patch</filename>
            <type>text/plain</type>
            <size>17100</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNkMTY1NmMzZmJkMjg3
OWYyNWI1ZmFjNTI3NGY5NmZkYjA0YTNjYS4uNWQzZWE0NGUyNzE0NGI5MmE2ZTU5ZDg3NTM3Y2Ux
ODBiYzkxYTk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA4LTI5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bTWFyZ2luc10gQWRk
IG5vbi1jb21wdXRlZCBob3Jpem9udGFsIG1hcmdpbnMgdG8gRGlzcGxheUJveAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MTQxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5mbG93IGJsb2NrIGJveGVz
JyBob3Jpem9udGFsIG1hcmdpbnMgZXh0ZW5kIGFsbCB0aGUgd2F5IHRvIHRoZSBsZWZ0L3JpZ2h0
IGVkZ2Ugb2YgdGhlaXIgY29udGFpbmluZyBibG9jay4KKyAgICAgICAgU2VlIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9DU1MyMi92aXN1ZGV0Lmh0bWwjYmxvY2t3aWR0aCBmb3IgZXhhbXBsZQorICAg
ICAgICAiLi4uCisgICAgICAgIDEwLjMuMyBCbG9jay1sZXZlbCwgbm9uLXJlcGxhY2VkIGVsZW1l
bnRzIGluIG5vcm1hbCBmbG93CisgICAgICAgICdtYXJnaW4tbGVmdCcgKyAnYm9yZGVyLWxlZnQt
d2lkdGgnICsgJ3BhZGRpbmctbGVmdCcgKyAnd2lkdGgnICsgJ3BhZGRpbmctcmlnaHQnICsgJ2Jv
cmRlci1yaWdodC13aWR0aCcgKyAnbWFyZ2luLXJpZ2h0JyA9IHdpZHRoIG9mIGNvbnRhaW5pbmcg
YmxvY2sKKyAgICAgICAgLi4uIgorCisgICAgICAgIEluIGNlcnRhaW4gY2FzZXMgKGZsb2F0IGF2
b2lkaW5nKSB3ZSBuZWVkIHRvIGtub3cgdGhlIG9yaWdpbmFsIChub24tZXh0ZW5kZWQpIGhvcml6
dG9uYWwgbWFyZ2luIHZhbHVlcy4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlRmxvYXRpbmdXaWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2Vk
SG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omlu
bGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6aW5pdGlh
bGl6ZVJvb3QpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRVbml0cy5oOgorICAgICAgICAqIGxh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbkZsb3dX
aWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRX
aWR0aEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAg
ICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhvcml6b250YWxOb25Db21wdXRlZE1h
cmdpbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6Om5vbkNvbXB1dGVkTWFyZ2lu
TGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6Om5vbkNvbXB1dGVk
TWFyZ2luUmlnaHQgY29uc3QpOgorCiAyMDE4LTA4LTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bRmxvYXRpbmddIEludHJvZHVjZSBGbG9hdEJveCwg
YSBGbG9hdEF2b2lkZXIgc3ViY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCBkZTQ4MDA5NDAyMjZhMDJlMTAyZjcyNWE0ZGZhYjQ5ZWYyZTY2
OTllLi42ZjJjNWM3NzEyOTRmMzczMzkwNDk4NmY4NGZkNzZmNjFlOGY3MzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTY3LDYgKzY3LDcgQEAg
dm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5nV2lkdGhBbmRNYXJnaW4oTGF5
b3V0Q29udGV4dCYgbGF5b3V0Q29udGUKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0
aCh3aWR0aEFuZE1hcmdpbi53aWR0aCk7CiAgICAgZGlzcGxheUJveC5tb3ZlSG9yaXpvbnRhbGx5
KHdpZHRoQW5kTWFyZ2luLm1hcmdpbi5sZWZ0KTsKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250
YWxNYXJnaW4od2lkdGhBbmRNYXJnaW4ubWFyZ2luKTsKKyAgICBkaXNwbGF5Qm94LnNldEhvcml6
b250YWxOb25Db21wdXRlZE1hcmdpbih3aWR0aEFuZE1hcmdpbi5ub25Db21wdXRlZE1hcmdpbik7
CiB9CiAKIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFs
R2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKQEAgLTc1LDYgKzc2LDcgQEAgdm9p
ZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShM
YXlvdXRDb250ZXh0JiBsYXlvdXQKICAgICBkaXNwbGF5Qm94LnNldExlZnQoaG9yaXpvbnRhbEdl
b21ldHJ5LmxlZnQgKyBob3Jpem9udGFsR2VvbWV0cnkud2lkdGhBbmRNYXJnaW4ubWFyZ2luLmxl
ZnQpOwogICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKGhvcml6b250YWxHZW9tZXRy
eS53aWR0aEFuZE1hcmdpbi53aWR0aCk7CiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsTWFy
Z2luKGhvcml6b250YWxHZW9tZXRyeS53aWR0aEFuZE1hcmdpbi5tYXJnaW4pOworICAgIGRpc3Bs
YXlCb3guc2V0SG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luKGhvcml6b250YWxHZW9tZXRyeS53
aWR0aEFuZE1hcmdpbi5ub25Db21wdXRlZE1hcmdpbik7CiB9CiAKIHZvaWQgRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KExheW91dENvbnRleHQmIGxh
eW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlC
b3gpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHRHZW9tZXRyeS5jcHAKaW5kZXggY2M2ZDgwYTI5MGJkNzI4NzA3NjQ5YjQ0NGI0NTU4YzY3MjJk
N2E2Zi4uMDc2ZTc0NjYzNTNhYWNhODgzZTQwY2UyYmY1ODQ5MDRkNDA0ZWE1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApA
QCAtMzE1LDYgKzMxNSw4IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlCiAgICAgYXV0byB3aWR0
aCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRhaW5p
bmdCbG9ja1dpZHRoKTsKICAgICBhdXRvIG1hcmdpbkxlZnQgPSBjb21wdXRlZFZhbHVlSWZOb3RB
dXRvKHN0eWxlLm1hcmdpbkxlZnQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgIGF1dG8g
bWFyZ2luUmlnaHQgPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblJpZ2h0KCks
IGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICBhdXRvIG5vbkNvbXB1dGVkTWFyZ2luTGVmdCA9
IG1hcmdpbkxlZnQudmFsdWVfb3IoMCk7CisgICAgYXV0byBub25Db21wdXRlZE1hcmdpblJpZ2h0
ID0gbWFyZ2luUmlnaHQudmFsdWVfb3IoMCk7CiAgICAgYXV0byBwYWRkaW5nTGVmdCA9IGRpc3Bs
YXlCb3gucGFkZGluZ0xlZnQoKS52YWx1ZV9vcigwKTsKICAgICBhdXRvIHBhZGRpbmdSaWdodCA9
IGRpc3BsYXlCb3gucGFkZGluZ1JpZ2h0KCkudmFsdWVfb3IoMCk7CiAgICAgYXV0byBib3JkZXJM
ZWZ0ID0gZGlzcGxheUJveC5ib3JkZXJMZWZ0KCk7CkBAIC00MTUsNyArNDE3LDcgQEAgSG9yaXpv
bnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVw
bGFjZWRIb3Jpem9udGFsR2UKICAgICBBU1NFUlQobWFyZ2luUmlnaHQpOwogCiAgICAgTE9HX1dJ
VEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltQb3NpdGlvbl1b
V2lkdGhdW01hcmdpbl0gLT4gb3V0LW9mLWZsb3cgbm9uLXJlcGxhY2VkIC0+IGxlZnQoIiA8PCAq
bGVmdCA8PCAicHgpIHJpZ2h0KCIgIDw8ICpyaWdodCA8PCAicHgpIHdpZHRoKCIgPDwgKndpZHRo
IDw8ICJweCkgbWFyZ2luKCIgPDwgKm1hcmdpbkxlZnQgPDwgInB4LCAiICA8PCAqbWFyZ2luUmln
aHQgPDwgInB4KSBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgcmV0dXJu
IHsgKmxlZnQsICpyaWdodCwgeyAqd2lkdGgsIHsgKm1hcmdpbkxlZnQsICptYXJnaW5SaWdodCB9
IH0gfTsKKyAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7ICp3aWR0aCwgeyAqbWFyZ2luTGVm
dCwgKm1hcmdpblJpZ2h0IH0sIHtub25Db21wdXRlZE1hcmdpbkxlZnQsIG5vbkNvbXB1dGVkTWFy
Z2luUmlnaHQgfSB9IH07CiB9CiAKIFZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkoTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCkBAIC01MTUsNiArNTE3LDgg
QEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZG
bG93UmVwbGFjZWRIb3Jpem9udGFsR2VvbWUKICAgICBhdXRvIHJpZ2h0ID0gY29tcHV0ZWRWYWx1
ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwog
ICAgIGF1dG8gbWFyZ2luTGVmdCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2lu
TGVmdCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgYXV0byBtYXJnaW5SaWdodCA9IGNv
bXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luUmlnaHQoKSwgY29udGFpbmluZ0Jsb2Nr
V2lkdGgpOworICAgIGF1dG8gbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdC52YWx1
ZV9vcigwKTsKKyAgICBhdXRvIG5vbkNvbXB1dGVkTWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC52
YWx1ZV9vcigwKTsKICAgICBhdXRvIHdpZHRoID0gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdp
bihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpLndpZHRoOwogICAgIGF1dG8gcGFkZGluZ0xlZnQg
PSBkaXNwbGF5Qm94LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMCk7CiAgICAgYXV0byBwYWRkaW5n
UmlnaHQgPSBkaXNwbGF5Qm94LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDApOwpAQCAtNTgwLDcg
KzU4NCw3IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
Om91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21lCiAgICAgQVNTRVJUKG1hcmdpblJpZ2h0
KTsKIAogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFt
IDw8ICJbUG9zaXRpb25dW1dpZHRoXVtNYXJnaW5dIC0+IG91dC1vZi1mbG93IHJlcGxhY2VkIC0+
IGxlZnQoIiA8PCAqbGVmdCA8PCAicHgpIHJpZ2h0KCIgIDw8ICpyaWdodCA8PCAicHgpIHdpZHRo
KCIgPDwgd2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCAqbWFyZ2luTGVmdCA8PCAicHgsICIgIDw8
ICptYXJnaW5SaWdodCA8PCAicHgpIGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsK
LSAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7IHdpZHRoLCB7ICptYXJnaW5MZWZ0LCAqbWFy
Z2luUmlnaHQgfSB9IH07CisgICAgcmV0dXJuIHsgKmxlZnQsICpyaWdodCwgeyB3aWR0aCwgeyAq
bWFyZ2luTGVmdCwgKm1hcmdpblJpZ2h0IH0sIHsgbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0LCBub25D
b21wdXRlZE1hcmdpblJpZ2h0IH0gfSB9OwogfQogCiBIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wbGljYXRlZENhc2VzKExheW91dENvbnRleHQmIGxheW91
dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpAQCAtNjQ2LDcgKzY1MCw3IEBAIFdpZHRo
QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNl
ZFdpZHRoQW5kTWFyZ2luKExhCiAgICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChsYXlv
dXRDb250ZXh0LCBmb3JtYXR0aW5nQ29udGV4dCwgbGF5b3V0Qm94KTsKIAogICAgIExPR19XSVRI
X1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdp
bl0gLT4gZmxvYXRpbmcgbm9uLXJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgKndpZHRoIDw8ICJweCkg
bWFyZ2luKCIgPDwgbWFyZ2luLmxlZnQgPDwgInB4LCAiIDw8IG1hcmdpbi5yaWdodCA8PCAicHgp
IC0+IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKLSAgICByZXR1cm4gV2lkdGhB
bmRNYXJnaW4geyAqd2lkdGgsIG1hcmdpbiB9OworICAgIHJldHVybiBXaWR0aEFuZE1hcmdpbiB7
ICp3aWR0aCwgbWFyZ2luLCBtYXJnaW4gfTsKIH0KIAogSGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKQEAgLTgwNSw2
ICs4MDksOCBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omlu
bGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0QwogCiAgICAgYXV0byBtYXJnaW5MZWZ0
ID0gY29tcHV0ZU1hcmdpbkxlZnQoKTsKICAgICBhdXRvIG1hcmdpblJpZ2h0ID0gY29tcHV0ZU1h
cmdpblJpZ2h0KCk7CisgICAgYXV0byBub25Db21wdXRlZE1hcmdpbkxlZnQgPSBjb21wdXRlZFZh
bHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpbkxlZnQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpLnZh
bHVlX29yKDApOworICAgIGF1dG8gbm9uQ29tcHV0ZWRNYXJnaW5SaWdodCA9IGNvbXB1dGVkVmFs
dWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpLnZh
bHVlX29yKDApOwogICAgIGF1dG8gd2lkdGggPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxl
LmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAKICAgICBhdXRvIGhlaWdo
dElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTgzNCw3ICs4NDAs
NyBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0QwogICAgIEFTU0VSVCh3aWR0aCk7CiAKICAgICBM
T0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW1dpZHRo
XVtNYXJnaW5dIC0+IGluZmxvdyByZXBsYWNlZCAtPiB3aWR0aCgiIDw8ICp3aWR0aCA8PCAicHgp
IG1hcmdpbigiIDw8IG1hcmdpbkxlZnQgPDwgInB4LCAiIDw8IG1hcmdpblJpZ2h0IDw8ICJweCkg
LT4gbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOwotICAgIHJldHVybiB7ICp3aWR0
aCwgeyBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodCB9IH07CisgICAgcmV0dXJuIHsgKndpZHRoLCB7
IG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0sIHsgbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0LCBub25D
b21wdXRlZE1hcmdpblJpZ2h0IH0gfTsKIH0KIAogRWRnZXMgRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5Ojpjb21wdXRlZEJvcmRlcihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiBsYXlvdXRC
b3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggM2NiNmY5ZDVm
Y2E2ZTY2MTk0NTUwNDY3MDUyOGNlNjdhYjQyNzNmOC4uNTUyYTc3OTRhM2Y4NzUyMmIxY2JmZTM5
Y2VjZDRiMzEzNDkyMmYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cApAQCAtNTgsNiArNTgsNyBAQCB2b2lkIExheW91dENvbnRleHQ6OmluaXRpYWxpemVSb290KGNv
bnN0IENvbnRhaW5lciYgcm9vdCwgY29uc3QgTGF5b3V0U2l6ZSYgY29udAogCiAgICAgLy8gRklY
TUU6IG1fcm9vdCBjb3VsZCB2ZXJ5IHdlbGwgYmUgYSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCB3
aXRoIGFuY2VzdG9ycyBhbmQgcmVzb2x2YWJsZSBib3JkZXIgYW5kIHBhZGRpbmcgKGFzIG9wcG9z
ZWQgdG8gdGhlIHRvcG1vc3Qgcm9vdCkKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJn
aW4oeyB9KTsKKyAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbih7
IH0pOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyB9KTsKICAgICBkaXNwbGF5
Qm94LnNldFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5z
ZXRCb3JkZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRV
bml0cy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKaW5kZXggMWI2MWVk
YjM3MjIzMTNmZWMyZWU0YzBhMTg0MmQ0NzkyZGY3ZmIxZC4uNGE5MjVjOWFmOWQ1OTFiMWNhZmZi
OWNkMzgxNDQzYTM0YzYzZjQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xh
eW91dFVuaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKQEAg
LTg5LDYgKzg5LDcgQEAgc3RydWN0IEVkZ2VzIHsKIHN0cnVjdCBXaWR0aEFuZE1hcmdpbiB7CiAg
ICAgTGF5b3V0VW5pdCB3aWR0aDsKICAgICBIb3Jpem9udGFsRWRnZXMgbWFyZ2luOworICAgIEhv
cml6b250YWxFZGdlcyBub25Db21wdXRlZE1hcmdpbjsKIH07CiAKIHN0cnVjdCBIZWlnaHRBbmRN
YXJnaW4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNmVkYmQ5ZWUwMDJi
YzBlNGRhOGE5MGIwODFlZGM3ZDM5M2Y1OTZmNy4uMjdhMWI0YzJjNGYzMjQ3ZGM5YWI0OTc1NGIy
MGZkOWQxODA5ODk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yNjEs
NiArMjYxLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93V2lk
dGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q28KICAgICBkaXNwbGF5Qm94LnNldENv
bnRlbnRCb3hXaWR0aCh3aWR0aEFuZE1hcmdpbi53aWR0aCk7CiAgICAgZGlzcGxheUJveC5tb3Zl
SG9yaXpvbnRhbGx5KHdpZHRoQW5kTWFyZ2luLm1hcmdpbi5sZWZ0KTsKICAgICBkaXNwbGF5Qm94
LnNldEhvcml6b250YWxNYXJnaW4od2lkdGhBbmRNYXJnaW4ubWFyZ2luKTsKKyAgICBkaXNwbGF5
Qm94LnNldEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbih3aWR0aEFuZE1hcmdpbi5ub25Db21w
dXRlZE1hcmdpbik7CiB9CiAKIEZvcm1hdHRpbmdDb250ZXh0OjpJbnN0cmluc2ljV2lkdGhDb25z
dHJhaW50cyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjppbnN0cmluc2ljV2lkdGhDb25zdHJhaW50
cyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCBi
ODE0MmQ4ZDhjZDNhZTY5NjFlN2M2NzdjYTRmMzYzMDU3Yjk0MWQ1Li40Yjk2Nzg5ZTM0Yzc1Y2I0
NjUyODU2ZjNiY2NkYmViNzRiMWNmY2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xODksNiArMTg5LDggQEAgV2lkdGhBbmRNYXJnaW4gQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRN
YXJnaW4KICAgICAgICAgYXV0byB3aWR0aCA9IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
Y29tcHV0ZWRWYWx1ZUlmTm90QXV0byhwcmVjb21wdXRlZFdpZHRoID8gTGVuZ3RoIHsgcHJlY29t
cHV0ZWRXaWR0aC52YWx1ZSgpLCBGaXhlZCB9IDogc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRh
aW5pbmdCbG9ja1dpZHRoKTsKICAgICAgICAgYXV0byBtYXJnaW5MZWZ0ID0gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpbkxlZnQo
KSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgICAgICBhdXRvIG1hcmdpblJpZ2h0ID0gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1h
cmdpblJpZ2h0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICAgICAgYXV0byBub25Db21w
dXRlZE1hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0LnZhbHVlX29yKDApOworICAgICAgICBhdXRvIG5v
bkNvbXB1dGVkTWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC52YWx1ZV9vcigwKTsKICAgICAgICAg
YXV0byBib3JkZXJMZWZ0ID0gZGlzcGxheUJveC5ib3JkZXJMZWZ0KCk7CiAgICAgICAgIGF1dG8g
Ym9yZGVyUmlnaHQgPSBkaXNwbGF5Qm94LmJvcmRlclJpZ2h0KCk7CiAgICAgICAgIGF1dG8gcGFk
ZGluZ0xlZnQgPSBkaXNwbGF5Qm94LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMCk7CkBAIC0yMzYs
NyArMjM4LDcgQEAgV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4KICAgICAgICAgQVNTRVJUKG1hcmdp
bkxlZnQpOwogICAgICAgICBBU1NFUlQobWFyZ2luUmlnaHQpOwogCi0gICAgICAgIHJldHVybiBX
aWR0aEFuZE1hcmdpbiB7ICp3aWR0aCwgeyAqbWFyZ2luTGVmdCwgKm1hcmdpblJpZ2h0IH0gfTsK
KyAgICAgICAgcmV0dXJuIFdpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB7ICptYXJnaW5MZWZ0LCAq
bWFyZ2luUmlnaHQgfSwgeyBub25Db21wdXRlZE1hcmdpbkxlZnQsIG5vbkNvbXB1dGVkTWFyZ2lu
UmlnaHQgfSB9OwogICAgIH07CiAKICAgICBhdXRvIHdpZHRoQW5kTWFyZ2luID0gY29tcHV0ZSgp
OwpAQCAtMjY0LDEwICsyNjYsMTAgQEAgV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGEKICAgICAvLyAj
MQogICAgIGF1dG8gd2lkdGggPSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KS53aWR0aDsKICAg
ICAvLyAjMgotICAgIGF1dG8gbWFyZ2luID0gaW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdp
bihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHdpZHRoKS5tYXJnaW47CisgICAgYXV0byBub25S
ZXBsYWNlZFdpZHRoQW5kTWFyZ2luID0gaW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihs
YXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHdpZHRoKTsKIAotICAgIExPR19XSVRIX1NUUkVBTShG
b3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdpbl0gLT4gaW5m
bG93IHJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgd2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCBtYXJn
aW4ubGVmdCA8PCAicHgsICIgPDwgbWFyZ2luLmxlZnQgPDwgInB4KSAtPiBsYXlvdXRCb3goIiA8
PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgcmV0dXJuIHsgd2lkdGgsIG1hcmdpbiB9OworICAg
IExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lk
dGhdW01hcmdpbl0gLT4gaW5mbG93IHJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgd2lkdGggPDwgInB4
KSBtYXJnaW4oIiA8PCBub25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luLm1hcmdpbi5sZWZ0IDw8ICJw
eCwgIiA8PCBub25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luLm1hcmdpbi5yaWdodCA8PCAicHgpIC0+
IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKKyAgICByZXR1cm4geyB3aWR0aCwg
bm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbi5tYXJnaW4sIG5vblJlcGxhY2VkV2lkdGhBbmRNYXJn
aW4ubm9uQ29tcHV0ZWRNYXJnaW4gfTsKIH0KIAogUG9zaXRpb24gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OnN0YXRpY1Bvc2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNw
bGF5dHJlZS9EaXNwbGF5Qm94LmgKaW5kZXggZTU4ZjQ4NjljYjJkOGU1YTBmNzZkZWZlZmEwNmNj
ZDZiYTJjZDI2MS4uYWVmMjRlNDc5N2QwMGEzZjcxMDJiNTgxM2M1ZDQwMmY5Y2JkZDAyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCkBAIC0x
NDIsNiArMTQyLDkgQEAgcHVibGljOgogCiAgICAgTGF5b3V0VW5pdCBub25Db2xsYXBzZWRNYXJn
aW5Ub3AoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IG5vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbSgp
IGNvbnN0OworICAgIExheW91dFVuaXQgbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0KCkgY29uc3Q7Cisg
ICAgTGF5b3V0VW5pdCBub25Db21wdXRlZE1hcmdpblJpZ2h0KCkgY29uc3Q7CisKICAgICBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IGVzdGltYXRlZE1hcmdpblRvcCgpIGNvbnN0IHsgcmV0dXJu
IG1fZXN0aW1hdGVkTWFyZ2luVG9wOyB9CiAKICAgICBMYXlvdXRVbml0IGJvcmRlclRvcCgpIGNv
bnN0OwpAQCAtMTg5LDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRIb3Jpem9udGFs
TWFyZ2luKExheW91dDo6SG9yaXpvbnRhbEVkZ2VzKTsKICAgICB2b2lkIHNldFZlcnRpY2FsTWFy
Z2luKExheW91dDo6VmVydGljYWxFZGdlcyk7CiAgICAgdm9pZCBzZXRWZXJ0aWNhbE5vbkNvbGxh
cHNlZE1hcmdpbihMYXlvdXQ6OlZlcnRpY2FsRWRnZXMpOworICAgIHZvaWQgc2V0SG9yaXpvbnRh
bE5vbkNvbXB1dGVkTWFyZ2luKExheW91dDo6SG9yaXpvbnRhbEVkZ2VzKTsKICAgICB2b2lkIHNl
dEVzdGltYXRlZE1hcmdpblRvcChMYXlvdXRVbml0IG1hcmdpblRvcCkgeyBtX2VzdGltYXRlZE1h
cmdpblRvcCA9IG1hcmdpblRvcDsgfQogCiAgICAgdm9pZCBzZXRCb3JkZXIoTGF5b3V0OjpFZGdl
cyk7CkBAIC0yMDMsNiArMjA3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEhhc1ZhbGlkTGVm
dCgpIHsgbV9oYXNWYWxpZExlZnQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRIYXNWYWxpZFZlcnRp
Y2FsTWFyZ2luKCkgeyBtX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4gPSB0cnVlOyB9CiAgICAgdm9p
ZCBzZXRIYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKCkgeyBtX2hhc1ZhbGlkVmVy
dGljYWxOb25Db2xsYXBzZWRNYXJnaW4gPSB0cnVlOyB9CisgICAgdm9pZCBzZXRIYXNWYWxpZEhv
cml6b250YWxOb25Db21wdXRlZE1hcmdpbigpIHsgbV9oYXNWYWxpZEhvcml6b250YWxOb25Db21w
dXRlZE1hcmdpbiA9IHRydWU7IH0KICAgICB2b2lkIHNldEhhc1ZhbGlkSG9yaXpvbnRhbE1hcmdp
bigpIHsgbV9oYXNWYWxpZEhvcml6b250YWxNYXJnaW4gPSB0cnVlOyB9CiAKICAgICB2b2lkIHNl
dEhhc1ZhbGlkQm9yZGVyKCkgeyBtX2hhc1ZhbGlkQm9yZGVyID0gdHJ1ZTsgfQpAQCAtMjIwLDYg
KzIyNSw3IEBAIHByaXZhdGU6CiAKICAgICBMYXlvdXQ6OkVkZ2VzIG1fbWFyZ2luOwogICAgIExh
eW91dDo6VmVydGljYWxFZGdlcyBtX3ZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luOworICAgIExh
eW91dDo6SG9yaXpvbnRhbEVkZ2VzIG1faG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luOwogICAg
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbV9lc3RpbWF0ZWRNYXJnaW5Ub3A7CiAKICAgICBM
YXlvdXQ6OkVkZ2VzIG1fYm9yZGVyOwpAQCAtMjMxLDYgKzIzNyw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2hhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hh
c1ZhbGlkVmVydGljYWxNYXJnaW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNWYWxpZFZlcnRp
Y2FsTm9uQ29sbGFwc2VkTWFyZ2luIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzVmFsaWRIb3Jp
em9udGFsTm9uQ29tcHV0ZWRNYXJnaW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNWYWxpZEJv
cmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZhbGlkUGFkZGluZyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2hhc1ZhbGlkQ29udGVudEhlaWdodCB7IGZhbHNlIH07CkBAIC01MjQsNiArNTMx
LDE0IEBAIGlubGluZSB2b2lkIEJveDo6c2V0VmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4oTGF5
b3V0OjpWZXJ0aWNhbEVkZ2VzIG1hcmdpbikKICAgICBtX3ZlcnRpY2FsTm9uQ29sbGFwc2VkTWFy
Z2luID0gbWFyZ2luOwogfQogCitpbmxpbmUgdm9pZCBCb3g6OnNldEhvcml6b250YWxOb25Db21w
dXRlZE1hcmdpbihMYXlvdXQ6Okhvcml6b250YWxFZGdlcyBtYXJnaW4pCit7CisjaWYgIUFTU0VS
VF9ESVNBQkxFRAorICAgIHNldEhhc1ZhbGlkSG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luKCk7
CisjZW5kaWYKKyAgICBtX2hvcml6b250YWxOb25Db21wdXRlZE1hcmdpbiA9IG1hcmdpbjsKK30K
KwogaW5saW5lIHZvaWQgQm94OjpzZXRCb3JkZXIoTGF5b3V0OjpFZGdlcyBib3JkZXIpCiB7CiAj
aWYgIUFTU0VSVF9ESVNBQkxFRApAQCAtNTc2LDYgKzU5MSwxOCBAQCBpbmxpbmUgTGF5b3V0VW5p
dCBCb3g6Om5vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fdmVy
dGljYWxOb25Db2xsYXBzZWRNYXJnaW4uYm90dG9tOwogfQogCitpbmxpbmUgTGF5b3V0VW5pdCBC
b3g6Om5vbkNvbXB1dGVkTWFyZ2luTGVmdCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFs
aWRIb3Jpem9udGFsTm9uQ29tcHV0ZWRNYXJnaW4pOworICAgIHJldHVybiBtX2hvcml6b250YWxO
b25Db21wdXRlZE1hcmdpbi5sZWZ0OworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBCb3g6Om5vbkNv
bXB1dGVkTWFyZ2luUmlnaHQoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkSG9yaXpv
bnRhbE5vbkNvbXB1dGVkTWFyZ2luKTsKKyAgICByZXR1cm4gbV9ob3Jpem9udGFsTm9uQ29tcHV0
ZWRNYXJnaW4ucmlnaHQ7Cit9CisKIGlubGluZSBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IEJv
eDo6cGFkZGluZ1RvcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1faGFzVmFsaWRQYWRkaW5nKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348482</attachid>
            <date>2018-08-29 21:15:35 -0700</date>
            <delta_ts>2018-08-30 06:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189141-20180829211534.patch</filename>
            <type>text/plain</type>
            <size>18325</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNkMTY1NmMzZmJkMjg3
OWYyNWI1ZmFjNTI3NGY5NmZkYjA0YTNjYS4uNWQzZWE0NGUyNzE0NGI5MmE2ZTU5ZDg3NTM3Y2Ux
ODBiYzkxYTk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA4LTI5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bTWFyZ2luc10gQWRk
IG5vbi1jb21wdXRlZCBob3Jpem9udGFsIG1hcmdpbnMgdG8gRGlzcGxheUJveAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MTQxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5mbG93IGJsb2NrIGJveGVz
JyBob3Jpem9udGFsIG1hcmdpbnMgZXh0ZW5kIGFsbCB0aGUgd2F5IHRvIHRoZSBsZWZ0L3JpZ2h0
IGVkZ2Ugb2YgdGhlaXIgY29udGFpbmluZyBibG9jay4KKyAgICAgICAgU2VlIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9DU1MyMi92aXN1ZGV0Lmh0bWwjYmxvY2t3aWR0aCBmb3IgZXhhbXBsZQorICAg
ICAgICAiLi4uCisgICAgICAgIDEwLjMuMyBCbG9jay1sZXZlbCwgbm9uLXJlcGxhY2VkIGVsZW1l
bnRzIGluIG5vcm1hbCBmbG93CisgICAgICAgICdtYXJnaW4tbGVmdCcgKyAnYm9yZGVyLWxlZnQt
d2lkdGgnICsgJ3BhZGRpbmctbGVmdCcgKyAnd2lkdGgnICsgJ3BhZGRpbmctcmlnaHQnICsgJ2Jv
cmRlci1yaWdodC13aWR0aCcgKyAnbWFyZ2luLXJpZ2h0JyA9IHdpZHRoIG9mIGNvbnRhaW5pbmcg
YmxvY2sKKyAgICAgICAgLi4uIgorCisgICAgICAgIEluIGNlcnRhaW4gY2FzZXMgKGZsb2F0IGF2
b2lkaW5nKSB3ZSBuZWVkIHRvIGtub3cgdGhlIG9yaWdpbmFsIChub24tZXh0ZW5kZWQpIGhvcml6
dG9uYWwgbWFyZ2luIHZhbHVlcy4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlRmxvYXRpbmdXaWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2Vk
SG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omlu
bGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6aW5pdGlh
bGl6ZVJvb3QpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRVbml0cy5oOgorICAgICAgICAqIGxh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbkZsb3dX
aWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRX
aWR0aEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAg
ICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhvcml6b250YWxOb25Db21wdXRlZE1h
cmdpbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6Om5vbkNvbXB1dGVkTWFyZ2lu
TGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6Om5vbkNvbXB1dGVk
TWFyZ2luUmlnaHQgY29uc3QpOgorCiAyMDE4LTA4LTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bRmxvYXRpbmddIEludHJvZHVjZSBGbG9hdEJveCwg
YSBGbG9hdEF2b2lkZXIgc3ViY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCBkZTQ4MDA5NDAyMjZhMDJlMTAyZjcyNWE0ZGZhYjQ5ZWYyZTY2
OTllLi42ZjJjNWM3NzEyOTRmMzczMzkwNDk4NmY4NGZkNzZmNjFlOGY3MzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTY3LDYgKzY3LDcgQEAg
dm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5nV2lkdGhBbmRNYXJnaW4oTGF5
b3V0Q29udGV4dCYgbGF5b3V0Q29udGUKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0
aCh3aWR0aEFuZE1hcmdpbi53aWR0aCk7CiAgICAgZGlzcGxheUJveC5tb3ZlSG9yaXpvbnRhbGx5
KHdpZHRoQW5kTWFyZ2luLm1hcmdpbi5sZWZ0KTsKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250
YWxNYXJnaW4od2lkdGhBbmRNYXJnaW4ubWFyZ2luKTsKKyAgICBkaXNwbGF5Qm94LnNldEhvcml6
b250YWxOb25Db21wdXRlZE1hcmdpbih3aWR0aEFuZE1hcmdpbi5ub25Db21wdXRlZE1hcmdpbik7
CiB9CiAKIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFs
R2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKQEAgLTc1LDYgKzc2LDcgQEAgdm9p
ZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShM
YXlvdXRDb250ZXh0JiBsYXlvdXQKICAgICBkaXNwbGF5Qm94LnNldExlZnQoaG9yaXpvbnRhbEdl
b21ldHJ5LmxlZnQgKyBob3Jpem9udGFsR2VvbWV0cnkud2lkdGhBbmRNYXJnaW4ubWFyZ2luLmxl
ZnQpOwogICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKGhvcml6b250YWxHZW9tZXRy
eS53aWR0aEFuZE1hcmdpbi53aWR0aCk7CiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsTWFy
Z2luKGhvcml6b250YWxHZW9tZXRyeS53aWR0aEFuZE1hcmdpbi5tYXJnaW4pOworICAgIGRpc3Bs
YXlCb3guc2V0SG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luKGhvcml6b250YWxHZW9tZXRyeS53
aWR0aEFuZE1hcmdpbi5ub25Db21wdXRlZE1hcmdpbik7CiB9CiAKIHZvaWQgRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KExheW91dENvbnRleHQmIGxh
eW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlC
b3gpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHRHZW9tZXRyeS5jcHAKaW5kZXggY2M2ZDgwYTI5MGJkNzI4NzA3NjQ5YjQ0NGI0NTU4YzY3MjJk
N2E2Zi4uMDc2ZTc0NjYzNTNhYWNhODgzZTQwY2UyYmY1ODQ5MDRkNDA0ZWE1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApA
QCAtMzE1LDYgKzMxNSw4IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlCiAgICAgYXV0byB3aWR0
aCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRhaW5p
bmdCbG9ja1dpZHRoKTsKICAgICBhdXRvIG1hcmdpbkxlZnQgPSBjb21wdXRlZFZhbHVlSWZOb3RB
dXRvKHN0eWxlLm1hcmdpbkxlZnQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgIGF1dG8g
bWFyZ2luUmlnaHQgPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblJpZ2h0KCks
IGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICBhdXRvIG5vbkNvbXB1dGVkTWFyZ2luTGVmdCA9
IG1hcmdpbkxlZnQudmFsdWVfb3IoMCk7CisgICAgYXV0byBub25Db21wdXRlZE1hcmdpblJpZ2h0
ID0gbWFyZ2luUmlnaHQudmFsdWVfb3IoMCk7CiAgICAgYXV0byBwYWRkaW5nTGVmdCA9IGRpc3Bs
YXlCb3gucGFkZGluZ0xlZnQoKS52YWx1ZV9vcigwKTsKICAgICBhdXRvIHBhZGRpbmdSaWdodCA9
IGRpc3BsYXlCb3gucGFkZGluZ1JpZ2h0KCkudmFsdWVfb3IoMCk7CiAgICAgYXV0byBib3JkZXJM
ZWZ0ID0gZGlzcGxheUJveC5ib3JkZXJMZWZ0KCk7CkBAIC00MTUsNyArNDE3LDcgQEAgSG9yaXpv
bnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVw
bGFjZWRIb3Jpem9udGFsR2UKICAgICBBU1NFUlQobWFyZ2luUmlnaHQpOwogCiAgICAgTE9HX1dJ
VEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltQb3NpdGlvbl1b
V2lkdGhdW01hcmdpbl0gLT4gb3V0LW9mLWZsb3cgbm9uLXJlcGxhY2VkIC0+IGxlZnQoIiA8PCAq
bGVmdCA8PCAicHgpIHJpZ2h0KCIgIDw8ICpyaWdodCA8PCAicHgpIHdpZHRoKCIgPDwgKndpZHRo
IDw8ICJweCkgbWFyZ2luKCIgPDwgKm1hcmdpbkxlZnQgPDwgInB4LCAiICA8PCAqbWFyZ2luUmln
aHQgPDwgInB4KSBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgcmV0dXJu
IHsgKmxlZnQsICpyaWdodCwgeyAqd2lkdGgsIHsgKm1hcmdpbkxlZnQsICptYXJnaW5SaWdodCB9
IH0gfTsKKyAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7ICp3aWR0aCwgeyAqbWFyZ2luTGVm
dCwgKm1hcmdpblJpZ2h0IH0sIHtub25Db21wdXRlZE1hcmdpbkxlZnQsIG5vbkNvbXB1dGVkTWFy
Z2luUmlnaHQgfSB9IH07CiB9CiAKIFZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkoTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCkBAIC01MTUsNiArNTE3LDgg
QEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZG
bG93UmVwbGFjZWRIb3Jpem9udGFsR2VvbWUKICAgICBhdXRvIHJpZ2h0ID0gY29tcHV0ZWRWYWx1
ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwog
ICAgIGF1dG8gbWFyZ2luTGVmdCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2lu
TGVmdCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgYXV0byBtYXJnaW5SaWdodCA9IGNv
bXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luUmlnaHQoKSwgY29udGFpbmluZ0Jsb2Nr
V2lkdGgpOworICAgIGF1dG8gbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdC52YWx1
ZV9vcigwKTsKKyAgICBhdXRvIG5vbkNvbXB1dGVkTWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC52
YWx1ZV9vcigwKTsKICAgICBhdXRvIHdpZHRoID0gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdp
bihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpLndpZHRoOwogICAgIGF1dG8gcGFkZGluZ0xlZnQg
PSBkaXNwbGF5Qm94LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMCk7CiAgICAgYXV0byBwYWRkaW5n
UmlnaHQgPSBkaXNwbGF5Qm94LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDApOwpAQCAtNTgwLDcg
KzU4NCw3IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
Om91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21lCiAgICAgQVNTRVJUKG1hcmdpblJpZ2h0
KTsKIAogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFt
IDw8ICJbUG9zaXRpb25dW1dpZHRoXVtNYXJnaW5dIC0+IG91dC1vZi1mbG93IHJlcGxhY2VkIC0+
IGxlZnQoIiA8PCAqbGVmdCA8PCAicHgpIHJpZ2h0KCIgIDw8ICpyaWdodCA8PCAicHgpIHdpZHRo
KCIgPDwgd2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCAqbWFyZ2luTGVmdCA8PCAicHgsICIgIDw8
ICptYXJnaW5SaWdodCA8PCAicHgpIGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsK
LSAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7IHdpZHRoLCB7ICptYXJnaW5MZWZ0LCAqbWFy
Z2luUmlnaHQgfSB9IH07CisgICAgcmV0dXJuIHsgKmxlZnQsICpyaWdodCwgeyB3aWR0aCwgeyAq
bWFyZ2luTGVmdCwgKm1hcmdpblJpZ2h0IH0sIHsgbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0LCBub25D
b21wdXRlZE1hcmdpblJpZ2h0IH0gfSB9OwogfQogCiBIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wbGljYXRlZENhc2VzKExheW91dENvbnRleHQmIGxheW91
dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpAQCAtNjQ2LDcgKzY1MCw3IEBAIFdpZHRo
QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNl
ZFdpZHRoQW5kTWFyZ2luKExhCiAgICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChsYXlv
dXRDb250ZXh0LCBmb3JtYXR0aW5nQ29udGV4dCwgbGF5b3V0Qm94KTsKIAogICAgIExPR19XSVRI
X1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdp
bl0gLT4gZmxvYXRpbmcgbm9uLXJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgKndpZHRoIDw8ICJweCkg
bWFyZ2luKCIgPDwgbWFyZ2luLmxlZnQgPDwgInB4LCAiIDw8IG1hcmdpbi5yaWdodCA8PCAicHgp
IC0+IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKLSAgICByZXR1cm4gV2lkdGhB
bmRNYXJnaW4geyAqd2lkdGgsIG1hcmdpbiB9OworICAgIHJldHVybiBXaWR0aEFuZE1hcmdpbiB7
ICp3aWR0aCwgbWFyZ2luLCBtYXJnaW4gfTsKIH0KIAogSGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKQEAgLTgwNSw2
ICs4MDksOCBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omlu
bGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0QwogCiAgICAgYXV0byBtYXJnaW5MZWZ0
ID0gY29tcHV0ZU1hcmdpbkxlZnQoKTsKICAgICBhdXRvIG1hcmdpblJpZ2h0ID0gY29tcHV0ZU1h
cmdpblJpZ2h0KCk7CisgICAgYXV0byBub25Db21wdXRlZE1hcmdpbkxlZnQgPSBjb21wdXRlZFZh
bHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpbkxlZnQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpLnZh
bHVlX29yKDApOworICAgIGF1dG8gbm9uQ29tcHV0ZWRNYXJnaW5SaWdodCA9IGNvbXB1dGVkVmFs
dWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpLnZh
bHVlX29yKDApOwogICAgIGF1dG8gd2lkdGggPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxl
LmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAKICAgICBhdXRvIGhlaWdo
dElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTgzNCw3ICs4NDAs
NyBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0QwogICAgIEFTU0VSVCh3aWR0aCk7CiAKICAgICBM
T0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW1dpZHRo
XVtNYXJnaW5dIC0+IGluZmxvdyByZXBsYWNlZCAtPiB3aWR0aCgiIDw8ICp3aWR0aCA8PCAicHgp
IG1hcmdpbigiIDw8IG1hcmdpbkxlZnQgPDwgInB4LCAiIDw8IG1hcmdpblJpZ2h0IDw8ICJweCkg
LT4gbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOwotICAgIHJldHVybiB7ICp3aWR0
aCwgeyBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodCB9IH07CisgICAgcmV0dXJuIHsgKndpZHRoLCB7
IG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0sIHsgbm9uQ29tcHV0ZWRNYXJnaW5MZWZ0LCBub25D
b21wdXRlZE1hcmdpblJpZ2h0IH0gfTsKIH0KIAogRWRnZXMgRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5Ojpjb21wdXRlZEJvcmRlcihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiBsYXlvdXRC
b3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggM2NiNmY5ZDVm
Y2E2ZTY2MTk0NTUwNDY3MDUyOGNlNjdhYjQyNzNmOC4uNTUyYTc3OTRhM2Y4NzUyMmIxY2JmZTM5
Y2VjZDRiMzEzNDkyMmYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cApAQCAtNTgsNiArNTgsNyBAQCB2b2lkIExheW91dENvbnRleHQ6OmluaXRpYWxpemVSb290KGNv
bnN0IENvbnRhaW5lciYgcm9vdCwgY29uc3QgTGF5b3V0U2l6ZSYgY29udAogCiAgICAgLy8gRklY
TUU6IG1fcm9vdCBjb3VsZCB2ZXJ5IHdlbGwgYmUgYSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCB3
aXRoIGFuY2VzdG9ycyBhbmQgcmVzb2x2YWJsZSBib3JkZXIgYW5kIHBhZGRpbmcgKGFzIG9wcG9z
ZWQgdG8gdGhlIHRvcG1vc3Qgcm9vdCkKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJn
aW4oeyB9KTsKKyAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbih7
IH0pOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyB9KTsKICAgICBkaXNwbGF5
Qm94LnNldFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5z
ZXRCb3JkZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRV
bml0cy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKaW5kZXggMWI2MWVk
YjM3MjIzMTNmZWMyZWU0YzBhMTg0MmQ0NzkyZGY3ZmIxZC4uNGE5MjVjOWFmOWQ1OTFiMWNhZmZi
OWNkMzgxNDQzYTM0YzYzZjQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xh
eW91dFVuaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKQEAg
LTg5LDYgKzg5LDcgQEAgc3RydWN0IEVkZ2VzIHsKIHN0cnVjdCBXaWR0aEFuZE1hcmdpbiB7CiAg
ICAgTGF5b3V0VW5pdCB3aWR0aDsKICAgICBIb3Jpem9udGFsRWRnZXMgbWFyZ2luOworICAgIEhv
cml6b250YWxFZGdlcyBub25Db21wdXRlZE1hcmdpbjsKIH07CiAKIHN0cnVjdCBIZWlnaHRBbmRN
YXJnaW4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNmVkYmQ5ZWUwMDJi
YzBlNGRhOGE5MGIwODFlZGM3ZDM5M2Y1OTZmNy4uMjdhMWI0YzJjNGYzMjQ3ZGM5YWI0OTc1NGIy
MGZkOWQxODA5ODk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yNjEs
NiArMjYxLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93V2lk
dGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q28KICAgICBkaXNwbGF5Qm94LnNldENv
bnRlbnRCb3hXaWR0aCh3aWR0aEFuZE1hcmdpbi53aWR0aCk7CiAgICAgZGlzcGxheUJveC5tb3Zl
SG9yaXpvbnRhbGx5KHdpZHRoQW5kTWFyZ2luLm1hcmdpbi5sZWZ0KTsKICAgICBkaXNwbGF5Qm94
LnNldEhvcml6b250YWxNYXJnaW4od2lkdGhBbmRNYXJnaW4ubWFyZ2luKTsKKyAgICBkaXNwbGF5
Qm94LnNldEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbih3aWR0aEFuZE1hcmdpbi5ub25Db21w
dXRlZE1hcmdpbik7CiB9CiAKIEZvcm1hdHRpbmdDb250ZXh0OjpJbnN0cmluc2ljV2lkdGhDb25z
dHJhaW50cyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjppbnN0cmluc2ljV2lkdGhDb25zdHJhaW50
cyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCBi
ODE0MmQ4ZDhjZDNhZTY5NjFlN2M2NzdjYTRmMzYzMDU3Yjk0MWQ1Li40Yjk2Nzg5ZTM0Yzc1Y2I0
NjUyODU2ZjNiY2NkYmViNzRiMWNmY2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xODksNiArMTg5LDggQEAgV2lkdGhBbmRNYXJnaW4gQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRN
YXJnaW4KICAgICAgICAgYXV0byB3aWR0aCA9IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
Y29tcHV0ZWRWYWx1ZUlmTm90QXV0byhwcmVjb21wdXRlZFdpZHRoID8gTGVuZ3RoIHsgcHJlY29t
cHV0ZWRXaWR0aC52YWx1ZSgpLCBGaXhlZCB9IDogc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRh
aW5pbmdCbG9ja1dpZHRoKTsKICAgICAgICAgYXV0byBtYXJnaW5MZWZ0ID0gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpbkxlZnQo
KSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgICAgICBhdXRvIG1hcmdpblJpZ2h0ID0gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1h
cmdpblJpZ2h0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICAgICAgYXV0byBub25Db21w
dXRlZE1hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0LnZhbHVlX29yKDApOworICAgICAgICBhdXRvIG5v
bkNvbXB1dGVkTWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC52YWx1ZV9vcigwKTsKICAgICAgICAg
YXV0byBib3JkZXJMZWZ0ID0gZGlzcGxheUJveC5ib3JkZXJMZWZ0KCk7CiAgICAgICAgIGF1dG8g
Ym9yZGVyUmlnaHQgPSBkaXNwbGF5Qm94LmJvcmRlclJpZ2h0KCk7CiAgICAgICAgIGF1dG8gcGFk
ZGluZ0xlZnQgPSBkaXNwbGF5Qm94LnBhZGRpbmdMZWZ0KCkudmFsdWVfb3IoMCk7CkBAIC0yMzYs
NyArMjM4LDcgQEAgV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4KICAgICAgICAgQVNTRVJUKG1hcmdp
bkxlZnQpOwogICAgICAgICBBU1NFUlQobWFyZ2luUmlnaHQpOwogCi0gICAgICAgIHJldHVybiBX
aWR0aEFuZE1hcmdpbiB7ICp3aWR0aCwgeyAqbWFyZ2luTGVmdCwgKm1hcmdpblJpZ2h0IH0gfTsK
KyAgICAgICAgcmV0dXJuIFdpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB7ICptYXJnaW5MZWZ0LCAq
bWFyZ2luUmlnaHQgfSwgeyBub25Db21wdXRlZE1hcmdpbkxlZnQsIG5vbkNvbXB1dGVkTWFyZ2lu
UmlnaHQgfSB9OwogICAgIH07CiAKICAgICBhdXRvIHdpZHRoQW5kTWFyZ2luID0gY29tcHV0ZSgp
OwpAQCAtMjY0LDEwICsyNjYsMTAgQEAgV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGEKICAgICAvLyAj
MQogICAgIGF1dG8gd2lkdGggPSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KS53aWR0aDsKICAg
ICAvLyAjMgotICAgIGF1dG8gbWFyZ2luID0gaW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdp
bihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHdpZHRoKS5tYXJnaW47CisgICAgYXV0byBub25S
ZXBsYWNlZFdpZHRoQW5kTWFyZ2luID0gaW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihs
YXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIHdpZHRoKTsKIAotICAgIExPR19XSVRIX1NUUkVBTShG
b3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdpbl0gLT4gaW5m
bG93IHJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgd2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCBtYXJn
aW4ubGVmdCA8PCAicHgsICIgPDwgbWFyZ2luLmxlZnQgPDwgInB4KSAtPiBsYXlvdXRCb3goIiA8
PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgcmV0dXJuIHsgd2lkdGgsIG1hcmdpbiB9OworICAg
IExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lk
dGhdW01hcmdpbl0gLT4gaW5mbG93IHJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgd2lkdGggPDwgInB4
KSBtYXJnaW4oIiA8PCBub25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luLm1hcmdpbi5sZWZ0IDw8ICJw
eCwgIiA8PCBub25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luLm1hcmdpbi5yaWdodCA8PCAicHgpIC0+
IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKKyAgICByZXR1cm4geyB3aWR0aCwg
bm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbi5tYXJnaW4sIG5vblJlcGxhY2VkV2lkdGhBbmRNYXJn
aW4ubm9uQ29tcHV0ZWRNYXJnaW4gfTsKIH0KIAogUG9zaXRpb24gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OnN0YXRpY1Bvc2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCmluZGV4IDcxOGIxNmVhZjUwMjNkYzRiMTBlOTE5YWEz
ZGM0NzBmMjcwYTk5OGEuLjE1MzQ3OTNiNzhiYmEzZWQyM2I2MGE1ZDgyYmFjNjBhY2JkMWJkMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5j
cHAKQEAgLTU5LDYgKzU5LDcgQEAgQm94OjpCb3goY29uc3QgQm94JiBvdGhlcikKICAgICAsIG1f
Y29udGVudEhlaWdodChvdGhlci5tX2NvbnRlbnRIZWlnaHQpCiAgICAgLCBtX21hcmdpbihvdGhl
ci5tX21hcmdpbikKICAgICAsIG1fdmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4ob3RoZXIubV92
ZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbikKKyAgICAsIG1faG9yaXpvbnRhbE5vbkNvbXB1dGVk
TWFyZ2luKG90aGVyLm1faG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luKQogICAgICwgbV9lc3Rp
bWF0ZWRNYXJnaW5Ub3Aob3RoZXIubV9lc3RpbWF0ZWRNYXJnaW5Ub3ApCiAgICAgLCBtX2JvcmRl
cihvdGhlci5tX2JvcmRlcikKICAgICAsIG1fcGFkZGluZyhvdGhlci5tX3BhZGRpbmcpCkBAIC02
OCw2ICs2OSw3IEBAIEJveDo6Qm94KGNvbnN0IEJveCYgb3RoZXIpCiAgICAgLCBtX2hhc1ZhbGlk
SG9yaXpvbnRhbE1hcmdpbihvdGhlci5tX2hhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbikKICAgICAs
IG1faGFzVmFsaWRWZXJ0aWNhbE1hcmdpbihvdGhlci5tX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4p
CiAgICAgLCBtX2hhc1ZhbGlkVmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4ob3RoZXIubV9oYXNW
YWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKQorICAgICwgbV9oYXNWYWxpZEhvcml6b250
YWxOb25Db21wdXRlZE1hcmdpbihvdGhlci5tX2hhc1ZhbGlkSG9yaXpvbnRhbE5vbkNvbXB1dGVk
TWFyZ2luKQogICAgICwgbV9oYXNWYWxpZEJvcmRlcihvdGhlci5tX2hhc1ZhbGlkQm9yZGVyKQog
ICAgICwgbV9oYXNWYWxpZFBhZGRpbmcob3RoZXIubV9oYXNWYWxpZFBhZGRpbmcpCiAgICAgLCBt
X2hhc1ZhbGlkQ29udGVudEhlaWdodChvdGhlci5tX2hhc1ZhbGlkQ29udGVudEhlaWdodCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCmluZGV4IGU1
OGY0ODY5Y2IyZDhlNWEwZjc2ZGVmZWZhMDZjY2Q2YmEyY2QyNjEuLmFlZjI0ZTQ3OTdkMDBhM2Y3
MTAyYjU4MTNjNWQ0MDJmOWNiZGQwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlCb3guaApAQCAtMTQyLDYgKzE0Miw5IEBAIHB1YmxpYzoKIAogICAg
IExheW91dFVuaXQgbm9uQ29sbGFwc2VkTWFyZ2luVG9wKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5p
dCBub25Db2xsYXBzZWRNYXJnaW5Cb3R0b20oKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IG5vbkNv
bXB1dGVkTWFyZ2luTGVmdCgpIGNvbnN0OworICAgIExheW91dFVuaXQgbm9uQ29tcHV0ZWRNYXJn
aW5SaWdodCgpIGNvbnN0OworCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0
ZWRNYXJnaW5Ub3AoKSBjb25zdCB7IHJldHVybiBtX2VzdGltYXRlZE1hcmdpblRvcDsgfQogCiAg
ICAgTGF5b3V0VW5pdCBib3JkZXJUb3AoKSBjb25zdDsKQEAgLTE4OSw2ICsxOTIsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0SG9yaXpvbnRhbE1hcmdpbihMYXlvdXQ6Okhvcml6b250YWxFZGdl
cyk7CiAgICAgdm9pZCBzZXRWZXJ0aWNhbE1hcmdpbihMYXlvdXQ6OlZlcnRpY2FsRWRnZXMpOwog
ICAgIHZvaWQgc2V0VmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4oTGF5b3V0OjpWZXJ0aWNhbEVk
Z2VzKTsKKyAgICB2b2lkIHNldEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbihMYXlvdXQ6Okhv
cml6b250YWxFZGdlcyk7CiAgICAgdm9pZCBzZXRFc3RpbWF0ZWRNYXJnaW5Ub3AoTGF5b3V0VW5p
dCBtYXJnaW5Ub3ApIHsgbV9lc3RpbWF0ZWRNYXJnaW5Ub3AgPSBtYXJnaW5Ub3A7IH0KIAogICAg
IHZvaWQgc2V0Qm9yZGVyKExheW91dDo6RWRnZXMpOwpAQCAtMjAzLDYgKzIwNyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRIYXNWYWxpZExlZnQoKSB7IG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0SGFzVmFsaWRWZXJ0aWNhbE1hcmdpbigpIHsgbV9oYXNWYWxpZFZlcnRp
Y2FsTWFyZ2luID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0SGFzVmFsaWRWZXJ0aWNhbE5vbkNvbGxh
cHNlZE1hcmdpbigpIHsgbV9oYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luID0gdHJ1
ZTsgfQorICAgIHZvaWQgc2V0SGFzVmFsaWRIb3Jpem9udGFsTm9uQ29tcHV0ZWRNYXJnaW4oKSB7
IG1faGFzVmFsaWRIb3Jpem9udGFsTm9uQ29tcHV0ZWRNYXJnaW4gPSB0cnVlOyB9CiAgICAgdm9p
ZCBzZXRIYXNWYWxpZEhvcml6b250YWxNYXJnaW4oKSB7IG1faGFzVmFsaWRIb3Jpem9udGFsTWFy
Z2luID0gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRIYXNWYWxpZEJvcmRlcigpIHsgbV9oYXNWYWxp
ZEJvcmRlciA9IHRydWU7IH0KQEAgLTIyMCw2ICsyMjUsNyBAQCBwcml2YXRlOgogCiAgICAgTGF5
b3V0OjpFZGdlcyBtX21hcmdpbjsKICAgICBMYXlvdXQ6OlZlcnRpY2FsRWRnZXMgbV92ZXJ0aWNh
bE5vbkNvbGxhcHNlZE1hcmdpbjsKKyAgICBMYXlvdXQ6Okhvcml6b250YWxFZGdlcyBtX2hvcml6
b250YWxOb25Db21wdXRlZE1hcmdpbjsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG1f
ZXN0aW1hdGVkTWFyZ2luVG9wOwogCiAgICAgTGF5b3V0OjpFZGdlcyBtX2JvcmRlcjsKQEAgLTIz
MSw2ICsyMzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWYWxpZEhvcml6b250YWxNYXJn
aW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNWYWxpZFZlcnRpY2FsTWFyZ2luIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzVmFsaWRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbiB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2hhc1ZhbGlkSG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luIHsgZmFs
c2UgfTsKICAgICBib29sIG1faGFzVmFsaWRCb3JkZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNWYWxpZFBhZGRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNWYWxpZENvbnRlbnRIZWln
aHQgeyBmYWxzZSB9OwpAQCAtNTI0LDYgKzUzMSwxNCBAQCBpbmxpbmUgdm9pZCBCb3g6OnNldFZl
cnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKExheW91dDo6VmVydGljYWxFZGdlcyBtYXJnaW4pCiAg
ICAgbV92ZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbiA9IG1hcmdpbjsKIH0KIAoraW5saW5lIHZv
aWQgQm94OjpzZXRIb3Jpem9udGFsTm9uQ29tcHV0ZWRNYXJnaW4oTGF5b3V0OjpIb3Jpem9udGFs
RWRnZXMgbWFyZ2luKQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBzZXRIYXNWYWxpZEhv
cml6b250YWxOb25Db21wdXRlZE1hcmdpbigpOworI2VuZGlmCisgICAgbV9ob3Jpem9udGFsTm9u
Q29tcHV0ZWRNYXJnaW4gPSBtYXJnaW47Cit9CisKIGlubGluZSB2b2lkIEJveDo6c2V0Qm9yZGVy
KExheW91dDo6RWRnZXMgYm9yZGVyKQogewogI2lmICFBU1NFUlRfRElTQUJMRUQKQEAgLTU3Niw2
ICs1OTEsMTggQEAgaW5saW5lIExheW91dFVuaXQgQm94Ojpub25Db2xsYXBzZWRNYXJnaW5Cb3R0
b20oKSBjb25zdAogICAgIHJldHVybiBtX3ZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luLmJvdHRv
bTsKIH0KIAoraW5saW5lIExheW91dFVuaXQgQm94Ojpub25Db21wdXRlZE1hcmdpbkxlZnQoKSBj
b25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkSG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2lu
KTsKKyAgICByZXR1cm4gbV9ob3Jpem9udGFsTm9uQ29tcHV0ZWRNYXJnaW4ubGVmdDsKK30KKwor
aW5saW5lIExheW91dFVuaXQgQm94Ojpub25Db21wdXRlZE1hcmdpblJpZ2h0KCkgY29uc3QKK3sK
KyAgICBBU1NFUlQobV9oYXNWYWxpZEhvcml6b250YWxOb25Db21wdXRlZE1hcmdpbik7CisgICAg
cmV0dXJuIG1faG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luLnJpZ2h0OworfQorCiBpbmxpbmUg
c3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBCb3g6OnBhZGRpbmdUb3AoKSBjb25zdAogewogICAg
IEFTU0VSVChtX2hhc1ZhbGlkUGFkZGluZyk7Cg==
</data>
<flag name="review"
          id="366129"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>