<?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>200757</bug_id>
          
          <creation_ts>2019-08-14 21:34:16 -0700</creation_ts>
          <short_desc>[LFC][TFC] Compute column min/max widths</short_desc>
          <delta_ts>2019-08-18 15:17:00 -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>commit-queue</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>1561455</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-08-14 21:34:16 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561460</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-14 21:42:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/54333148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561462</commentid>
    <comment_count>2</comment_count>
      <attachid>376352</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-14 21:52:56 -0700</bug_when>
    <thetext>Created attachment 376352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562596</commentid>
    <comment_count>3</comment_count>
      <attachid>376643</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-18 10:38:26 -0700</bug_when>
    <thetext>Created attachment 376643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562600</commentid>
    <comment_count>4</comment_count>
      <attachid>376646</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-18 11:20:53 -0700</bug_when>
    <thetext>Created attachment 376646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562617</commentid>
    <comment_count>5</comment_count>
      <attachid>376646</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-18 15:16:58 -0700</bug_when>
    <thetext>Comment on attachment 376646
Patch

Clearing flags on attachment: 376646

Committed r248834: &lt;https://trac.webkit.org/changeset/248834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562618</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-18 15:17:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376352</attachid>
            <date>2019-08-14 21:52:56 -0700</date>
            <delta_ts>2019-08-18 10:38:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200757-20190814215251.patch</filename>
            <type>text/plain</type>
            <size>5907</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVjMDg0NTFmYzQ1Mzkz
Zjg5ZTE2MDIzOWY1ZWRhOGYwNjBhYWM4MC4uYzY2MGI3NDEzZWE3MWY5NTM3MzY5OWIzODkxMTZj
MGFhNTBiYzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA4LTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBDb21wdXRl
IGNvbHVtbiBtaW4vbWF4IHdpZHRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwNzU3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDMzMzE0OD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZWFj
aCBjb2x1bW4sIGRldGVybWluZSBhIG1heGltdW0gYW5kIG1pbmltdW0gY29sdW1uIHdpZHRoIGZy
b20gdGhlIGNlbGxzIHRoYXQgc3BhbiBvbmx5IHRoYXQgY29sdW1uLgorICAgICAgICBUaGUgbWlu
aW11bSBpcyB0aGF0IHJlcXVpcmVkIGJ5IHRoZSBjZWxsIHdpdGggdGhlIGxhcmdlc3QgbWluaW11
bSBjZWxsIHdpZHRoIChvciB0aGUgY29sdW1uICd3aWR0aCcsIHdoaWNoZXZlciBpcyBsYXJnZXIp
LgorICAgICAgICBUaGUgbWF4aW11bSBpcyB0aGF0IHJlcXVpcmVkIGJ5IHRoZSBjZWxsIHdpdGgg
dGhlIGxhcmdlc3QgbWF4aW11bSBjZWxsIHdpZHRoIChvciB0aGUgY29sdW1uICd3aWR0aCcsIHdo
aWNoZXZlciBpcyBsYXJnZXIpLgorCisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFi
bGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVByZWZlcnJlZFdpZHRoRm9yQ29sdW1ucyBjb25z
dCk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdyaWQ6OmFwcGVuZENlbGwpOgorICAgICAgICAq
IGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRhYmxlR3JpZDo6Y29sdW1ucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRh
YmxlR3JpZDo6cm93cyk6CisKIDIwMTktMDgtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIEltcGxlbWVudCBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lkdGhGb3JDb2x1bW5zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdD
b250ZXh0LmNwcAppbmRleCBlNWEzYTAyNWJlYzA0OWU0YWNhZDIyN2YzZGE3MDJiN2U5ZTE4ZTBi
Li4xYzQ1MTUxZTRhMmYxZWVmYThmODRhNzMzYjViOWE2Y2JiODZmMWNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVG
b3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTEwNCw2ICsxMDQsMjEgQEAgdm9pZCBUYWJsZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lkdGhGb3JDb2x1bW5zKCkgY29uc3QKICAg
ICAgICAgZm9yIChhdXRvIGkgPSAwOyBpIDwgY29sdW1uU3BhbjsgKytpKQogICAgICAgICAgICAg
Z3JpZC5zbG90KHsgaW5pdGlhbFBvc2l0aW9uLngoKSArIGksIGluaXRpYWxQb3NpdGlvbi55KCkg
fSktPndpZHRoQ29uc3RyYWludHMgPSBzbG90SW50cmluc2ljV2lkdGg7CiAgICAgfQorICAgIC8v
IDIuIEZvciBlYWNoIGNvbHVtbiwgZGV0ZXJtaW5lIGEgbWF4aW11bSBhbmQgbWluaW11bSBjb2x1
bW4gd2lkdGggZnJvbSB0aGUgY2VsbHMgdGhhdCBzcGFuIG9ubHkgdGhhdCBjb2x1bW4uCisgICAg
Ly8gICAgVGhlIG1pbmltdW0gaXMgdGhhdCByZXF1aXJlZCBieSB0aGUgY2VsbCB3aXRoIHRoZSBs
YXJnZXN0IG1pbmltdW0gY2VsbCB3aWR0aCAob3IgdGhlIGNvbHVtbiAnd2lkdGgnLCB3aGljaGV2
ZXIgaXMgbGFyZ2VyKS4KKyAgICAvLyAgICBUaGUgbWF4aW11bSBpcyB0aGF0IHJlcXVpcmVkIGJ5
IHRoZSBjZWxsIHdpdGggdGhlIGxhcmdlc3QgbWF4aW11bSBjZWxsIHdpZHRoIChvciB0aGUgY29s
dW1uICd3aWR0aCcsIHdoaWNoZXZlciBpcyBsYXJnZXIpLgorICAgIGF1dG8mIGNvbHVtbnMgPSBn
cmlkLmNvbHVtbnMoKTsKKyAgICBpbnQgbnVtYmVyT2ZSb3dzID0gZ3JpZC5yb3dzKCkuc2l6ZSgp
OworICAgIGludCBudW1iZXJPZkNvbHVtbnMgPSBjb2x1bW5zLnNpemUoKTsKKyAgICBmb3IgKGlu
dCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBudW1iZXJPZkNvbHVtbnM7ICsrY29sdW1uKSB7CisgICAg
ICAgIGF1dG8gY29sdW1uSW50cmluc2ljV2lkdGhzID0gRm9ybWF0dGluZ0NvbnRleHQ6OkludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMgeyB9OworICAgICAgICBmb3IgKGludCByb3cgPSAwOyByb3cg
PCBudW1iZXJPZlJvd3M7ICsrcm93KSB7CisgICAgICAgICAgICBhdXRvKiBzbG90ID0gZ3JpZC5z
bG90KHsgY29sdW1uLCByb3cgfSk7CisgICAgICAgICAgICBjb2x1bW5JbnRyaW5zaWNXaWR0aHMu
bWluaW11bSA9IHN0ZDo6bWF4KHNsb3QtPndpZHRoQ29uc3RyYWludHMubWluaW11bSwgY29sdW1u
SW50cmluc2ljV2lkdGhzLm1pbmltdW0pOworICAgICAgICAgICAgY29sdW1uSW50cmluc2ljV2lk
dGhzLm1heGltdW0gPSBzdGQ6Om1heChzbG90LT53aWR0aENvbnN0cmFpbnRzLm1heGltdW0sIGNv
bHVtbkludHJpbnNpY1dpZHRocy5tYXhpbXVtKTsKKyAgICAgICAgfQorICAgICAgICBjb2x1bW5z
W2NvbHVtbl0ud2lkdGhDb25zdHJhaW50cyA9IGNvbHVtbkludHJpbnNpY1dpZHRoczsKKyAgICB9
CiB9CiAKIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVRhYmxlV2lkdGgoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUdyaWQuY3BwCmluZGV4IGM3YWUzZTU4MTBkNjAyZjY1ZWI3MDAyZmZlOWM1MmJmYzVjMDAwYTUu
LmRjZjUzMWY0NjFiMzAzOTA1NjAyZDVkMzY4YjUyODRiZmQ1NzVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKQEAgLTYw
LDEzICs2MCwxNCBAQCB2b2lkIFRhYmxlR3JpZDo6YXBwZW5kQ2VsbChjb25zdCBCb3gmIHRhYmxl
Q2VsbEJveCkKIHsKICAgICBpbnQgcm93U3BhbiA9IHRhYmxlQ2VsbEJveC5yb3dTcGFuKCk7CiAg
ICAgaW50IGNvbHVtblNwYW4gPSB0YWJsZUNlbGxCb3guY29sdW1uU3BhbigpOworICAgIGF1dG8g
aXNJbk5ld1JvdyA9ICF0YWJsZUNlbGxCb3gucHJldmlvdXNTaWJsaW5nKCk7CiAgICAgYXV0byBp
bml0aWFsU2xvdFBvc2l0aW9uID0gU2xvdFBvc2l0aW9uIHsgfTsKIAogICAgIGlmICghbV9jZWxs
TGlzdC5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byYgbGFzdENlbGwgPSBtX2NlbGxMaXN0Lmxh
c3QoKTsKICAgICAgICAgYXV0byBsYXN0U2xvdFBvc2l0aW9uID0gbGFzdENlbGwtPnBvc2l0aW9u
OwogICAgICAgICAvLyBGaXJzdCB0YWJsZSBjZWxsIGluIHRoaXMgcm93PwotICAgICAgICBpZiAo
IXRhYmxlQ2VsbEJveC5wcmV2aW91c1NpYmxpbmcoKSkKKyAgICAgICAgaWYgKGlzSW5OZXdSb3cp
CiAgICAgICAgICAgICBpbml0aWFsU2xvdFBvc2l0aW9uID0gU2xvdFBvc2l0aW9uIHsgMCwgbGFz
dFNsb3RQb3NpdGlvbi55KCkgKyAxIH07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGluaXRp
YWxTbG90UG9zaXRpb24gPSBTbG90UG9zaXRpb24geyBsYXN0U2xvdFBvc2l0aW9uLngoKSArIDEs
IGxhc3RTbG90UG9zaXRpb24ueSgpIH07CkBAIC04Nyw2ICs4OCwxNCBAQCB2b2lkIFRhYmxlR3Jp
ZDo6YXBwZW5kQ2VsbChjb25zdCBCb3gmIHRhYmxlQ2VsbEJveCkKICAgICAgICAgICAgIG1fc2xv
dE1hcC5hZGQocG9zaXRpb24sIHN0ZDo6bWFrZV91bmlxdWU8U2xvdEluZm8+KCpjZWxsSW5mbykp
OwogICAgICAgICB9CiAgICAgfQorICAgIC8vIEluaXRpYWxpemUgY29sdW1ucy9yb3dzIGlmIG5l
ZWRlZC4KKyAgICBhdXRvIG1pc3NpbmdOdW1iZXJPZkNvbHVtbnMgPSBzdGQ6Om1heDx1bnNpZ25l
ZD4oMCwgKGluaXRpYWxTbG90UG9zaXRpb24ueCgpICsgY29sdW1uU3BhbikgLSBtX2NvbHVtbnMu
c2l6ZSgpKTsgCisgICAgZm9yICh1bnNpZ25lZCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBtaXNzaW5n
TnVtYmVyT2ZDb2x1bW5zOyArK2NvbHVtbikKKyAgICAgICAgbV9jb2x1bW5zLmFwcGVuZCh7IH0p
OworCisgICAgaWYgKGlzSW5OZXdSb3cpCisgICAgICAgIG1fcm93cy5hcHBlbmQoeyB9KTsKKwog
ICAgIG1fY2VsbExpc3QuYWRkKFdURk1vdmUoY2VsbEluZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmgKaW5kZXggYmJiMjcz
Njc3NDE3ZjkzYjgxM2IwMzM3MDNiYzlkZjdjMTI1MWQ4Ny4uNTMzNGQ3M2ZkZGQyMmEyYzY0MTVj
MjczZjUyMmVkNzExN2M4ZGNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3Rh
YmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFi
bGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5oCkBAIC01OCw2ICs1OCwxOCBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgQ2VsbExpc3QgPSBXVEY6Okxpc3RIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxDZWxsSW5m
bz4+OwogICAgIENlbGxMaXN0JiBjZWxscygpIHsgcmV0dXJuIG1fY2VsbExpc3Q7IH0KIAorICAg
IHN0cnVjdCBDb2x1bW5JbmZvIHsKKyAgICAgICAgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNp
Y1dpZHRoQ29uc3RyYWludHMgd2lkdGhDb25zdHJhaW50czsKKyAgICB9OworICAgIHVzaW5nIENv
bHVtbkxpc3QgPSBXVEY6OlZlY3RvcjxDb2x1bW5JbmZvPjsKKyAgICBDb2x1bW5MaXN0JiBjb2x1
bW5zKCkgeyByZXR1cm4gbV9jb2x1bW5zOyB9CisKKyAgICBzdHJ1Y3QgUm93SW5mbyB7CisgICAg
ICAgIExheW91dFVuaXQgaGVpZ2h0OworICAgIH07CisgICAgdXNpbmcgUm93TGlzdCA9IFdURjo6
VmVjdG9yPFJvd0luZm8+OworICAgIFJvd0xpc3QmIHJvd3MoKSB7IHJldHVybiBtX3Jvd3M7IH0K
KwogICAgIHVzaW5nIFNsb3RMb2dpY2FsU2l6ZSA9IExheW91dFNpemU7CiAgICAgc3RydWN0IFNs
b3RJbmZvIHsKICAgICAgICAgU2xvdEluZm8oKSA9IGRlZmF1bHQ7CkBAIC03MSw4ICs4MywxMSBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdXNpbmcgU2xvdE1hcCA9IFdURjo6SGFzaE1hcDxT
bG90UG9zaXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxTbG90SW5mbz4+OworCiAgICAgU2xvdE1hcCBt
X3Nsb3RNYXA7CiAgICAgQ2VsbExpc3QgbV9jZWxsTGlzdDsKKyAgICBDb2x1bW5MaXN0IG1fY29s
dW1uczsKKyAgICBSb3dMaXN0IG1fcm93czsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376643</attachid>
            <date>2019-08-18 10:38:26 -0700</date>
            <delta_ts>2019-08-18 11:20:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200757-20190818103824.patch</filename>
            <type>text/plain</type>
            <size>15669</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVjMDg0NTFmYzQ1Mzkz
