<?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>200198</bug_id>
          
          <creation_ts>2019-07-27 11:45:08 -0700</creation_ts>
          <short_desc>[LFC][TFC] &lt;table&gt; initiates a principal block container box called table wrapper box.</short_desc>
          <delta_ts>2019-07-29 17:17:23 -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>1556392</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-07-27 11:45:08 -0700</bug_when>
    <thetext>the table wrapper box contains the table box itself and any caption boxes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556393</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-27 11:45:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/53623803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556394</commentid>
    <comment_count>2</comment_count>
      <attachid>375032</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-27 11:48:32 -0700</bug_when>
    <thetext>Created attachment 375032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556790</commentid>
    <comment_count>3</comment_count>
      <attachid>375118</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-29 16:11:49 -0700</bug_when>
    <thetext>Created attachment 375118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556836</commentid>
    <comment_count>4</comment_count>
      <attachid>375118</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-29 17:17:22 -0700</bug_when>
    <thetext>Comment on attachment 375118
Patch

Clearing flags on attachment: 375118

Committed r247931: &lt;https://trac.webkit.org/changeset/247931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556837</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-29 17:17:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375032</attachid>
            <date>2019-07-27 11:48:32 -0700</date>
            <delta_ts>2019-07-29 16:11:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200198-20190727114828.patch</filename>
            <type>text/plain</type>
            <size>21016</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE4ODg1Njk5NTE0ODBi
