<?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>164727</bug_id>
          
          <creation_ts>2016-11-14 13:24:24 -0800</creation_ts>
          <short_desc>[DOMJIT] Allow using macro assembler scratches in FTL CheckDOM</short_desc>
          <delta_ts>2016-11-15 14:48:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1251108</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 13:24:24 -0800</bug_when>
    <thetext>CheckDOM could use macro assembler scratches.
So it should be allowed in FTL watchpoint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251113</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 13:28:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/29237963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251115</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 13:30:52 -0800</bug_when>
    <thetext>s/watchpoint/patchpoint/ autocorrection....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251147</commentid>
    <comment_count>3</comment_count>
      <attachid>294745</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 14:22:44 -0800</bug_when>
    <thetext>Created attachment 294745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251153</commentid>
    <comment_count>4</comment_count>
      <attachid>294748</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 14:26:45 -0800</bug_when>
    <thetext>Created attachment 294748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251199</commentid>
    <comment_count>5</comment_count>
      <attachid>294765</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 15:42:11 -0800</bug_when>
    <thetext>Created attachment 294765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251324</commentid>
    <comment_count>6</comment_count>
      <attachid>294797</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 19:29:42 -0800</bug_when>
    <thetext>Created attachment 294797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251481</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-15 10:57:00 -0800</bug_when>
    <thetext>LGTM too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251499</commentid>
    <comment_count>8</comment_count>
      <attachid>294797</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 11:21:45 -0800</bug_when>
    <thetext>Comment on attachment 294797
Patch

Clearing flags on attachment: 294797

Committed r208738: &lt;http://trac.webkit.org/changeset/208738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251500</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 11:21:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251586</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-15 13:11:09 -0800</bug_when>
    <thetext>Committed r208749: &lt;http://trac.webkit.org/changeset/208749&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251645</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-15 14:48:09 -0800</bug_when>
    <thetext>Committed r208758: &lt;http://trac.webkit.org/changeset/208758&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294745</attachid>
            <date>2016-11-14 14:22:44 -0800</date>
            <delta_ts>2016-11-14 14:26:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164727-20161114141825.patch</filename>
            <type>text/plain</type>
            <size>12714</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NjRhOWZlMDhlNTY3NTIxZDdjYzg4ZWI1MzYxMDZkMDBjMzJiMjEyLi5lNmJlZmE5MWQ3NjI4ODU0