Zjg5ZTE2MDIzOWY1ZWRhOGYwNjBhYWM4MC4uNjkwM2Q0Y2IxNTdlMmE3Zjc4MmJjMmNlNTFjMWUw
NWJlMjQ4MjJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA4LTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBDb21wdXRl
IGNvbHVtbiBtaW4vbWF4IHdpZHRocyBhbmQgdGFibGUgd2lkdGguCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA3NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU0MzMzMTQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZvciBlYWNoIGNvbHVtbiwgZGV0ZXJtaW5lIGEgbWF4aW11bSBhbmQgbWluaW11
bSBjb2x1bW4gd2lkdGggZnJvbSB0aGUgY2VsbHMgdGhhdCBzcGFuIG9ubHkgdGhhdCBjb2x1bW4u
CisgICAgICAgIFRoZSBtaW5pbXVtIGlzIHRoYXQgcmVxdWlyZWQgYnkgdGhlIGNlbGwgd2l0aCB0
aGUgbGFyZ2VzdCBtaW5pbXVtIGNlbGwgd2lkdGggKG9yIHRoZSBjb2x1bW4gJ3dpZHRoJywgd2hp
Y2hldmVyIGlzIGxhcmdlcikuCisgICAgICAgIFRoZSBtYXhpbXVtIGlzIHRoYXQgcmVxdWlyZWQg
YnkgdGhlIGNlbGwgd2l0aCB0aGUgbGFyZ2VzdCBtYXhpbXVtIGNlbGwgd2lkdGggKG9yIHRoZSBj
b2x1bW4gJ3dpZHRoJywgd2hpY2hldmVyIGlzIGxhcmdlcikuCisKKyAgICAgICAgKiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lk
dGhGb3JDb2x1bW5zIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6YXBwZW5k
Q2VsbCk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpjb2x1bW5zKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpyb3dzKToKKwogMjAxOS0wOC0xNCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gSW1wbGVtZW50IFRh
YmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQcmVmZXJyZWRXaWR0aEZvckNvbHVtbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggY2VjZmYwYmIzYTY0
MTFlYjVmOTU1ZDQ1YTQ4MTJlZmE2ZmVlYTA5Zi4uNmQ4MDJhYmExYmY0NDY2NTA1YTM3NmU3MTg5
Yzk0YTgyOTllMTRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgc3RydWN0IEludHJpbnNpY1dpZHRo
Q29uc3RyYWludHMgewogICAgICAgICB2b2lkIGV4cGFuZChMYXlvdXRVbml0IGhvcml6b250YWxW
YWx1ZSk7CisgICAgICAgIEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIG9wZXJhdG9yKz0oY29u
c3QgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYpOwogCiAgICAgICAgIExheW91dFVuaXQgbWlu
aW11bTsKICAgICAgICAgTGF5b3V0VW5pdCBtYXhpbXVtOwpAQCAtMTQ3LDYgKzE0OCwxMyBAQCBp
bmxpbmUgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50czo6
ZXhwYW5kKExheW91dFVuaXQgaG9yaQogICAgIG1heGltdW0gKz0gaG9yaXpvbnRhbFZhbHVlOwog
fQogCitpbmxpbmUgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMm
IEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvcis9
KGNvbnN0IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIG90aGVyKQoreworICAgIG1pbmltdW0g
Kz0gb3RoZXIubWluaW11bTsKKyAgICBtYXhpbXVtICs9IG90aGVyLm1heGltdW07CisgICAgcmV0
dXJuICp0aGlzOworfQorCiB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCmluZGV4IGIxNjUzZjJhYWE0YzIzNjJlZGQ4OTgzM2Ni
YWYxYjc2MTkxNWJhNDQuLmRjMWNmMDZjNWJkZTk0MzE2NmE3YjFhYWMzZDNkZTI0MDE5ZmUyNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaApA
QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBGb3JtYXR0aW5nQ29udGV4dDsKIGNsYXNzIEZsb2F0aW5n
Q29udGV4dDsKIGNsYXNzIElubGluZUZvcm1hdHRpbmdDb250ZXh0OwogY2xhc3MgTGF5b3V0U3Rh
dGU7CitjbGFzcyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OwogfQogCiBuYW1lc3BhY2UgRGlzcGxh
eSB7CkBAIC01OCw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpG
bG9hdGluZ0NvbnRleHQ7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dDo6SW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQ7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dDo6TGF5b3V0U3RhdGU7CisgICAgZnJp
ZW5kIGNsYXNzIExheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDsKIAogICAgIEJveChjb25z
dCBSZW5kZXJTdHlsZSYpOwogICAgIEJveChjb25zdCBCb3gmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCmluZGV4IGU1YTNhMDI1YmVjMDQ5ZTRhY2FkMjI3ZjNkYTcwMmI3ZTllMThl
MGIuLjk1YTVhMzBlMTU0YTBlYzI4ZjllMzE4ZTZmYTFkMWY3NTk5Y2YzMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNTMsMTEgKzUzLDkgQEAgdm9pZCBUYWJsZUZvcm1h
dHRpbmdDb250ZXh0OjpsYXlvdXQoKSBjb25zdAogICAgIGNvbXB1dGVQcmVmZXJyZWRXaWR0aEZv
ckNvbHVtbnMoKTsKICAgICAvLyAzLiBDb21wdXRlIHRoZSB3aWR0aCBvZiB0aGUgdGFibGUuCiAg
ICAgY29tcHV0ZVRhYmxlV2lkdGgoKTsKLSAgICAvLyA0LiBEaXN0cmlidXRlIHRoZSB3aWR0aCBv
ZiB0aGUgdGFibGUgYW1vbmcgY29sdW1ucy4KLSAgICBkaXN0cmlidXRlQXZhaWxhYmVXaWR0aCgp
OwotICAgIC8vIDUuIENvbXB1dGUgdGhlIGhlaWdodCBvZiB0aGUgdGFibGUuCisgICAgLy8gNC4g
Q29tcHV0ZSB0aGUgaGVpZ2h0IG9mIHRoZSB0YWJsZS4KICAgICBjb21wdXRlVGFibGVIZWlnaHQo
KTsKLSAgICAvLyA2LiBEaXN0cmlidXRlIHRoZSBoZWlnaHQgb2YgdGhlIHRhYmxlIGFtb25nIHJv
d3MuCisgICAgLy8gNS4gRGlzdHJpYnV0ZSB0aGUgaGVpZ2h0IG9mIHRoZSB0YWJsZSBhbW9uZyBy
b3dzLgogICAgIGRpc3RyaWJ1dGVBdmFpbGFibGVIZWlnaHQoKTsKIH0KIApAQCAtMTA0LDE0ICsx
MDIsODEgQEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lk
dGhGb3JDb2x1bW5zKCkgY29uc3QKICAgICAgICAgZm9yIChhdXRvIGkgPSAwOyBpIDwgY29sdW1u
U3BhbjsgKytpKQogICAgICAgICAgICAgZ3JpZC5zbG90KHsgaW5pdGlhbFBvc2l0aW9uLngoKSAr
IGksIGluaXRpYWxQb3NpdGlvbi55KCkgfSktPndpZHRoQ29uc3RyYWludHMgPSBzbG90SW50cmlu
c2ljV2lkdGg7CiAgICAgfQorICAgIC8vIDIuIEZvciBlYWNoIGNvbHVtbiwgZGV0ZXJtaW5lIGEg
bWF4aW11bSBhbmQgbWluaW11bSBjb2x1bW4gd2lkdGggZnJvbSB0aGUgY2VsbHMgdGhhdCBzcGFu
IG9ubHkgdGhhdCBjb2x1bW4uCisgICAgLy8gICAgVGhlIG1pbmltdW0gaXMgdGhhdCByZXF1aXJl
ZCBieSB0aGUgY2VsbCB3aXRoIHRoZSBsYXJnZXN0IG1pbmltdW0gY2VsbCB3aWR0aCAob3IgdGhl
IGNvbHVtbiAnd2lkdGgnLCB3aGljaGV2ZXIgaXMgbGFyZ2VyKS4KKyAgICAvLyAgICBUaGUgbWF4
aW11bSBpcyB0aGF0IHJlcXVpcmVkIGJ5IHRoZSBjZWxsIHdpdGggdGhlIGxhcmdlc3QgbWF4aW11
bSBjZWxsIHdpZHRoIChvciB0aGUgY29sdW1uICd3aWR0aCcsIHdoaWNoZXZlciBpcyBsYXJnZXIp
LgorICAgIGF1dG8mIGNvbHVtbnMgPSBncmlkLmNvbHVtbnNDb250ZXh0KCkuY29sdW1ucygpOwor
ICAgIGludCBudW1iZXJPZlJvd3MgPSBncmlkLnJvd3MoKS5zaXplKCk7CisgICAgaW50IG51bWJl
ck9mQ29sdW1ucyA9IGNvbHVtbnMuc2l6ZSgpOworICAgIGZvciAoaW50IGNvbHVtbkluZGV4ID0g
MDsgY29sdW1uSW5kZXggPCBudW1iZXJPZkNvbHVtbnM7ICsrY29sdW1uSW5kZXgpIHsKKyAgICAg
ICAgYXV0byBjb2x1bW5JbnRyaW5zaWNXaWR0aHMgPSBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyB7IH07CisgICAgICAgIGZvciAoaW50IHJvd0luZGV4ID0gMDsg
cm93SW5kZXggPCBudW1iZXJPZlJvd3M7ICsrcm93SW5kZXgpIHsKKyAgICAgICAgICAgIGF1dG8q
IHNsb3QgPSBncmlkLnNsb3QoeyBjb2x1bW5JbmRleCwgcm93SW5kZXggfSk7CisgICAgICAgICAg
ICBjb2x1bW5JbnRyaW5zaWNXaWR0aHMubWluaW11bSA9IHN0ZDo6bWF4KHNsb3QtPndpZHRoQ29u
c3RyYWludHMubWluaW11bSwgY29sdW1uSW50cmluc2ljV2lkdGhzLm1pbmltdW0pOworICAgICAg
ICAgICAgY29sdW1uSW50cmluc2ljV2lkdGhzLm1heGltdW0gPSBzdGQ6Om1heChzbG90LT53aWR0
aENvbnN0cmFpbnRzLm1heGltdW0sIGNvbHVtbkludHJpbnNpY1dpZHRocy5tYXhpbXVtKTsKKyAg
ICAgICAgfQorICAgICAgICBjb2x1bW5zW2NvbHVtbkluZGV4XS5zZXRXaWR0aENvbnN0cmFpbnRz
KGNvbHVtbkludHJpbnNpY1dpZHRocyk7CisgICAgfQorICAgIC8vIEZJWE1FOiBUYWtlIGNvbHVt
biBncm91cCBlbGVtZW50cyBpbnRvIGFjY291bnQuCiB9CiAKIHZvaWQgVGFibGVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZVRhYmxlV2lkdGgoKSBjb25zdAogeworICAgIC8vIENvbHVtbiBhbmQg
Y2FwdGlvbiB3aWR0aHMgaW5mbHVlbmNlIHRoZSBmaW5hbCB0YWJsZSB3aWR0aCBhcyBmb2xsb3dz
OgorICAgIC8vIElmIHRoZSAndGFibGUnIG9yICdpbmxpbmUtdGFibGUnIGVsZW1lbnQncyAnd2lk
dGgnIHByb3BlcnR5IGhhcyBhIGNvbXB1dGVkIHZhbHVlIChXKSBvdGhlciB0aGFuICdhdXRvJywg
dGhlIHVzZWQgd2lkdGggaXMgdGhlIGdyZWF0ZXIgb2YKKyAgICAvLyBXLCBDQVBNSU4sIGFuZCB0
aGUgbWluaW11bSB3aWR0aCByZXF1aXJlZCBieSBhbGwgdGhlIGNvbHVtbnMgcGx1cyBjZWxsIHNw
YWNpbmcgb3IgYm9yZGVycyAoTUlOKS4KKyAgICAvLyBJZiB0aGUgdXNlZCB3aWR0aCBpcyBncmVh
dGVyIHRoYW4gTUlOLCB0aGUgZXh0cmEgd2lkdGggc2hvdWxkIGJlIGRpc3RyaWJ1dGVkIG92ZXIg
dGhlIGNvbHVtbnMuCisgICAgLy8gSWYgdGhlICd0YWJsZScgb3IgJ2lubGluZS10YWJsZScgZWxl
bWVudCBoYXMgJ3dpZHRoOiBhdXRvJywgdGhlIHVzZWQgd2lkdGggaXMgdGhlIGdyZWF0ZXIgb2Yg
dGhlIHRhYmxlJ3MgY29udGFpbmluZyBibG9jayB3aWR0aCwKKyAgICAvLyBDQVBNSU4sIGFuZCBN
SU4uIEhvd2V2ZXIsIGlmIGVpdGhlciBDQVBNSU4gb3IgdGhlIG1heGltdW0gd2lkdGggcmVxdWly
ZWQgYnkgdGhlIGNvbHVtbnMgcGx1cyBjZWxsIHNwYWNpbmcgb3IgYm9yZGVycyAoTUFYKSBpcwor
ICAgIC8vIGxlc3MgdGhhbiB0aGF0IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLCB1c2UgbWF4KE1B
WCwgQ0FQTUlOKS4KKworICAgIC8vIEZJWE1FOiBUaGlzIGtpbmQgb2YgY29kZSB1c3VhbGx5IGxp
dmVzIGluICpGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5IGNsYXNzLgorICAgIGF1dG8mIHRhYmxl
V3JhcHBlckJveCA9IHJvb3QoKTsKKyAgICBhdXRvJiBzdHlsZSA9IHRhYmxlV3JhcHBlckJveC5z
dHlsZSgpOworICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9ICp0YWJsZVdyYXBwZXJCb3guY29u
dGFpbmluZ0Jsb2NrKCk7CisgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrRGlzcGxheUJveCA9IGxh
eW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChjb250YWluaW5nQmxvY2spOworICAg
IGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBjb250YWluaW5nQmxvY2tEaXNwbGF5Qm94LmNv
bnRlbnRCb3hXaWR0aCgpOworCisgICAgYXV0byYgZ3JpZCA9IGZvcm1hdHRpbmdTdGF0ZSgpLnRh
YmxlR3JpZCgpOworICAgIGF1dG8mIGNvbHVtbnNDb250ZXh0ID0gZ3JpZC5jb2x1bW5zQ29udGV4
dCgpOworICAgIGF1dG8gdGFibGVXaWR0aENvbnN0cmFpbnRzID0gZ3JpZC53aWR0aENvbnN0cmFp
bnRzKCk7CisKKyAgICBhdXRvIHdpZHRoID0gR2VvbWV0cnk6OmNvbXB1dGVkVmFsdWVJZk5vdEF1
dG8oc3R5bGUud2lkdGgoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOworICAgIExheW91dFVuaXQg
dXNlZFdpZHRoOworICAgIGlmICh3aWR0aCkgeworICAgICAgICBpZiAoKndpZHRoID4gdGFibGVX
aWR0aENvbnN0cmFpbnRzLm1pbmltdW0pIHsKKyAgICAgICAgICAgIGRpc3RyaWJ1dGVBdmFpbGFi
bGVXaWR0aCgqd2lkdGggLSB0YWJsZVdpZHRoQ29uc3RyYWludHMubWluaW11bSk7CisgICAgICAg
ICAgICB1c2VkV2lkdGggPSAqd2lkdGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB1
c2VkV2lkdGggPSB0YWJsZVdpZHRoQ29uc3RyYWludHMubWluaW11bTsKKyAgICAgICAgICAgIGNv
bHVtbnNDb250ZXh0LnVzZUFzTG9naWNhbFdpZHRoKFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6
OldpZHRoQ29uc3RyYWludHNUeXBlOjpNaW5pbXVtKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICAgIGlmICh0YWJsZVdpZHRoQ29uc3RyYWludHMubWluaW11bSA+IGNvbnRhaW5pbmdC
bG9ja1dpZHRoKSB7CisgICAgICAgICAgICB1c2VkV2lkdGggPSB0YWJsZVdpZHRoQ29uc3RyYWlu
dHMubWluaW11bTsKKyAgICAgICAgICAgIGNvbHVtbnNDb250ZXh0LnVzZUFzTG9naWNhbFdpZHRo
KFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6OldpZHRoQ29uc3RyYWludHNUeXBlOjpNaW5pbXVt
KTsKKyAgICAgICAgfSBlbHNlIGlmICh0YWJsZVdpZHRoQ29uc3RyYWludHMubWF4aW11bSA8IGNv
bnRhaW5pbmdCbG9ja1dpZHRoKSB7CisgICAgICAgICAgICB1c2VkV2lkdGggPSB0YWJsZVdpZHRo
Q29uc3RyYWludHMubWF4aW11bTsKKyAgICAgICAgICAgIGNvbHVtbnNDb250ZXh0LnVzZUFzTG9n
aWNhbFdpZHRoKFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6OldpZHRoQ29uc3RyYWludHNUeXBl
OjpNYXhpbXVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHVzZWRXaWR0aCA9IGNv
bnRhaW5pbmdCbG9ja1dpZHRoOworICAgICAgICAgICAgZGlzdHJpYnV0ZUF2YWlsYWJsZVdpZHRo
KCp3aWR0aCAtIHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5pbXVtKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGF1dG8mIHRhYmxlRGlzcGxheUJveCA9IGxheW91dFN0YXRlKCkuZGlzcGxheUJv
eEZvckxheW91dEJveCh0YWJsZVdyYXBwZXJCb3gpOworICAgIHRhYmxlRGlzcGxheUJveC5zZXRD
b250ZW50Qm94V2lkdGgodXNlZFdpZHRoKTsKIH0KIAotdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0OjpkaXN0cmlidXRlQXZhaWxhYmVXaWR0aCgpIGNvbnN0Cit2b2lkIFRhYmxlRm9ybWF0dGlu
Z0NvbnRleHQ6OmRpc3RyaWJ1dGVBdmFpbGFibGVXaWR0aChMYXlvdXRVbml0IGV4dHJhSG9yaXpv
bnRhbFNwYWNlKSBjb25zdAogeworICAgIC8vIEZJWE1FOiBSaWdodCBub3cganVzdCBkaXN0cmli
dXRlIHRoZSBleHRyYSBzcGFjZSBlcXVhbHkgYW1vbmcgdGhlIGNvbHVtbnMuCisgICAgYXV0byYg
Y29sdW1ucyA9IGZvcm1hdHRpbmdTdGF0ZSgpLnRhYmxlR3JpZCgpLmNvbHVtbnNDb250ZXh0KCku
Y29sdW1ucygpOworICAgIEFTU0VSVCghY29sdW1ucy5pc0VtcHR5KCkpOworCisgICAgYXV0byBj
b2x1bW5FeHRyYVNwYWNlID0gZXh0cmFIb3Jpem9udGFsU3BhY2UgLyBjb2x1bW5zLnNpemUoKTsK
KyAgICBmb3IgKGF1dG8mIGNvbHVtbiA6IGNvbHVtbnMpCisgICAgICAgIGNvbHVtbi5zZXRMb2dp
Y2FsV2lkdGgoY29sdW1uLndpZHRoQ29uc3RyYWludHMoKS5taW5pbXVtICsgY29sdW1uRXh0cmFT
cGFjZSk7CiB9CiAKIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVRhYmxlSGVp
Z2h0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1h
dHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3Rh
YmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggNDFmNzQzNWE3NDBi
YzgyOGVkYjVlOWYxNGVhNDk5MDZlZDc2YTg3Mi4uZGUyNjNiMjEwMmMwMTQyYWViNGRjYzMyMzFl
ZGE1NjcwMTI3MjAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTQ4LDcgKzQ4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZVRhYmxlR3JpZCgpIGNvbnN0OwogICAgIHZv
aWQgY29tcHV0ZVByZWZlcnJlZFdpZHRoRm9yQ29sdW1ucygpIGNvbnN0OwogICAgIHZvaWQgY29t
cHV0ZVRhYmxlV2lkdGgoKSBjb25zdDsKLSAgICB2b2lkIGRpc3RyaWJ1dGVBdmFpbGFiZVdpZHRo
KCkgY29uc3Q7CisgICAgdm9pZCBkaXN0cmlidXRlQXZhaWxhYmxlV2lkdGgoTGF5b3V0VW5pdCBl
eHRyYUhvcml6b250YWxTcGFjZSkgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlVGFibGVIZWlnaHQo
KSBjb25zdDsKICAgICB2b2lkIGRpc3RyaWJ1dGVBdmFpbGFibGVIZWlnaHQoKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdy
aWQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQu
Y3BwCmluZGV4IGM3YWUzZTU4MTBkNjAyZjY1ZWI3MDAyZmZlOWM1MmJmYzVjMDAwYTUuLjllMDg1
ZmRiNGEwODUzNGNhMDJiYzE4MjlkNzZhMmQ0OTg3MDE0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKQEAgLTM1LDYgKzM1
LDQ1IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
VGFibGVHcmlkKTsKIAordm9pZCBUYWJsZUdyaWQ6OkNvbHVtbjo6c2V0V2lkdGhDb25zdHJhaW50
cyhGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyB3aWR0aENvbnN0
cmFpbnRzKQoreworI2lmbmRlZiBOREVCVUcKKyAgICBtX2hhc1dpZHRoQ29uc3RyYWludHMgPSB0
cnVlOworI2VuZGlmCisgICAgbV93aWR0aENvbnN0cmFpbnRzID0gd2lkdGhDb25zdHJhaW50czsK
K30KKworRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgVGFibGVH
cmlkOjpDb2x1bW46OndpZHRoQ29uc3RyYWludHMoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hh
c1dpZHRoQ29uc3RyYWludHMpOworICAgIHJldHVybiBtX3dpZHRoQ29uc3RyYWludHM7Cit9CisK
K3ZvaWQgVGFibGVHcmlkOjpDb2x1bW46OnNldExvZ2ljYWxXaWR0aChMYXlvdXRVbml0IGNvbXB1
dGVkTG9naWNhbFdpZHRoKQoreworI2lmbmRlZiBOREVCVUcKKyAgICBtX2hhc0NvbXB1dGVkV2lk
dGggPSB0cnVlOworI2VuZGlmCisgICAgbV9jb21wdXRlZExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVk
TG9naWNhbFdpZHRoOworfQorCitMYXlvdXRVbml0IFRhYmxlR3JpZDo6Q29sdW1uOjpsb2dpY2Fs
V2lkdGgoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc0NvbXB1dGVkV2lkdGgpOworICAgIHJl
dHVybiBtX2NvbXB1dGVkTG9naWNhbFdpZHRoOworfQorCit2b2lkIFRhYmxlR3JpZDo6Q29sdW1u
c0NvbnRleHQ6OmFkZENvbHVtbigpCit7CisgICAgbV9jb2x1bW5zLmFwcGVuZCh7IH0pOworfQor
Cit2b2lkIFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6OnVzZUFzTG9naWNhbFdpZHRoKFdpZHRo
Q29uc3RyYWludHNUeXBlIHR5cGUpCit7CisgICAgZm9yIChhdXRvJiBjb2x1bW4gOiBtX2NvbHVt
bnMpCisgICAgICAgIGNvbHVtbi5zZXRMb2dpY2FsV2lkdGgodHlwZSA9PSBXaWR0aENvbnN0cmFp
bnRzVHlwZTo6TWluaW11bSA/IGNvbHVtbi53aWR0aENvbnN0cmFpbnRzKCkubWluaW11bSA6IGNv
bHVtbi53aWR0aENvbnN0cmFpbnRzKCkubWF4aW11bSk7Cit9CisKIFRhYmxlR3JpZDo6Q2VsbElu
Zm86OkNlbGxJbmZvKGNvbnN0IEJveCYgdGFibGVDZWxsQm94LCBTbG90UG9zaXRpb24gcG9zaXRp
b24sIENlbGxTaXplIHNpemUpCiAgICAgOiB0YWJsZUNlbGxCb3godGFibGVDZWxsQm94KQogICAg
ICwgcG9zaXRpb24ocG9zaXRpb24pCkBAIC02MCwxMyArOTksMTQgQEAgdm9pZCBUYWJsZUdyaWQ6
OmFwcGVuZENlbGwoY29uc3QgQm94JiB0YWJsZUNlbGxCb3gpCiB7CiAgICAgaW50IHJvd1NwYW4g
PSB0YWJsZUNlbGxCb3gucm93U3BhbigpOwogICAgIGludCBjb2x1bW5TcGFuID0gdGFibGVDZWxs
Qm94LmNvbHVtblNwYW4oKTsKKyAgICBhdXRvIGlzSW5OZXdSb3cgPSAhdGFibGVDZWxsQm94LnBy
ZXZpb3VzU2libGluZygpOwogICAgIGF1dG8gaW5pdGlhbFNsb3RQb3NpdGlvbiA9IFNsb3RQb3Np
dGlvbiB7IH07CiAKICAgICBpZiAoIW1fY2VsbExpc3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1
dG8mIGxhc3RDZWxsID0gbV9jZWxsTGlzdC5sYXN0KCk7CiAgICAgICAgIGF1dG8gbGFzdFNsb3RQ
b3NpdGlvbiA9IGxhc3RDZWxsLT5wb3NpdGlvbjsKICAgICAgICAgLy8gRmlyc3QgdGFibGUgY2Vs
bCBpbiB0aGlzIHJvdz8KLSAgICAgICAgaWYgKCF0YWJsZUNlbGxCb3gucHJldmlvdXNTaWJsaW5n
KCkpCisgICAgICAgIGlmIChpc0luTmV3Um93KQogICAgICAgICAgICAgaW5pdGlhbFNsb3RQb3Np
dGlvbiA9IFNsb3RQb3NpdGlvbiB7IDAsIGxhc3RTbG90UG9zaXRpb24ueSgpICsgMSB9OwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBpbml0aWFsU2xvdFBvc2l0aW9uID0gU2xvdFBvc2l0aW9u
IHsgbGFzdFNsb3RQb3NpdGlvbi54KCkgKyAxLCBsYXN0U2xvdFBvc2l0aW9uLnkoKSB9OwpAQCAt
ODcsNiArMTI3LDE0IEBAIHZvaWQgVGFibGVHcmlkOjphcHBlbmRDZWxsKGNvbnN0IEJveCYgdGFi
bGVDZWxsQm94KQogICAgICAgICAgICAgbV9zbG90TWFwLmFkZChwb3NpdGlvbiwgc3RkOjptYWtl
X3VuaXF1ZTxTbG90SW5mbz4oKmNlbGxJbmZvKSk7CiAgICAgICAgIH0KICAgICB9CisgICAgLy8g
SW5pdGlhbGl6ZSBjb2x1bW5zL3Jvd3MgaWYgbmVlZGVkLgorICAgIGF1dG8gbWlzc2luZ051bWJl
ck9mQ29sdW1ucyA9IHN0ZDo6bWF4PHVuc2lnbmVkPigwLCAoaW5pdGlhbFNsb3RQb3NpdGlvbi54
KCkgKyBjb2x1bW5TcGFuKSAtIG1fY29sdW1uc0NvbnRleHQuY29sdW1ucygpLnNpemUoKSk7IAor
ICAgIGZvciAodW5zaWduZWQgY29sdW1uID0gMDsgY29sdW1uIDwgbWlzc2luZ051bWJlck9mQ29s
dW1uczsgKytjb2x1bW4pCisgICAgICAgIG1fY29sdW1uc0NvbnRleHQuYWRkQ29sdW1uKCk7CisK
KyAgICBpZiAoaXNJbk5ld1JvdykKKyAgICAgICAgbV9yb3dzLmFwcGVuZCh7IH0pOworCiAgICAg
bV9jZWxsTGlzdC5hZGQoV1RGTW92ZShjZWxsSW5mbykpOwogfQogCkBAIC0xMDEsNiArMTQ5LDE1
IEBAIHZvaWQgVGFibGVHcmlkOjpyZW1vdmVDZWxsKGNvbnN0IEJveCYgdGFibGVDZWxsQm94KQog
ICAgIFVOVVNFRF9QQVJBTSh0YWJsZUNlbGxCb3gpOwogfQogCitGb3JtYXR0aW5nQ29udGV4dDo6
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJsZUdyaWQ6OndpZHRoQ29uc3RyYWludHMoKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgY2FjaGUgdGhpcyB2YWx1
ZS4KKyAgICBhdXRvIHdpZHRoQ29uc3RyYWludHMgPSBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyB7IH07CisgICAgZm9yIChhdXRvJiBjb2x1bW4gOiBtX2NvbHVt
bnNDb250ZXh0LmNvbHVtbnMoKSkKKyAgICAgICAgd2lkdGhDb25zdHJhaW50cyArPSBjb2x1bW4u
d2lkdGhDb25zdHJhaW50cygpOworICAgIHJldHVybiB3aWR0aENvbnN0cmFpbnRzOworfQorCiB9
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1h
dHRpbmcvVGFibGVHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5n
L1RhYmxlR3JpZC5oCmluZGV4IGJiYjI3MzY3NzQxN2Y5M2I4MTNiMDMzNzAzYmM5ZGY3YzEyNTFk
ODcuLjkzNjFkYTBmODg3YmYxNDQ1ZjRmM2JhZWMxNGJmNTM3ODY1OWViNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaApAQCAtNDcs
NiArNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVDZWxsKGNvbnN0IEJveCYpOwogCiAg
ICAgdXNpbmcgU2xvdFBvc2l0aW9uID0gSW50UG9pbnQ7CisKKyAgICAvLyBDZWxsIHJlcHJlc2Vu
dHMgYSA8dGQ+IG9yIDx0aD4uIEl0IGNhbiBzcGFuIG11bHRpcGxlIHNsb3RzIGluIHRoZSBncmlk
LgogICAgIHVzaW5nIENlbGxTaXplID0gSW50U2l6ZTsKICAgICBzdHJ1Y3QgQ2VsbEluZm8gOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q2VsbEluZm8+IHsKICAgICAgICAgQ2VsbEluZm8oY29uc3Qg
Qm94JiB0YWJsZUNlbGxCb3gsIFNsb3RQb3NpdGlvbiwgQ2VsbFNpemUpOwpAQCAtNTgsMjEgKzYw
LDY5IEBAIHB1YmxpYzoKICAgICB1c2luZyBDZWxsTGlzdCA9IFdURjo6TGlzdEhhc2hTZXQ8c3Rk
Ojp1bmlxdWVfcHRyPENlbGxJbmZvPj47CiAgICAgQ2VsbExpc3QmIGNlbGxzKCkgeyByZXR1cm4g
bV9jZWxsTGlzdDsgfQogCi0gICAgdXNpbmcgU2xvdExvZ2ljYWxTaXplID0gTGF5b3V0U2l6ZTsK
KyAgICAvLyBDb2x1bW4gcmVwcmVzZW50cyBhIHZlcnRpY2FsIHNldCBvZiBzbG90cyBpbiB0aGUg
Z3JpZC4gQSBjb2x1bW4gaGFzIG1pbi9tYXggYW5kIGZpbmFsIHdpZHRoLgorICAgIGNsYXNzIENv
bHVtbnNDb250ZXh0OworICAgIGNsYXNzIENvbHVtbiB7CisgICAgcHVibGljOgorICAgICAgICB2
b2lkIHNldFdpZHRoQ29uc3RyYWludHMoRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRo
Q29uc3RyYWludHMpOworICAgICAgICBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhD
b25zdHJhaW50cyB3aWR0aENvbnN0cmFpbnRzKCkgY29uc3Q7CisKKyAgICAgICAgdm9pZCBzZXRM
b2dpY2FsV2lkdGgoTGF5b3V0VW5pdCk7CisgICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRo
KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBmcmllbmQgY2xhc3MgQ29sdW1uc0Nv
bnRleHQ7CisgICAgICAgIENvbHVtbigpID0gZGVmYXVsdDsKKworICAgICAgICBGb3JtYXR0aW5n
Q29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBtX3dpZHRoQ29uc3RyYWludHM7Cisg
ICAgICAgIExheW91dFVuaXQgbV9jb21wdXRlZExvZ2ljYWxXaWR0aDsKKyNpZm5kZWYgTkRFQlVH
CisgICAgICAgIGJvb2wgbV9oYXNXaWR0aENvbnN0cmFpbnRzIHsgZmFsc2UgfTsKKyAgICAgICAg
Ym9vbCBtX2hhc0NvbXB1dGVkV2lkdGggeyBmYWxzZSB9OworI2VuZGlmCisgICAgfTsKKworICAg
IGNsYXNzIENvbHVtbnNDb250ZXh0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHVzaW5nIENvbHVt
bkxpc3QgPSBWZWN0b3I8Q29sdW1uPjsKKyAgICAgICAgQ29sdW1uTGlzdCYgY29sdW1ucygpIHsg
cmV0dXJuIG1fY29sdW1uczsgfQorICAgICAgICBjb25zdCBDb2x1bW5MaXN0JiBjb2x1bW5zKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2x1bW5zOyB9CisKKyAgICAgICAgZW51bSBjbGFzcyBXaWR0aENv
bnN0cmFpbnRzVHlwZSB7IE1pbmltdW0sIE1heGltdW0gfTsKKyAgICAgICAgdm9pZCB1c2VBc0xv
Z2ljYWxXaWR0aChXaWR0aENvbnN0cmFpbnRzVHlwZSk7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBmcmllbmQgY2xhc3MgVGFibGVHcmlkOworICAgICAgICB2b2lkIGFkZENvbHVtbigpOworCisg
ICAgICAgIENvbHVtbkxpc3QgbV9jb2x1bW5zOworICAgIH07CisgICAgQ29sdW1uc0NvbnRleHQm
IGNvbHVtbnNDb250ZXh0KCkgeyByZXR1cm4gbV9jb2x1bW5zQ29udGV4dDsgfQorCisgICAgc3Ry
dWN0IFJvdyB7CisgICAgICAgIExheW91dFVuaXQgaGVpZ2h0OworICAgIH07CisgICAgdXNpbmcg
Um93TGlzdCA9IFdURjo6VmVjdG9yPFJvdz47CisgICAgUm93TGlzdCYgcm93cygpIHsgcmV0dXJu
IG1fcm93czsgfQorCiAgICAgc3RydWN0IFNsb3RJbmZvIHsKICAgICAgICAgU2xvdEluZm8oKSA9
IGRlZmF1bHQ7CiAgICAgICAgIFNsb3RJbmZvKENlbGxJbmZvJik7CiAKICAgICAgICAgV2Vha1B0
cjxDZWxsSW5mbz4gY2VsbDsKICAgICAgICAgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dp
ZHRoQ29uc3RyYWludHMgd2lkdGhDb25zdHJhaW50czsKLSAgICAgICAgU2xvdExvZ2ljYWxTaXpl
IHNpemU7CiAgICAgfTsKICAgICBTbG90SW5mbyogc2xvdChTbG90UG9zaXRpb24pOwogCisgICAg
Rm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgd2lkdGhDb25zdHJh
aW50cygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIHVzaW5nIFNsb3RNYXAgPSBXVEY6Okhhc2hN
YXA8U2xvdFBvc2l0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U2xvdEluZm8+PjsKKwogICAgIFNsb3RN
YXAgbV9zbG90TWFwOwogICAgIENlbGxMaXN0IG1fY2VsbExpc3Q7CisgICAgQ29sdW1uc0NvbnRl
eHQgbV9jb2x1bW5zQ29udGV4dDsKKyAgICBSb3dMaXN0IG1fcm93czsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376646</attachid>
            <date>2019-08-18 11:20:53 -0700</date>
            <delta_ts>2019-08-18 15:16:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200757-20190818112051.patch</filename>
            <type>text/plain</type>
            <size>15695</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRjZDI1NGU2OGNmYTRj