ZmE4YjJkZDA2MGI3ZGI2ODVkZGZkYWEwYi4uYmQ2NTViMjNkZTk0NjRhYjY4YjlhZDlmYjUyZjc5
ZmE3MmRmMTViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA3LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSA8dGFibGU+
IGluaXRpYXRlcyBhIHByaW5jaXBhbCBibG9jayBjb250YWluZXIgYm94IGNhbGxlZCB0YWJsZSB3
cmFwcGVyIGJveC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDE5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM2MjM4MDM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRhYmxlIHdyYXBwZXIg
Ym94IGNvbnRhaW5zIHRoZSB0YWJsZSBib3ggaXRzZWxmIGFuZCBhbnkgY2FwdGlvbiBib3hlcy4K
KworICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNCbG9ja0NvbnRhaW5lckJveCBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJveDo6aXNUYWJsZUNhcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCb3g6OmlzVGFibGVSb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6
OmlzVGFibGVDZWxsIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRD
b250YWluZXIuaDoKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmFwcGVuZENoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TGF5b3V0Qm94KToKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oOgorCiAyMDE5LTA3LTI2ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBJbnRyb2R1Y2Ug
Qm94Ojplc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IDAwZWZkODQwODRhMDhkNjkz
Mzc4YTRhMjFmNmI4YTZjNDM0ODc5ZGUuLjg1MzA2MGEzMTJhOTM2NzBlY2ViZmQwNWU4NGQ0OGFl
ODUxZDczY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIGJvb2wgQm94Ojppc0lubGluZUxldmVsQm94KCkg
Y29uc3QKIGJvb2wgQm94Ojppc0Jsb2NrQ29udGFpbmVyQm94KCkgY29uc3QKIHsKICAgICBhdXRv
IGRpc3BsYXkgPSBtX3N0eWxlLmRpc3BsYXkoKTsKLSAgICByZXR1cm4gZGlzcGxheSA9PSBEaXNw
bGF5VHlwZTo6QmxvY2sgfHwgZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6TGlzdEl0ZW0gfHwgaXNJ
bmxpbmVCbG9ja0JveCgpIHx8IGlzVGFibGVXcmFwcGVyQm94KCkgfHwgaXNUYWJsZUNlbGwoKSB8
fCBkaXNwbGF5ID09IERpc3BsYXlUeXBlOjpUYWJsZUNhcHRpb247IC8vIFRPRE8gJiYgIXJlcGxh
Y2VkIGVsZW1lbnQKKyAgICByZXR1cm4gZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6QmxvY2sgfHwg
ZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6TGlzdEl0ZW0gfHwgaXNJbmxpbmVCbG9ja0JveCgpIHx8
IGlzVGFibGVXcmFwcGVyQm94KCkgfHwgaXNUYWJsZUNlbGwoKSB8fCBpc1RhYmxlQ2FwdGlvbigp
OyAvLyBUT0RPICYmICFyZXBsYWNlZCBlbGVtZW50CiB9CiAKIGJvb2wgQm94Ojppc0luaXRpYWxD
b250YWluaW5nQmxvY2soKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRCb3guaAppbmRleCBjZmE5ODQwZTY3OTA4MzIwZjg5MDg4NmQxNDY4NGM3ZmUyNjk5
MzVmLi4zNzNlODE5YjlhNTcyMzFhYTdhMjQ5OTFhMTc1OGNmZTcwZDIwZmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtNDcsNyArNDcsNiBA
QCBwdWJsaWM6CiAgICAgICAgIEJvZHksCiAgICAgICAgIFRhYmxlV3JhcHBlckJveCwgLy8gVGhl
IHRhYmxlIGdlbmVyYXRlcyBhIHByaW5jaXBhbCBibG9jayBjb250YWluZXIgYm94IGNhbGxlZCB0
aGUgdGFibGUgd3JhcHBlciBib3ggdGhhdCBjb250YWlucyB0aGUgdGFibGUgYm94IGFuZCBhbnkg
Y2FwdGlvbiBib3hlcy4gCiAgICAgICAgIFRhYmxlQm94LCAvLyBUaGUgdGFibGUgYm94IGlzIGEg
YmxvY2stbGV2ZWwgYm94IHRoYXQgY29udGFpbnMgdGhlIHRhYmxlJ3MgaW50ZXJuYWwgdGFibGUg
Ym94ZXMuCi0gICAgICAgIFRhYmxlQ2VsbCwKICAgICAgICAgVGFibGVDb2x1bW4sCiAgICAgICAg
IFRhYmxlUm93LAogICAgICAgICBUYWJsZUNvbHVtbkdyb3VwLApAQCAtMTE4LDcgKzExNyw5IEBA
IHB1YmxpYzoKICAgICBib29sIGlzQm9keUJveCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudEF0
dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgpLmVsZW1lbnRUeXBlID09IEVs
ZW1lbnRUeXBlOjpCb2R5OyB9CiAgICAgYm9vbCBpc1RhYmxlV3JhcHBlckJveCgpIGNvbnN0IHsg
cmV0dXJuIG1fZWxlbWVudEF0dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgp
LmVsZW1lbnRUeXBlID09IEVsZW1lbnRUeXBlOjpUYWJsZVdyYXBwZXJCb3g7IH0KICAgICBib29s
IGlzVGFibGVCb3goKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRBdHRyaWJ1dGVzICYmIG1fZWxl
bWVudEF0dHJpYnV0ZXMudmFsdWUoKS5lbGVtZW50VHlwZSA9PSBFbGVtZW50VHlwZTo6VGFibGVC
b3g7IH0KLSAgICBib29sIGlzVGFibGVDZWxsKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0
cmlidXRlcyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxl
bWVudFR5cGU6OlRhYmxlQ2VsbDsgfQorICAgIGJvb2wgaXNUYWJsZUNhcHRpb24oKSBjb25zdCB7
IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDYXB0aW9uOyB9
CisgICAgYm9vbCBpc1RhYmxlUm93KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0cmlidXRl
cyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5
cGU6OlRhYmxlUm93OyB9CisgICAgYm9vbCBpc1RhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIHN0
eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpUYWJsZUNlbGw7OyB9CiAgICAgYm9vbCBp
c1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gaXNJbWFnZSgpIHx8IGlzSUZyYW1lKCk7IH0KICAg
ICBib29sIGlzSUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0cmlidXRlcyAmJiBt
X2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5cGU6OklG
cmFtZTsgfQogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudEF0dHJp
YnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgpLmVsZW1lbnRUeXBlID09IEVsZW1l
bnRUeXBlOjpJbWFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRDb250YWluZXIuaAppbmRleCBhNjQxYzg4NmY5ODliNjI1ZTg5NTU0NTM2NmQ5ODk1
NTc3YzA3MTkwLi5mZDIxZDUxOTNiYzUzZWFkNTY0ZDk1ZmZlOTFlM2ZkMjg2MGViNTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIu
aApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIGNsYXNzIENvbnRhaW5lciA6
IHB1YmxpYyBCb3ggewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ29udGFpbmVyKTsKIHB1
YmxpYzoKLSAgICBDb250YWluZXIoT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+LCBSZW5kZXJT
dHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKKyAgICBDb250YWluZXIoT3B0aW9uYWw8RWxlbWVudEF0
dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzID0gQ29udGFpbmVyRmxhZyk7
CiAKICAgICBjb25zdCBCb3gqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hp
bGQ7IH0KICAgICBjb25zdCBCb3gqIGZpcnN0SW5GbG93Q2hpbGQoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNw
cAppbmRleCBmMTMyZTk4MmMyMmMzYmYxMzQxZDhhZmM4NzcwYjM1YTk4NWFiOTFiLi4yODY4NTUw
NTk1NDI4YzQ3MWYyYjdjMGY3YmQxZGM4Yzk4MzE4YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC00NSwx
MiArNDUsMzAgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJM
aW5lQnJlYWsuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlJlbmRlclRh
YmxlLmgiCisjaW5jbHVkZSAiUmVuZGVyVGFibGVDYXB0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKK3N0YXRpYyB2b2lkIGFwcGVuZENoaWxkKENv
bnRhaW5lciYgcGFyZW50LCBCb3gmIG5ld0NoaWxkKQoreworICAgIGlmICghcGFyZW50Lmhhc0No
aWxkKCkpIHsKKyAgICAgICAgcGFyZW50LnNldEZpcnN0Q2hpbGQobmV3Q2hpbGQpOworICAgICAg
ICBwYXJlbnQuc2V0TGFzdENoaWxkKG5ld0NoaWxkKTsKKyAgICAgICAgbmV3Q2hpbGQuc2V0UGFy
ZW50KHBhcmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBsYXN0Q2hp
bGQgPSBjb25zdF9jYXN0PEJveCY+KCpwYXJlbnQubGFzdENoaWxkKCkpOworICAgIGxhc3RDaGls
ZC5zZXROZXh0U2libGluZyhuZXdDaGlsZCk7CisgICAgbmV3Q2hpbGQuc2V0UHJldmlvdXNTaWJs
aW5nKGxhc3RDaGlsZCk7CisgICAgbmV3Q2hpbGQuc2V0UGFyZW50KHBhcmVudCk7CisgICAgcGFy
ZW50LnNldExhc3RDaGlsZChuZXdDaGlsZCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxDb250YWlu
ZXI+IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKGNvbnN0IFJlbmRlclZpZXcmIHJlbmRl
clZpZXcpCiB7CiAgICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJWaWV3
LnN0eWxlKCkpOwpAQCAtNzEsNyArODksNyBAQCBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0U2l6ZT4g
YWNjdW11bGF0ZWRPZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVkQ29udGludWF0aW9uKGNvbgogICAg
IHJldHVybiBibG9jay5yZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCk7CiB9CiAKLXZvaWQgVHJlZUJ1
aWxkZXI6OmNyZWF0ZVN1YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRlcmVyLCBD
b250YWluZXImIHJvb3RDb250YWluZXIpCitzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRl
cjo6Y3JlYXRlTGF5b3V0Qm94KGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudFJlbmRlcmVyLCBj
b25zdCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpCiB7CiAgICAgYXV0byBlbGVtZW50QXR0
cmlidXRlcyA9IFtdIChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgLT4gT3B0aW9uYWw8
Qm94OjpFbGVtZW50QXR0cmlidXRlcz4gewogICAgICAgICBpZiAocmVuZGVyZXIuaXNEb2N1bWVu
dEVsZW1lbnRSZW5kZXJlcigpKQpAQCAtMTAyLDc5ICsxMjAsMTExIEBAIHZvaWQgVHJlZUJ1aWxk
ZXI6OmNyZWF0ZVN1YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRlcmVyLCBDb250
YWluZXImIHJvCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfTsKIAotICAgIGZv
ciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJPYmplY3Q+KHJvb3RSZW5kZXJl
cikpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEJveD4gYm94OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxCb3g+IGNoaWxkTGF5b3V0Qm94OworICAgIGlmIChpczxSZW5kZXJUZXh0PihjaGlsZFJl
bmRlcmVyKSkgeworICAgICAgICAvLyBGSVhNRTogQ2xlYXJseSB0aGVyZSBtdXN0IGJlIGEgaGVs
cGVyIGZ1bmN0aW9uIGZvciB0aGlzLgorICAgICAgICBpZiAocGFyZW50UmVuZGVyZXIuc3R5bGUo
KS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZSkKKyAgICAgICAgICAgIGNoaWxkTGF5
b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVCb3g+KE9wdGlvbmFsPEJveDo6RWxlbWVu
dEF0dHJpYnV0ZXM+KCksIFJlbmRlclN0eWxlOjpjbG9uZShwYXJlbnRSZW5kZXJlci5zdHlsZSgp
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtl
X3VuaXF1ZTxJbmxpbmVCb3g+KE9wdGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+KCksIFJl
bmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudFJlbmRlcmVy
LnN0eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKKyAgICAgICAgZG93bmNhc3Q8SW5saW5l
Qm94PigqY2hpbGRMYXlvdXRCb3gpLnNldFRleHRDb250ZW50KGRvd25jYXN0PFJlbmRlclRleHQ+
KGNoaWxkUmVuZGVyZXIpLm9yaWdpbmFsVGV4dCgpKTsKKyAgICAgICAgcmV0dXJuIGNoaWxkTGF5
b3V0Qm94OworICAgIH0KIAotICAgICAgICBpZiAoaXM8UmVuZGVyVGV4dD4oY2hpbGQpKSB7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogQ2xlYXJseSB0aGVyZSBtdXN0IGJlIGEgaGVscGVyIGZ1bmN0
aW9uIGZvciB0aGlzLgotICAgICAgICAgICAgaWYgKHJvb3RSZW5kZXJlci5zdHlsZSgpLmRpc3Bs
YXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lKQotICAgICAgICAgICAgICAgIGJveCA9IHN0ZDo6
bWFrZV91bmlxdWU8SW5saW5lQm94PihPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPigp
LCBSZW5kZXJTdHlsZTo6Y2xvbmUocm9vdFJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUJveD4o
T3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmlidXRlcz4oKSwgUmVuZGVyU3R5bGU6OmNyZWF0ZUFu
b255bW91c1N0eWxlV2l0aERpc3BsYXkocm9vdFJlbmRlcmVyLnN0eWxlKCksIERpc3BsYXlUeXBl
OjpJbmxpbmUpKTsKLSAgICAgICAgICAgIGRvd25jYXN0PElubGluZUJveD4oKmJveCkuc2V0VGV4
dENvbnRlbnQoZG93bmNhc3Q8UmVuZGVyVGV4dD4oY2hpbGQpLm9yaWdpbmFsVGV4dCgpKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJMaW5lQnJlYWs+KGNoaWxkKSkgewotICAgICAgICAg
ICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMaW5lQnJlYWs+KGNoaWxkKTsKLSAg
ICAgICAgICAgIGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8TGluZUJyZWFrQm94PihlbGVtZW50QXR0
cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7
Ci0gICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KGNoaWxkKSkgewotICAgICAg
ICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oY2hpbGQpOwot
ICAgICAgICAgICAgYXV0byBkaXNwbGF5ID0gcmVuZGVyZXIuc3R5bGUoKS5kaXNwbGF5KCk7Ci0g
ICAgICAgICAgICBpZiAoZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6QmxvY2spCi0gICAgICAgICAg
ICAgICAgYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxCb3g+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRl
cmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUJveD4o
ZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIu
c3R5bGUoKSkpOwotICAgICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IHlldCBzdXBwb3J0IGFs
bCByZXBsYWNlZCBlbGVtZW50cyBhbmQgdGhpcyBpcyB0ZW1wb3JhcnkgYW55d2F5LgotICAgICAg
ICAgICAgaWYgKGJveC0+cmVwbGFjZWQoKSkKLSAgICAgICAgICAgICAgICBib3gtPnJlcGxhY2Vk
KCktPnNldEludHJpbnNpY1NpemUocmVuZGVyZXIuaW50cmluc2ljU2l6ZSgpKTsKLSAgICAgICAg
ICAgIGlmIChpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKSB7Ci0gICAgICAgICAgICAgICAgYXV0
byYgaW1hZ2VSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckltYWdlPihyZW5kZXJlcik7Ci0gICAg
ICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVyZXIuaW1hZ2VSZXNvdXJjZSgpLmVycm9yT2NjdXJy
ZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgYm94LT5yZXBsYWNlZCgpLT5zZXRJbnRyaW5zaWNS
YXRpbygxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJFbGVt
ZW50PihjaGlsZCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyRWxlbWVudD4oY2hpbGQpOwotICAgICAgICAgICAgYXV0byBkaXNwbGF5ID0gcmVuZGVyZXIu
c3R5bGUoKS5kaXNwbGF5KCk7Ci0gICAgICAgICAgICBpZiAoZGlzcGxheSA9PSBEaXNwbGF5VHlw
ZTo6QmxvY2spIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBvZmZzZXQgPSBhY2N1bXVsYXRl
ZE9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRDb250aW51YXRpb24oZG93bmNhc3Q8UmVuZGVyQm94
PihyZW5kZXJlcikpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y2xvbmVQdHIocmVuZGVyZXIuc3R5bGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHN0
eWxlLT5zZXRUb3AoeyBvZmZzZXQtPmhlaWdodCgpLCBGaXhlZCB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgc3R5bGUtPnNldExlZnQoeyBvZmZzZXQtPndpZHRoKCksIEZpeGVkIH0pOwotICAgICAg
ICAgICAgICAgICAgICBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihlbGVt
ZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoKnN0eWxlKSk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8Qmxv
Y2tDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNs
b25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9
PSBEaXNwbGF5VHlwZTo6SW5saW5lKQotICAgICAgICAgICAgICAgIGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8SW5saW5lQ29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRl
clN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChk
aXNwbGF5ID09IERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jaykKLSAgICAgICAgICAgICAgICBib3gg
PSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUNvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVu
ZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KKyAgICBhdXRvJiByZW5k
ZXJlciA9IGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkUmVuZGVyZXIpOworICAgIGF1dG8g
ZGlzcGxheVR5cGUgPSByZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKTsKKyAgICBpZiAoaXM8UmVu
ZGVyTGluZUJyZWFrPihyZW5kZXJlcikpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PExpbmVCcmVha0JveD4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6
Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworCisgICAgaWYgKGlzPFJlbmRlclRhYmxlPihyZW5k
ZXJlcikpIHsKKyAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBwcmluY2lwYWwgdGFibGUgd3JhcHBl
ciBib3ggKGFuZCBub3QgdGhlIHRhYmxlIGJveCBpdHNlbGYpLgorICAgICAgICBpZiAoZGlzcGxh
eVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlKQorICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihCb3g6OkVsZW1lbnRBdHRyaWJ1dGVz
IHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFJlbmRlclN0eWxlOjpjbG9u
ZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJU
KGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZSk7CisgICAgICAgICAgICBj
aGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lQ29udGFpbmVyPihCb3g6OkVs
ZW1lbnRBdHRyaWJ1dGVzIHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFJl
bmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgIH0KKyAgICB9IGVs
c2UgaWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKGRpc3Bs
YXlUeXBlID09IERpc3BsYXlUeXBlOjpCbG9jaykKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94
ID0gc3RkOjptYWtlX3VuaXF1ZTxCb3g+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVu
ZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUJveD4oZWxlbWVu
dEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUo
KSkpOworICAgICAgICAvLyBGSVhNRTogV2UgZG9uJ3QgeWV0IHN1cHBvcnQgYWxsIHJlcGxhY2Vk
IGVsZW1lbnRzIGFuZCB0aGlzIGlzIHRlbXBvcmFyeSBhbnl3YXkuCisgICAgICAgIGlmIChjaGls
ZExheW91dEJveC0+cmVwbGFjZWQoKSkKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94LT5yZXBs
YWNlZCgpLT5zZXRJbnRyaW5zaWNTaXplKGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyZW5kZXJl
cikuaW50cmluc2ljU2l6ZSgpKTsKKyAgICAgICAgaWYgKGlzPFJlbmRlckltYWdlPihyZW5kZXJl
cikpIHsKKyAgICAgICAgICAgIGF1dG8mIGltYWdlUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJJ
bWFnZT4ocmVuZGVyZXIpOworICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVyZXIuaW1hZ2VSZXNv
dXJjZSgpLmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+
cmVwbGFjZWQoKS0+c2V0SW50cmluc2ljUmF0aW8oMSk7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eyAKKyAgICAgICAgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpCbG9jaykgeworICAg
ICAgICAgICAgaWYgKGF1dG8gb2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXRGb3JJbkZsb3dQb3Np
dGlvbmVkQ29udGludWF0aW9uKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKSkgeworICAg
ICAgICAgICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIocmVuZGVyZXIu
c3R5bGUoKSk7CisgICAgICAgICAgICAgICAgc3R5bGUtPnNldFRvcCh7IG9mZnNldC0+aGVpZ2h0
KCksIEZpeGVkIH0pOworICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRMZWZ0KHsgb2Zmc2V0LT53
aWR0aCgpLCBGaXhlZCB9KTsKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6
bWFrZV91bmlxdWU8QmxvY2tDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwg
V1RGTW92ZSgqc3R5bGUpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGNo
aWxkTGF5b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxCbG9ja0NvbnRhaW5lcj4oZWxlbWVudEF0
dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkp
OworICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJbmxpbmUp
CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lQ29u
dGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShy
ZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgIGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3Bs
YXlUeXBlOjpJbmxpbmVCbG9jaykKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjpt
YWtlX3VuaXF1ZTxJbmxpbmVDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwg
UmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgZWxzZSBpZiAo
ZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbiB8fCBkaXNwbGF5VHlwZSA9
PSBEaXNwbGF5VHlwZTo6VGFibGVDZWxsKSB7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9
IHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRl
cmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgfSBl
bHNlIGlmIChkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVSb3dHcm91cCB8fCBkaXNw
bGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVIZWFkZXJHcm91cCB8fCBkaXNwbGF5VHlwZSA9
PSBEaXNwbGF5VHlwZTo6VGFibGVGb290ZXJHcm91cAorICAgICAgICAgICAgfHwgZGlzcGxheVR5
cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlUm93IHx8IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBl
OjpUYWJsZUNvbHVtbkdyb3VwIHx8IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUNv
bHVtbikgeworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPENv
bnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUo
cmVuZGVyZXIuc3R5bGUoKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJU
X05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQorICAgIH0KIAotICAgICAgICBpZiAoIXJvb3RDb250
YWluZXIuaGFzQ2hpbGQoKSkgewotICAgICAgICAgICAgcm9vdENvbnRhaW5lci5zZXRGaXJzdENo
aWxkKCpib3gpOwotICAgICAgICAgICAgcm9vdENvbnRhaW5lci5zZXRMYXN0Q2hpbGQoKmJveCk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvKiBsYXN0Q2hpbGQgPSBjb25zdF9j
YXN0PEJveCo+KHJvb3RDb250YWluZXIubGFzdENoaWxkKCkpOwotICAgICAgICAgICAgYm94LT5z
ZXRQcmV2aW91c1NpYmxpbmcoKmxhc3RDaGlsZCk7Ci0gICAgICAgICAgICBsYXN0Q2hpbGQtPnNl
dE5leHRTaWJsaW5nKCpib3gpOwotICAgICAgICAgICAgcm9vdENvbnRhaW5lci5zZXRMYXN0Q2hp
bGQoKmJveCk7Ci0gICAgICAgIH0KKyAgICBpZiAoY2hpbGRMYXlvdXRCb3gtPmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpKSB7CisgICAgICAgIC8vIE5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIGlzIHRl
bXBvcmFyeSBhbnl3YXkuCisgICAgICAgIC8vIENvbGxlY3QgdGhlIG91dC1vZi1mbG93IGRlc2Nl
bmRhbnRzIGF0IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhl
IGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4K
KyAgICAgICAgY29uc3RfY2FzdDxDb250YWluZXImPihjaGlsZExheW91dEJveC0+Zm9ybWF0dGlu
Z0NvbnRleHRSb290KCkpLmFkZE91dE9mRmxvd0Rlc2NlbmRhbnQoKmNoaWxkTGF5b3V0Qm94KTsK
KyAgICB9CisgICAgcmV0dXJuIGNoaWxkTGF5b3V0Qm94OworfQogCi0gICAgICAgIGJveC0+c2V0
UGFyZW50KHJvb3RDb250YWluZXIpOwordm9pZCBUcmVlQnVpbGRlcjo6Y3JlYXRlVGFibGVTdHJ1
Y3R1cmUoY29uc3QgUmVuZGVyVGFibGUmIHRhYmxlUmVuZGVyZXIsIENvbnRhaW5lciYgdGFibGVX
cmFwcGVyQm94KQoreworICAgIC8vIENyZWF0ZSBjYXB0aW9uIGFuZCB0YWJsZSBib3guCisgICAg
YXV0byogdGFibGVDaGlsZCA9IHRhYmxlUmVuZGVyZXIuZmlyc3RDaGlsZCgpOworICAgIHdoaWxl
IChpczxSZW5kZXJUYWJsZUNhcHRpb24+KHRhYmxlQ2hpbGQpKSB7CisgICAgICAgIGF1dG8mIGNh
cHRpb25SZW5kZXJlciA9ICp0YWJsZUNoaWxkOworICAgICAgICBhdXRvIGNhcHRpb25Cb3ggPSBj
cmVhdGVMYXlvdXRCb3godGFibGVSZW5kZXJlciwgY2FwdGlvblJlbmRlcmVyKTsKKyAgICAgICAg
YXBwZW5kQ2hpbGQodGFibGVXcmFwcGVyQm94LCAqY2FwdGlvbkJveCk7CisgICAgICAgIGF1dG8m
IGNhcHRpb25Db250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXI+KCpjYXB0aW9uQm94KTsKKyAg
ICAgICAgVHJlZUJ1aWxkZXI6OmNyZWF0ZVN1YlRyZWUoZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4o
Y2FwdGlvblJlbmRlcmVyKSwgY2FwdGlvbkNvbnRhaW5lcik7CisgICAgICAgIC8vIFRlbXBvcmFy
eQorICAgICAgICBjYXB0aW9uQm94LnJlbGVhc2UoKTsKKyAgICAgICAgdGFibGVDaGlsZCA9IHRh
YmxlQ2hpbGQtPm5leHRTaWJsaW5nKCk7IAorICAgIH0KIAotICAgICAgICBpZiAoYm94LT5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAgICAgLy8gTm90IGVmZmljaWVudCwgYnV0
IHRoaXMgaXMgdGVtcG9yYXJ5IGFueXdheS4KLSAgICAgICAgICAgIC8vIENvbGxlY3QgdGhlIG91
dC1vZi1mbG93IGRlc2NlbmRhbnRzIGF0IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2ZWwgKGFzIG9w
cG9zZWQgdG8gYXQgdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0aGV5IG1pZ2h0
IGJlIHRoZSBzYW1lKS4KLSAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Q29udGFpbmVyJj4oYm94LT5m
b3JtYXR0aW5nQ29udGV4dFJvb3QoKSkuYWRkT3V0T2ZGbG93RGVzY2VuZGFudCgqYm94KTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoaXM8Q29udGFpbmVyPigqYm94KSkKLSAgICAgICAgICAgIGNy
ZWF0ZVN1YlRyZWUoZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oY2hpbGQpLCBkb3duY2FzdDxDb250
YWluZXI+KCpib3gpKTsKKyAgICBhdXRvIHRhYmxlQm94ID0gc3RkOjptYWtlX3VuaXF1ZTxCbG9j
a0NvbnRhaW5lcj4oQm94OjpFbGVtZW50QXR0cmlidXRlcyB7IEJveDo6RWxlbWVudFR5cGU6OlRh
YmxlQm94IH0sIFJlbmRlclN0eWxlOjpjbG9uZSh0YWJsZVJlbmRlcmVyLnN0eWxlKCkpKTsKKyAg
ICBhcHBlbmRDaGlsZCh0YWJsZVdyYXBwZXJCb3gsICp0YWJsZUJveCk7CisgICAgd2hpbGUgKHRh
YmxlQ2hpbGQpIHsKKyAgICAgICAgVHJlZUJ1aWxkZXI6OmNyZWF0ZVN1YlRyZWUoZG93bmNhc3Q8
UmVuZGVyRWxlbWVudD4oKnRhYmxlQ2hpbGQpLCAqdGFibGVCb3gpOworICAgICAgICB0YWJsZUNo
aWxkID0gdGFibGVDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICB9CisgICAgLy8gVGVtcG9yYXJ5
CisgICAgdGFibGVCb3gucmVsZWFzZSgpOworfQorCit2b2lkIFRyZWVCdWlsZGVyOjpjcmVhdGVT
dWJUcmVlKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJvb3RSZW5kZXJlciwgQ29udGFpbmVyJiByb290
Q29udGFpbmVyKQoreworICAgIGZvciAoYXV0byYgY2hpbGRSZW5kZXJlciA6IGNoaWxkcmVuT2ZU
eXBlPFJlbmRlck9iamVjdD4ocm9vdFJlbmRlcmVyKSkgeworICAgICAgICBhdXRvIGNoaWxkTGF5
b3V0Qm94ID0gY3JlYXRlTGF5b3V0Qm94KHJvb3RSZW5kZXJlciwgY2hpbGRSZW5kZXJlcik7Cisg
ICAgICAgIGFwcGVuZENoaWxkKHJvb3RDb250YWluZXIsICpjaGlsZExheW91dEJveCk7CisgICAg
ICAgIGlmIChjaGlsZExheW91dEJveC0+aXNUYWJsZVdyYXBwZXJCb3goKSkKKyAgICAgICAgICAg
IGNyZWF0ZVRhYmxlU3RydWN0dXJlKGRvd25jYXN0PFJlbmRlclRhYmxlPihjaGlsZFJlbmRlcmVy
KSwgZG93bmNhc3Q8Q29udGFpbmVyPigqY2hpbGRMYXlvdXRCb3gpKTsKKyAgICAgICAgZWxzZSBp
ZiAoaXM8Q29udGFpbmVyPigqY2hpbGRMYXlvdXRCb3gpKQorICAgICAgICAgICAgY3JlYXRlU3Vi
VHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGlsZFJlbmRlcmVyKSwgZG93bmNhc3Q8Q29u
dGFpbmVyPigqY2hpbGRMYXlvdXRCb3gpKTsKICAgICAgICAgLy8gVGVtcG9yYXJ5Ci0gICAgICAg
IGJveC5yZWxlYXNlKCk7CisgICAgICAgIGNoaWxkTGF5b3V0Qm94LnJlbGVhc2UoKTsKICAgICB9
CiB9CiAKQEAgLTIxOCwxMyArMjY4LDM5IEBAIHN0YXRpYyB2b2lkIG91dHB1dExheW91dEJveChU
ZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBEaXNwCiAgICAg
aWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQogICAgICAgICBzdHJlYW0gPDwg
IltmbG9hdF0gIjsKIAotICAgIGlmIChpczxJbmxpbmVDb250YWluZXI+KGxheW91dEJveCkpIHsK
LSAgICAgICAgLy8gRklYTUU6IGZpeCBuYW1lcwotICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5s
aW5lQmxvY2tCb3goKSkKLSAgICAgICAgICAgIHN0cmVhbSA8PCAiRElWIGlubGluZS1ibG9jayBj
b250YWluZXIiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdHJlYW0gPDwgIlNQQU4gaW5s
aW5lIGNvbnRhaW5lciI7Ci0gICAgfSBlbHNlIGlmIChpczxJbmxpbmVCb3g+KGxheW91dEJveCkp
IHsKKyAgICBpZiAoaXM8Q29udGFpbmVyPihsYXlvdXRCb3gpKSB7CisgICAgICAgIGlmIChsYXlv
dXRCb3guaXNUYWJsZVdyYXBwZXJCb3goKSkKKyAgICAgICAgICAgIHN0cmVhbSA8PCAiVEFCTEUg
cHJpbmNpcGFsIjsKKyAgICAgICAgZWxzZSBpZiAoaXM8SW5saW5lQ29udGFpbmVyPihsYXlvdXRC
b3gpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogZml4IG5hbWVzCisgICAgICAgICAgICBpZiAo
bGF5b3V0Qm94LmlzSW5saW5lQmxvY2tCb3goKSkKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwg
IkRJViBpbmxpbmUtYmxvY2sgY29udGFpbmVyIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBzdHJlYW0gPDwgIlNQQU4gaW5saW5lIGNvbnRhaW5lciI7CisgICAgICAgIH0gZWxz
ZSBpZiAoaXM8QmxvY2tDb250YWluZXI+KGxheW91dEJveCkpIHsKKyAgICAgICAgICAgIGlmIChs
YXlvdXRCb3guaXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkpCisgICAgICAgICAgICAgICAgc3Ry
ZWFtIDw8ICJJbml0aWFsIGNvbnRhaW5pbmcgYmxvY2siOworICAgICAgICAgICAgZWxzZSBpZiAo
bGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSkKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIkhU
TUwiOworICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzQm9keUJveCgpKQorICAgICAg
ICAgICAgICAgIHN0cmVhbSA8PCAiQk9EWSI7CisgICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRC
b3guaXNUYWJsZUJveCgpKQorICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiVEFCTEUiOworICAg
ICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzVGFibGVDYXB0aW9uKCkpCisgICAgICAgICAg
ICAgICAgc3RyZWFtIDw8ICJDQVBUSU9OIjsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJv
eC5pc1RhYmxlQ2VsbCgpKQorICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiVEQiOworICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUUKKyAgICAgICAgICAgICAgICBz
dHJlYW0gPDwgIkRJViI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBpZiAobGF5b3V0Qm94LmlzVGFibGVSb3coKSkKKyAgICAgICAgICAgICAgICBzdHJlYW0g
PDwgIlRSIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwgInVu
a25vd24gY29udGFpbmVyIjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94Lmlz
SW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICBpZiAobGF5b3V0Qm94LnJlcGxhY2VkKCkpCiAg
ICAgICAgICAgICBzdHJlYW0gPDwgIklNRyByZXBsYWNlZCBpbmxpbmUgYm94IjsKICAgICAgICAg
ZWxzZSBpZiAobGF5b3V0Qm94LmlzQW5vbnltb3VzKCkpCkBAIC0yMzMsMjIgKzMwOSwxMSBAQCBz
dGF0aWMgdm9pZCBvdXRwdXRMYXlvdXRCb3goVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBCb3gm
IGxheW91dEJveCwgY29uc3QgRGlzcAogICAgICAgICAgICAgc3RyZWFtIDw8ICJCUiBsaW5lIGJy
ZWFrIjsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc3RyZWFtIDw8ICJpbmxpbmUgYm94IjsK
LSAgICB9IGVsc2UgaWYgKGlzPEJsb2NrQ29udGFpbmVyPihsYXlvdXRCb3gpKSB7Ci0gICAgICAg
IGlmICghbGF5b3V0Qm94LnBhcmVudCgpKQotICAgICAgICAgICAgc3RyZWFtIDw8ICJJbml0aWFs
IjsKLSAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSkKLSAgICAgICAg
ICAgIHN0cmVhbSA8PCAiSFRNTCI7Ci0gICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0JvZHlC
b3goKSkKLSAgICAgICAgICAgIHN0cmVhbSA8PCAiQk9EWSI7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgLy8gRklYTUUKLSAgICAgICAgICAgIHN0cmVhbSA8PCAiRElWIjsKLSAgICAgICAg
fQotICAgICAgICBzdHJlYW0gPDwgIiBibG9jayBjb250YWluZXIiOwogICAgIH0gZWxzZSBpZiAo
bGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKQogICAgICAgICBzdHJlYW0gPDwgImJsb2NrIGJv
eCI7CiAgICAgZWxzZQogICAgICAgICBzdHJlYW0gPDwgImJveCI7CisgICAgCiAgICAgLy8gRklY
TUU6IElubGluZSB0ZXh0IHJ1bnMgZG9uJ3QgY3JlYXRlIGRpc3BsYXkgYm94ZXMgeWV0LgogICAg
IGlmIChkaXNwbGF5Qm94KQogICAgICAgICBzdHJlYW0gPDwgIiBhdCAoIiA8PCBkaXNwbGF5Qm94
LT5sZWZ0KCkgPDwgIiwiIDw8IGRpc3BsYXlCb3gtPnRvcCgpIDw8ICIpIHNpemUgIiA8PCBkaXNw
bGF5Qm94LT53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5Qm94LT5oZWlnaHQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmlu
ZGV4IDIzYTcyYWFmNGUwMjEyYWMxYjI0ZGJmZjEwNzI1ZTc2NGQ1YzNjZjIuLjc5NDg3NGI0YTZi
OTU4NDljY2YxZDI3ZWZjY2FhODg4MmM5MTc2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaApAQCAtMzAsNiArMzAsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJFbGVtZW50OworY2xhc3MgUmVu
ZGVyVGFibGU7CiBjbGFzcyBSZW5kZXJWaWV3OwogCiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAgLTQ0
LDYgKzQ1LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVN1
YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRlcmVyLCBDb250YWluZXImIHJvb3RD
b250YWluZXIpOworICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVRhYmxlU3RydWN0dXJlKGNvbnN0IFJl
bmRlclRhYmxlJiB0YWJsZVJlbmRlcmVyLCBDb250YWluZXImIHRhYmxlV3JhcHBlckJveCk7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IGNyZWF0ZUxheW91dEJveChjb25zdCBSZW5k
ZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRl
cmVyKTsKIH07CiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375118</attachid>
            <date>2019-07-29 16:11:49 -0700</date>
            <delta_ts>2019-07-29 17:17:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200198-20190729161148.patch</filename>
            <type>text/plain</type>
            <size>21010</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMxNjQ3ZWMxNWZmMWI1