OWFmZmQ2Y2RkMWQ4MTAyNjVjMjFjZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNi0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRE9NSklUXSBBbGxvdyB1c2luZyBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaGVzIGluIEZUTCBDaGVja0RPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY0NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrRE9NKToKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVjdDo6RE9NSklURnVuY3Rpb25P
YmplY3QpOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmplY3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0Ojp1bnNhZmVGdW5jdGlvbik6CisgICAgICAg
IChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzYWZlRnVuY3Rpb24pOgorICAgICAgICAoV1RG
OjpET01KSVRGdW5jdGlvbk9iamVjdDo6Y2hlY2tET01KSVROb2RlKToKKyAgICAgICAgKFdURjo6
RE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEdsb2JhbE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVET01KSVRGdW5j
dGlvbk9iamVjdCk6CisKIDIwMTYtMTEtMTQgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbSlNDXSBIYW5kbGUgbmV3X2FzeW5jX2Z1bmMgLyBuZXdfYXN5bmNf
ZnVuY19leHAgaW4gREZHIC8gRlRMCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggOWZjZmQ2NTMwMTcyNjRkNjE2NzYyZjY4NDI2MjI1NGQ1Y2Uy
ZmNlMS4uZGQ2NDA5ZGMzMWEzN2MzYTQ2Mzg3NmZjNzkyZjBjMTE1MDUwOGU4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTI4NSwyMSAr
OTI4NSwyNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAgICAgICAgIFBhdGNocG9pbnRWYWx1
ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoVm9pZCk7CiAgICAgICAgIHBhdGNocG9p
bnQtPmFwcGVuZFNvbWVSZWdpc3RlcihjZWxsKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BT
Y3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7Ci0gICAgICAg
IHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtRlBTY3JhdGNo
UmVnaXN0ZXJzOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJl
cDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5h
cHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOwogCi0gICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOwotICAg
ICAgICBOb2RlKiBub2RlID0gbV9ub2RlOwogICAgICAgICBOb2RlT3JpZ2luIG9yaWdpbiA9IG1f
b3JpZ2luOwogICAgICAgICB1bnNpZ25lZCBvc3JFeGl0QXJndW1lbnRPZmZzZXQgPSBwYXRjaHBv
aW50LT5udW1DaGlsZHJlbigpOwogICAgICAgICBPU1JFeGl0RGVzY3JpcHRvciogZXhpdERlc2Ny
aXB0b3IgPSBhcHBlbmRPU1JFeGl0RGVzY3JpcHRvcihqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9k
ZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kQ29sZEFueXMo
YnVpbGRFeGl0QXJndW1lbnRzKGV4aXREZXNjcmlwdG9yLCBvcmlnaW4uZm9yRXhpdCwganNWYWx1
ZVZhbHVlKGNlbGwpKSk7CisKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0
ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7CisgICAgICAgIHBhdGNocG9pbnQt
Pm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzOwor
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMoKSk7CisKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7CisgICAgICAg
IE5vZGUqIG5vZGUgPSBtX25vZGU7CiAgICAgICAgIEpTVmFsdWUgY2hpbGQxQ29uc3RhbnQgPSBt
X3N0YXRlLmZvck5vZGUobV9ub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKIAogICAgICAgICBwYXRj
aHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAg
ICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKwog
ICAgICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKICAgICAgICAgICAgICAg
ICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CiAgICAgICAgICAgICAgICAgVmVjdG9yPERPTUpJ
VDo6VmFsdWU+IHJlZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDI0YTAxOWQ0MTIyNzczOTEx
YzllNDQwMzQxMjQ1YTMwZThhZDg5NDIuLjI0ZDk2M2IwNWZlMTExYjE2OTc2N2JjMWYyYWU1NmJl
NTg1NmFlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03OTEsMTYgKzc5MSw4OCBAQCBjbGFz
cyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogICAgIGJvb2wgbV9l
bmFibGVFeGNlcHRpb24geyBmYWxzZSB9OwogfTsKIAotY29uc3QgQ2xhc3NJbmZvIEVsZW1lbnQ6
OnNfaW5mbyA9IHsgIkVsZW1lbnQiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEVsZW1lbnQpIH07Ci1jb25zdCBDbGFzc0luZm8gTWFzcXVlcmFkZXI6OnNfaW5mbyA9IHsg
Ik1hc3F1ZXJhZGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShNYXNx
dWVyYWRlcikgfTsKLWNvbnN0IENsYXNzSW5mbyBSb290OjpzX2luZm8gPSB7ICJSb290IiwgJkJh
c2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShSb290KSB9OwotY29uc3QgQ2xhc3NJ
bmZvIEltcHVyZUdldHRlcjo6c19pbmZvID0geyAiSW1wdXJlR2V0dGVyIiwgJkJhc2U6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbXB1cmVHZXR0ZXIpIH07Ci1jb25zdCBDbGFzc0lu
Zm8gQ3VzdG9tR2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0ZXIiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlcikgfTsKLWNvbnN0IENsYXNzSW5m
byBET01KSVROb2RlOjpzX2luZm8gPSB7ICJET01KSVROb2RlIiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShET01KSVROb2RlKSB9OwotY29uc3QgQ2xhc3NJbmZvIERPTUpJ
VEdldHRlcjo6c19pbmZvID0geyAiRE9NSklUR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShET01KSVRHZXR0ZXIpIH07Ci1jb25zdCBDbGFzc0luZm8gRE9NSklU
R2V0dGVyQ29tcGxleDo6c19pbmZvID0geyAiRE9NSklUR2V0dGVyQ29tcGxleCIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUR2V0dGVyQ29tcGxleCkgfTsKLWNv
bnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZUFycmF5KSB9OwotY29u
c3QgQ2xhc3NJbmZvIFNpbXBsZU9iamVjdDo6c19pbmZvID0geyAiU2ltcGxlT2JqZWN0IiwgJkJh
c2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShTaW1wbGVPYmplY3QpIH07CitjbGFz
cyBET01KSVRGdW5jdGlvbk9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKK3B1YmxpYzoKKyAg
ICBET01KSVRGdW5jdGlvbk9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAg
ICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAgfQorCisgICAgREVDTEFSRV9J
TkZPOworICAgIHR5cGVkZWYgRE9NSklUTm9kZSBCYXNlOworICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworCisKKyAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTQzo6
SlNUeXBlKExhc3RKU0NPYmplY3RUeXBlICsgMSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgRE9NSklURnVuY3Rpb25PYmplY3QqIGNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAg
IHsKKyAgICAgICAgRE9NSklURnVuY3Rpb25PYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPERPTUpJVEZ1bmN0aW9uT2JqZWN0Pih2bS5oZWFwLCBzaXplb2YoRE9NSklU
RnVuY3Rpb25PYmplY3QpKSkgRE9NSklURnVuY3Rpb25PYmplY3Qodm0sIHN0cnVjdHVyZSk7Cisg
ICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgSklUX09QRVJBVElPTiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgdW5zYWZlRnVuY3Rpb24oRXhlY1N0YXRlKiwgRE9NSklUTm9kZSogbm9kZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobm9kZS0+dmFsdWUo
KSkpOworICAgIH0KKworICAgIEpJVF9PUEVSQVRJT04gc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNh
ZmVGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCisgICAgeworICAgICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOworICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisK
KyAgICAgICAgRE9NSklUTm9kZSogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUTm9k
ZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOworICAgICAgICByZXR1
cm4gdW5zYWZlRnVuY3Rpb24oZXhlYywgdGhpc09iamVjdCk7CisgICAgfQorCisgICAgc3RhdGlj
IFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNoZWNrRE9NSklUTm9kZSgpCisgICAgeworICAgICAg
ICBzdGF0aWMgY29uc3QgZG91YmxlIHZhbHVlID0gNDIuMDsKKyAgICAgICAgUmVmPERPTUpJVDo6
UGF0Y2hwb2ludD4gcGF0Y2hwb2ludCA9IERPTUpJVDo6UGF0Y2hwb2ludDo6Y3JlYXRlKCk7Cisg
ICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IDE7CisgICAgICAgIHBh
dGNocG9pbnQtPnNldEdlbmVyYXRvcihbPV0oQ0NhbGxIZWxwZXJzJiBqaXQsIERPTUpJVDo6UGF0
Y2hwb2ludFBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0IGZhaWx1cmVDYXNlczsKKyAgICAgICAgICAgIC8vIE1heSB1c2Ugc2NyYXRjaCByZWdpc3Rl
cnMuCisgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnZhbHVlKSwgcGFyYW1zLmZwU2NyYXRjaCgwKSk7CisgICAgICAgICAgICBmYWlsdXJlQ2Fz
ZXMuYXBwZW5kKGppdC5icmFuY2g4KAorICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90
RXF1YWwsCisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1swXS5n
cHIoKSwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNDOjpKU1R5cGUoTGFzdEpTQ09iamVjdFR5cGUgKyAx
KSkpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWlsdXJlQ2FzZXM7CisgICAgICAgIH0pOworICAg
ICAgICByZXR1cm4gcGF0Y2hwb2ludDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7Cit9OworCitzdGF0aWMgY29uc3QgRE9N
SklUOjpTaWduYXR1cmUgRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUoKHVpbnRwdHJfdClE
T01KSVRGdW5jdGlvbk9iamVjdDo6dW5zYWZlRnVuY3Rpb24sIERPTUpJVEZ1bmN0aW9uT2JqZWN0
OjpjaGVja0RPTUpJVE5vZGUsIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjppbmZvKCksIERPTUpJVDo6
RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlOjp0b3AoKSksIFNwZWNJbnQzMk9ubHkp
OworCit2b2lkIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZnVuYyIpLCAwLCBzYWZlRnVuY3Rpb24sIE5vSW50cmlu
c2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIFJlYWRPbmx5KTsKK30KKworCitj
b25zdCBDbGFzc0luZm8gRWxlbWVudDo6c19pbmZvID0geyAiRWxlbWVudCIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRWxlbWVudCkgfTsKK2NvbnN0IENsYXNz
SW5mbyBNYXNxdWVyYWRlcjo6c19pbmZvID0geyAiTWFzcXVlcmFkZXIiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1hc3F1ZXJhZGVyKSB9OworY29uc3QgQ2xh
c3NJbmZvIFJvb3Q6OnNfaW5mbyA9IHsgIlJvb3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFJvb3QpIH07Citjb25zdCBDbGFzc0luZm8gSW1wdXJlR2V0dGVy
OjpzX2luZm8gPSB7ICJJbXB1cmVHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEltcHVyZUdldHRlcikgfTsKK2NvbnN0IENsYXNzSW5mbyBDdXN0b21H
ZXR0ZXI6OnNfaW5mbyA9IHsgIkN1c3RvbUdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoQ3VzdG9tR2V0dGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIERP
TUpJVE5vZGU6OnNfaW5mbyA9IHsgIkRPTUpJVE5vZGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVE5vZGUpIH07Citjb25zdCBDbGFzc0luZm8gRE9N
SklUR2V0dGVyOjpzX2luZm8gPSB7ICJET01KSVRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVEdldHRlcikgfTsKK2NvbnN0IENsYXNzSW5m
byBET01KSVRHZXR0ZXJDb21wbGV4OjpzX2luZm8gPSB7ICJET01KSVRHZXR0ZXJDb21wbGV4Iiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRHZXR0ZXJD
b21wbGV4KSB9OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzX2luZm8g
PSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoRE9NSklURnVuY3Rpb25PYmplY3QpIH07Citjb25zdCBDbGFzc0luZm8g
UnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFJ1bnRpbWVBcnJheSkgfTsKK2NvbnN0IENsYXNz
SW5mbyBTaW1wbGVPYmplY3Q6OnNfaW5mbyA9IHsgIlNpbXBsZU9iamVjdCIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoU2ltcGxlT2JqZWN0KSB9Owogc3RhdGlj
IGJvb2wgdGVzdDI2MkFzeW5jUGFzc2VkIHsgZmFsc2UgfTsKIHN0YXRpYyBib29sIHRlc3QyNjJB
c3luY1Rlc3QgeyBmYWxzZSB9OwogCkBAIC04MzAsNiArOTAyLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoRXhl
Y1N0YXRlKikKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jl
YXRlRE9NSklUTm9kZU9iamVjdChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KEV4ZWNTdGF0ZSop
Owogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01K
SVRHZXR0ZXJDb21wbGV4T2JqZWN0KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdChFeGVjU3Rh
dGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
QnVpbHRpbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZShFeGVj
U3RhdGUqKTsKQEAgLTExMjUsNiArMTE5OCw3IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1Ymxp
YyBKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklU
Tm9kZU9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVjdCwgMCk7CiAgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVh
dGVET01KSVRHZXR0ZXJPYmplY3QsIDApOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0
ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNv
bXBsZXhPYmplY3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEZ1
bmN0aW9uT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCwgMCk7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVp
bHRpbiwgMik7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlR2xvYmFsT2JqZWN0Iiwg
ZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwg
InNldEltcHVyZUdldHRlckRlbGVnYXRlIiwgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0
ZSwgMik7CkBAIC0xNjY1LDYgKzE3MzksMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QoRXhlY1N0YXRlKgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKKyAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+dm0o
KSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBqc051bGwoKSk7CisgICAgRE9NSklURnVu
Y3Rpb25PYmplY3QqIHJlc3VsdCA9IERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpjcmVhdGUoZXhlYy0+
dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJ1Y3R1cmUpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDEyNjhlMGYzNTY2ZGEzNWVmNDRmOTkwYmU3
OGEwODljNGVlN2ZiNS4uZWU2MzRjODUwNGI4ZmQxYWM3ZDQzZDJiNDkzMjc2YTQ1NjUxYzU0MyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAxNi0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbRE9NSklUXSBBbGxvdyB1c2luZyBtYWNybyBhc3NlbWJsZXIg
c2NyYXRjaGVzIGluIEZUTCBDaGVja0RPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hpbGUgQ2FsbERPTUdldHRlciBjYW4gdXNlIG1hY3JvIGFzc2Vt
YmxlciBzY3JhdGNoIHJlZ2lzdGVycywgd2UgcHJldmlpb3VzbHkKKyAgICAgICAgYXNzdW1lZCB0
aGF0IENoZWNrRE9NIGNvZGUgZ2VuZXJhdG9yIGRvZXMgbm90IHVzZSBtYWNybyBhc3NlbWJsZXIg
c2NyYXRjaCByZWdpc3RlcnMuCisgICAgICAgIEl0IGlzIGN1cnJlbnRseSB0cnVlIGluIHg4NiBl
bnZpcm9ubWVudC4gQnV0IGl0IGlzIG5vdCB0cnVlIGluIHRoZSBvdGhlciBlbnZpcm9ubWVudHMu
CisKKyAgICAgICAgV2Ugc2hvdWxkIG5vdCBsaW1pdCBET01KSVQ6OlBhdGNocG9pbnQncyBmdW5j
dGlvbmFsaXR5IGluIHN1Y2ggYSB3YXkuIFdlIHNob3VsZCBhbGxvdworICAgICAgICBhcmJpdHJh
cnkgbWFjcm8gYXNzZW1ibGVyIG9wZXJhdGlvbnMgaW5zaWRlIHRoZSBET01KSVQ6OlBhdGNocG9p
bnQuIFRoaXMgcGF0Y2ggYWxsb3dzCisgICAgICAgIENoZWNrRE9NIHRvIHVzZSBtYWNybyBhc3Nl
bWJsZXIgc2NyYXRjaCByZWdpc3RlcnMuCisKKyAgICAgICAgKiBzdHJlc3MvY2hlY2stZG9tLXdp
dGgtc2lnbmF0dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGNh
bGxpbmcpOgorICAgICAgICAoaS5hcnJheS5mb3JFYWNoKToKKwogMjAxNi0xMS0xNCAgQ2FpdGxp
biBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIEhhbmRsZSBuZXdf
YXN5bmNfZnVuYyAvIG5ld19hc3luY19mdW5jX2V4cCBpbiBERkcgLyBGVEwKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2NoZWNrLWRvbS13aXRoLXNpZ25hdHVyZS5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2NoZWNrLWRvbS13aXRoLXNpZ25hdHVyZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTIyZjU0ZjEwYTlh
ZjNlZThjMDY2NjQ3YzExZGFjMjA2YWY4MGI2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvY2hlY2stZG9tLXdpdGgtc2lnbmF0dXJlLmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCit2YXIgYXJyYXkgPSBbXTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAg
YXJyYXkucHVzaChjcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCgpKTsKKworZnVuY3Rpb24gY2Fs
bGluZyhkb20pCit7CisgICAgcmV0dXJuIGRvbS5mdW5jKCk7Cit9Citub0lubGluZShjYWxsaW5n
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIGFycmF5LmZvckVhY2go
KG9iaikgPT4geworICAgICAgICBzaG91bGRCZShjYWxsaW5nKG9iaiksIDQyKTsKKyAgICB9KTsK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294748</attachid>
            <date>2016-11-14 14:26:45 -0800</date>
            <delta_ts>2016-11-14 15:42:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164727-20161114142226.patch</filename>
            <type>text/plain</type>
            <size>12714</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NjRhOWZlMDhlNTY3NTIxZDdjYzg4ZWI1MzYxMDZkMDBjMzJiMjEyLi4xYzViYTBjMjUxMDNmOWEx