MjM3NTBkYjg1ZmJlOTVjMjczZGYzZGI1Zi4uZTQ4ZTA2NTFiMjUzN2EzNWRjOGI2ZTYzYzU1Nzdj
OGZjZjE5OGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA4LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBDb21wdXRl
IGNvbHVtbiBtaW4vbWF4IHdpZHRocyBhbmQgdGFibGUgd2lkdGguCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA3NTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU0MzMzMTQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZvciBlYWNoIGNvbHVtbiwgZGV0ZXJtaW5lIGEgbWF4aW11bSBhbmQgbWluaW11
bSBjb2x1bW4gd2lkdGggZnJvbSB0aGUgY2VsbHMgdGhhdCBzcGFuIG9ubHkgdGhhdCBjb2x1bW4u
CisgICAgICAgIFRoZSBtaW5pbXVtIGlzIHRoYXQgcmVxdWlyZWQgYnkgdGhlIGNlbGwgd2l0aCB0
aGUgbGFyZ2VzdCBtaW5pbXVtIGNlbGwgd2lkdGggKG9yIHRoZSBjb2x1bW4gJ3dpZHRoJywgd2hp
Y2hldmVyIGlzIGxhcmdlcikuCisgICAgICAgIFRoZSBtYXhpbXVtIGlzIHRoYXQgcmVxdWlyZWQg
YnkgdGhlIGNlbGwgd2l0aCB0aGUgbGFyZ2VzdCBtYXhpbXVtIGNlbGwgd2lkdGggKG9yIHRoZSBj
b2x1bW4gJ3dpZHRoJywgd2hpY2hldmVyIGlzIGxhcmdlcikuCisKKyAgICAgICAgKiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lk
dGhGb3JDb2x1bW5zIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6YXBwZW5k
Q2VsbCk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpjb2x1bW5zKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpyb3dzKToKKwogMjAxOS0wOC0xNyAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVGlkeSB1cCBjaGVja3MgdG8gc2VlIGlm
IGEgY2hhcmFjdGVyIGlzIGluIHRoZSBMYXRpbi0xIHJhbmdlIGJ5IHVzaW5nIGlzTGF0aW4xIGNv
bnNpc3RlbnRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRl
eCBjZWNmZjBiYjNhNjQxMWViNWY5NTVkNDVhNDgxMmVmYTZmZWVhMDlmLi42ZDgwMmFiYTFiZjQ0
NjY1MDVhMzc2ZTcxODljOTRhODI5OWUxNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9y
bWF0dGluZ0NvbnRleHQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBzdHJ1Y3Qg
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyB7CiAgICAgICAgIHZvaWQgZXhwYW5kKExheW91dFVu
aXQgaG9yaXpvbnRhbFZhbHVlKTsKKyAgICAgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYg
b3BlcmF0b3IrPShjb25zdCBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzJik7CiAKICAgICAgICAg
TGF5b3V0VW5pdCBtaW5pbXVtOwogICAgICAgICBMYXlvdXRVbml0IG1heGltdW07CkBAIC0xNDcs
NiArMTQ4LDEzIEBAIGlubGluZSB2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzOjpleHBhbmQoTGF5b3V0VW5pdCBob3JpCiAgICAgbWF4aW11bSArPSBob3Jp
em9udGFsVmFsdWU7CiB9CiAKK2lubGluZSBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyYgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHM6Om9wZXJhdG9yKz0oY29uc3QgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYgb3RoZXIpCit7
CisgICAgbWluaW11bSArPSBvdGhlci5taW5pbXVtOworICAgIG1heGltdW0gKz0gb3RoZXIubWF4
aW11bTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKaW5kZXggYjE2NTNmMmFhYTRj
MjM2MmVkZDg5ODMzY2JhZjFiNzYxOTE1YmE0NC4uZGMxY2YwNmM1YmRlOTQzMTY2YTdiMWFhYzNk
M2RlMjQwMTlmZTI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0
cmVlL0Rpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUv
RGlzcGxheUJveC5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0Owog
Y2xhc3MgRmxvYXRpbmdDb250ZXh0OwogY2xhc3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7CiBj
bGFzcyBMYXlvdXRTdGF0ZTsKK2NsYXNzIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ7CiB9CiAKIG5h
bWVzcGFjZSBEaXNwbGF5IHsKQEAgLTU4LDYgKzU5LDcgQEAgcHVibGljOgogICAgIGZyaWVuZCBj
bGFzcyBMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDsKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDsKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpMYXlvdXRT
dGF0ZTsKKyAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Owog
CiAgICAgQm94KGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgQm94KGNvbnN0IEJveCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcv
VGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZTVhM2EwMjViZWMwNDllNGFjYWQyMjdm
M2RhNzAyYjdlOWUxOGUwYi4uOTVhNWEzMGUxNTRhMGVjMjhmOWUzMThlNmZhMWQxZjc1OTljZjMw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC01MywxMSArNTMsOSBAQCB2
b2lkIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCgpIGNvbnN0CiAgICAgY29tcHV0ZVBy
ZWZlcnJlZFdpZHRoRm9yQ29sdW1ucygpOwogICAgIC8vIDMuIENvbXB1dGUgdGhlIHdpZHRoIG9m
IHRoZSB0YWJsZS4KICAgICBjb21wdXRlVGFibGVXaWR0aCgpOwotICAgIC8vIDQuIERpc3RyaWJ1
dGUgdGhlIHdpZHRoIG9mIHRoZSB0YWJsZSBhbW9uZyBjb2x1bW5zLgotICAgIGRpc3RyaWJ1dGVB
dmFpbGFiZVdpZHRoKCk7Ci0gICAgLy8gNS4gQ29tcHV0ZSB0aGUgaGVpZ2h0IG9mIHRoZSB0YWJs
ZS4KKyAgICAvLyA0LiBDb21wdXRlIHRoZSBoZWlnaHQgb2YgdGhlIHRhYmxlLgogICAgIGNvbXB1
dGVUYWJsZUhlaWdodCgpOwotICAgIC8vIDYuIERpc3RyaWJ1dGUgdGhlIGhlaWdodCBvZiB0aGUg
dGFibGUgYW1vbmcgcm93cy4KKyAgICAvLyA1LiBEaXN0cmlidXRlIHRoZSBoZWlnaHQgb2YgdGhl
IHRhYmxlIGFtb25nIHJvd3MuCiAgICAgZGlzdHJpYnV0ZUF2YWlsYWJsZUhlaWdodCgpOwogfQog
CkBAIC0xMDQsMTQgKzEwMiw4MSBAQCB2b2lkIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVQcmVmZXJyZWRXaWR0aEZvckNvbHVtbnMoKSBjb25zdAogICAgICAgICBmb3IgKGF1dG8gaSA9
IDA7IGkgPCBjb2x1bW5TcGFuOyArK2kpCiAgICAgICAgICAgICBncmlkLnNsb3QoeyBpbml0aWFs
UG9zaXRpb24ueCgpICsgaSwgaW5pdGlhbFBvc2l0aW9uLnkoKSB9KS0+d2lkdGhDb25zdHJhaW50
cyA9IHNsb3RJbnRyaW5zaWNXaWR0aDsKICAgICB9CisgICAgLy8gMi4gRm9yIGVhY2ggY29sdW1u
LCBkZXRlcm1pbmUgYSBtYXhpbXVtIGFuZCBtaW5pbXVtIGNvbHVtbiB3aWR0aCBmcm9tIHRoZSBj
ZWxscyB0aGF0IHNwYW4gb25seSB0aGF0IGNvbHVtbi4KKyAgICAvLyAgICBUaGUgbWluaW11bSBp
cyB0aGF0IHJlcXVpcmVkIGJ5IHRoZSBjZWxsIHdpdGggdGhlIGxhcmdlc3QgbWluaW11bSBjZWxs
IHdpZHRoIChvciB0aGUgY29sdW1uICd3aWR0aCcsIHdoaWNoZXZlciBpcyBsYXJnZXIpLgorICAg
IC8vICAgIFRoZSBtYXhpbXVtIGlzIHRoYXQgcmVxdWlyZWQgYnkgdGhlIGNlbGwgd2l0aCB0aGUg
bGFyZ2VzdCBtYXhpbXVtIGNlbGwgd2lkdGggKG9yIHRoZSBjb2x1bW4gJ3dpZHRoJywgd2hpY2hl
dmVyIGlzIGxhcmdlcikuCisgICAgYXV0byYgY29sdW1ucyA9IGdyaWQuY29sdW1uc0NvbnRleHQo
KS5jb2x1bW5zKCk7CisgICAgaW50IG51bWJlck9mUm93cyA9IGdyaWQucm93cygpLnNpemUoKTsK
KyAgICBpbnQgbnVtYmVyT2ZDb2x1bW5zID0gY29sdW1ucy5zaXplKCk7CisgICAgZm9yIChpbnQg
Y29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IG51bWJlck9mQ29sdW1uczsgKytjb2x1bW5J
bmRleCkgeworICAgICAgICBhdXRvIGNvbHVtbkludHJpbnNpY1dpZHRocyA9IEZvcm1hdHRpbmdD
b250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfTsKKyAgICAgICAgZm9yIChpbnQg
cm93SW5kZXggPSAwOyByb3dJbmRleCA8IG51bWJlck9mUm93czsgKytyb3dJbmRleCkgeworICAg
ICAgICAgICAgYXV0byogc2xvdCA9IGdyaWQuc2xvdCh7IGNvbHVtbkluZGV4LCByb3dJbmRleCB9
KTsKKyAgICAgICAgICAgIGNvbHVtbkludHJpbnNpY1dpZHRocy5taW5pbXVtID0gc3RkOjptYXgo
c2xvdC0+d2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCBjb2x1bW5JbnRyaW5zaWNXaWR0aHMubWlu
aW11bSk7CisgICAgICAgICAgICBjb2x1bW5JbnRyaW5zaWNXaWR0aHMubWF4aW11bSA9IHN0ZDo6
bWF4KHNsb3QtPndpZHRoQ29uc3RyYWludHMubWF4aW11bSwgY29sdW1uSW50cmluc2ljV2lkdGhz
Lm1heGltdW0pOworICAgICAgICB9CisgICAgICAgIGNvbHVtbnNbY29sdW1uSW5kZXhdLnNldFdp
ZHRoQ29uc3RyYWludHMoY29sdW1uSW50cmluc2ljV2lkdGhzKTsKKyAgICB9CisgICAgLy8gRklY
TUU6IFRha2UgY29sdW1uIGdyb3VwIGVsZW1lbnRzIGludG8gYWNjb3VudC4KIH0KIAogdm9pZCBU
YWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlVGFibGVXaWR0aCgpIGNvbnN0CiB7CisgICAg
Ly8gQ29sdW1uIGFuZCBjYXB0aW9uIHdpZHRocyBpbmZsdWVuY2UgdGhlIGZpbmFsIHRhYmxlIHdp
ZHRoIGFzIGZvbGxvd3M6CisgICAgLy8gSWYgdGhlICd0YWJsZScgb3IgJ2lubGluZS10YWJsZScg
ZWxlbWVudCdzICd3aWR0aCcgcHJvcGVydHkgaGFzIGEgY29tcHV0ZWQgdmFsdWUgKFcpIG90aGVy
IHRoYW4gJ2F1dG8nLCB0aGUgdXNlZCB3aWR0aCBpcyB0aGUgZ3JlYXRlciBvZgorICAgIC8vIFcs
IENBUE1JTiwgYW5kIHRoZSBtaW5pbXVtIHdpZHRoIHJlcXVpcmVkIGJ5IGFsbCB0aGUgY29sdW1u
cyBwbHVzIGNlbGwgc3BhY2luZyBvciBib3JkZXJzIChNSU4pLgorICAgIC8vIElmIHRoZSB1c2Vk
IHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiBNSU4sIHRoZSBleHRyYSB3aWR0aCBzaG91bGQgYmUgZGlz
dHJpYnV0ZWQgb3ZlciB0aGUgY29sdW1ucy4KKyAgICAvLyBJZiB0aGUgJ3RhYmxlJyBvciAnaW5s
aW5lLXRhYmxlJyBlbGVtZW50IGhhcyAnd2lkdGg6IGF1dG8nLCB0aGUgdXNlZCB3aWR0aCBpcyB0
aGUgZ3JlYXRlciBvZiB0aGUgdGFibGUncyBjb250YWluaW5nIGJsb2NrIHdpZHRoLAorICAgIC8v
IENBUE1JTiwgYW5kIE1JTi4gSG93ZXZlciwgaWYgZWl0aGVyIENBUE1JTiBvciB0aGUgbWF4aW11
bSB3aWR0aCByZXF1aXJlZCBieSB0aGUgY29sdW1ucyBwbHVzIGNlbGwgc3BhY2luZyBvciBib3Jk
ZXJzIChNQVgpIGlzCisgICAgLy8gbGVzcyB0aGFuIHRoYXQgb2YgdGhlIGNvbnRhaW5pbmcgYmxv
Y2ssIHVzZSBtYXgoTUFYLCBDQVBNSU4pLgorCisgICAgLy8gRklYTUU6IFRoaXMga2luZCBvZiBj
b2RlIHVzdWFsbHkgbGl2ZXMgaW4gKkZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkgY2xhc3MuCisg
ICAgYXV0byYgdGFibGVXcmFwcGVyQm94ID0gcm9vdCgpOworICAgIGF1dG8mIHN0eWxlID0gdGFi
bGVXcmFwcGVyQm94LnN0eWxlKCk7CisgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gKnRhYmxl
V3JhcHBlckJveC5jb250YWluaW5nQmxvY2soKTsKKyAgICBhdXRvJiBjb250YWluaW5nQmxvY2tE
aXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGNvbnRhaW5p
bmdCbG9jayk7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGNvbnRhaW5pbmdCbG9j
a0Rpc3BsYXlCb3guY29udGVudEJveFdpZHRoKCk7CisKKyAgICBhdXRvJiBncmlkID0gZm9ybWF0
dGluZ1N0YXRlKCkudGFibGVHcmlkKCk7CisgICAgYXV0byYgY29sdW1uc0NvbnRleHQgPSBncmlk
LmNvbHVtbnNDb250ZXh0KCk7CisgICAgYXV0byB0YWJsZVdpZHRoQ29uc3RyYWludHMgPSBncmlk
LndpZHRoQ29uc3RyYWludHMoKTsKKworICAgIGF1dG8gd2lkdGggPSBHZW9tZXRyeTo6Y29tcHV0
ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS53aWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7Cisg
ICAgTGF5b3V0VW5pdCB1c2VkV2lkdGg7CisgICAgaWYgKHdpZHRoKSB7CisgICAgICAgIGlmICgq
d2lkdGggPiB0YWJsZVdpZHRoQ29uc3RyYWludHMubWluaW11bSkgeworICAgICAgICAgICAgZGlz
dHJpYnV0ZUF2YWlsYWJsZVdpZHRoKCp3aWR0aCAtIHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5p
bXVtKTsKKyAgICAgICAgICAgIHVzZWRXaWR0aCA9ICp3aWR0aDsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHVzZWRXaWR0aCA9IHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5pbXVtOwor
ICAgICAgICAgICAgY29sdW1uc0NvbnRleHQudXNlQXNMb2dpY2FsV2lkdGgoVGFibGVHcmlkOjpD
b2x1bW5zQ29udGV4dDo6V2lkdGhDb25zdHJhaW50c1R5cGU6Ok1pbmltdW0pOworICAgICAgICB9
CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5pbXVt
ID4gY29udGFpbmluZ0Jsb2NrV2lkdGgpIHsKKyAgICAgICAgICAgIHVzZWRXaWR0aCA9IHRhYmxl
V2lkdGhDb25zdHJhaW50cy5taW5pbXVtOworICAgICAgICAgICAgY29sdW1uc0NvbnRleHQudXNl
QXNMb2dpY2FsV2lkdGgoVGFibGVHcmlkOjpDb2x1bW5zQ29udGV4dDo6V2lkdGhDb25zdHJhaW50
c1R5cGU6Ok1pbmltdW0pOworICAgICAgICB9IGVsc2UgaWYgKHRhYmxlV2lkdGhDb25zdHJhaW50
cy5tYXhpbXVtIDwgY29udGFpbmluZ0Jsb2NrV2lkdGgpIHsKKyAgICAgICAgICAgIHVzZWRXaWR0
aCA9IHRhYmxlV2lkdGhDb25zdHJhaW50cy5tYXhpbXVtOworICAgICAgICAgICAgY29sdW1uc0Nv
bnRleHQudXNlQXNMb2dpY2FsV2lkdGgoVGFibGVHcmlkOjpDb2x1bW5zQ29udGV4dDo6V2lkdGhD
b25zdHJhaW50c1R5cGU6Ok1heGltdW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
dXNlZFdpZHRoID0gY29udGFpbmluZ0Jsb2NrV2lkdGg7CisgICAgICAgICAgICBkaXN0cmlidXRl
QXZhaWxhYmxlV2lkdGgoKndpZHRoIC0gdGFibGVXaWR0aENvbnN0cmFpbnRzLm1pbmltdW0pOwor
ICAgICAgICB9CisgICAgfQorCisgICAgYXV0byYgdGFibGVEaXNwbGF5Qm94ID0gbGF5b3V0U3Rh
dGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KHRhYmxlV3JhcHBlckJveCk7CisgICAgdGFibGVE
aXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aCh1c2VkV2lkdGgpOwogfQogCi12b2lkIFRhYmxl
Rm9ybWF0dGluZ0NvbnRleHQ6OmRpc3RyaWJ1dGVBdmFpbGFiZVdpZHRoKCkgY29uc3QKK3ZvaWQg
VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6ZGlzdHJpYnV0ZUF2YWlsYWJsZVdpZHRoKExheW91dFVu
aXQgZXh0cmFIb3Jpem9udGFsU3BhY2UpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6IFJpZ2h0IG5v
dyBqdXN0IGRpc3RyaWJ1dGUgdGhlIGV4dHJhIHNwYWNlIGVxdWFseSBhbW9uZyB0aGUgY29sdW1u
cy4KKyAgICBhdXRvJiBjb2x1bW5zID0gZm9ybWF0dGluZ1N0YXRlKCkudGFibGVHcmlkKCkuY29s
dW1uc0NvbnRleHQoKS5jb2x1bW5zKCk7CisgICAgQVNTRVJUKCFjb2x1bW5zLmlzRW1wdHkoKSk7
CisKKyAgICBhdXRvIGNvbHVtbkV4dHJhU3BhY2UgPSBleHRyYUhvcml6b250YWxTcGFjZSAvIGNv
bHVtbnMuc2l6ZSgpOworICAgIGZvciAoYXV0byYgY29sdW1uIDogY29sdW1ucykKKyAgICAgICAg
Y29sdW1uLnNldExvZ2ljYWxXaWR0aChjb2x1bW4ud2lkdGhDb25zdHJhaW50cygpLm1pbmltdW0g
KyBjb2x1bW5FeHRyYVNwYWNlKTsKIH0KIAogdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlVGFibGVIZWlnaHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuaAppbmRl
eCA0MWY3NDM1YTc0MGJjODI4ZWRiNWU5ZjE0ZWE0OTkwNmVkNzZhODcyLi5kZTI2M2IyMTAyYzAx
NDJhZWI0ZGNjMzIzMWVkYTU2NzAxMjcyMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQu
aApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlVGFibGVHcmlkKCkg
Y29uc3Q7CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVkV2lkdGhGb3JDb2x1bW5zKCkgY29uc3Q7
CiAgICAgdm9pZCBjb21wdXRlVGFibGVXaWR0aCgpIGNvbnN0OwotICAgIHZvaWQgZGlzdHJpYnV0
ZUF2YWlsYWJlV2lkdGgoKSBjb25zdDsKKyAgICB2b2lkIGRpc3RyaWJ1dGVBdmFpbGFibGVXaWR0
aChMYXlvdXRVbml0IGV4dHJhSG9yaXpvbnRhbFNwYWNlKSBjb25zdDsKICAgICB2b2lkIGNvbXB1
dGVUYWJsZUhlaWdodCgpIGNvbnN0OwogICAgIHZvaWQgZGlzdHJpYnV0ZUF2YWlsYWJsZUhlaWdo
dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3Jt
YXR0aW5nL1RhYmxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0
aW5nL1RhYmxlR3JpZC5jcHAKaW5kZXggYzdhZTNlNTgxMGQ2MDJmNjVlYjcwMDJmZmU5YzUyYmZj
NWMwMDBhNS4uOWUwODVmZGI0YTA4NTM0Y2EwMmJjMTgyOWQ3NmEyZDQ5ODcwMTRhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNw
cApAQCAtMzUsNiArMzUsNDUgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChUYWJsZUdyaWQpOwogCit2b2lkIFRhYmxlR3JpZDo6Q29sdW1uOjpzZXRX
aWR0aENvbnN0cmFpbnRzKEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFp
bnRzIHdpZHRoQ29uc3RyYWludHMpCit7CisjaWZuZGVmIE5ERUJVRworICAgIG1faGFzV2lkdGhD
b25zdHJhaW50cyA9IHRydWU7CisjZW5kaWYKKyAgICBtX3dpZHRoQ29uc3RyYWludHMgPSB3aWR0
aENvbnN0cmFpbnRzOworfQorCitGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25z
dHJhaW50cyBUYWJsZUdyaWQ6OkNvbHVtbjo6d2lkdGhDb25zdHJhaW50cygpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1faGFzV2lkdGhDb25zdHJhaW50cyk7CisgICAgcmV0dXJuIG1fd2lkdGhDb25z
dHJhaW50czsKK30KKwordm9pZCBUYWJsZUdyaWQ6OkNvbHVtbjo6c2V0TG9naWNhbFdpZHRoKExh
eW91dFVuaXQgY29tcHV0ZWRMb2dpY2FsV2lkdGgpCit7CisjaWZuZGVmIE5ERUJVRworICAgIG1f
aGFzQ29tcHV0ZWRXaWR0aCA9IHRydWU7CisjZW5kaWYKKyAgICBtX2NvbXB1dGVkTG9naWNhbFdp
ZHRoID0gY29tcHV0ZWRMb2dpY2FsV2lkdGg7Cit9CisKK0xheW91dFVuaXQgVGFibGVHcmlkOjpD
b2x1bW46OmxvZ2ljYWxXaWR0aCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzQ29tcHV0ZWRX
aWR0aCk7CisgICAgcmV0dXJuIG1fY29tcHV0ZWRMb2dpY2FsV2lkdGg7Cit9CisKK3ZvaWQgVGFi
bGVHcmlkOjpDb2x1bW5zQ29udGV4dDo6YWRkQ29sdW1uKCkKK3sKKyAgICBtX2NvbHVtbnMuYXBw
ZW5kKHsgfSk7Cit9CisKK3ZvaWQgVGFibGVHcmlkOjpDb2x1bW5zQ29udGV4dDo6dXNlQXNMb2dp
Y2FsV2lkdGgoV2lkdGhDb25zdHJhaW50c1R5cGUgdHlwZSkKK3sKKyAgICBmb3IgKGF1dG8mIGNv
bHVtbiA6IG1fY29sdW1ucykKKyAgICAgICAgY29sdW1uLnNldExvZ2ljYWxXaWR0aCh0eXBlID09
IFdpZHRoQ29uc3RyYWludHNUeXBlOjpNaW5pbXVtID8gY29sdW1uLndpZHRoQ29uc3RyYWludHMo
KS5taW5pbXVtIDogY29sdW1uLndpZHRoQ29uc3RyYWludHMoKS5tYXhpbXVtKTsKK30KKwogVGFi
bGVHcmlkOjpDZWxsSW5mbzo6Q2VsbEluZm8oY29uc3QgQm94JiB0YWJsZUNlbGxCb3gsIFNsb3RQ
b3NpdGlvbiBwb3NpdGlvbiwgQ2VsbFNpemUgc2l6ZSkKICAgICA6IHRhYmxlQ2VsbEJveCh0YWJs
ZUNlbGxCb3gpCiAgICAgLCBwb3NpdGlvbihwb3NpdGlvbikKQEAgLTYwLDEzICs5OSwxNCBAQCB2
b2lkIFRhYmxlR3JpZDo6YXBwZW5kQ2VsbChjb25zdCBCb3gmIHRhYmxlQ2VsbEJveCkKIHsKICAg
ICBpbnQgcm93U3BhbiA9IHRhYmxlQ2VsbEJveC5yb3dTcGFuKCk7CiAgICAgaW50IGNvbHVtblNw
YW4gPSB0YWJsZUNlbGxCb3guY29sdW1uU3BhbigpOworICAgIGF1dG8gaXNJbk5ld1JvdyA9ICF0
YWJsZUNlbGxCb3gucHJldmlvdXNTaWJsaW5nKCk7CiAgICAgYXV0byBpbml0aWFsU2xvdFBvc2l0
aW9uID0gU2xvdFBvc2l0aW9uIHsgfTsKIAogICAgIGlmICghbV9jZWxsTGlzdC5pc0VtcHR5KCkp
IHsKICAgICAgICAgYXV0byYgbGFzdENlbGwgPSBtX2NlbGxMaXN0Lmxhc3QoKTsKICAgICAgICAg
YXV0byBsYXN0U2xvdFBvc2l0aW9uID0gbGFzdENlbGwtPnBvc2l0aW9uOwogICAgICAgICAvLyBG
aXJzdCB0YWJsZSBjZWxsIGluIHRoaXMgcm93PwotICAgICAgICBpZiAoIXRhYmxlQ2VsbEJveC5w
cmV2aW91c1NpYmxpbmcoKSkKKyAgICAgICAgaWYgKGlzSW5OZXdSb3cpCiAgICAgICAgICAgICBp
bml0aWFsU2xvdFBvc2l0aW9uID0gU2xvdFBvc2l0aW9uIHsgMCwgbGFzdFNsb3RQb3NpdGlvbi55
KCkgKyAxIH07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGluaXRpYWxTbG90UG9zaXRpb24g
PSBTbG90UG9zaXRpb24geyBsYXN0U2xvdFBvc2l0aW9uLngoKSArIDEsIGxhc3RTbG90UG9zaXRp
b24ueSgpIH07CkBAIC04Nyw2ICsxMjcsMTQgQEAgdm9pZCBUYWJsZUdyaWQ6OmFwcGVuZENlbGwo
Y29uc3QgQm94JiB0YWJsZUNlbGxCb3gpCiAgICAgICAgICAgICBtX3Nsb3RNYXAuYWRkKHBvc2l0
aW9uLCBzdGQ6Om1ha2VfdW5pcXVlPFNsb3RJbmZvPigqY2VsbEluZm8pKTsKICAgICAgICAgfQog
ICAgIH0KKyAgICAvLyBJbml0aWFsaXplIGNvbHVtbnMvcm93cyBpZiBuZWVkZWQuCisgICAgYXV0
byBtaXNzaW5nTnVtYmVyT2ZDb2x1bW5zID0gc3RkOjptYXg8dW5zaWduZWQ+KDAsIChpbml0aWFs
U2xvdFBvc2l0aW9uLngoKSArIGNvbHVtblNwYW4pIC0gbV9jb2x1bW5zQ29udGV4dC5jb2x1bW5z
KCkuc2l6ZSgpKTsgCisgICAgZm9yICh1bnNpZ25lZCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBtaXNz
aW5nTnVtYmVyT2ZDb2x1bW5zOyArK2NvbHVtbikKKyAgICAgICAgbV9jb2x1bW5zQ29udGV4dC5h
ZGRDb2x1bW4oKTsKKworICAgIGlmIChpc0luTmV3Um93KQorICAgICAgICBtX3Jvd3MuYXBwZW5k
KHsgfSk7CisKICAgICBtX2NlbGxMaXN0LmFkZChXVEZNb3ZlKGNlbGxJbmZvKSk7CiB9CiAKQEAg
LTEwMSw2ICsxNDksMTUgQEAgdm9pZCBUYWJsZUdyaWQ6OnJlbW92ZUNlbGwoY29uc3QgQm94JiB0
YWJsZUNlbGxCb3gpCiAgICAgVU5VU0VEX1BBUkFNKHRhYmxlQ2VsbEJveCk7CiB9CiAKK0Zvcm1h
dHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIFRhYmxlR3JpZDo6d2lkdGhD
b25zdHJhaW50cygpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBj
YWNoZSB0aGlzIHZhbHVlLgorICAgIGF1dG8gd2lkdGhDb25zdHJhaW50cyA9IEZvcm1hdHRpbmdD
b250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfTsKKyAgICBmb3IgKGF1dG8mIGNv
bHVtbiA6IG1fY29sdW1uc0NvbnRleHQuY29sdW1ucygpKQorICAgICAgICB3aWR0aENvbnN0cmFp
bnRzICs9IGNvbHVtbi53aWR0aENvbnN0cmFpbnRzKCk7CisgICAgcmV0dXJuIHdpZHRoQ29uc3Ry
YWludHM7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmgKaW5kZXggYTQ2ODUxOTlhZTRhNjE2YmVhNjM4NDIx
MzQ5NzJjMGYyMzNlYzRjMS4uNDA2MmJjNzYxMWQwY2RkYjI4YjMwMzIyYTJjNWYyM2ViYWVkYmY3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
R3JpZC5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNlbGwoY29u
c3QgQm94Jik7CiAKICAgICB1c2luZyBTbG90UG9zaXRpb24gPSBJbnRQb2ludDsKKworICAgIC8v
IENlbGwgcmVwcmVzZW50cyBhIDx0ZD4gb3IgPHRoPi4gSXQgY2FuIHNwYW4gbXVsdGlwbGUgc2xv
dHMgaW4gdGhlIGdyaWQuCiAgICAgdXNpbmcgQ2VsbFNpemUgPSBJbnRTaXplOwogICAgIHN0cnVj
dCBDZWxsSW5mbyA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDZWxsSW5mbz4gewogICAgICAgICBX
VEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CkBAIC01OSw3ICs2MSw1MSBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgQ2VsbExpc3QgPSBXVEY6Okxpc3RIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxD
ZWxsSW5mbz4+OwogICAgIENlbGxMaXN0JiBjZWxscygpIHsgcmV0dXJuIG1fY2VsbExpc3Q7IH0K
IAotICAgIHVzaW5nIFNsb3RMb2dpY2FsU2l6ZSA9IExheW91dFNpemU7CisgICAgLy8gQ29sdW1u
IHJlcHJlc2VudHMgYSB2ZXJ0aWNhbCBzZXQgb2Ygc2xvdHMgaW4gdGhlIGdyaWQuIEEgY29sdW1u
IGhhcyBtaW4vbWF4IGFuZCBmaW5hbCB3aWR0aC4KKyAgICBjbGFzcyBDb2x1bW5zQ29udGV4dDsK
KyAgICBjbGFzcyBDb2x1bW4geworICAgIHB1YmxpYzoKKyAgICAgICAgdm9pZCBzZXRXaWR0aENv
bnN0cmFpbnRzKEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKTsK
KyAgICAgICAgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgd2lk
dGhDb25zdHJhaW50cygpIGNvbnN0OworCisgICAgICAgIHZvaWQgc2V0TG9naWNhbFdpZHRoKExh
eW91dFVuaXQpOworICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0OworCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgZnJpZW5kIGNsYXNzIENvbHVtbnNDb250ZXh0OworICAgICAg
ICBDb2x1bW4oKSA9IGRlZmF1bHQ7CisKKyAgICAgICAgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMgbV93aWR0aENvbnN0cmFpbnRzOworICAgICAgICBMYXlvdXRV
bml0IG1fY29tcHV0ZWRMb2dpY2FsV2lkdGg7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBib29s
IG1faGFzV2lkdGhDb25zdHJhaW50cyB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgbV9oYXNDb21w
dXRlZFdpZHRoIHsgZmFsc2UgfTsKKyNlbmRpZgorICAgIH07CisKKyAgICBjbGFzcyBDb2x1bW5z
Q29udGV4dCB7CisgICAgcHVibGljOgorICAgICAgICB1c2luZyBDb2x1bW5MaXN0ID0gVmVjdG9y
PENvbHVtbj47CisgICAgICAgIENvbHVtbkxpc3QmIGNvbHVtbnMoKSB7IHJldHVybiBtX2NvbHVt
bnM7IH0KKyAgICAgICAgY29uc3QgQ29sdW1uTGlzdCYgY29sdW1ucygpIGNvbnN0IHsgcmV0dXJu
IG1fY29sdW1uczsgfQorCisgICAgICAgIGVudW0gY2xhc3MgV2lkdGhDb25zdHJhaW50c1R5cGUg
eyBNaW5pbXVtLCBNYXhpbXVtIH07CisgICAgICAgIHZvaWQgdXNlQXNMb2dpY2FsV2lkdGgoV2lk
dGhDb25zdHJhaW50c1R5cGUpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgZnJpZW5kIGNsYXNz
IFRhYmxlR3JpZDsKKyAgICAgICAgdm9pZCBhZGRDb2x1bW4oKTsKKworICAgICAgICBDb2x1bW5M
aXN0IG1fY29sdW1uczsKKyAgICB9OworICAgIENvbHVtbnNDb250ZXh0JiBjb2x1bW5zQ29udGV4
dCgpIHsgcmV0dXJuIG1fY29sdW1uc0NvbnRleHQ7IH0KKworICAgIHN0cnVjdCBSb3cgeworICAg
ICAgICBMYXlvdXRVbml0IGhlaWdodDsKKyAgICB9OworICAgIHVzaW5nIFJvd0xpc3QgPSBXVEY6
OlZlY3RvcjxSb3c+OworICAgIFJvd0xpc3QmIHJvd3MoKSB7IHJldHVybiBtX3Jvd3M7IH0KKwog
ICAgIHN0cnVjdCBTbG90SW5mbyB7CiAgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9D
QVRFRDsKICAgICAgICAgU2xvdEluZm8oKSA9IGRlZmF1bHQ7CkBAIC02NywxNCArMTEzLDE4IEBA
IHB1YmxpYzoKIAogICAgICAgICBXZWFrUHRyPENlbGxJbmZvPiBjZWxsOwogICAgICAgICBGb3Jt
YXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyB3aWR0aENvbnN0cmFpbnRz
OwotICAgICAgICBTbG90TG9naWNhbFNpemUgc2l6ZTsKICAgICB9OwogICAgIFNsb3RJbmZvKiBz
bG90KFNsb3RQb3NpdGlvbik7CiAKKyAgICBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyB3aWR0aENvbnN0cmFpbnRzKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
dXNpbmcgU2xvdE1hcCA9IFdURjo6SGFzaE1hcDxTbG90UG9zaXRpb24sIHN0ZDo6dW5pcXVlX3B0
cjxTbG90SW5mbz4+OworCiAgICAgU2xvdE1hcCBtX3Nsb3RNYXA7CiAgICAgQ2VsbExpc3QgbV9j
ZWxsTGlzdDsKKyAgICBDb2x1bW5zQ29udGV4dCBtX2NvbHVtbnNDb250ZXh0OworICAgIFJvd0xp
c3QgbV9yb3dzOwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>