MGUxMGViNzhkZDFmNjQwMzE5ZDA3NGI1MS4uZDUzOGM4Nzg3YzlkYmJhMTA4YzczNzc1YzllNzRm
MGY3M2ZkMjk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA3LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSA8dGFibGU+
IGluaXRpYXRlcyBhIHByaW5jaXBhbCBibG9jayBjb250YWluZXIgYm94IGNhbGxlZCB0YWJsZSB3
cmFwcGVyIGJveC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDE5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM2MjM4MDM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhlIHRhYmxlIHdyYXBwZXIg
Ym94IGNvbnRhaW5zIHRoZSB0YWJsZSBib3ggaXRzZWxmIGFuZCBhbnkgY2FwdGlvbiBib3hlcy4K
KworICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNCbG9ja0NvbnRhaW5lckJveCBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJveDo6aXNUYWJsZUNhcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCb3g6OmlzVGFibGVSb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6
OmlzVGFibGVDZWxsIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRD
b250YWluZXIuaDoKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmFwcGVuZENoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TGF5b3V0Qm94KToKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oOgorCiAyMDE5LTA3LTI5ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBJbnRyb2R1Y2Ug
Qm94Ojplc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IDAwZWZkODQwODRhMDhkNjkz
Mzc4YTRhMjFmNmI4YTZjNDM0ODc5ZGUuLjg1MzA2MGEzMTJhOTM2NzBlY2ViZmQwNWU4NGQ0OGFl
ODUxZDczY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIGJvb2wgQm94Ojppc0lubGluZUxldmVsQm94KCkg
Y29uc3QKIGJvb2wgQm94Ojppc0Jsb2NrQ29udGFpbmVyQm94KCkgY29uc3QKIHsKICAgICBhdXRv
IGRpc3BsYXkgPSBtX3N0eWxlLmRpc3BsYXkoKTsKLSAgICByZXR1cm4gZGlzcGxheSA9PSBEaXNw
bGF5VHlwZTo6QmxvY2sgfHwgZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6TGlzdEl0ZW0gfHwgaXNJ
bmxpbmVCbG9ja0JveCgpIHx8IGlzVGFibGVXcmFwcGVyQm94KCkgfHwgaXNUYWJsZUNlbGwoKSB8
fCBkaXNwbGF5ID09IERpc3BsYXlUeXBlOjpUYWJsZUNhcHRpb247IC8vIFRPRE8gJiYgIXJlcGxh
Y2VkIGVsZW1lbnQKKyAgICByZXR1cm4gZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6QmxvY2sgfHwg
ZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6TGlzdEl0ZW0gfHwgaXNJbmxpbmVCbG9ja0JveCgpIHx8
IGlzVGFibGVXcmFwcGVyQm94KCkgfHwgaXNUYWJsZUNlbGwoKSB8fCBpc1RhYmxlQ2FwdGlvbigp
OyAvLyBUT0RPICYmICFyZXBsYWNlZCBlbGVtZW50CiB9CiAKIGJvb2wgQm94Ojppc0luaXRpYWxD
b250YWluaW5nQmxvY2soKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRCb3guaAppbmRleCBjZmE5ODQwZTY3OTA4MzIwZjg5MDg4NmQxNDY4NGM3ZmUyNjk5
MzVmLi4zNzNlODE5YjlhNTcyMzFhYTdhMjQ5OTFhMTc1OGNmZTcwZDIwZmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtNDcsNyArNDcsNiBA
QCBwdWJsaWM6CiAgICAgICAgIEJvZHksCiAgICAgICAgIFRhYmxlV3JhcHBlckJveCwgLy8gVGhl
IHRhYmxlIGdlbmVyYXRlcyBhIHByaW5jaXBhbCBibG9jayBjb250YWluZXIgYm94IGNhbGxlZCB0
aGUgdGFibGUgd3JhcHBlciBib3ggdGhhdCBjb250YWlucyB0aGUgdGFibGUgYm94IGFuZCBhbnkg
Y2FwdGlvbiBib3hlcy4gCiAgICAgICAgIFRhYmxlQm94LCAvLyBUaGUgdGFibGUgYm94IGlzIGEg
YmxvY2stbGV2ZWwgYm94IHRoYXQgY29udGFpbnMgdGhlIHRhYmxlJ3MgaW50ZXJuYWwgdGFibGUg
Ym94ZXMuCi0gICAgICAgIFRhYmxlQ2VsbCwKICAgICAgICAgVGFibGVDb2x1bW4sCiAgICAgICAg
IFRhYmxlUm93LAogICAgICAgICBUYWJsZUNvbHVtbkdyb3VwLApAQCAtMTE4LDcgKzExNyw5IEBA
IHB1YmxpYzoKICAgICBib29sIGlzQm9keUJveCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudEF0
dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgpLmVsZW1lbnRUeXBlID09IEVs
ZW1lbnRUeXBlOjpCb2R5OyB9CiAgICAgYm9vbCBpc1RhYmxlV3JhcHBlckJveCgpIGNvbnN0IHsg
cmV0dXJuIG1fZWxlbWVudEF0dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgp
LmVsZW1lbnRUeXBlID09IEVsZW1lbnRUeXBlOjpUYWJsZVdyYXBwZXJCb3g7IH0KICAgICBib29s
IGlzVGFibGVCb3goKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRBdHRyaWJ1dGVzICYmIG1fZWxl
bWVudEF0dHJpYnV0ZXMudmFsdWUoKS5lbGVtZW50VHlwZSA9PSBFbGVtZW50VHlwZTo6VGFibGVC
b3g7IH0KLSAgICBib29sIGlzVGFibGVDZWxsKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0
cmlidXRlcyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxl
bWVudFR5cGU6OlRhYmxlQ2VsbDsgfQorICAgIGJvb2wgaXNUYWJsZUNhcHRpb24oKSBjb25zdCB7
IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDYXB0aW9uOyB9
CisgICAgYm9vbCBpc1RhYmxlUm93KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0cmlidXRl
cyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5
cGU6OlRhYmxlUm93OyB9CisgICAgYm9vbCBpc1RhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIHN0
eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpUYWJsZUNlbGw7OyB9CiAgICAgYm9vbCBp
c1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gaXNJbWFnZSgpIHx8IGlzSUZyYW1lKCk7IH0KICAg
ICBib29sIGlzSUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0cmlidXRlcyAmJiBt
X2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5cGU6OklG
cmFtZTsgfQogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudEF0dHJp
YnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgpLmVsZW1lbnRUeXBlID09IEVsZW1l
bnRUeXBlOjpJbWFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRDb250YWluZXIuaAppbmRleCBhNjQxYzg4NmY5ODliNjI1ZTg5NTU0NTM2NmQ5ODk1
NTc3YzA3MTkwLi5mZDIxZDUxOTNiYzUzZWFkNTY0ZDk1ZmZlOTFlM2ZkMjg2MGViNTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIu
aApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIGNsYXNzIENvbnRhaW5lciA6
IHB1YmxpYyBCb3ggewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ29udGFpbmVyKTsKIHB1
YmxpYzoKLSAgICBDb250YWluZXIoT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+LCBSZW5kZXJT
dHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKKyAgICBDb250YWluZXIoT3B0aW9uYWw8RWxlbWVudEF0
dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzID0gQ29udGFpbmVyRmxhZyk7
CiAKICAgICBjb25zdCBCb3gqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hp
bGQ7IH0KICAgICBjb25zdCBCb3gqIGZpcnN0SW5GbG93Q2hpbGQoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNw
cAppbmRleCBmMTMyZTk4MmMyMmMzYmYxMzQxZDhhZmM4NzcwYjM1YTk4NWFiOTFiLi5jZDM5NjI2
ZDEzZjg4YWVlMmUzMGM3MWRiMjE1NGY3NTY4YjJmNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC00NSwx
MiArNDUsMzAgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJM
aW5lQnJlYWsuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlJlbmRlclRh
YmxlLmgiCisjaW5jbHVkZSAiUmVuZGVyVGFibGVDYXB0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKK3N0YXRpYyB2b2lkIGFwcGVuZENoaWxkKENv
bnRhaW5lciYgcGFyZW50LCBCb3gmIG5ld0NoaWxkKQoreworICAgIGlmICghcGFyZW50Lmhhc0No
aWxkKCkpIHsKKyAgICAgICAgcGFyZW50LnNldEZpcnN0Q2hpbGQobmV3Q2hpbGQpOworICAgICAg
ICBwYXJlbnQuc2V0TGFzdENoaWxkKG5ld0NoaWxkKTsKKyAgICAgICAgbmV3Q2hpbGQuc2V0UGFy
ZW50KHBhcmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBsYXN0Q2hp
bGQgPSBjb25zdF9jYXN0PEJveCY+KCpwYXJlbnQubGFzdENoaWxkKCkpOworICAgIGxhc3RDaGls
ZC5zZXROZXh0U2libGluZyhuZXdDaGlsZCk7CisgICAgbmV3Q2hpbGQuc2V0UHJldmlvdXNTaWJs
aW5nKGxhc3RDaGlsZCk7CisgICAgbmV3Q2hpbGQuc2V0UGFyZW50KHBhcmVudCk7CisgICAgcGFy
ZW50LnNldExhc3RDaGlsZChuZXdDaGlsZCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxDb250YWlu
ZXI+IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKGNvbnN0IFJlbmRlclZpZXcmIHJlbmRl
clZpZXcpCiB7CiAgICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJWaWV3
LnN0eWxlKCkpOwpAQCAtNzEsNyArODksNyBAQCBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0U2l6ZT4g
YWNjdW11bGF0ZWRPZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVkQ29udGludWF0aW9uKGNvbgogICAg
IHJldHVybiBibG9jay5yZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCk7CiB9CiAKLXZvaWQgVHJlZUJ1
aWxkZXI6OmNyZWF0ZVN1YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRlcmVyLCBD
b250YWluZXImIHJvb3RDb250YWluZXIpCitzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRl
cjo6Y3JlYXRlTGF5b3V0Qm94KGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudFJlbmRlcmVyLCBj
b25zdCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpCiB7CiAgICAgYXV0byBlbGVtZW50QXR0
cmlidXRlcyA9IFtdIChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgLT4gT3B0aW9uYWw8
Qm94OjpFbGVtZW50QXR0cmlidXRlcz4gewogICAgICAgICBpZiAocmVuZGVyZXIuaXNEb2N1bWVu
dEVsZW1lbnRSZW5kZXJlcigpKQpAQCAtMTAyLDc5ICsxMjAsMTExIEBAIHZvaWQgVHJlZUJ1aWxk
ZXI6OmNyZWF0ZVN1YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRlcmVyLCBDb250
YWluZXImIHJvCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfTsKIAotICAgIGZv
ciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJPYmplY3Q+KHJvb3RSZW5kZXJl
cikpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEJveD4gYm94OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxCb3g+IGNoaWxkTGF5b3V0Qm94OworICAgIGlmIChpczxSZW5kZXJUZXh0PihjaGlsZFJl
bmRlcmVyKSkgeworICAgICAgICAvLyBGSVhNRTogQ2xlYXJseSB0aGVyZSBtdXN0IGJlIGEgaGVs
cGVyIGZ1bmN0aW9uIGZvciB0aGlzLgorICAgICAgICBpZiAocGFyZW50UmVuZGVyZXIuc3R5bGUo
KS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZSkKKyAgICAgICAgICAgIGNoaWxkTGF5
b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVCb3g+KE9wdGlvbmFsPEJveDo6RWxlbWVu
dEF0dHJpYnV0ZXM+KCksIFJlbmRlclN0eWxlOjpjbG9uZShwYXJlbnRSZW5kZXJlci5zdHlsZSgp
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtl
X3VuaXF1ZTxJbmxpbmVCb3g+KE9wdGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+KCksIFJl
bmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVudFJlbmRlcmVy
LnN0eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKKyAgICAgICAgZG93bmNhc3Q8SW5saW5l
Qm94PigqY2hpbGRMYXlvdXRCb3gpLnNldFRleHRDb250ZW50KGRvd25jYXN0PFJlbmRlclRleHQ+
KGNoaWxkUmVuZGVyZXIpLm9yaWdpbmFsVGV4dCgpKTsKKyAgICAgICAgcmV0dXJuIGNoaWxkTGF5
b3V0Qm94OworICAgIH0KIAotICAgICAgICBpZiAoaXM8UmVuZGVyVGV4dD4oY2hpbGQpKSB7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogQ2xlYXJseSB0aGVyZSBtdXN0IGJlIGEgaGVscGVyIGZ1bmN0
aW9uIGZvciB0aGlzLgotICAgICAgICAgICAgaWYgKHJvb3RSZW5kZXJlci5zdHlsZSgpLmRpc3Bs
YXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lKQotICAgICAgICAgICAgICAgIGJveCA9IHN0ZDo6
bWFrZV91bmlxdWU8SW5saW5lQm94PihPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPigp
LCBSZW5kZXJTdHlsZTo6Y2xvbmUocm9vdFJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUJveD4o
T3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmlidXRlcz4oKSwgUmVuZGVyU3R5bGU6OmNyZWF0ZUFu
b255bW91c1N0eWxlV2l0aERpc3BsYXkocm9vdFJlbmRlcmVyLnN0eWxlKCksIERpc3BsYXlUeXBl
OjpJbmxpbmUpKTsKLSAgICAgICAgICAgIGRvd25jYXN0PElubGluZUJveD4oKmJveCkuc2V0VGV4
dENvbnRlbnQoZG93bmNhc3Q8UmVuZGVyVGV4dD4oY2hpbGQpLm9yaWdpbmFsVGV4dCgpKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJMaW5lQnJlYWs+KGNoaWxkKSkgewotICAgICAgICAg
ICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMaW5lQnJlYWs+KGNoaWxkKTsKLSAg
ICAgICAgICAgIGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8TGluZUJyZWFrQm94PihlbGVtZW50QXR0
cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7
Ci0gICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KGNoaWxkKSkgewotICAgICAg
ICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4oY2hpbGQpOwot
ICAgICAgICAgICAgYXV0byBkaXNwbGF5ID0gcmVuZGVyZXIuc3R5bGUoKS5kaXNwbGF5KCk7Ci0g
ICAgICAgICAgICBpZiAoZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6QmxvY2spCi0gICAgICAgICAg
ICAgICAgYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxCb3g+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRl
cmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUJveD4o
ZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIu
c3R5bGUoKSkpOwotICAgICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IHlldCBzdXBwb3J0IGFs
bCByZXBsYWNlZCBlbGVtZW50cyBhbmQgdGhpcyBpcyB0ZW1wb3JhcnkgYW55d2F5LgotICAgICAg
ICAgICAgaWYgKGJveC0+cmVwbGFjZWQoKSkKLSAgICAgICAgICAgICAgICBib3gtPnJlcGxhY2Vk
KCktPnNldEludHJpbnNpY1NpemUocmVuZGVyZXIuaW50cmluc2ljU2l6ZSgpKTsKLSAgICAgICAg
ICAgIGlmIChpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKSB7Ci0gICAgICAgICAgICAgICAgYXV0
byYgaW1hZ2VSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckltYWdlPihyZW5kZXJlcik7Ci0gICAg
ICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVyZXIuaW1hZ2VSZXNvdXJjZSgpLmVycm9yT2NjdXJy
ZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgYm94LT5yZXBsYWNlZCgpLT5zZXRJbnRyaW5zaWNS
YXRpbygxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJFbGVt
ZW50PihjaGlsZCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyRWxlbWVudD4oY2hpbGQpOwotICAgICAgICAgICAgYXV0byBkaXNwbGF5ID0gcmVuZGVyZXIu
c3R5bGUoKS5kaXNwbGF5KCk7Ci0gICAgICAgICAgICBpZiAoZGlzcGxheSA9PSBEaXNwbGF5VHlw
ZTo6QmxvY2spIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBvZmZzZXQgPSBhY2N1bXVsYXRl
ZE9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRDb250aW51YXRpb24oZG93bmNhc3Q8UmVuZGVyQm94
PihyZW5kZXJlcikpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y2xvbmVQdHIocmVuZGVyZXIuc3R5bGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHN0
eWxlLT5zZXRUb3AoeyBvZmZzZXQtPmhlaWdodCgpLCBGaXhlZCB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgc3R5bGUtPnNldExlZnQoeyBvZmZzZXQtPndpZHRoKCksIEZpeGVkIH0pOwotICAgICAg
ICAgICAgICAgICAgICBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihlbGVt
ZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoKnN0eWxlKSk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8Qmxv
Y2tDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNs
b25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9
PSBEaXNwbGF5VHlwZTo6SW5saW5lKQotICAgICAgICAgICAgICAgIGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8SW5saW5lQ29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRl
clN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChk
aXNwbGF5ID09IERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jaykKLSAgICAgICAgICAgICAgICBib3gg
PSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUNvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVu
ZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KKyAgICBhdXRvJiByZW5k
ZXJlciA9IGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkUmVuZGVyZXIpOworICAgIGF1dG8g
ZGlzcGxheVR5cGUgPSByZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKTsKKyAgICBpZiAoaXM8UmVu
ZGVyTGluZUJyZWFrPihyZW5kZXJlcikpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PExpbmVCcmVha0JveD4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6
Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworCisgICAgaWYgKGlzPFJlbmRlclRhYmxlPihyZW5k
ZXJlcikpIHsKKyAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBwcmluY2lwYWwgdGFibGUgd3JhcHBl
ciBib3ggKGFuZCBub3QgdGhlIHRhYmxlIGJveCBpdHNlbGYpLgorICAgICAgICBpZiAoZGlzcGxh
eVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlKQorICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihCb3g6OkVsZW1lbnRBdHRyaWJ1dGVz
IHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFJlbmRlclN0eWxlOjpjbG9u
ZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJU
KGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZSk7CisgICAgICAgICAgICBj
aGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lQ29udGFpbmVyPihCb3g6OkVs
ZW1lbnRBdHRyaWJ1dGVzIHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFJl
bmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgIH0KKyAgICB9IGVs
c2UgaWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKGRpc3Bs
YXlUeXBlID09IERpc3BsYXlUeXBlOjpCbG9jaykKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94
ID0gc3RkOjptYWtlX3VuaXF1ZTxCb3g+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVu
ZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUJveD4oZWxlbWVu
dEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUo
KSkpOworICAgICAgICAvLyBGSVhNRTogV2UgZG9uJ3QgeWV0IHN1cHBvcnQgYWxsIHJlcGxhY2Vk
IGVsZW1lbnRzIGFuZCB0aGlzIGlzIHRlbXBvcmFyeSBhbnl3YXkuCisgICAgICAgIGlmIChjaGls
ZExheW91dEJveC0+cmVwbGFjZWQoKSkKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94LT5yZXBs
YWNlZCgpLT5zZXRJbnRyaW5zaWNTaXplKGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyZW5kZXJl
cikuaW50cmluc2ljU2l6ZSgpKTsKKyAgICAgICAgaWYgKGlzPFJlbmRlckltYWdlPihyZW5kZXJl
cikpIHsKKyAgICAgICAgICAgIGF1dG8mIGltYWdlUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJJ
bWFnZT4ocmVuZGVyZXIpOworICAgICAgICAgICAgaWYgKGltYWdlUmVuZGVyZXIuaW1hZ2VSZXNv
dXJjZSgpLmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+
cmVwbGFjZWQoKS0+c2V0SW50cmluc2ljUmF0aW8oMSk7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OkJsb2NrKSB7CisgICAg
ICAgICAgICBpZiAoYXV0byBvZmZzZXQgPSBhY2N1bXVsYXRlZE9mZnNldEZvckluRmxvd1Bvc2l0
aW9uZWRDb250aW51YXRpb24oZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikpKSB7CisgICAg
ICAgICAgICAgICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihyZW5kZXJlci5z
dHlsZSgpKTsKKyAgICAgICAgICAgICAgICBzdHlsZS0+c2V0VG9wKHsgb2Zmc2V0LT5oZWlnaHQo
KSwgRml4ZWQgfSk7CisgICAgICAgICAgICAgICAgc3R5bGUtPnNldExlZnQoeyBvZmZzZXQtPndp
ZHRoKCksIEZpeGVkIH0pOworICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjpt
YWtlX3VuaXF1ZTxCbG9ja0NvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBX
VEZNb3ZlKCpzdHlsZSkpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihlbGVtZW50QXR0
cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7
CisgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGluZSkK
KyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVDb250
YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJl
bmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxh
eVR5cGU6OklubGluZUJsb2NrKQorICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1h
a2VfdW5pcXVlPElubGluZUNvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBS
ZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworICAgICAgICBlbHNlIGlmIChk
aXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDYXB0aW9uIHx8IGRpc3BsYXlUeXBlID09
IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpIHsKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0g
c3RkOjptYWtlX3VuaXF1ZTxCbG9ja0NvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVy
ZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworICAgICAgICB9IGVs
c2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZVJvd0dyb3VwIHx8IGRpc3Bs
YXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUhlYWRlckdyb3VwIHx8IGRpc3BsYXlUeXBlID09
IERpc3BsYXlUeXBlOjpUYWJsZUZvb3Rlckdyb3VwCisgICAgICAgICAgICB8fCBkaXNwbGF5VHlw
ZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVSb3cgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6
OlRhYmxlQ29sdW1uR3JvdXAgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ29s
dW1uKSB7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29u
dGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShy
ZW5kZXJlci5zdHlsZSgpKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX0lNUExFTUVOVEVEX1lFVCgpOwotICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CisgICAgfQogCi0gICAgICAgIGlmICghcm9vdENvbnRh
aW5lci5oYXNDaGlsZCgpKSB7Ci0gICAgICAgICAgICByb290Q29udGFpbmVyLnNldEZpcnN0Q2hp
bGQoKmJveCk7Ci0gICAgICAgICAgICByb290Q29udGFpbmVyLnNldExhc3RDaGlsZCgqYm94KTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8qIGxhc3RDaGlsZCA9IGNvbnN0X2Nh
c3Q8Qm94Kj4ocm9vdENvbnRhaW5lci5sYXN0Q2hpbGQoKSk7Ci0gICAgICAgICAgICBib3gtPnNl
dFByZXZpb3VzU2libGluZygqbGFzdENoaWxkKTsKLSAgICAgICAgICAgIGxhc3RDaGlsZC0+c2V0
TmV4dFNpYmxpbmcoKmJveCk7Ci0gICAgICAgICAgICByb290Q29udGFpbmVyLnNldExhc3RDaGls
ZCgqYm94KTsKLSAgICAgICAgfQorICAgIGlmIChjaGlsZExheW91dEJveC0+aXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpIHsKKyAgICAgICAgLy8gTm90IGVmZmljaWVudCwgYnV0IHRoaXMgaXMgdGVt
cG9yYXJ5IGFueXdheS4KKyAgICAgICAgLy8gQ29sbGVjdCB0aGUgb3V0LW9mLWZsb3cgZGVzY2Vu
ZGFudHMgYXQgdGhlIGZvcm1hdHRpbmcgcm9vdCBsZXZlbCAoYXMgb3Bwb3NlZCB0byBhdCB0aGUg
Y29udGFpbmluZyBibG9jayBsZXZlbCwgdGhvdWdoIHRoZXkgbWlnaHQgYmUgdGhlIHNhbWUpLgor
ICAgICAgICBjb25zdF9jYXN0PENvbnRhaW5lciY+KGNoaWxkTGF5b3V0Qm94LT5mb3JtYXR0aW5n
Q29udGV4dFJvb3QoKSkuYWRkT3V0T2ZGbG93RGVzY2VuZGFudCgqY2hpbGRMYXlvdXRCb3gpOwor
ICAgIH0KKyAgICByZXR1cm4gY2hpbGRMYXlvdXRCb3g7Cit9CiAKLSAgICAgICAgYm94LT5zZXRQ
YXJlbnQocm9vdENvbnRhaW5lcik7Cit2b2lkIFRyZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVj
dHVyZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbmVyJiB0YWJsZVdy
YXBwZXJCb3gpCit7CisgICAgLy8gQ3JlYXRlIGNhcHRpb24gYW5kIHRhYmxlIGJveC4KKyAgICBh
dXRvKiB0YWJsZUNoaWxkID0gdGFibGVSZW5kZXJlci5maXJzdENoaWxkKCk7CisgICAgd2hpbGUg
KGlzPFJlbmRlclRhYmxlQ2FwdGlvbj4odGFibGVDaGlsZCkpIHsKKyAgICAgICAgYXV0byYgY2Fw
dGlvblJlbmRlcmVyID0gKnRhYmxlQ2hpbGQ7CisgICAgICAgIGF1dG8gY2FwdGlvbkJveCA9IGNy
ZWF0ZUxheW91dEJveCh0YWJsZVJlbmRlcmVyLCBjYXB0aW9uUmVuZGVyZXIpOworICAgICAgICBh
cHBlbmRDaGlsZCh0YWJsZVdyYXBwZXJCb3gsICpjYXB0aW9uQm94KTsKKyAgICAgICAgYXV0byYg
Y2FwdGlvbkNvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lcj4oKmNhcHRpb25Cb3gpOworICAg
ICAgICBUcmVlQnVpbGRlcjo6Y3JlYXRlU3ViVHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50Pihj
YXB0aW9uUmVuZGVyZXIpLCBjYXB0aW9uQ29udGFpbmVyKTsKKyAgICAgICAgLy8gVGVtcG9yYXJ5
CisgICAgICAgIGNhcHRpb25Cb3gucmVsZWFzZSgpOworICAgICAgICB0YWJsZUNoaWxkID0gdGFi
bGVDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICB9CiAKLSAgICAgICAgaWYgKGJveC0+aXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgIC8vIE5vdCBlZmZpY2llbnQsIGJ1dCB0
aGlzIGlzIHRlbXBvcmFyeSBhbnl3YXkuCi0gICAgICAgICAgICAvLyBDb2xsZWN0IHRoZSBvdXQt
b2YtZmxvdyBkZXNjZW5kYW50cyBhdCB0aGUgZm9ybWF0dGluZyByb290IGxldmVsIChhcyBvcHBv
c2VkIHRvIGF0IHRoZSBjb250YWluaW5nIGJsb2NrIGxldmVsLCB0aG91Z2ggdGhleSBtaWdodCBi
ZSB0aGUgc2FtZSkuCi0gICAgICAgICAgICBjb25zdF9jYXN0PENvbnRhaW5lciY+KGJveC0+Zm9y
bWF0dGluZ0NvbnRleHRSb290KCkpLmFkZE91dE9mRmxvd0Rlc2NlbmRhbnQoKmJveCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKGlzPENvbnRhaW5lcj4oKmJveCkpCi0gICAgICAgICAgICBjcmVh
dGVTdWJUcmVlKGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkKSwgZG93bmNhc3Q8Q29udGFp
bmVyPigqYm94KSk7CisgICAgYXV0byB0YWJsZUJveCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tD
b250YWluZXI+KEJveDo6RWxlbWVudEF0dHJpYnV0ZXMgeyBCb3g6OkVsZW1lbnRUeXBlOjpUYWJs
ZUJveCB9LCBSZW5kZXJTdHlsZTo6Y2xvbmUodGFibGVSZW5kZXJlci5zdHlsZSgpKSk7CisgICAg
YXBwZW5kQ2hpbGQodGFibGVXcmFwcGVyQm94LCAqdGFibGVCb3gpOworICAgIHdoaWxlICh0YWJs
ZUNoaWxkKSB7CisgICAgICAgIFRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVlKGRvd25jYXN0PFJl
bmRlckVsZW1lbnQ+KCp0YWJsZUNoaWxkKSwgKnRhYmxlQm94KTsKKyAgICAgICAgdGFibGVDaGls
ZCA9IHRhYmxlQ2hpbGQtPm5leHRTaWJsaW5nKCk7CisgICAgfQorICAgIC8vIFRlbXBvcmFyeQor
ICAgIHRhYmxlQm94LnJlbGVhc2UoKTsKK30KKwordm9pZCBUcmVlQnVpbGRlcjo6Y3JlYXRlU3Vi
VHJlZShjb25zdCBSZW5kZXJFbGVtZW50JiByb290UmVuZGVyZXIsIENvbnRhaW5lciYgcm9vdENv
bnRhaW5lcikKK3sKKyAgICBmb3IgKGF1dG8mIGNoaWxkUmVuZGVyZXIgOiBjaGlsZHJlbk9mVHlw
ZTxSZW5kZXJPYmplY3Q+KHJvb3RSZW5kZXJlcikpIHsKKyAgICAgICAgYXV0byBjaGlsZExheW91
dEJveCA9IGNyZWF0ZUxheW91dEJveChyb290UmVuZGVyZXIsIGNoaWxkUmVuZGVyZXIpOworICAg
ICAgICBhcHBlbmRDaGlsZChyb290Q29udGFpbmVyLCAqY2hpbGRMYXlvdXRCb3gpOworICAgICAg
ICBpZiAoY2hpbGRMYXlvdXRCb3gtPmlzVGFibGVXcmFwcGVyQm94KCkpCisgICAgICAgICAgICBj
cmVhdGVUYWJsZVN0cnVjdHVyZShkb3duY2FzdDxSZW5kZXJUYWJsZT4oY2hpbGRSZW5kZXJlciks
IGRvd25jYXN0PENvbnRhaW5lcj4oKmNoaWxkTGF5b3V0Qm94KSk7CisgICAgICAgIGVsc2UgaWYg
KGlzPENvbnRhaW5lcj4oKmNoaWxkTGF5b3V0Qm94KSkKKyAgICAgICAgICAgIGNyZWF0ZVN1YlRy
ZWUoZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oY2hpbGRSZW5kZXJlciksIGRvd25jYXN0PENvbnRh
aW5lcj4oKmNoaWxkTGF5b3V0Qm94KSk7CiAgICAgICAgIC8vIFRlbXBvcmFyeQotICAgICAgICBi
b3gucmVsZWFzZSgpOworICAgICAgICBjaGlsZExheW91dEJveC5yZWxlYXNlKCk7CiAgICAgfQog
fQogCkBAIC0yMTgsMTMgKzI2OCwzOSBAQCBzdGF0aWMgdm9pZCBvdXRwdXRMYXlvdXRCb3goVGV4
dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgRGlzcAogICAgIGlm
IChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKICAgICAgICAgc3RyZWFtIDw8ICJb
ZmxvYXRdICI7CiAKLSAgICBpZiAoaXM8SW5saW5lQ29udGFpbmVyPihsYXlvdXRCb3gpKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBmaXggbmFtZXMKLSAgICAgICAgaWYgKGxheW91dEJveC5pc0lubGlu
ZUJsb2NrQm94KCkpCi0gICAgICAgICAgICBzdHJlYW0gPDwgIkRJViBpbmxpbmUtYmxvY2sgY29u
dGFpbmVyIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3RyZWFtIDw8ICJTUEFOIGlubGlu
ZSBjb250YWluZXIiOwotICAgIH0gZWxzZSBpZiAoaXM8SW5saW5lQm94PihsYXlvdXRCb3gpKSB7
CisgICAgaWYgKGlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSkgeworICAgICAgICBpZiAobGF5b3V0
Qm94LmlzVGFibGVXcmFwcGVyQm94KCkpCisgICAgICAgICAgICBzdHJlYW0gPDwgIlRBQkxFIHBy
aW5jaXBhbCI7CisgICAgICAgIGVsc2UgaWYgKGlzPElubGluZUNvbnRhaW5lcj4obGF5b3V0Qm94
KSkgeworICAgICAgICAgICAgLy8gRklYTUU6IGZpeCBuYW1lcworICAgICAgICAgICAgaWYgKGxh
eW91dEJveC5pc0lubGluZUJsb2NrQm94KCkpCisgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJE
SVYgaW5saW5lLWJsb2NrIGNvbnRhaW5lciI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc3RyZWFtIDw8ICJTUEFOIGlubGluZSBjb250YWluZXIiOworICAgICAgICB9IGVsc2Ug
aWYgKGlzPEJsb2NrQ29udGFpbmVyPihsYXlvdXRCb3gpKSB7CisgICAgICAgICAgICBpZiAobGF5
b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygpKQorICAgICAgICAgICAgICAgIHN0cmVh
bSA8PCAiSW5pdGlhbCBjb250YWluaW5nIGJsb2NrIjsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxh
eW91dEJveC5pc0RvY3VtZW50Qm94KCkpCisgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJIVE1M
IjsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0JvZHlCb3goKSkKKyAgICAgICAg
ICAgICAgICBzdHJlYW0gPDwgIkJPRFkiOworICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94
LmlzVGFibGVCb3goKSkKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIlRBQkxFIjsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc1RhYmxlQ2FwdGlvbigpKQorICAgICAgICAgICAg
ICAgIHN0cmVhbSA8PCAiQ0FQVElPTiI7CisgICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3gu
aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIlREIjsKKyAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FCisgICAgICAgICAgICAgICAgc3Ry
ZWFtIDw8ICJESVYiOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKGxheW91dEJveC5pc1RhYmxlUm93KCkpCisgICAgICAgICAgICAgICAgc3RyZWFtIDw8
ICJUUiI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJ1bmtu
b3duIGNvbnRhaW5lciI7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGxheW91dEJveC5pc0lu
bGluZUxldmVsQm94KCkpIHsKICAgICAgICAgaWYgKGxheW91dEJveC5yZXBsYWNlZCgpKQogICAg
ICAgICAgICAgc3RyZWFtIDw8ICJJTUcgcmVwbGFjZWQgaW5saW5lIGJveCI7CiAgICAgICAgIGVs
c2UgaWYgKGxheW91dEJveC5pc0Fub255bW91cygpKQpAQCAtMjMzLDIyICszMDksMTEgQEAgc3Rh
dGljIHZvaWQgb3V0cHV0TGF5b3V0Qm94KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IERpc3AKICAgICAgICAgICAgIHN0cmVhbSA8PCAiQlIgbGluZSBicmVh
ayI7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHN0cmVhbSA8PCAiaW5saW5lIGJveCI7Ci0g
ICAgfSBlbHNlIGlmIChpczxCbG9ja0NvbnRhaW5lcj4obGF5b3V0Qm94KSkgewotICAgICAgICBp
ZiAoIWxheW91dEJveC5wYXJlbnQoKSkKLSAgICAgICAgICAgIHN0cmVhbSA8PCAiSW5pdGlhbCI7
Ci0gICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0RvY3VtZW50Qm94KCkpCi0gICAgICAgICAg
ICBzdHJlYW0gPDwgIkhUTUwiOwotICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNCb2R5Qm94
KCkpCi0gICAgICAgICAgICBzdHJlYW0gPDwgIkJPRFkiOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIEZJWE1FCi0gICAgICAgICAgICBzdHJlYW0gPDwgIkRJViI7Ci0gICAgICAgIH0K
LSAgICAgICAgc3RyZWFtIDw8ICIgYmxvY2sgY29udGFpbmVyIjsKICAgICB9IGVsc2UgaWYgKGxh
eW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSkKICAgICAgICAgc3RyZWFtIDw8ICJibG9jayBib3gi
OwogICAgIGVsc2UKICAgICAgICAgc3RyZWFtIDw8ICJib3giOworCiAgICAgLy8gRklYTUU6IElu
bGluZSB0ZXh0IHJ1bnMgZG9uJ3QgY3JlYXRlIGRpc3BsYXkgYm94ZXMgeWV0LgogICAgIGlmIChk
aXNwbGF5Qm94KQogICAgICAgICBzdHJlYW0gPDwgIiBhdCAoIiA8PCBkaXNwbGF5Qm94LT5sZWZ0
KCkgPDwgIiwiIDw8IGRpc3BsYXlCb3gtPnRvcCgpIDw8ICIpIHNpemUgIiA8PCBkaXNwbGF5Qm94
LT53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5Qm94LT5oZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmluZGV4IDIz
YTcyYWFmNGUwMjEyYWMxYjI0ZGJmZjEwNzI1ZTc2NGQ1YzNjZjIuLjc5NDg3NGI0YTZiOTU4NDlj
Y2YxZDI3ZWZjY2FhODg4MmM5MTc2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJFbGVtZW50OworY2xhc3MgUmVuZGVyVGFi
bGU7CiBjbGFzcyBSZW5kZXJWaWV3OwogCiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAgLTQ0LDYgKzQ1
LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVN1YlRyZWUo
Y29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdFJlbmRlcmVyLCBDb250YWluZXImIHJvb3RDb250YWlu
ZXIpOworICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVRhYmxlU3RydWN0dXJlKGNvbnN0IFJlbmRlclRh
YmxlJiB0YWJsZVJlbmRlcmVyLCBDb250YWluZXImIHRhYmxlV3JhcHBlckJveCk7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IGNyZWF0ZUxheW91dEJveChjb25zdCBSZW5kZXJFbGVt
ZW50JiBwYXJlbnRSZW5kZXJlciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKTsK
IH07CiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>