YmY5ODkxMzhiYTgxZDczZTkyNzJmZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRE9NSklUXSBBbGxvdyB1c2luZyBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaGVzIGluIEZUTCBDaGVja0RPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY0NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hpbGUgQ2FsbERPTUdldHRlciBjYW4gdXNlIG1hY3JvIGFzc2VtYmxl
ciBzY3JhdGNoIHJlZ2lzdGVycywgd2UgcHJldmlpb3VzbHkKKyAgICAgICAgYXNzdW1lZCB0aGF0
IENoZWNrRE9NIGNvZGUgZ2VuZXJhdG9yIGRvZXMgbm90IHVzZSBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaCByZWdpc3RlcnMuCisgICAgICAgIEl0IGlzIGN1cnJlbnRseSB0cnVlIGluIHg4NiBlbnZp
cm9ubWVudC4gQnV0IGl0IGlzIG5vdCB0cnVlIGluIHRoZSBvdGhlciBlbnZpcm9ubWVudHMuCisK
KyAgICAgICAgV2Ugc2hvdWxkIG5vdCBsaW1pdCBET01KSVQ6OlBhdGNocG9pbnQncyBmdW5jdGlv
bmFsaXR5IGluIHN1Y2ggYSB3YXkuIFdlIHNob3VsZCBhbGxvdworICAgICAgICBhcmJpdHJhcnkg
bWFjcm8gYXNzZW1ibGVyIG9wZXJhdGlvbnMgaW5zaWRlIHRoZSBET01KSVQ6OlBhdGNocG9pbnQu
IFRoaXMgcGF0Y2ggYWxsb3dzCisgICAgICAgIENoZWNrRE9NIHRvIHVzZSBtYWNybyBhc3NlbWJs
ZXIgc2NyYXRjaCByZWdpc3RlcnMuCisKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrRE9N
KToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVj
dDo6RE9NSklURnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0Ojp1bnNhZmVG
dW5jdGlvbik6CisgICAgICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzYWZlRnVuY3Rp
b24pOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVjdDo6Y2hlY2tET01KSVROb2Rl
KToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6CisKIDIwMTYtMTEtMTQgIENhaXRsaW4gUG90
dGVyICA8Y2FpdHBAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBIYW5kbGUgbmV3X2FzeW5j
X2Z1bmMgLyBuZXdfYXN5bmNfZnVuY19leHAgaW4gREZHIC8gRlRMCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggOWZjZmQ2NTMwMTcyNjRkNjE2
NzYyZjY4NDI2MjI1NGQ1Y2UyZmNlMS4uZGQ2NDA5ZGMzMWEzN2MzYTQ2Mzg3NmZjNzkyZjBjMTE1
MDUwOGU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcApAQCAtOTI4NSwyMSArOTI4NSwyNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAgICAg
ICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoVm9pZCk7
CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihjZWxsKTsKLSAgICAgICAg
cGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hS
ZWdpc3RlcnM7Ci0gICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRv
bUpJVC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV90YWdNYXNrLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwogICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQ
UkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwogCi0gICAgICAgIFN0YXRlKiBzdGF0ZSA9
ICZtX2Z0bFN0YXRlOwotICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOwogICAgICAgICBOb2Rl
T3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOwogICAgICAgICB1bnNpZ25lZCBvc3JFeGl0QXJndW1l
bnRPZmZzZXQgPSBwYXRjaHBvaW50LT5udW1DaGlsZHJlbigpOwogICAgICAgICBPU1JFeGl0RGVz
Y3JpcHRvciogZXhpdERlc2NyaXB0b3IgPSBhcHBlbmRPU1JFeGl0RGVzY3JpcHRvcihqc1ZhbHVl
VmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kQ29sZEFueXMoYnVpbGRFeGl0QXJndW1lbnRzKGV4aXREZXNjcmlwdG9yLCBvcmln
aW4uZm9yRXhpdCwganNWYWx1ZVZhbHVlKGNlbGwpKSk7CisKKyAgICAgICAgcGF0Y2hwb2ludC0+
bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7Cisg
ICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtRlBT
Y3JhdGNoUmVnaXN0ZXJzOworICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0
OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1f
ZnRsU3RhdGU7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7CiAgICAgICAgIEpTVmFsdWUg
Y2hpbGQxQ29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobV9ub2RlLT5jaGlsZDEoKSkudmFsdWUo
KTsKIAogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgICAgICBbPV0g
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFt
cykgeworICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxv
d1NjcmF0Y2goaml0KTsKKwogICAgICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRj
aDsKICAgICAgICAgICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CiAgICAgICAgICAg
ICAgICAgVmVjdG9yPERPTUpJVDo6VmFsdWU+IHJlZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4
IDI0YTAxOWQ0MTIyNzczOTExYzllNDQwMzQxMjQ1YTMwZThhZDg5NDIuLjI0ZDk2M2IwNWZlMTEx
YjE2OTc2N2JjMWYyYWU1NmJlNTg1NmFlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03OTEs
MTYgKzc5MSw4OCBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5v
ZGUgewogICAgIGJvb2wgbV9lbmFibGVFeGNlcHRpb24geyBmYWxzZSB9OwogfTsKIAotY29uc3Qg
Q2xhc3NJbmZvIEVsZW1lbnQ6OnNfaW5mbyA9IHsgIkVsZW1lbnQiLCAmQmFzZTo6c19pbmZvLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEVsZW1lbnQpIH07Ci1jb25zdCBDbGFzc0luZm8gTWFzcXVl
cmFkZXI6OnNfaW5mbyA9IHsgIk1hc3F1ZXJhZGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShNYXNxdWVyYWRlcikgfTsKLWNvbnN0IENsYXNzSW5mbyBSb290OjpzX2lu
Zm8gPSB7ICJSb290IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShSb290
KSB9OwotY29uc3QgQ2xhc3NJbmZvIEltcHVyZUdldHRlcjo6c19pbmZvID0geyAiSW1wdXJlR2V0
dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbXB1cmVHZXR0ZXIp
IH07Ci1jb25zdCBDbGFzc0luZm8gQ3VzdG9tR2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0
ZXIiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlcikg
fTsKLWNvbnN0IENsYXNzSW5mbyBET01KSVROb2RlOjpzX2luZm8gPSB7ICJET01KSVROb2RlIiwg
JkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVROb2RlKSB9OwotY29u
c3QgQ2xhc3NJbmZvIERPTUpJVEdldHRlcjo6c19pbmZvID0geyAiRE9NSklUR2V0dGVyIiwgJkJh
c2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRHZXR0ZXIpIH07Ci1jb25z
dCBDbGFzc0luZm8gRE9NSklUR2V0dGVyQ29tcGxleDo6c19pbmZvID0geyAiRE9NSklUR2V0dGVy
Q29tcGxleCIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUR2V0
dGVyQ29tcGxleCkgfTsKLWNvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsg
IlJ1bnRpbWVBcnJheSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVu
dGltZUFycmF5KSB9OwotY29uc3QgQ2xhc3NJbmZvIFNpbXBsZU9iamVjdDo6c19pbmZvID0geyAi
U2ltcGxlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShTaW1w
bGVPYmplY3QpIH07CitjbGFzcyBET01KSVRGdW5jdGlvbk9iamVjdCA6IHB1YmxpYyBET01KSVRO
b2RlIHsKK3B1YmxpYzoKKyAgICBET01KSVRGdW5jdGlvbk9iamVjdChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAg
fQorCisgICAgREVDTEFSRV9JTkZPOworICAgIHR5cGVkZWYgRE9NSklUTm9kZSBCYXNlOworICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOworCisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEpTQzo6SlNUeXBlKExhc3RKU0NPYmplY3RUeXBlICsgMSksIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgRE9NSklURnVuY3Rpb25PYmpl
Y3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgRE9NSklURnVuY3Rpb25PYmplY3QqIG9iamVj
dCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPERPTUpJVEZ1bmN0aW9uT2JqZWN0Pih2bS5o
ZWFwLCBzaXplb2YoRE9NSklURnVuY3Rpb25PYmplY3QpKSkgRE9NSklURnVuY3Rpb25PYmplY3Qo
dm0sIHN0cnVjdHVyZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2Jh
bE9iamVjdCk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgSklUX09QRVJB
VElPTiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5zYWZlRnVuY3Rpb24oRXhlY1N0YXRlKiwgRE9N
SklUTm9kZSogbm9kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIobm9kZS0+dmFsdWUoKSkpOworICAgIH0KKworICAgIEpJVF9PUEVSQVRJT04gc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHNhZmVGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCisgICAgeworICAg
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgRE9NSklUTm9kZSogdGhpc09iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8RE9NSklUTm9kZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgaWYgKCF0
aGlzT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2Nv
cGUpOworICAgICAgICByZXR1cm4gdW5zYWZlRnVuY3Rpb24oZXhlYywgdGhpc09iamVjdCk7Cisg
ICAgfQorCisgICAgc3RhdGljIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNoZWNrRE9NSklUTm9k
ZSgpCisgICAgeworICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHZhbHVlID0gNDIuMDsKKyAg
ICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gcGF0Y2hwb2ludCA9IERPTUpJVDo6UGF0Y2hw
b2ludDo6Y3JlYXRlKCk7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVy
cyA9IDE7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbPV0oQ0NhbGxIZWxwZXJz
JiBqaXQsIERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKKyAgICAgICAgICAgIC8vIE1heSB1
c2Ugc2NyYXRjaCByZWdpc3RlcnMuCisgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIoJnZhbHVlKSwgcGFyYW1zLmZwU2NyYXRjaCgwKSk7CisgICAg
ICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKGppdC5icmFuY2g4KAorICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHBhcmFtc1swXS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksCisg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNDOjpKU1R5cGUoTGFz
dEpTQ09iamVjdFR5cGUgKyAxKSkpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWlsdXJlQ2FzZXM7
CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gcGF0Y2hwb2ludDsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7Cit9Owor
CitzdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklURnVuY3Rpb25PYmplY3RTaWdu
YXR1cmUoKHVpbnRwdHJfdClET01KSVRGdW5jdGlvbk9iamVjdDo6dW5zYWZlRnVuY3Rpb24sIERP
TUpJVEZ1bmN0aW9uT2JqZWN0OjpjaGVja0RPTUpJVE5vZGUsIERPTUpJVEZ1bmN0aW9uT2JqZWN0
OjppbmZvKCksIERPTUpJVDo6RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlOjp0b3Ao
KSksIFNwZWNJbnQzMk9ubHkpOworCit2b2lkIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZnVuYyIpLCAwLCBzYWZl
RnVuY3Rpb24sIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIFJl
YWRPbmx5KTsKK30KKworCitjb25zdCBDbGFzc0luZm8gRWxlbWVudDo6c19pbmZvID0geyAiRWxl
bWVudCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRWxlbWVu
dCkgfTsKK2NvbnN0IENsYXNzSW5mbyBNYXNxdWVyYWRlcjo6c19pbmZvID0geyAiTWFzcXVlcmFk
ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1hc3F1ZXJh
ZGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIFJvb3Q6OnNfaW5mbyA9IHsgIlJvb3QiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFJvb3QpIH07Citjb25zdCBDbGFz
c0luZm8gSW1wdXJlR2V0dGVyOjpzX2luZm8gPSB7ICJJbXB1cmVHZXR0ZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEltcHVyZUdldHRlcikgfTsKK2NvbnN0
IENsYXNzSW5mbyBDdXN0b21HZXR0ZXI6OnNfaW5mbyA9IHsgIkN1c3RvbUdldHRlciIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQ3VzdG9tR2V0dGVyKSB9Owor
Y29uc3QgQ2xhc3NJbmZvIERPTUpJVE5vZGU6OnNfaW5mbyA9IHsgIkRPTUpJVE5vZGUiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVE5vZGUpIH07Citj
b25zdCBDbGFzc0luZm8gRE9NSklUR2V0dGVyOjpzX2luZm8gPSB7ICJET01KSVRHZXR0ZXIiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVEdldHRlcikg
fTsKK2NvbnN0IENsYXNzSW5mbyBET01KSVRHZXR0ZXJDb21wbGV4OjpzX2luZm8gPSB7ICJET01K
SVRHZXR0ZXJDb21wbGV4IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShET01KSVRHZXR0ZXJDb21wbGV4KSB9OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0
aW9uT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklURnVuY3Rpb25PYmplY3QpIH07
Citjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXki
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFJ1bnRpbWVBcnJh
eSkgfTsKK2NvbnN0IENsYXNzSW5mbyBTaW1wbGVPYmplY3Q6OnNfaW5mbyA9IHsgIlNpbXBsZU9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoU2ltcGxl
T2JqZWN0KSB9Owogc3RhdGljIGJvb2wgdGVzdDI2MkFzeW5jUGFzc2VkIHsgZmFsc2UgfTsKIHN0
YXRpYyBib29sIHRlc3QyNjJBc3luY1Rlc3QgeyBmYWxzZSB9OwogCkBAIC04MzAsNiArOTAyLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0
b21HZXR0ZXJPYmplY3QoRXhlY1N0YXRlKikKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVjdChFeGVjU3RhdGUqKTsKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVy
T2JqZWN0KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KEV4ZWNTdGF0ZSopOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5j
dGlvbk9iamVjdChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KEV4ZWNTdGF0ZSop
Owogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJbXB1cmVH
ZXR0ZXJEZWxlZ2F0ZShFeGVjU3RhdGUqKTsKQEAgLTExMjUsNiArMTE5OCw3IEBAIGNsYXNzIEds
b2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY3JlYXRlRE9NSklUTm9kZU9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9i
amVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyT2Jq
ZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QsIDApOwogICAgICAgICBhZGRG
dW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QiLCBmdW5jdGlvbkNy
ZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5j
dGlvbk9iamVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIs
IGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jl
YXRlR2xvYmFsT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOwogICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVnYXRlIiwgZnVuY3Rpb25TZXRJ
bXB1cmVHZXR0ZXJEZWxlZ2F0ZSwgMik7CkBAIC0xNjY1LDYgKzE3MzksMTQgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmpl
Y3QoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9u
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsK
KyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBqc051bGwo
KSk7CisgICAgRE9NSklURnVuY3Rpb25PYmplY3QqIHJlc3VsdCA9IERPTUpJVEZ1bmN0aW9uT2Jq
ZWN0OjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJ1
Y3R1cmUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDEyNjhlMGYz
NTY2ZGEzNWVmNDRmOTkwYmU3OGEwODljNGVlN2ZiNS4uYWE2ZGM1NDVmODE3MzY5MzJkMDFjNWEw
NjA2ODlkZjE0ODUyMDY3OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0xMS0xNCAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbRE9NSklUXSBBbGxvdyB1c2lu
ZyBtYWNybyBhc3NlbWJsZXIgc2NyYXRjaGVzIGluIEZUTCBDaGVja0RPTQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NzI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY2hlY2stZG9tLXdp
dGgtc2lnbmF0dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGNh
bGxpbmcpOgorICAgICAgICAoaS5hcnJheS5mb3JFYWNoKToKKwogMjAxNi0xMS0xNCAgQ2FpdGxp
biBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIEhhbmRsZSBuZXdf
YXN5bmNfZnVuYyAvIG5ld19hc3luY19mdW5jX2V4cCBpbiBERkcgLyBGVEwKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2NoZWNrLWRvbS13aXRoLXNpZ25hdHVyZS5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2NoZWNrLWRvbS13aXRoLXNpZ25hdHVyZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTIyZjU0ZjEwYTlh
ZjNlZThjMDY2NjQ3YzExZGFjMjA2YWY4MGI2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvY2hlY2stZG9tLXdpdGgtc2lnbmF0dXJlLmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCit2YXIgYXJyYXkgPSBbXTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAg
YXJyYXkucHVzaChjcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCgpKTsKKworZnVuY3Rpb24gY2Fs
bGluZyhkb20pCit7CisgICAgcmV0dXJuIGRvbS5mdW5jKCk7Cit9Citub0lubGluZShjYWxsaW5n
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIGFycmF5LmZvckVhY2go
KG9iaikgPT4geworICAgICAgICBzaG91bGRCZShjYWxsaW5nKG9iaiksIDQyKTsKKyAgICB9KTsK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294765</attachid>
            <date>2016-11-14 15:42:11 -0800</date>
            <delta_ts>2016-11-14 19:29:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164727-20161115083751.patch</filename>
            <type>text/plain</type>
            <size>12782</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NWM5MjhhNjFmZGY0MDllYjQxYzYxNWVjNWQ4OGVkYzc4ZDcyYmMzLi5jMmJmNmU4ZmIxNjYxM2Ji
Zjc0MWRiMWE1MzkwM2YwYzVjOTY2MDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRE9NSklUXSBBbGxvdyB1c2luZyBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaGVzIGluIEZUTCBDaGVja0RPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY0NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hpbGUgQ2FsbERPTUdldHRlciBjYW4gdXNlIG1hY3JvIGFzc2VtYmxl
ciBzY3JhdGNoIHJlZ2lzdGVycywgd2UgcHJldmlpb3VzbHkKKyAgICAgICAgYXNzdW1lZCB0aGF0
IENoZWNrRE9NIGNvZGUgZ2VuZXJhdG9yIGRvZXMgbm90IHVzZSBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaCByZWdpc3RlcnMuCisgICAgICAgIEl0IGlzIGN1cnJlbnRseSB0cnVlIGluIHg4NiBlbnZp
cm9ubWVudC4gQnV0IGl0IGlzIG5vdCB0cnVlIGluIHRoZSBvdGhlciBlbnZpcm9ubWVudHMuCisK
KyAgICAgICAgV2Ugc2hvdWxkIG5vdCBsaW1pdCBET01KSVQ6OlBhdGNocG9pbnQncyBmdW5jdGlv
bmFsaXR5IGluIHN1Y2ggYSB3YXkuIFdlIHNob3VsZCBhbGxvdworICAgICAgICBhcmJpdHJhcnkg
bWFjcm8gYXNzZW1ibGVyIG9wZXJhdGlvbnMgaW5zaWRlIHRoZSBET01KSVQ6OlBhdGNocG9pbnQu
IFRoaXMgcGF0Y2ggYWxsb3dzCisgICAgICAgIENoZWNrRE9NIHRvIHVzZSBtYWNybyBhc3NlbWJs
ZXIgc2NyYXRjaCByZWdpc3RlcnMuCisKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrRE9N
KToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVj
dDo6RE9NSklURnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0Ojp1bnNhZmVG
dW5jdGlvbik6CisgICAgICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzYWZlRnVuY3Rp
b24pOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVjdDo6Y2hlY2tET01KSVROb2Rl
KToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6CisKIDIwMTYtMTEtMTEgIEdlb2ZmcmV5IEdh
cmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBKU0Mgc2hvdWxkIGRpc3Rpbmd1aXNo
IGJldHdlZW4gbG9jYWwgYW5kIGdsb2JhbCBldmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggOWZjZmQ2NTMwMTcyNjRkNjE2NzYyZjY4NDI2
MjI1NGQ1Y2UyZmNlMS4uZGQ2NDA5ZGMzMWEzN2MzYTQ2Mzg3NmZjNzkyZjBjMTE1MDUwOGU4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAt
OTI4NSwyMSArOTI4NSwyNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAgICAgICAgIFBhdGNo
cG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoVm9pZCk7CiAgICAgICAg
IHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihjZWxsKTsKLSAgICAgICAgcGF0Y2hwb2lu
dC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7
Ci0gICAgICAgIHBhdGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVt
RlBTY3JhdGNoUmVnaXN0ZXJzOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNr
LCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwogICAgICAgICBwYXRj
aHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRh
Z1R5cGVOdW1iZXJSZWdpc3RlcikpOwogCi0gICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0
YXRlOwotICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOwogICAgICAgICBOb2RlT3JpZ2luIG9y
aWdpbiA9IG1fb3JpZ2luOwogICAgICAgICB1bnNpZ25lZCBvc3JFeGl0QXJndW1lbnRPZmZzZXQg
PSBwYXRjaHBvaW50LT5udW1DaGlsZHJlbigpOwogICAgICAgICBPU1JFeGl0RGVzY3JpcHRvciog
ZXhpdERlc2NyaXB0b3IgPSBhcHBlbmRPU1JFeGl0RGVzY3JpcHRvcihqc1ZhbHVlVmFsdWUoY2Vs
bCksIG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
Q29sZEFueXMoYnVpbGRFeGl0QXJndW1lbnRzKGV4aXREZXNjcmlwdG9yLCBvcmlnaW4uZm9yRXhp
dCwganNWYWx1ZVZhbHVlKGNlbGwpKSk7CisKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3Jh
dGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7CisgICAgICAgIHBh
dGNocG9pbnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtRlBTY3JhdGNoUmVn
aXN0ZXJzOworICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1Nj
cmF0Y2hSZWdpc3RlcnMoKSk7CisKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3RhdGU7
CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7CiAgICAgICAgIEpTVmFsdWUgY2hpbGQxQ29u
c3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobV9ub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKIAogICAg
ICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgICAgICBbPV0gKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAg
ICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2go
aml0KTsKKwogICAgICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKICAgICAg
ICAgICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CiAgICAgICAgICAgICAgICAgVmVj
dG9yPERPTUpJVDo6VmFsdWU+IHJlZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDI0YTAxOWQ0
MTIyNzczOTExYzllNDQwMzQxMjQ1YTMwZThhZDg5NDIuLjdiNTg0NmQ0NjIzMTM2MzM0MDgyYWRk
MmRiYTdiMTJiYmVhOWNiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03OTEsMTYgKzc5MSw4
OSBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogICAg
IGJvb2wgbV9lbmFibGVFeGNlcHRpb24geyBmYWxzZSB9OwogfTsKIAotY29uc3QgQ2xhc3NJbmZv
IEVsZW1lbnQ6OnNfaW5mbyA9IHsgIkVsZW1lbnQiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEVsZW1lbnQpIH07Ci1jb25zdCBDbGFzc0luZm8gTWFzcXVlcmFkZXI6OnNf
aW5mbyA9IHsgIk1hc3F1ZXJhZGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShNYXNxdWVyYWRlcikgfTsKLWNvbnN0IENsYXNzSW5mbyBSb290OjpzX2luZm8gPSB7ICJS
b290IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShSb290KSB9OwotY29u
c3QgQ2xhc3NJbmZvIEltcHVyZUdldHRlcjo6c19pbmZvID0geyAiSW1wdXJlR2V0dGVyIiwgJkJh
c2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbXB1cmVHZXR0ZXIpIH07Ci1jb25z
dCBDbGFzc0luZm8gQ3VzdG9tR2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0ZXIiLCAmQmFz
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlcikgfTsKLWNvbnN0
IENsYXNzSW5mbyBET01KSVROb2RlOjpzX2luZm8gPSB7ICJET01KSVROb2RlIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVROb2RlKSB9OwotY29uc3QgQ2xhc3NJ
bmZvIERPTUpJVEdldHRlcjo6c19pbmZvID0geyAiRE9NSklUR2V0dGVyIiwgJkJhc2U6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRHZXR0ZXIpIH07Ci1jb25zdCBDbGFzc0lu
Zm8gRE9NSklUR2V0dGVyQ29tcGxleDo6c19pbmZvID0geyAiRE9NSklUR2V0dGVyQ29tcGxleCIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUR2V0dGVyQ29tcGxl
eCkgfTsKLWNvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVB
cnJheSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZUFycmF5
KSB9OwotY29uc3QgQ2xhc3NJbmZvIFNpbXBsZU9iamVjdDo6c19pbmZvID0geyAiU2ltcGxlT2Jq
ZWN0IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShTaW1wbGVPYmplY3Qp
IH07CitjbGFzcyBET01KSVRGdW5jdGlvbk9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKK3B1
YmxpYzoKKyAgICBET01KSVRGdW5jdGlvbk9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAgfQorCisgICAg
REVDTEFSRV9JTkZPOworICAgIHR5cGVkZWYgRE9NSklUTm9kZSBCYXNlOworICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworCisK
KyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKEpTQzo6SlNUeXBlKExhc3RKU0NPYmplY3RUeXBlICsgMSksIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgRE9NSklURnVuY3Rpb25PYmplY3QqIGNyZWF0
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlKQorICAgIHsKKyAgICAgICAgRE9NSklURnVuY3Rpb25PYmplY3QqIG9iamVjdCA9IG5ldyAo
Tm90TnVsbCwgYWxsb2NhdGVDZWxsPERPTUpJVEZ1bmN0aW9uT2JqZWN0Pih2bS5oZWFwLCBzaXpl
b2YoRE9NSklURnVuY3Rpb25PYmplY3QpKSkgRE9NSklURnVuY3Rpb25PYmplY3Qodm0sIHN0cnVj
dHVyZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7
CisgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgSklUX09QRVJBVElPTiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgdW5zYWZlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBET01KSVRO
b2RlKiBub2RlKQorICAgIHsKKyAgICAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
ZXhlYy0+dm0oKSwgZXhlYyk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIobm9kZS0+dmFsdWUoKSkpOworICAgIH0KKworICAgIEpTQ19IT1NUX0NBTEwgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHNhZmVGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCisgICAgeworICAgICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisKKyAgICAgICAgRE9NSklUTm9kZSogdGhpc09iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8RE9NSklUTm9kZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgaWYgKCF0aGlz
T2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZh
bHVlKCkpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gY2hl
Y2tET01KSVROb2RlKCkKKyAgICB7CisgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgdmFsdWUg
PSA0Mi4wOworICAgICAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0gRE9N
SklUOjpQYXRjaHBvaW50OjpjcmVhdGUoKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3Jh
dGNoUmVnaXN0ZXJzID0gMTsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9XShD
Q2FsbEhlbHBlcnMmIGppdCwgRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zJiBwYXJhbXMpIHsKKyAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOworICAgICAgICAg
ICAgLy8gTWF5IHVzZSBzY3JhdGNoIHJlZ2lzdGVycy4KKyAgICAgICAgICAgIGppdC5sb2FkRG91
YmxlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdmFsdWUpLCBwYXJhbXMuZnBTY3JhdGNo
KDApKTsKKyAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoaml0LmJyYW5jaDgoCisgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9m
ZnNldCgpKSwKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU0M6
OkpTVHlwZShMYXN0SlNDT2JqZWN0VHlwZSArIDEpKSkpOworICAgICAgICAgICAgcmV0dXJuIGZh
aWx1cmVDYXNlczsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBwYXRjaHBvaW50OworICAg
IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqKTsKK307CisKK3N0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlv
bk9iamVjdFNpZ25hdHVyZSgodWludHB0cl90KURPTUpJVEZ1bmN0aW9uT2JqZWN0Ojp1bnNhZmVG
dW5jdGlvbiwgRE9NSklURnVuY3Rpb25PYmplY3Q6OmNoZWNrRE9NSklUTm9kZSwgRE9NSklURnVu
Y3Rpb25PYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFw
UmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CisKK3ZvaWQgRE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmdW5j
IiksIDAsIHNhZmVGdW5jdGlvbiwgTm9JbnRyaW5zaWMsICZET01KSVRGdW5jdGlvbk9iamVjdFNp
Z25hdHVyZSwgUmVhZE9ubHkpOworfQorCisKK2NvbnN0IENsYXNzSW5mbyBFbGVtZW50OjpzX2lu
Zm8gPSB7ICJFbGVtZW50IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShFbGVtZW50KSB9OworY29uc3QgQ2xhc3NJbmZvIE1hc3F1ZXJhZGVyOjpzX2luZm8gPSB7
ICJNYXNxdWVyYWRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoTWFzcXVlcmFkZXIpIH07Citjb25zdCBDbGFzc0luZm8gUm9vdDo6c19pbmZvID0geyAiUm9v
dCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUm9vdCkgfTsK
K2NvbnN0IENsYXNzSW5mbyBJbXB1cmVHZXR0ZXI6OnNfaW5mbyA9IHsgIkltcHVyZUdldHRlciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSW1wdXJlR2V0dGVy
KSB9OworY29uc3QgQ2xhc3NJbmZvIEN1c3RvbUdldHRlcjo6c19pbmZvID0geyAiQ3VzdG9tR2V0
dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShDdXN0b21H
ZXR0ZXIpIH07Citjb25zdCBDbGFzc0luZm8gRE9NSklUTm9kZTo6c19pbmZvID0geyAiRE9NSklU
Tm9kZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklU
Tm9kZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBET01KSVRHZXR0ZXI6OnNfaW5mbyA9IHsgIkRPTUpJ
VEdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9N
SklUR2V0dGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVEdldHRlckNvbXBsZXg6OnNfaW5m
byA9IHsgIkRPTUpJVEdldHRlckNvbXBsZXgiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKERPTUpJVEdldHRlckNvbXBsZXgpIH07Citjb25zdCBDbGFzc0luZm8g
RE9NSklURnVuY3Rpb25PYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVEZ1bmN0aW9uT2JqZWN0Iiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRGdW5jdGlv
bk9iamVjdCkgfTsKK2NvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1
bnRpbWVBcnJheSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
UnVudGltZUFycmF5KSB9OworY29uc3QgQ2xhc3NJbmZvIFNpbXBsZU9iamVjdDo6c19pbmZvID0g
eyAiU2ltcGxlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShTaW1wbGVPYmplY3QpIH07CiBzdGF0aWMgYm9vbCB0ZXN0MjYyQXN5bmNQYXNzZWQgeyBm
YWxzZSB9Owogc3RhdGljIGJvb2wgdGVzdDI2MkFzeW5jVGVzdCB7IGZhbHNlIH07CiAKQEAgLTgz
MCw2ICs5MDMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdChFeGVjU3RhdGUqKQogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0KEV4ZWNTdGF0
ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVE
T01KSVRHZXR0ZXJPYmplY3QoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QoRXhlY1N0
YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0
ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCdWlsdGluKEV4ZWNTdGF0ZSopOwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3Qo
RXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSopOwpAQCAtMTEyNSw2ICsxMTk5LDcg
QEAgY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKICAgICAgICAg
YWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVROb2RlT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVE
T01KSVROb2RlT2JqZWN0LCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01K
SVRHZXR0ZXJPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck9iamVjdCwgMCk7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCIs
IGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCwgMCk7CisgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QiLCBmdW5jdGlvbkNyZWF0
ZURPTUpJVEZ1bmN0aW9uT2JqZWN0LCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVh
dGVCdWlsdGluIiwgZnVuY3Rpb25DcmVhdGVCdWlsdGluLCAyKTsKICAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJjcmVhdGVHbG9iYWxPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCwg
MCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUiLCBm
dW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlLCAyKTsKQEAgLTE2NjUsNiArMTc0MCwxNCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVy
Q29tcGxleE9iamVjdChFeGVjU3RhdGUqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9N
SklURnVuY3Rpb25PYmplY3QoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTTG9ja0hvbGRlciBs
b2NrKGV4ZWMpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gRE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIGpzTnVsbCgpKTsKKyAgICBET01KSVRGdW5jdGlvbk9iamVjdCogcmVzdWx0ID0gRE9NSklU
RnVuY3Rpb25PYmplY3Q6OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCksIHN0cnVjdHVyZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwor
fQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVy
RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA0MTI2OGUwZjM1NjZkYTM1ZWY0NGY5OTBiZTc4YTA4OWM0ZWU3ZmI1Li5hYTZkYzU0NWY4MTcz
NjkzMmQwMWM1YTA2MDY4OWRmMTQ4NTIwNjc4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTExLTE0ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtET01KSVRd
IEFsbG93IHVzaW5nIG1hY3JvIGFzc2VtYmxlciBzY3JhdGNoZXMgaW4gRlRMIENoZWNrRE9NCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ3MjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9j
aGVjay1kb20td2l0aC1zaWduYXR1cmUuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgor
ICAgICAgICAoY2FsbGluZyk6CisgICAgICAgIChpLmFycmF5LmZvckVhY2gpOgorCiAyMDE2LTEx
LTE0ICBDYWl0bGluIFBvdHRlciAgPGNhaXRwQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10g
SGFuZGxlIG5ld19hc3luY19mdW5jIC8gbmV3X2FzeW5jX2Z1bmNfZXhwIGluIERGRyAvIEZUTApk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY2hlY2stZG9tLXdpdGgtc2lnbmF0dXJlLmpzIGIv
SlNUZXN0cy9zdHJlc3MvY2hlY2stZG9tLXdpdGgtc2lnbmF0dXJlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1
MjJmNTRmMTBhOWFmM2VlOGMwNjY2NDdjMTFkYWMyMDZhZjgwYjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9jaGVjay1kb20td2l0aC1zaWduYXR1cmUuanMKQEAgLTAsMCArMSwy
MCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK3ZhciBhcnJheSA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkKKyAgICBhcnJheS5wdXNoKGNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KCkpOworCitm
dW5jdGlvbiBjYWxsaW5nKGRvbSkKK3sKKyAgICByZXR1cm4gZG9tLmZ1bmMoKTsKK30KK25vSW5s
aW5lKGNhbGxpbmcpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlMzsgKytpKSB7CisgICAgYXJy
YXkuZm9yRWFjaCgob2JqKSA9PiB7CisgICAgICAgIHNob3VsZEJlKGNhbGxpbmcob2JqKSwgNDIp
OworICAgIH0pOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294797</attachid>
            <date>2016-11-14 19:29:42 -0800</date>
            <delta_ts>2016-11-15 11:21:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164727-20161115122941.patch</filename>
            <type>text/plain</type>
            <size>12747</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NzQxNjIxMDkwMzBjOWUzY2I1MTM4MGYyMmNjYzc1NDY0YmU2YTI3Li4wMzc2MjA3NzgzZWE0YThl
ZTdjOTcxZDU4OWNhZmU0ZjlmOGM4NTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRE9NSklUXSBBbGxvdyB1c2luZyBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaGVzIGluIEZUTCBDaGVja0RPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY0NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hpbGUgQ2FsbERPTUdldHRlciBjYW4gdXNlIG1hY3JvIGFzc2VtYmxl
ciBzY3JhdGNoIHJlZ2lzdGVycywgd2UgcHJldmlpb3VzbHkKKyAgICAgICAgYXNzdW1lZCB0aGF0
IENoZWNrRE9NIGNvZGUgZ2VuZXJhdG9yIGRvZXMgbm90IHVzZSBtYWNybyBhc3NlbWJsZXIgc2Ny
YXRjaCByZWdpc3RlcnMuCisgICAgICAgIEl0IGlzIGN1cnJlbnRseSB0cnVlIGluIHg4NiBlbnZp
cm9ubWVudC4gQnV0IGl0IGlzIG5vdCB0cnVlIGluIHRoZSBvdGhlciBlbnZpcm9ubWVudHMuCisK
KyAgICAgICAgV2Ugc2hvdWxkIG5vdCBsaW1pdCBET01KSVQ6OlBhdGNocG9pbnQncyBmdW5jdGlv
bmFsaXR5IGluIHN1Y2ggYSB3YXkuIFdlIHNob3VsZCBhbGxvdworICAgICAgICBhcmJpdHJhcnkg
bWFjcm8gYXNzZW1ibGVyIG9wZXJhdGlvbnMgaW5zaWRlIHRoZSBET01KSVQ6OlBhdGNocG9pbnQu
IFRoaXMgcGF0Y2ggYWxsb3dzCisgICAgICAgIENoZWNrRE9NIHRvIHVzZSBtYWNybyBhc3NlbWJs
ZXIgc2NyYXRjaCByZWdpc3RlcnMuCisKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrRE9N
KToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVj
dDo6RE9NSklURnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0Ojp1bnNhZmVG
dW5jdGlvbik6CisgICAgICAgIChXVEY6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzYWZlRnVuY3Rp
b24pOgorICAgICAgICAoV1RGOjpET01KSVRGdW5jdGlvbk9iamVjdDo6Y2hlY2tET01KSVROb2Rl
KToKKyAgICAgICAgKFdURjo6RE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6CisKIDIwMTYtMTEtMTQgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgR0Mgc2hvdWxkIGJlIG9wdGlvbmFs
bHkgY29uY3VycmVudCBhbmQgZGlzYWJsZWQgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDYxZjlhNTA4MjIxNTVlZjYzZTk2
ZTI3NjU4YzdjZDQyNThlMWVmOGYuLmYxZGQxOGE5ODdmYTJlNDUwZGI3MjkyOWMyMWM4NDkyNGJm
MmRmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKQEAgLTkzMzQsMjEgKzkzMzQsMjYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgICAg
ICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KFZvaWQpOwog
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoY2VsbCk7Ci0gICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVn
aXN0ZXJzOwotICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21K
SVQtPm51bUZQU2NyYXRjaFJlZ2lzdGVyczsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1f
dGFnTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKICAgICAg
ICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKIAotICAgICAgICBTdGF0ZSogc3RhdGUgPSAm
bV9mdGxTdGF0ZTsKLSAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKICAgICAgICAgTm9kZU9y
aWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKICAgICAgICAgdW5zaWduZWQgb3NyRXhpdEFyZ3VtZW50
T2Zmc2V0ID0gcGF0Y2hwb2ludC0+bnVtQ2hpbGRyZW4oKTsKICAgICAgICAgT1NSRXhpdERlc2Ny
aXB0b3IqIGV4aXREZXNjcmlwdG9yID0gYXBwZW5kT1NSRXhpdERlc2NyaXB0b3IoanNWYWx1ZVZh
bHVlKGNlbGwpLCBtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CiAgICAgICAgIHBhdGNocG9pbnQt
PmFwcGVuZENvbGRBbnlzKGJ1aWxkRXhpdEFyZ3VtZW50cyhleGl0RGVzY3JpcHRvciwgb3JpZ2lu
LmZvckV4aXQsIGpzVmFsdWVWYWx1ZShjZWxsKSkpOworCisgICAgICAgIHBhdGNocG9pbnQtPm51
bUdQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOworICAg
ICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21KSVQtPm51bUZQU2Ny
YXRjaFJlZ2lzdGVyczsKKyAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6
bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOworCisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0
bFN0YXRlOworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOwogICAgICAgICBKU1ZhbHVlIGNo
aWxkMUNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG1fbm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7
CiAKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgICAgWz1dIChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMp
IHsKKyAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dT
Y3JhdGNoKGppdCk7CisKICAgICAgICAgICAgICAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0Y2g7
CiAgICAgICAgICAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOwogICAgICAgICAgICAg
ICAgIFZlY3RvcjxET01KSVQ6OlZhbHVlPiByZWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBi
N2M0MmIzNTI3ZWUyOTNkZTk3YjAyODFjZDk4MzBhYTc3ZWEzYjE2Li41NTZkODc2MTBhMzE0Nzg4
NGJlM2Y5MjEzM2FjMjNlYzFlNDg4ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNzkxLDE2
ICs3OTEsODkgQEAgY2xhc3MgRE9NSklUR2V0dGVyQ29tcGxleCA6IHB1YmxpYyBET01KSVROb2Rl
IHsKICAgICBib29sIG1fZW5hYmxlRXhjZXB0aW9uIHsgZmFsc2UgfTsKIH07CiAKLWNvbnN0IENs
YXNzSW5mbyBFbGVtZW50OjpzX2luZm8gPSB7ICJFbGVtZW50IiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShFbGVtZW50KSB9OwotY29uc3QgQ2xhc3NJbmZvIE1hc3F1ZXJh
ZGVyOjpzX2luZm8gPSB7ICJNYXNxdWVyYWRlciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoTWFzcXVlcmFkZXIpIH07Ci1jb25zdCBDbGFzc0luZm8gUm9vdDo6c19pbmZv
ID0geyAiUm9vdCIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUm9vdCkg
fTsKLWNvbnN0IENsYXNzSW5mbyBJbXB1cmVHZXR0ZXI6OnNfaW5mbyA9IHsgIkltcHVyZUdldHRl
ciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSW1wdXJlR2V0dGVyKSB9
OwotY29uc3QgQ2xhc3NJbmZvIEN1c3RvbUdldHRlcjo6c19pbmZvID0geyAiQ3VzdG9tR2V0dGVy
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShDdXN0b21HZXR0ZXIpIH07
Ci1jb25zdCBDbGFzc0luZm8gRE9NSklUTm9kZTo6c19pbmZvID0geyAiRE9NSklUTm9kZSIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUTm9kZSkgfTsKLWNvbnN0
IENsYXNzSW5mbyBET01KSVRHZXR0ZXI6OnNfaW5mbyA9IHsgIkRPTUpJVEdldHRlciIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUR2V0dGVyKSB9OwotY29uc3Qg
Q2xhc3NJbmZvIERPTUpJVEdldHRlckNvbXBsZXg6OnNfaW5mbyA9IHsgIkRPTUpJVEdldHRlckNv
bXBsZXgiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVEdldHRl
ckNvbXBsZXgpIH07Ci1jb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJS
dW50aW1lQXJyYXkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFJ1bnRp
bWVBcnJheSkgfTsKLWNvbnN0IENsYXNzSW5mbyBTaW1wbGVPYmplY3Q6OnNfaW5mbyA9IHsgIlNp
bXBsZU9iamVjdCIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoU2ltcGxl
T2JqZWN0KSB9OworY2xhc3MgRE9NSklURnVuY3Rpb25PYmplY3QgOiBwdWJsaWMgRE9NSklUTm9k
ZSB7CitwdWJsaWM6CisgICAgRE9NSklURnVuY3Rpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0K
KworICAgIERFQ0xBUkVfSU5GTzsKKyAgICB0eXBlZGVmIERPTUpJVE5vZGUgQmFzZTsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
czsKKworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhKU0M6OkpTVHlwZShMYXN0SlNDT2JqZWN0VHlwZSArIDEpLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIERPTUpJVEZ1bmN0aW9uT2JqZWN0
KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKKyAgICB7CisgICAgICAgIERPTUpJVEZ1bmN0aW9uT2JqZWN0KiBvYmplY3Qg
PSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxET01KSVRGdW5jdGlvbk9iamVjdD4odm0uaGVh
cCwgc2l6ZW9mKERPTUpJVEZ1bmN0aW9uT2JqZWN0KSkpIERPTUpJVEZ1bmN0aW9uT2JqZWN0KHZt
LCBzdHJ1Y3R1cmUpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxP
YmplY3QpOworICAgICAgICByZXR1cm4gb2JqZWN0OworICAgIH0KKworICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHVuc2FmZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
RE9NSklUTm9kZSogbm9kZSkKKyAgICB7CisgICAgICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJmV4ZWMtPnZtKCksIGV4ZWMpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKG5vZGUtPnZhbHVlKCkpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzYWZlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQorICAgIHsK
KyAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworCisgICAgICAgIERPTUpJVE5vZGUqIHRoaXNPYmplY3QgPSBq
c0R5bmFtaWNDYXN0PERPTUpJVE5vZGUqPihleGVjLT50aGlzVmFsdWUoKSk7CisgICAgICAgIGlm
ICghdGhpc09iamVjdCkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2Jq
ZWN0LT52YWx1ZSgpKSk7CisgICAgfQorCisgICAgc3RhdGljIFJlZjxET01KSVQ6OlBhdGNocG9p
bnQ+IGNoZWNrRE9NSklUTm9kZSgpCisgICAgeworICAgICAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IHZhbHVlID0gNDIuMDsKKyAgICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gcGF0Y2hwb2lu
dCA9IERPTUpJVDo6UGF0Y2hwb2ludDo6Y3JlYXRlKCk7CisgICAgICAgIHBhdGNocG9pbnQtPm51
bUZQU2NyYXRjaFJlZ2lzdGVycyA9IDE7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRv
cihbPV0oQ0NhbGxIZWxwZXJzJiBqaXQsIERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyYgcGFyYW1z
KSB7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKKyAg
ICAgICAgICAgIC8vIE1heSB1c2Ugc2NyYXRjaCByZWdpc3RlcnMuCisgICAgICAgICAgICBqaXQu
bG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnZhbHVlKSwgcGFyYW1zLmZw
U2NyYXRjaCgwKSk7CisgICAgICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKGppdC5icmFuY2g4
KAorICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsCisgICAgICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1swXS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5m
b1R5cGVPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoSlNDOjpKU1R5cGUoTGFzdEpTQ09iamVjdFR5cGUgKyAxKSkpKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWlsdXJlQ2FzZXM7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gcGF0Y2hwb2lu
dDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7Cit9OworCitzdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklU
RnVuY3Rpb25PYmplY3RTaWduYXR1cmUoKHVpbnRwdHJfdClET01KSVRGdW5jdGlvbk9iamVjdDo6
dW5zYWZlRnVuY3Rpb24sIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpjaGVja0RPTUpJVE5vZGUsIERP
TUpJVEZ1bmN0aW9uT2JqZWN0OjppbmZvKCksIERPTUpJVDo6RWZmZWN0Ojpmb3JSZWFkKERPTUpJ
VDo6SGVhcFJhbmdlOjp0b3AoKSksIFNwZWNJbnQzMk9ubHkpOworCit2b2lkIERPTUpJVEZ1bmN0
aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAiZnVuYyIpLCAwLCBzYWZlRnVuY3Rpb24sIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25P
YmplY3RTaWduYXR1cmUsIFJlYWRPbmx5KTsKK30KKworCitjb25zdCBDbGFzc0luZm8gRWxlbWVu
dDo6c19pbmZvID0geyAiRWxlbWVudCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoRWxlbWVudCkgfTsKK2NvbnN0IENsYXNzSW5mbyBNYXNxdWVyYWRlcjo6c19p
bmZvID0geyAiTWFzcXVlcmFkZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKE1hc3F1ZXJhZGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIFJvb3Q6OnNfaW5mbyA9
IHsgIlJvb3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFJv
b3QpIH07Citjb25zdCBDbGFzc0luZm8gSW1wdXJlR2V0dGVyOjpzX2luZm8gPSB7ICJJbXB1cmVH
ZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEltcHVy
ZUdldHRlcikgfTsKK2NvbnN0IENsYXNzSW5mbyBDdXN0b21HZXR0ZXI6OnNfaW5mbyA9IHsgIkN1
c3RvbUdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
Q3VzdG9tR2V0dGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVE5vZGU6OnNfaW5mbyA9IHsg
IkRPTUpJVE5vZGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KERPTUpJVE5vZGUpIH07Citjb25zdCBDbGFzc0luZm8gRE9NSklUR2V0dGVyOjpzX2luZm8gPSB7
ICJET01KSVRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKERPTUpJVEdldHRlcikgfTsKK2NvbnN0IENsYXNzSW5mbyBET01KSVRHZXR0ZXJDb21wbGV4
OjpzX2luZm8gPSB7ICJET01KSVRHZXR0ZXJDb21wbGV4IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRHZXR0ZXJDb21wbGV4KSB9OworY29uc3QgQ2xh
c3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklU
RnVuY3Rpb25PYmplY3QpIH07Citjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8g
PSB7ICJSdW50aW1lQXJyYXkiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKFJ1bnRpbWVBcnJheSkgfTsKK2NvbnN0IENsYXNzSW5mbyBTaW1wbGVPYmplY3Q6OnNf
aW5mbyA9IHsgIlNpbXBsZU9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoU2ltcGxlT2JqZWN0KSB9Owogc3RhdGljIGJvb2wgdGVzdDI2MkFzeW5jUGFz
c2VkIHsgZmFsc2UgfTsKIHN0YXRpYyBib29sIHRlc3QyNjJBc3luY1Rlc3QgeyBmYWxzZSB9Owog
CkBAIC04MzAsNiArOTAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoRXhlY1N0YXRlKikKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVjdChF
eGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0
KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbihFeGVjU3RhdGUqKTsK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlR2xvYmFs
T2JqZWN0KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZShFeGVjU3RhdGUqKTsKQEAgLTExMjUsNiAr
MTE5OSw3IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUTm9kZU9iamVjdCIsIGZ1bmN0aW9u
Q3JlYXRlRE9NSklUTm9kZU9iamVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jl
YXRlRE9NSklUR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3Qs
IDApOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhP
YmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QsIDApOworICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0IiwgZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlQnVpbHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlR2xvYmFsT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVHbG9iYWxP
YmplY3QsIDApOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVn
YXRlIiwgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSwgMik7CkBAIC0xNjY1LDYgKzE3
NDAsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlckNvbXBsZXhPYmplY3QoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNy
ZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0xvY2tI
b2xkZXIgbG9jayhleGVjKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IERPTUpJVEZ1bmN0
aW9uT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLCBqc051bGwoKSk7CisgICAgRE9NSklURnVuY3Rpb25PYmplY3QqIHJlc3VsdCA9
IERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBzdHJ1Y3R1cmUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVy
ZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9j
ayhleGVjKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMmE0YWFmMzljNmU4NGI0ZTBhZmJmNmQyMmJiMDY5Nzg2Yjk3NGQ0NS4uZTM1ZTc5
YTFmOTQ3OTU3NzExYmQwMDU1Nzc5YjQxNGRjNjFkNzQwMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0x
MS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBb
RE9NSklUXSBBbGxvdyB1c2luZyBtYWNybyBhc3NlbWJsZXIgc2NyYXRjaGVzIGluIEZUTCBDaGVj
a0RPTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
dHJlc3MvY2hlY2stZG9tLXdpdGgtc2lnbmF0dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3Vs
ZEJlKToKKyAgICAgICAgKGNhbGxpbmcpOgorICAgICAgICAoaS5hcnJheS5mb3JFYWNoKToKKwog
MjAxNi0xMS0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgV2FzbSBzZWxlY3QKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NoZWNrLWRv
bS13aXRoLXNpZ25hdHVyZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2NoZWNrLWRvbS13aXRoLXNpZ25h
dHVyZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNTIyZjU0ZjEwYTlhZjNlZThjMDY2NjQ3YzExZGFjMjA2YWY4
MGI2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY2hlY2stZG9tLXdpdGgtc2ln
bmF0dXJlLmpzCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit2YXIgYXJyYXkgPSBbXTsKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgYXJyYXkucHVzaChjcmVhdGVET01KSVRG
dW5jdGlvbk9iamVjdCgpKTsKKworZnVuY3Rpb24gY2FsbGluZyhkb20pCit7CisgICAgcmV0dXJu
IGRvbS5mdW5jKCk7Cit9Citub0lubGluZShjYWxsaW5nKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTM7ICsraSkgeworICAgIGFycmF5LmZvckVhY2goKG9iaikgPT4geworICAgICAgICBzaG91
bGRCZShjYWxsaW5nKG9iaiksIDQyKTsKKyAgICB9KTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>