<?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>187290</bug_id>
          
          <creation_ts>2018-07-03 06:13:00 -0700</creation_ts>
          <short_desc>[JSC] Move slowDownAndWasteMemory function to JSArrayBufferView</short_desc>
          <delta_ts>2018-07-03 10:51: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>New Bugs</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>ews-watchlist</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>1438823</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-03 06:13:00 -0700</bug_when>
    <thetext>[JSC] Move slowDownAndWasteMemory function to JSArrayBufferView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438824</commentid>
    <comment_count>1</comment_count>
      <attachid>344180</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-03 06:15:05 -0700</bug_when>
    <thetext>Created attachment 344180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438825</commentid>
    <comment_count>2</comment_count>
      <attachid>344181</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-03 06:18:20 -0700</bug_when>
    <thetext>Created attachment 344181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438833</commentid>
    <comment_count>3</comment_count>
      <attachid>344184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-03 07:08:08 -0700</bug_when>
    <thetext>Created attachment 344184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438882</commentid>
    <comment_count>4</comment_count>
      <attachid>344184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-07-03 10:23:18 -0700</bug_when>
    <thetext>Comment on attachment 344184
Patch

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438888</commentid>
    <comment_count>5</comment_count>
      <attachid>344184</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-03 10:50:19 -0700</bug_when>
    <thetext>Comment on attachment 344184
Patch

Clearing flags on attachment: 344184

Committed r233467: &lt;https://trac.webkit.org/changeset/233467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438889</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-03 10:50:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438891</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-03 10:51:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/41782135&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344180</attachid>
            <date>2018-07-03 06:15:05 -0700</date>
            <delta_ts>2018-07-03 06:18:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187290-20180703221504.patch</filename>
            <type>text/plain</type>
            <size>14956</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZGRlYzAwYzc1MjEwODA2NDAzNmRhYzI1ZGYwMDg2NmE0ZDhkM2Q0Li5lNGMxYWM3MWRhNWM5ZTZk
ZWJjNzYxMTNkNGZkZTA5M2NiNmQ5MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxOC0wNy0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgZnVuY3Rp
b24gdG8gSlNBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NzI5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgaXMganVzdCBvdmVycmlkZGVu
IGJ5IHR5cGVkIGFycmF5cy4gU2luY2UgdGhleSBhcmUgbGltaXRlZCwKKyAgICAgICAgd2UgZG8g
bm90IG5lZWQgdG8gYWRkIHRoaXMgZnVuY3Rpb24gdG8gTWV0aG9kVGFibGU6IGp1c3QgZGlzcGF0
Y2hpbmcgaXQgaW4gSlNBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaXMgZmluZS4gQW5kIHNsb3dE
b3duQW5kV2FzdGVNZW1vcnkgb25seSByZXF1aXJlcyB0aGUgc2l6ZW9mKGVsZW1lbnQpLCB3aGlj
aCBjYW4gYmUKKyAgICAgICAgZWFzaWx5IGNhbGN1bGF0ZWQgZnJvbSBKU1R5cGUuCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyBzbG93RG93bkFuZFdhc3RlTWVtb3J5IGZyb20gTWV0aG9kVGFi
bGUsIGFuZCBtb3ZlcyBpdCB0byBKU0FycmF5QnVmZmVyVmlldy4KKworICAgICAgICAqIHJ1bnRp
bWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6
CisgICAgICAgIChKU0M6OmVsZW1lbnRTaXplKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
clZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eUJ1ZmZlclZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3SW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFyZWRCdWZm
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxs
OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
Q2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6
OkpTRGF0YVZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNEYXRhVmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDctMDIgIFN1a29sc2Fr
IFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVndWxhciBleHBy
ZXNzaW9ucyB3aXRoICIuPyIgZXhwcmVzc2lvbnMgYXQgdGhlIHN0YXJ0IGFuZCB0aGUgZW5kIG1h
dGNoIHRoZSBlbnRpcmUgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNz
SW5mby5oCmluZGV4IDQyYjM5ZTFjNjhkM2VkNjEwYTIwMjY4MWZmNWFjZDQ1ZDY2NjEzMDAuLmYw
ZmFmMzRiNTE3OTQwMjRkMWFjMDcyODU2Y2ViNDc3ZmU2ZjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC0xMDEsOSArMTAxLDYgQEAgc3RydWN0IE1l
dGhvZFRhYmxlIHsKICAgICB1c2luZyBEZWZpbmVPd25Qcm9wZXJ0eUZ1bmN0aW9uUHRyID0gYm9v
bCAoKikoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYsIGJvb2wpOwogICAgIERlZmluZU93blByb3BlcnR5RnVuY3Rpb25QdHIgV1RG
X01FVEhPRF9UQUJMRV9FTlRSWShkZWZpbmVPd25Qcm9wZXJ0eSk7CiAKLSAgICB1c2luZyBTbG93
RG93bkFuZFdhc3RlTWVtb3J5ID0gQXJyYXlCdWZmZXIqICgqKShKU0FycmF5QnVmZmVyVmlldyop
OwotICAgIFNsb3dEb3duQW5kV2FzdGVNZW1vcnkgV1RGX01FVEhPRF9UQUJMRV9FTlRSWShzbG93
RG93bkFuZFdhc3RlTWVtb3J5KTsKLQogICAgIHVzaW5nIEdldFR5cGVkQXJyYXlJbXBsID0gUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gKCopKEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAgICAgR2V0VHlw
ZWRBcnJheUltcGwgV1RGX01FVEhPRF9UQUJMRV9FTlRSWShnZXRUeXBlZEFycmF5SW1wbCk7CiAK
QEAgLTE3NCw3ICsxNzEsNiBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgICAgICAmQ2xhc3NO
YW1lOjp0b1N0cmluZ05hbWUsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Y3VzdG9tSGFzSW5zdGFu
Y2UsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVmaW5lT3duUHJvcGVydHksIFwKLSAgICAgICAg
JkNsYXNzTmFtZTo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSwgXAogICAgICAgICAmQ2xhc3NOYW1l
OjpnZXRUeXBlZEFycmF5SW1wbCwgXAogICAgICAgICAmQ2xhc3NOYW1lOjpwcmV2ZW50RXh0ZW5z
aW9ucywgXAogICAgICAgICAmQ2xhc3NOYW1lOjppc0V4dGVuc2libGUsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAppbmRleCA5
Y2RiYzE2N2ExZjBmZjVlNjhhNGViNDg0NDUyNTA5ZWE4ZDEyZDY5Li44ZWU3MWE0YjY1YmUxMTI3
NzFhNjZiNTQ1MjFlOTY4MTY3MzM0YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCkBAIC0yMTcsNiArMjE3LDgyIEBAIHZv
aWQgSlNBcnJheUJ1ZmZlclZpZXc6Om5ldXRlcigpCiAgICAgbV92ZWN0b3IuY2xlYXIoKTsKIH0K
IAorc3RhdGljIGNvbnN0IGNvbnN0ZXhwciBzaXplX3QgRWxlbWVudFNpemVEYXRhW10gPSB7Cisg
ICAgc2l6ZW9mKHR5cGVuYW1lIEludDhBZGFwdG9yOjpUeXBlKSwgLy8gSW50OEFycmF5VHlwZQor
ICAgIHNpemVvZih0eXBlbmFtZSBVaW50OEFkYXB0b3I6OlR5cGUpLCAvLyBVaW50OEFycmF5VHlw
ZQorICAgIHNpemVvZih0eXBlbmFtZSBVaW50OENsYW1wZWRBZGFwdG9yOjpUeXBlKSwgLy8gVWlu
dDhDbGFtcGVkQXJyYXlUeXBlCisgICAgc2l6ZW9mKHR5cGVuYW1lIEludDE2QWRhcHRvcjo6VHlw
ZSksIC8vIEludDE2QXJyYXlUeXBlCisgICAgc2l6ZW9mKHR5cGVuYW1lIFVpbnQxNkFkYXB0b3I6
OlR5cGUpLCAvLyBVaW50MTZBcnJheVR5cGUKKyAgICBzaXplb2YodHlwZW5hbWUgSW50MzJBZGFw
dG9yOjpUeXBlKSwgLy8gSW50MzJBcnJheVR5cGUKKyAgICBzaXplb2YodHlwZW5hbWUgVWludDMy
QWRhcHRvcjo6VHlwZSksIC8vIFVpbnQzMkFycmF5VHlwZQorICAgIHNpemVvZih0eXBlbmFtZSBG
bG9hdDMyQWRhcHRvcjo6VHlwZSksIC8vIEZsb2F0MzJBcnJheVR5cGUKKyAgICBzaXplb2YodHlw
ZW5hbWUgRmxvYXQ2NEFkYXB0b3I6OlR5cGUpLCAvLyBGbG9hdDY0QXJyYXlUeXBlCit9OworCitz
dGF0aWMgaW5saW5lIHNpemVfdCBlbGVtZW50U2l6ZShKU1R5cGUgdHlwZSkKK3sKKyAgICBBU1NF
UlQodHlwZSA+PSBJbnQ4QXJyYXlUeXBlICYmIHR5cGUgPD0gRmxvYXQ2NEFycmF5VHlwZSk7Cisg
ICAgcmV0dXJuIEVsZW1lbnRTaXplRGF0YVt0eXBlIC0gSW50OEFycmF5VHlwZV07Cit9CisKK0Fy
cmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSgpCit7
CisgICAgQVNTRVJUKG1fbW9kZSA9PSBGYXN0VHlwZWRBcnJheSB8fCBtX21vZGUgPT0gT3ZlcnNp
emVUeXBlZEFycmF5KTsKKworICAgIC8vIFdlIHBsYXkgdGhpcyBnYW1lIGJlY2F1c2Ugd2Ugd2Fu
dCB0aGlzIHRvIGJlIGNhbGxhYmxlIGV2ZW4gZnJvbSBwbGFjZXMgdGhhdAorICAgIC8vIGRvbid0
IGhhdmUgYWNjZXNzIHRvIEV4ZWNTdGF0ZSogb3IgdGhlIFZNLCBhbmQgd2Ugb25seSBhbGxvY2F0
ZSBzbyBsaXR0bGUKKyAgICAvLyBtZW1vcnkgaGVyZSB0aGF0IGl0J3Mgbm90IG5lY2Vzc2FyeSB0
byB0cmlnZ2VyIGEgR0MgLSBqdXN0IGFjY291bnRpbmcgd2hhdAorICAgIC8vIHdlIGhhdmUgZG9u
ZSBpcyBnb29kIGVub3VnaC4gVGhlIHNvcnQgb2YgYml6YXJyZSBleGNlcHRpb24gdG8gdGhlICJh
bGxvY2F0aW5nCisgICAgLy8gbGl0dGxlIG1lbW9yeSIgaXMgd2hlbiB3ZSB0cmFuc2ZlciBhIGJh
Y2tpbmcgYnVmZmVyIGludG8gdGhlIEMgaGVhcDsgdGhpcworICAgIC8vIHdpbGwgdGVtcG9yYXJp
bHkgZ2V0IGNvdW50ZWQgdG93YXJkcyBoZWFwIGZvb3RwcmludCAoaW5jb3JyZWN0bHksIGluIHRo
ZSBjYXNlCisgICAgLy8gb2YgYWRvcHRpbmcgYW4gb3ZlcnNpemUgdHlwZWQgYXJyYXkpIGJ1dCB3
ZSBkb24ndCBHQyBoZXJlIGFueXdheS4gVGhhdCdzCisgICAgLy8gYWxtb3N0IGNlcnRhaW5seSBm
aW5lLiBUaGUgd29yc3QgY2FzZSBpcyBpZiB5b3UgY3JlYXRlZCBhIHRvbiBvZiBmYXN0IHR5cGVk
CisgICAgLy8gYXJyYXlzLCBhbmQgZGlkIG5vdGhpbmcgYnV0IGNhdXNlZCBhbGwgb2YgdGhlbSB0
byBzbG93IGRvd24gYW5kIHdhc3RlIG1lbW9yeS4KKyAgICAvLyBJbiB0aGF0IGNhc2UsIHlvdXIg
bWVtb3J5IGZvb3RwcmludCB3aWxsIGRvdWJsZSBiZWZvcmUgdGhlIEdDIHJlYWxpemVzIHdoYXQn
cworICAgIC8vIHVwLiBCdXQgaWYgeW91IGRvICphbnl0aGluZyogdG8gdHJpZ2dlciBhIEdDIHdh
dGVybWFyayBjaGVjaywgaXQgd2lsbCBrbm93CisgICAgLy8gdGhhdCB5b3UgKmhhZCogZG9uZSB0
aG9zZSBhbGxvY2F0aW9ucyBhbmQgaXQgd2lsbCBHQyBhcHByb3ByaWF0ZWx5LgorICAgIEhlYXAq
IGhlYXAgPSBIZWFwOjpoZWFwKHRoaXMpOworICAgIFZNJiB2bSA9ICpoZWFwLT52bSgpOworICAg
IERlZmVyR0NGb3JBV2hpbGUgZGVmZXJHQygqaGVhcCk7CisKKyAgICBSRUxFQVNFX0FTU0VSVCgh
aGFzSW5kZXhpbmdIZWFkZXIodm0pKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMt
PnN0cnVjdHVyZSh2bSk7CisgICAgc2V0QnV0dGVyZmx5KHZtLCBCdXR0ZXJmbHk6OmNyZWF0ZU9y
R3Jvd0FycmF5UmlnaHQoCisgICAgICAgIGJ1dHRlcmZseSgpLCB2bSwgdGhpcywgc3RydWN0dXJl
LAorICAgICAgICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCksIGZhbHNlLCAwLCAwKSk7
CisKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlcjsKKyAgICB1bnNpZ25lZCBieXRlTGVu
Z3RoID0gbV9sZW5ndGggKiBlbGVtZW50U2l6ZSh0eXBlKCkpOworCisgICAgc3dpdGNoIChtX21v
ZGUpIHsKKyAgICBjYXNlIEZhc3RUeXBlZEFycmF5OgorICAgICAgICBidWZmZXIgPSBBcnJheUJ1
ZmZlcjo6Y3JlYXRlKHZlY3RvcigpLCBieXRlTGVuZ3RoKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIE92ZXJzaXplVHlwZWRBcnJheToKKyAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIGRv
aW5nIHNvbWV0aGluZyBsaWtlICJzdWJ0cmFjdGluZyIgZnJvbSBleHRyYSBtZW1vcnkKKyAgICAg
ICAgLy8gY29zdCwgc2luY2UgcmlnaHQgbm93IHRoaXMgY2FzZSB3aWxsIGNhdXNlIHRoZSBHQyB0
byB0aGluayB0aGF0IHdlIHJlYWxsb2NhdGVkCisgICAgICAgIC8vIHRoZSB3aG9sZSBidWZmZXIu
CisgICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGVBZG9wdGVkKHZlY3RvcigpLCBi
eXRlTGVuZ3RoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICB7
CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2VsbExvY2soKSk7CisgICAgICAgIGJ1
dHRlcmZseSgpLT5pbmRleGluZ0hlYWRlcigpLT5zZXRBcnJheUJ1ZmZlcihidWZmZXIuZ2V0KCkp
OworICAgICAgICBtX3ZlY3Rvci5zZXRXaXRob3V0QmFycmllcihidWZmZXItPmRhdGEoKSk7Cisg
ICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CisgICAgICAgIG1fbW9kZSA9IFdhc3RlZnVs
VHlwZWRBcnJheTsKKyAgICB9CisgICAgaGVhcC0+YWRkUmVmZXJlbmNlKHRoaXMsIGJ1ZmZlci5n
ZXQoKSk7CisKKyAgICByZXR1cm4gYnVmZmVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUJ1ZmZlclZpZXcuaAppbmRleCAyNDQyNmQwZjIzYTQ3OTUzYmE2YjFhMzIyMmVm
YTYzNzg4ZTljNGVmLi41NDU2MzkxZTE5MTgwYWIxY2E4MWIyZjI0ODcxY2NkMTMzMjc0ZTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmll
dy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3
LmgKQEAgLTE4MSw2ICsxODEsNyBAQCBjbGFzcyBKU0FycmF5QnVmZmVyVmlldyA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICBzdGF0aWMgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gdG9X
cmFwcGVkKFZNJiwgSlNWYWx1ZSk7CiAKIHByaXZhdGU6CisgICAgQXJyYXlCdWZmZXIqIHNsb3dE
b3duQW5kV2FzdGVNZW1vcnkoKTsKICAgICBzdGF0aWMgdm9pZCBmaW5hbGl6ZShKU0NlbGwqKTsK
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaAppbmRleCBkNWM3MjdmNzRhZjdjZWQzYzNhZmI1
MmM3ZWFkN2FlOTlmNmE4NmVlLi43NjIyMzQ5MGIwY2U3MmE2N2M1YTA3ZWQ4ZDc4MmI2YmNmOWI5
MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyVmlld0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5QnVmZmVyVmlld0lubGluZXMuaApAQCAtNTAsOSArNTAsMTIgQEAgaW5saW5lIEFycmF5QnVm
ZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFyZWRCdWZmZXIoKQogICAgICAgICBy
ZXR1cm4gZXhpc3RpbmdCdWZmZXJJbkJ1dHRlcmZseSgpOwogICAgIGNhc2UgRGF0YVZpZXdNb2Rl
OgogICAgICAgICByZXR1cm4ganNDYXN0PEpTRGF0YVZpZXcqPih0aGlzKS0+cG9zc2libHlTaGFy
ZWRCdWZmZXIoKTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gbWV0aG9kVGFibGUoKS0+
c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSh0aGlzKTsKKyAgICBjYXNlIEZhc3RUeXBlZEFycmF5Ogor
ICAgIGNhc2UgT3ZlcnNpemVUeXBlZEFycmF5OgorICAgICAgICByZXR1cm4gc2xvd0Rvd25BbmRX
YXN0ZU1lbW9yeSgpOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogaW5saW5lIEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6
ZXhpc3RpbmdCdWZmZXJJbkJ1dHRlcmZseSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcAppbmRleCAxZDBiNWNjN2NiODJjODRmMzE3OTkyMzU1ZTg1MzQ4ZTA1MmQ5NGFj
Li45NDUzMmZmOTZiMjEyNmY4MzI5ZGI4N2JiNDZiNmJkMTg1MTZkYjg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTI1NiwxMiArMjU2LDYgQEAgYm9vbCBK
U0NlbGw6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lLCBjb25zdCBQcm9wZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUFycmF5QnVmZmVyKiBK
U0NlbGw6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqKQotewotICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0K
IFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IEpTQ2VsbDo6Z2V0VHlwZWRBcnJheUltcGwoSlNBcnJh
eUJ1ZmZlclZpZXcqKQogewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IGFlNmVmNmNmZjk5ZWI1MmE2Mzcw
MGM5ZmE5MzkwZjkyNzAxZDkxODQuLmU1ZTg4OGRiNzI5NGQ0NjdhNWEzYzgwYzVkZmM5NzMyMDY0
NjliMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC0yNjUsNyAr
MjY1LDYgQEAgY2xhc3MgSlNDZWxsIDogcHVibGljIEhlYXBDZWxsIHsKICAgICBzdGF0aWMgYm9v
bCBkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgQXJyYXlCdWZmZXIqIHNs
b3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqKTsKICAgICBKU19FWFBPUlRf
UFJJVkFURSBzdGF0aWMgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZ2V0VHlwZWRBcnJheUltcGwo
SlNBcnJheUJ1ZmZlclZpZXcqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNEYXRhVmlldy5jcHAKaW5kZXggNmJlNTZlOTI0ZTk2NzMxODYyN2ZiMTI0M2Vj
OGQyMTMzNjQ5NDFiNi4uNjIyNTg3OGIxNDg2OGMxMmRkYTk4YWI3YjBjNzE1MDkxZTIwODk3NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5jcHAKQEAgLTE4
MCwxMiArMTgwLDYgQEAgdm9pZCBKU0RhdGFWaWV3OjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFt
ZXMoCiAgICAgQmFzZTo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4
ZWMsIGFycmF5LCBtb2RlKTsKIH0KIAotQXJyYXlCdWZmZXIqIEpTRGF0YVZpZXc6OnNsb3dEb3du
QW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqKQotewotICAgIFVOUkVBQ0hBQkxFX0ZP
Ul9QTEFURk9STSgpOwotICAgIHJldHVybiAwOwotfQotCiBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3
PiBKU0RhdGFWaWV3OjpnZXRUeXBlZEFycmF5SW1wbChKU0FycmF5QnVmZmVyVmlldyogb2JqZWN0
KQogewogICAgIEpTRGF0YVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEYXRhVmlldyo+KG9i
amVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFW
aWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgKaW5kZXgg
MmVhYjI3MmI3OGEzOGViNzI1ZWM0NTRkNWM1ZGRmYTg4ZTMwOTU1Ny4uOTIwZWIyODIwNWIyNWJi
NmEwNDdlZTVhNTc2NGNhMjU3MTMzNTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNEYXRhVmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRGF0YVZpZXcuaApAQCAtNzAsNyArNzAsNiBAQCBjbGFzcyBKU0RhdGFWaWV3IGZpbmFs
IDogcHVibGljIEpTQXJyYXlCdWZmZXJWaWV3IHsKIAogICAgIHN0YXRpYyB2b2lkIGdldE93bk5v
bkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFy
cmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKIAotICAgIHN0YXRpYyBBcnJheUJ1ZmZlciogc2xvd0Rv
d25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyopOwogICAgIHN0YXRpYyBSZWZQdHI8
QXJyYXlCdWZmZXJWaWV3PiBnZXRUeXBlZEFycmF5SW1wbChKU0FycmF5QnVmZmVyVmlldyopOwog
ICAgIAogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggZjM1NTUzYzU1NTQ1YzE0ODk1YWM4MTgz
ZDY4OTgzMWU0ZGM5YmZjZS4uNTQ0YjY2OTZiNjM2NGRmM2RjNTVlYjIxYTI1NTE5MTBmNjM2Mzhh
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlldy5oCkBAIC0yOTAsNyArMjkwLDYgQEAgY2xhc3MgSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXcgZmluYWwgOiBwdWJsaWMgSlNBcnJheUJ1ZmZlclZpZXcgewogCiAgICAgLy8g
QWxsb2NhdGVzIHRoZSBmdWxsLW9uIG5hdGl2ZSBidWZmZXIgYW5kIG1vdmVzIGRhdGEgaW50byB0
aGUgQyBoZWFwIGlmCiAgICAgLy8gbmVjZXNzYXJ5LiBOb3RlIHRoYXQgdGhpcyBuZXZlciBhbGxv
Y2F0ZXMgaW4gdGhlIEdDIGhlYXAuCi0gICAgc3RhdGljIEFycmF5QnVmZmVyKiBzbG93RG93bkFu
ZFdhc3RlTWVtb3J5KEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAgICAgc3RhdGljIFJlZlB0cjxBcnJh
eUJ1ZmZlclZpZXc+IGdldFR5cGVkQXJyYXlJbXBsKEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCmluZGV4IGQxZTZiYzU2ODY2MjU1NWRi
ZDYwYWE3M2ZmOTgwOTY0MzQzNDJkNDQuLjU1ZmRjMDU2YzNkMDUyNmM4YjM5OGQxNjMzMjY5ZTdk
ZGRlMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCkBAIC01NDgsNjMgKzU0OCw2
IEBAIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYKICAgICB9CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IEFkYXB0b3I+Ci1BcnJheUJ1ZmZlciogSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqIG9iamVjdCkKLXsKLSAg
ICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNU
eXBlZEFycmF5Vmlldyo+KG9iamVjdCk7Ci0gICAgCi0gICAgLy8gV2UgcGxheSB0aGlzIGdhbWUg
YmVjYXVzZSB3ZSB3YW50IHRoaXMgdG8gYmUgY2FsbGFibGUgZXZlbiBmcm9tIHBsYWNlcyB0aGF0
Ci0gICAgLy8gZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gRXhlY1N0YXRlKiBvciB0aGUgVk0sIGFuZCB3
ZSBvbmx5IGFsbG9jYXRlIHNvIGxpdHRsZQotICAgIC8vIG1lbW9yeSBoZXJlIHRoYXQgaXQncyBu
b3QgbmVjZXNzYXJ5IHRvIHRyaWdnZXIgYSBHQyAtIGp1c3QgYWNjb3VudGluZyB3aGF0Ci0gICAg
Ly8gd2UgaGF2ZSBkb25lIGlzIGdvb2QgZW5vdWdoLiBUaGUgc29ydCBvZiBiaXphcnJvIGV4Y2Vw
dGlvbiB0byB0aGUgImFsbG9jYXRpbmcKLSAgICAvLyBsaXR0bGUgbWVtb3J5IiBpcyB3aGVuIHdl
IHRyYW5zZmVyIGEgYmFja2luZyBidWZmZXIgaW50byB0aGUgQyBoZWFwOyB0aGlzCi0gICAgLy8g
d2lsbCB0ZW1wb3JhcmlseSBnZXQgY291bnRlZCB0b3dhcmRzIGhlYXAgZm9vdHByaW50IChpbmNv
cnJlY3RseSwgaW4gdGhlIGNhc2UKLSAgICAvLyBvZiBhZG9wdGluZyBhbiBvdmVyc2l6ZSB0eXBl
ZCBhcnJheSkgYnV0IHdlIGRvbid0IEdDIGhlcmUgYW55d2F5LiBUaGF0J3MKLSAgICAvLyBhbG1v
c3QgY2VydGFpbmx5IGZpbmUuIFRoZSB3b3JzdCBjYXNlIGlzIGlmIHlvdSBjcmVhdGVkIGEgdG9u
IG9mIGZhc3QgdHlwZWQKLSAgICAvLyBhcnJheXMsIGFuZCBkaWQgbm90aGluZyBidXQgY2F1c2Vk
IGFsbCBvZiB0aGVtIHRvIHNsb3cgZG93biBhbmQgd2FzdGUgbWVtb3J5LgotICAgIC8vIEluIHRo
YXQgY2FzZSwgeW91ciBtZW1vcnkgZm9vdHByaW50IHdpbGwgZG91YmxlIGJlZm9yZSB0aGUgR0Mg
cmVhbGl6ZXMgd2hhdCdzCi0gICAgLy8gdXAuIEJ1dCBpZiB5b3UgZG8gKmFueXRoaW5nKiB0byB0
cmlnZ2VyIGEgR0Mgd2F0ZXJtYXJrIGNoZWNrLCBpdCB3aWxsIGtub3cKLSAgICAvLyB0aGF0IHlv
dSAqaGFkKiBkb25lIHRob3NlIGFsbG9jYXRpb25zIGFuZCBpdCB3aWxsIEdDIGFwcHJvcHJpYXRl
bHkuCi0gICAgSGVhcCogaGVhcCA9IEhlYXA6OmhlYXAodGhpc09iamVjdCk7Ci0gICAgVk0mIHZt
ID0gKmhlYXAtPnZtKCk7Ci0gICAgRGVmZXJHQ0ZvckFXaGlsZSBkZWZlckdDKCpoZWFwKTsKLSAg
ICAKLSAgICBSRUxFQVNFX0FTU0VSVCghdGhpc09iamVjdC0+aGFzSW5kZXhpbmdIZWFkZXIodm0p
KTsKLSAgICB0aGlzT2JqZWN0LT5zZXRCdXR0ZXJmbHkodm0sIEJ1dHRlcmZseTo6Y3JlYXRlT3JH
cm93QXJyYXlSaWdodCgKLSAgICAgICAgdGhpc09iamVjdC0+YnV0dGVyZmx5KCksIHZtLCB0aGlz
T2JqZWN0LCB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLAotICAgICAgICB0aGlzT2JqZWN0LT5z
dHJ1Y3R1cmUodm0pLT5vdXRPZkxpbmVDYXBhY2l0eSgpLCBmYWxzZSwgMCwgMCkpOwotCi0gICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXI7Ci0gICAgCi0gICAgc3dpdGNoICh0aGlzT2JqZWN0
LT5tX21vZGUpIHsKLSAgICBjYXNlIEZhc3RUeXBlZEFycmF5OgotICAgICAgICBidWZmZXIgPSBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKHRoaXNPYmplY3QtPnZlY3RvcigpLCB0aGlzT2JqZWN0LT5ieXRl
TGVuZ3RoKCkpOwotICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgY2FzZSBPdmVyc2l6ZVR5
cGVkQXJyYXk6Ci0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBkb2luZyBzb21ldGhpbmcgbGlr
ZSAic3VidHJhY3RpbmciIGZyb20gZXh0cmEgbWVtb3J5Ci0gICAgICAgIC8vIGNvc3QsIHNpbmNl
IHJpZ2h0IG5vdyB0aGlzIGNhc2Ugd2lsbCBjYXVzZSB0aGUgR0MgdG8gdGhpbmsgdGhhdCB3ZSBy
ZWFsbG9jYXRlZAotICAgICAgICAvLyB0aGUgd2hvbGUgYnVmZmVyLgotICAgICAgICBidWZmZXIg
PSBBcnJheUJ1ZmZlcjo6Y3JlYXRlQWRvcHRlZCh0aGlzT2JqZWN0LT52ZWN0b3IoKSwgdGhpc09i
amVjdC0+Ynl0ZUxlbmd0aCgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLQotICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aGlzT2Jq
ZWN0LT5jZWxsTG9jaygpKTsKLSAgICAgICAgdGhpc09iamVjdC0+YnV0dGVyZmx5KCktPmluZGV4
aW5nSGVhZGVyKCktPnNldEFycmF5QnVmZmVyKGJ1ZmZlci5nZXQoKSk7Ci0gICAgICAgIHRoaXNP
YmplY3QtPm1fdmVjdG9yLnNldFdpdGhvdXRCYXJyaWVyKGJ1ZmZlci0+ZGF0YSgpKTsKLSAgICAg
ICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKLSAgICAgICAgdGhpc09iamVjdC0+bV9tb2RlID0g
V2FzdGVmdWxUeXBlZEFycmF5OwotICAgIH0KLSAgICBoZWFwLT5hZGRSZWZlcmVuY2UodGhpc09i
amVjdCwgYnVmZmVyLmdldCgpKTsKLSAgICAKLSAgICByZXR1cm4gYnVmZmVyLmdldCgpOwotfQot
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgogUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmdldFR5cGVkQXJyYXlJbXBsKEpTQXJyYXlC
dWZmZXJWaWV3KiBvYmplY3QpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344181</attachid>
            <date>2018-07-03 06:18:20 -0700</date>
            <delta_ts>2018-07-03 07:08:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187290-20180703221819.patch</filename>
            <type>text/plain</type>
            <size>15661</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZGRlYzAwYzc1MjEwODA2NDAzNmRhYzI1ZGYwMDg2NmE0ZDhkM2Q0Li5lNGMxYWM3MWRhNWM5ZTZk
ZWJjNzYxMTNkNGZkZTA5M2NiNmQ5MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxOC0wNy0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgZnVuY3Rp
b24gdG8gSlNBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NzI5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgaXMganVzdCBvdmVycmlkZGVu
IGJ5IHR5cGVkIGFycmF5cy4gU2luY2UgdGhleSBhcmUgbGltaXRlZCwKKyAgICAgICAgd2UgZG8g
bm90IG5lZWQgdG8gYWRkIHRoaXMgZnVuY3Rpb24gdG8gTWV0aG9kVGFibGU6IGp1c3QgZGlzcGF0
Y2hpbmcgaXQgaW4gSlNBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaXMgZmluZS4gQW5kIHNsb3dE
b3duQW5kV2FzdGVNZW1vcnkgb25seSByZXF1aXJlcyB0aGUgc2l6ZW9mKGVsZW1lbnQpLCB3aGlj
aCBjYW4gYmUKKyAgICAgICAgZWFzaWx5IGNhbGN1bGF0ZWQgZnJvbSBKU1R5cGUuCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyBzbG93RG93bkFuZFdhc3RlTWVtb3J5IGZyb20gTWV0aG9kVGFi
bGUsIGFuZCBtb3ZlcyBpdCB0byBKU0FycmF5QnVmZmVyVmlldy4KKworICAgICAgICAqIHJ1bnRp
bWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6
CisgICAgICAgIChKU0M6OmVsZW1lbnRTaXplKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
clZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eUJ1ZmZlclZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3SW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFyZWRCdWZm
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxs
OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
Q2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6
OkpTRGF0YVZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNEYXRhVmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDctMDIgIFN1a29sc2Fr
IFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVndWxhciBleHBy
ZXNzaW9ucyB3aXRoICIuPyIgZXhwcmVzc2lvbnMgYXQgdGhlIHN0YXJ0IGFuZCB0aGUgZW5kIG1h
dGNoIHRoZSBlbnRpcmUgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNz
SW5mby5oCmluZGV4IDQyYjM5ZTFjNjhkM2VkNjEwYTIwMjY4MWZmNWFjZDQ1ZDY2NjEzMDAuLmYw
ZmFmMzRiNTE3OTQwMjRkMWFjMDcyODU2Y2ViNDc3ZmU2ZjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC0xMDEsOSArMTAxLDYgQEAgc3RydWN0IE1l
dGhvZFRhYmxlIHsKICAgICB1c2luZyBEZWZpbmVPd25Qcm9wZXJ0eUZ1bmN0aW9uUHRyID0gYm9v
bCAoKikoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYsIGJvb2wpOwogICAgIERlZmluZU93blByb3BlcnR5RnVuY3Rpb25QdHIgV1RG
X01FVEhPRF9UQUJMRV9FTlRSWShkZWZpbmVPd25Qcm9wZXJ0eSk7CiAKLSAgICB1c2luZyBTbG93
RG93bkFuZFdhc3RlTWVtb3J5ID0gQXJyYXlCdWZmZXIqICgqKShKU0FycmF5QnVmZmVyVmlldyop
OwotICAgIFNsb3dEb3duQW5kV2FzdGVNZW1vcnkgV1RGX01FVEhPRF9UQUJMRV9FTlRSWShzbG93
RG93bkFuZFdhc3RlTWVtb3J5KTsKLQogICAgIHVzaW5nIEdldFR5cGVkQXJyYXlJbXBsID0gUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gKCopKEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAgICAgR2V0VHlw
ZWRBcnJheUltcGwgV1RGX01FVEhPRF9UQUJMRV9FTlRSWShnZXRUeXBlZEFycmF5SW1wbCk7CiAK
QEAgLTE3NCw3ICsxNzEsNiBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgICAgICAmQ2xhc3NO
YW1lOjp0b1N0cmluZ05hbWUsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Y3VzdG9tSGFzSW5zdGFu
Y2UsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVmaW5lT3duUHJvcGVydHksIFwKLSAgICAgICAg
JkNsYXNzTmFtZTo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSwgXAogICAgICAgICAmQ2xhc3NOYW1l
OjpnZXRUeXBlZEFycmF5SW1wbCwgXAogICAgICAgICAmQ2xhc3NOYW1lOjpwcmV2ZW50RXh0ZW5z
aW9ucywgXAogICAgICAgICAmQ2xhc3NOYW1lOjppc0V4dGVuc2libGUsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAppbmRleCA5
Y2RiYzE2N2ExZjBmZjVlNjhhNGViNDg0NDUyNTA5ZWE4ZDEyZDY5Li43OWM4OGMyZjhkMTlkM2Rm
OGU5MjM3YTc3ODJhN2M3ZTI5OTgyODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1
ZGUgIkpTVHlwZWRBcnJheXMuaCIKICNpbmNsdWRlICJUeXBlRXJyb3IuaCIKICNpbmNsdWRlICJU
eXBlZEFycmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9HaWdhY2FnZS5oPgpAQCAtMjE3
LDYgKzIxOCw5MiBAQCB2b2lkIEpTQXJyYXlCdWZmZXJWaWV3OjpuZXV0ZXIoKQogICAgIG1fdmVj
dG9yLmNsZWFyKCk7CiB9CiAKK3N0YXRpYyBjb25zdCBjb25zdGV4cHIgc2l6ZV90IEVsZW1lbnRT
aXplRGF0YVtdID0geworICAgIHNpemVvZih0eXBlbmFtZSBJbnQ4QWRhcHRvcjo6VHlwZSksIC8v
IEludDhBcnJheVR5cGUKKyAgICBzaXplb2YodHlwZW5hbWUgVWludDhBZGFwdG9yOjpUeXBlKSwg
Ly8gVWludDhBcnJheVR5cGUKKyAgICBzaXplb2YodHlwZW5hbWUgVWludDhDbGFtcGVkQWRhcHRv
cjo6VHlwZSksIC8vIFVpbnQ4Q2xhbXBlZEFycmF5VHlwZQorICAgIHNpemVvZih0eXBlbmFtZSBJ
bnQxNkFkYXB0b3I6OlR5cGUpLCAvLyBJbnQxNkFycmF5VHlwZQorICAgIHNpemVvZih0eXBlbmFt
ZSBVaW50MTZBZGFwdG9yOjpUeXBlKSwgLy8gVWludDE2QXJyYXlUeXBlCisgICAgc2l6ZW9mKHR5
cGVuYW1lIEludDMyQWRhcHRvcjo6VHlwZSksIC8vIEludDMyQXJyYXlUeXBlCisgICAgc2l6ZW9m
KHR5cGVuYW1lIFVpbnQzMkFkYXB0b3I6OlR5cGUpLCAvLyBVaW50MzJBcnJheVR5cGUKKyAgICBz
aXplb2YodHlwZW5hbWUgRmxvYXQzMkFkYXB0b3I6OlR5cGUpLCAvLyBGbG9hdDMyQXJyYXlUeXBl
CisgICAgc2l6ZW9mKHR5cGVuYW1lIEZsb2F0NjRBZGFwdG9yOjpUeXBlKSwgLy8gRmxvYXQ2NEFy
cmF5VHlwZQorfTsKKworc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTSW50OEFycmF5Pjo6
dmFsdWUsICIiKTsKK3N0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1VpbnQ4QXJyYXk+Ojp2
YWx1ZSwgIiIpOworc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTVWludDhDbGFtcGVkQXJy
YXk+Ojp2YWx1ZSwgIiIpOworc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTSW50MTZBcnJh
eT46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNVaW50MTZBcnJh
eT46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNJbnQzMkFycmF5
Pjo6dmFsdWUsICIiKTsKK3N0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1VpbnQzMkFycmF5
Pjo6dmFsdWUsICIiKTsKK3N0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU0Zsb2F0MzJBcnJh
eT46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNGbG9hdDY0QXJy
YXk+Ojp2YWx1ZSwgIiIpOworCitzdGF0aWMgaW5saW5lIHNpemVfdCBlbGVtZW50U2l6ZShKU1R5
cGUgdHlwZSkKK3sKKyAgICBBU1NFUlQodHlwZSA+PSBJbnQ4QXJyYXlUeXBlICYmIHR5cGUgPD0g
RmxvYXQ2NEFycmF5VHlwZSk7CisgICAgcmV0dXJuIEVsZW1lbnRTaXplRGF0YVt0eXBlIC0gSW50
OEFycmF5VHlwZV07Cit9CisKK0FycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6c2xvd0Rv
d25BbmRXYXN0ZU1lbW9yeSgpCit7CisgICAgQVNTRVJUKG1fbW9kZSA9PSBGYXN0VHlwZWRBcnJh
eSB8fCBtX21vZGUgPT0gT3ZlcnNpemVUeXBlZEFycmF5KTsKKworICAgIC8vIFdlIHBsYXkgdGhp
cyBnYW1lIGJlY2F1c2Ugd2Ugd2FudCB0aGlzIHRvIGJlIGNhbGxhYmxlIGV2ZW4gZnJvbSBwbGFj
ZXMgdGhhdAorICAgIC8vIGRvbid0IGhhdmUgYWNjZXNzIHRvIEV4ZWNTdGF0ZSogb3IgdGhlIFZN
LCBhbmQgd2Ugb25seSBhbGxvY2F0ZSBzbyBsaXR0bGUKKyAgICAvLyBtZW1vcnkgaGVyZSB0aGF0
IGl0J3Mgbm90IG5lY2Vzc2FyeSB0byB0cmlnZ2VyIGEgR0MgLSBqdXN0IGFjY291bnRpbmcgd2hh
dAorICAgIC8vIHdlIGhhdmUgZG9uZSBpcyBnb29kIGVub3VnaC4gVGhlIHNvcnQgb2YgYml6YXJy
ZSBleGNlcHRpb24gdG8gdGhlICJhbGxvY2F0aW5nCisgICAgLy8gbGl0dGxlIG1lbW9yeSIgaXMg
d2hlbiB3ZSB0cmFuc2ZlciBhIGJhY2tpbmcgYnVmZmVyIGludG8gdGhlIEMgaGVhcDsgdGhpcwor
ICAgIC8vIHdpbGwgdGVtcG9yYXJpbHkgZ2V0IGNvdW50ZWQgdG93YXJkcyBoZWFwIGZvb3Rwcmlu
dCAoaW5jb3JyZWN0bHksIGluIHRoZSBjYXNlCisgICAgLy8gb2YgYWRvcHRpbmcgYW4gb3ZlcnNp
emUgdHlwZWQgYXJyYXkpIGJ1dCB3ZSBkb24ndCBHQyBoZXJlIGFueXdheS4gVGhhdCdzCisgICAg
Ly8gYWxtb3N0IGNlcnRhaW5seSBmaW5lLiBUaGUgd29yc3QgY2FzZSBpcyBpZiB5b3UgY3JlYXRl
ZCBhIHRvbiBvZiBmYXN0IHR5cGVkCisgICAgLy8gYXJyYXlzLCBhbmQgZGlkIG5vdGhpbmcgYnV0
IGNhdXNlZCBhbGwgb2YgdGhlbSB0byBzbG93IGRvd24gYW5kIHdhc3RlIG1lbW9yeS4KKyAgICAv
LyBJbiB0aGF0IGNhc2UsIHlvdXIgbWVtb3J5IGZvb3RwcmludCB3aWxsIGRvdWJsZSBiZWZvcmUg
dGhlIEdDIHJlYWxpemVzIHdoYXQncworICAgIC8vIHVwLiBCdXQgaWYgeW91IGRvICphbnl0aGlu
ZyogdG8gdHJpZ2dlciBhIEdDIHdhdGVybWFyayBjaGVjaywgaXQgd2lsbCBrbm93CisgICAgLy8g
dGhhdCB5b3UgKmhhZCogZG9uZSB0aG9zZSBhbGxvY2F0aW9ucyBhbmQgaXQgd2lsbCBHQyBhcHBy
b3ByaWF0ZWx5LgorICAgIEhlYXAqIGhlYXAgPSBIZWFwOjpoZWFwKHRoaXMpOworICAgIFZNJiB2
bSA9ICpoZWFwLT52bSgpOworICAgIERlZmVyR0NGb3JBV2hpbGUgZGVmZXJHQygqaGVhcCk7CisK
KyAgICBSRUxFQVNFX0FTU0VSVCghaGFzSW5kZXhpbmdIZWFkZXIodm0pKTsKKyAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSh2bSk7CisgICAgc2V0QnV0dGVyZmx5KHZt
LCBCdXR0ZXJmbHk6OmNyZWF0ZU9yR3Jvd0FycmF5UmlnaHQoCisgICAgICAgIGJ1dHRlcmZseSgp
LCB2bSwgdGhpcywgc3RydWN0dXJlLAorICAgICAgICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFj
aXR5KCksIGZhbHNlLCAwLCAwKSk7CisKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlcjsK
KyAgICB1bnNpZ25lZCBieXRlTGVuZ3RoID0gbV9sZW5ndGggKiBlbGVtZW50U2l6ZSh0eXBlKCkp
OworCisgICAgc3dpdGNoIChtX21vZGUpIHsKKyAgICBjYXNlIEZhc3RUeXBlZEFycmF5OgorICAg
ICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZlY3RvcigpLCBieXRlTGVuZ3RoKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE92ZXJzaXplVHlwZWRBcnJheToKKyAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIGRvaW5nIHNvbWV0aGluZyBsaWtlICJzdWJ0cmFjdGluZyIgZnJv
bSBleHRyYSBtZW1vcnkKKyAgICAgICAgLy8gY29zdCwgc2luY2UgcmlnaHQgbm93IHRoaXMgY2Fz
ZSB3aWxsIGNhdXNlIHRoZSBHQyB0byB0aGluayB0aGF0IHdlIHJlYWxsb2NhdGVkCisgICAgICAg
IC8vIHRoZSB3aG9sZSBidWZmZXIuCisgICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVh
dGVBZG9wdGVkKHZlY3RvcigpLCBieXRlTGVuZ3RoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBk
ZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2Vs
bExvY2soKSk7CisgICAgICAgIGJ1dHRlcmZseSgpLT5pbmRleGluZ0hlYWRlcigpLT5zZXRBcnJh
eUJ1ZmZlcihidWZmZXIuZ2V0KCkpOworICAgICAgICBtX3ZlY3Rvci5zZXRXaXRob3V0QmFycmll
cihidWZmZXItPmRhdGEoKSk7CisgICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CisgICAg
ICAgIG1fbW9kZSA9IFdhc3RlZnVsVHlwZWRBcnJheTsKKyAgICB9CisgICAgaGVhcC0+YWRkUmVm
ZXJlbmNlKHRoaXMsIGJ1ZmZlci5nZXQoKSk7CisKKyAgICByZXR1cm4gYnVmZmVyLmdldCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaAppbmRleCAyNDQyNmQw
ZjIzYTQ3OTUzYmE2YjFhMzIyMmVmYTYzNzg4ZTljNGVmLi41NDU2MzkxZTE5MTgwYWIxY2E4MWIy
ZjI0ODcxY2NkMTMzMjc0ZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgKQEAgLTE4MSw2ICsxODEsNyBAQCBjbGFzcyBKU0FycmF5
QnVmZmVyVmlldyA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBzdGF0aWMgUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4gdG9XcmFwcGVkKFZNJiwgSlNWYWx1ZSk7CiAKIHByaXZhdGU6Cisg
ICAgQXJyYXlCdWZmZXIqIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkoKTsKICAgICBzdGF0aWMgdm9p
ZCBmaW5hbGl6ZShKU0NlbGwqKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaAppbmRleCBk
NWM3MjdmNzRhZjdjZWQzYzNhZmI1MmM3ZWFkN2FlOTlmNmE4NmVlLi43NjIyMzQ5MGIwY2U3MmE2
N2M1YTA3ZWQ4ZDc4MmI2YmNmOWI5MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaApAQCAtNTAsOSArNTAs
MTIgQEAgaW5saW5lIEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFy
ZWRCdWZmZXIoKQogICAgICAgICByZXR1cm4gZXhpc3RpbmdCdWZmZXJJbkJ1dHRlcmZseSgpOwog
ICAgIGNhc2UgRGF0YVZpZXdNb2RlOgogICAgICAgICByZXR1cm4ganNDYXN0PEpTRGF0YVZpZXcq
Pih0aGlzKS0+cG9zc2libHlTaGFyZWRCdWZmZXIoKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBy
ZXR1cm4gbWV0aG9kVGFibGUoKS0+c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSh0aGlzKTsKKyAgICBj
YXNlIEZhc3RUeXBlZEFycmF5OgorICAgIGNhc2UgT3ZlcnNpemVUeXBlZEFycmF5OgorICAgICAg
ICByZXR1cm4gc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSgpOwogICAgIH0KKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogaW5saW5lIEFycmF5QnVmZmVy
KiBKU0FycmF5QnVmZmVyVmlldzo6ZXhpc3RpbmdCdWZmZXJJbkJ1dHRlcmZseSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCAxZDBiNWNjN2NiODJjODRmMzE3
OTkyMzU1ZTg1MzQ4ZTA1MmQ5NGFjLi45NDUzMmZmOTZiMjEyNmY4MzI5ZGI4N2JiNDZiNmJkMTg1
MTZkYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTI1
NiwxMiArMjU2LDYgQEAgYm9vbCBKU0NlbGw6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXIKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLUFycmF5QnVmZmVyKiBKU0NlbGw6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJh
eUJ1ZmZlclZpZXcqKQotewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7Ci19Ci0KIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IEpTQ2VsbDo6Z2V0
VHlwZWRBcnJheUltcGwoSlNBcnJheUJ1ZmZlclZpZXcqKQogewogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4
IGFlNmVmNmNmZjk5ZWI1MmE2MzcwMGM5ZmE5MzkwZjkyNzAxZDkxODQuLmU1ZTg4OGRiNzI5NGQ0
NjdhNWEzYzgwYzVkZmM5NzMyMDY0NjliMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCkBAIC0yNjUsNyArMjY1LDYgQEAgY2xhc3MgSlNDZWxsIDogcHVibGljIEhlYXBD
ZWxsIHsKICAgICBzdGF0aWMgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCosIEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91
bGRUaHJvdyk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBz
dGF0aWMgQXJyYXlCdWZmZXIqIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZp
ZXcqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gZ2V0VHlwZWRBcnJheUltcGwoSlNBcnJheUJ1ZmZlclZpZXcqKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXcuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5jcHAKaW5kZXggNmJlNTZl
OTI0ZTk2NzMxODYyN2ZiMTI0M2VjOGQyMTMzNjQ5NDFiNi4uNjIyNTg3OGIxNDg2OGMxMmRkYTk4
YWI3YjBjNzE1MDkxZTIwODk3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNEYXRhVmlldy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRhVmlldy5jcHAKQEAgLTE4MCwxMiArMTgwLDYgQEAgdm9pZCBKU0RhdGFWaWV3OjpnZXRP
d25Ob25JbmRleFByb3BlcnR5TmFtZXMoCiAgICAgQmFzZTo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0
eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIGFycmF5LCBtb2RlKTsKIH0KIAotQXJyYXlCdWZmZXIq
IEpTRGF0YVZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqKQot
ewotICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOwotICAgIHJldHVybiAwOwotfQotCiBS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBKU0RhdGFWaWV3OjpnZXRUeXBlZEFycmF5SW1wbChKU0Fy
cmF5QnVmZmVyVmlldyogb2JqZWN0KQogewogICAgIEpTRGF0YVZpZXcqIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNEYXRhVmlldyo+KG9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGFWaWV3LmgKaW5kZXggMmVhYjI3MmI3OGEzOGViNzI1ZWM0NTRkNWM1ZGRmYTg4ZTMw
OTU1Ny4uOTIwZWIyODIwNWIyNWJiNmEwNDdlZTVhNTc2NGNhMjU3MTMzNTg2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXcuaApAQCAtNzAsNyArNzAsNiBAQCBj
bGFzcyBKU0RhdGFWaWV3IGZpbmFsIDogcHVibGljIEpTQXJyYXlCdWZmZXJWaWV3IHsKIAogICAg
IHN0YXRpYyB2b2lkIGdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKIAotICAgIHN0YXRp
YyBBcnJheUJ1ZmZlciogc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyop
OwogICAgIHN0YXRpYyBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBnZXRUeXBlZEFycmF5SW1wbChK
U0FycmF5QnVmZmVyVmlldyopOwogICAgIAogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggZjM1
NTUzYzU1NTQ1YzE0ODk1YWM4MTgzZDY4OTgzMWU0ZGM5YmZjZS4uNTQ0YjY2OTZiNjM2NGRmM2Rj
NTVlYjIxYTI1NTE5MTBmNjM2MzhhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCkBAIC0yOTAsNyArMjkwLDYg
QEAgY2xhc3MgSlNHZW5lcmljVHlwZWRBcnJheVZpZXcgZmluYWwgOiBwdWJsaWMgSlNBcnJheUJ1
ZmZlclZpZXcgewogCiAgICAgLy8gQWxsb2NhdGVzIHRoZSBmdWxsLW9uIG5hdGl2ZSBidWZmZXIg
YW5kIG1vdmVzIGRhdGEgaW50byB0aGUgQyBoZWFwIGlmCiAgICAgLy8gbmVjZXNzYXJ5LiBOb3Rl
IHRoYXQgdGhpcyBuZXZlciBhbGxvY2F0ZXMgaW4gdGhlIEdDIGhlYXAuCi0gICAgc3RhdGljIEFy
cmF5QnVmZmVyKiBzbG93RG93bkFuZFdhc3RlTWVtb3J5KEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAg
ICAgc3RhdGljIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGdldFR5cGVkQXJyYXlJbXBsKEpTQXJy
YXlCdWZmZXJWaWV3Kik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCmlu
ZGV4IGQxZTZiYzU2ODY2MjU1NWRiZDYwYWE3M2ZmOTgwOTY0MzQzNDJkNDQuLjU1ZmRjMDU2YzNk
MDUyNmM4YjM5OGQxNjMzMjY5ZTdkZGRlMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5l
cy5oCkBAIC01NDgsNjMgKzU0OCw2IEBAIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRh
cHRvcj46OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYKICAgICB9CiB9
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+Ci1BcnJheUJ1ZmZlciogSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXc8QWRhcHRvcj46OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZl
clZpZXcqIG9iamVjdCkKLXsKLSAgICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyo+KG9iamVjdCk7Ci0gICAgCi0gICAg
Ly8gV2UgcGxheSB0aGlzIGdhbWUgYmVjYXVzZSB3ZSB3YW50IHRoaXMgdG8gYmUgY2FsbGFibGUg
ZXZlbiBmcm9tIHBsYWNlcyB0aGF0Ci0gICAgLy8gZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gRXhlY1N0
YXRlKiBvciB0aGUgVk0sIGFuZCB3ZSBvbmx5IGFsbG9jYXRlIHNvIGxpdHRsZQotICAgIC8vIG1l
bW9yeSBoZXJlIHRoYXQgaXQncyBub3QgbmVjZXNzYXJ5IHRvIHRyaWdnZXIgYSBHQyAtIGp1c3Qg
YWNjb3VudGluZyB3aGF0Ci0gICAgLy8gd2UgaGF2ZSBkb25lIGlzIGdvb2QgZW5vdWdoLiBUaGUg
c29ydCBvZiBiaXphcnJvIGV4Y2VwdGlvbiB0byB0aGUgImFsbG9jYXRpbmcKLSAgICAvLyBsaXR0
bGUgbWVtb3J5IiBpcyB3aGVuIHdlIHRyYW5zZmVyIGEgYmFja2luZyBidWZmZXIgaW50byB0aGUg
QyBoZWFwOyB0aGlzCi0gICAgLy8gd2lsbCB0ZW1wb3JhcmlseSBnZXQgY291bnRlZCB0b3dhcmRz
IGhlYXAgZm9vdHByaW50IChpbmNvcnJlY3RseSwgaW4gdGhlIGNhc2UKLSAgICAvLyBvZiBhZG9w
dGluZyBhbiBvdmVyc2l6ZSB0eXBlZCBhcnJheSkgYnV0IHdlIGRvbid0IEdDIGhlcmUgYW55d2F5
LiBUaGF0J3MKLSAgICAvLyBhbG1vc3QgY2VydGFpbmx5IGZpbmUuIFRoZSB3b3JzdCBjYXNlIGlz
IGlmIHlvdSBjcmVhdGVkIGEgdG9uIG9mIGZhc3QgdHlwZWQKLSAgICAvLyBhcnJheXMsIGFuZCBk
aWQgbm90aGluZyBidXQgY2F1c2VkIGFsbCBvZiB0aGVtIHRvIHNsb3cgZG93biBhbmQgd2FzdGUg
bWVtb3J5LgotICAgIC8vIEluIHRoYXQgY2FzZSwgeW91ciBtZW1vcnkgZm9vdHByaW50IHdpbGwg
ZG91YmxlIGJlZm9yZSB0aGUgR0MgcmVhbGl6ZXMgd2hhdCdzCi0gICAgLy8gdXAuIEJ1dCBpZiB5
b3UgZG8gKmFueXRoaW5nKiB0byB0cmlnZ2VyIGEgR0Mgd2F0ZXJtYXJrIGNoZWNrLCBpdCB3aWxs
IGtub3cKLSAgICAvLyB0aGF0IHlvdSAqaGFkKiBkb25lIHRob3NlIGFsbG9jYXRpb25zIGFuZCBp
dCB3aWxsIEdDIGFwcHJvcHJpYXRlbHkuCi0gICAgSGVhcCogaGVhcCA9IEhlYXA6OmhlYXAodGhp
c09iamVjdCk7Ci0gICAgVk0mIHZtID0gKmhlYXAtPnZtKCk7Ci0gICAgRGVmZXJHQ0ZvckFXaGls
ZSBkZWZlckdDKCpoZWFwKTsKLSAgICAKLSAgICBSRUxFQVNFX0FTU0VSVCghdGhpc09iamVjdC0+
aGFzSW5kZXhpbmdIZWFkZXIodm0pKTsKLSAgICB0aGlzT2JqZWN0LT5zZXRCdXR0ZXJmbHkodm0s
IEJ1dHRlcmZseTo6Y3JlYXRlT3JHcm93QXJyYXlSaWdodCgKLSAgICAgICAgdGhpc09iamVjdC0+
YnV0dGVyZmx5KCksIHZtLCB0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLAot
ICAgICAgICB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5vdXRPZkxpbmVDYXBhY2l0eSgpLCBm
YWxzZSwgMCwgMCkpOwotCi0gICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXI7Ci0gICAgCi0g
ICAgc3dpdGNoICh0aGlzT2JqZWN0LT5tX21vZGUpIHsKLSAgICBjYXNlIEZhc3RUeXBlZEFycmF5
OgotICAgICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHRoaXNPYmplY3QtPnZlY3Rv
cigpLCB0aGlzT2JqZWN0LT5ieXRlTGVuZ3RoKCkpOwotICAgICAgICBicmVhazsKLSAgICAgICAg
Ci0gICAgY2FzZSBPdmVyc2l6ZVR5cGVkQXJyYXk6Ci0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRl
ciBkb2luZyBzb21ldGhpbmcgbGlrZSAic3VidHJhY3RpbmciIGZyb20gZXh0cmEgbWVtb3J5Ci0g
ICAgICAgIC8vIGNvc3QsIHNpbmNlIHJpZ2h0IG5vdyB0aGlzIGNhc2Ugd2lsbCBjYXVzZSB0aGUg
R0MgdG8gdGhpbmsgdGhhdCB3ZSByZWFsbG9jYXRlZAotICAgICAgICAvLyB0aGUgd2hvbGUgYnVm
ZmVyLgotICAgICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlQWRvcHRlZCh0aGlzT2Jq
ZWN0LT52ZWN0b3IoKSwgdGhpc09iamVjdC0+Ynl0ZUxlbmd0aCgpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsKLSAgICAgICAgdGhpc09iamVj
dC0+YnV0dGVyZmx5KCktPmluZGV4aW5nSGVhZGVyKCktPnNldEFycmF5QnVmZmVyKGJ1ZmZlci5n
ZXQoKSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPm1fdmVjdG9yLnNldFdpdGhvdXRCYXJyaWVyKGJ1
ZmZlci0+ZGF0YSgpKTsKLSAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKLSAgICAgICAg
dGhpc09iamVjdC0+bV9tb2RlID0gV2FzdGVmdWxUeXBlZEFycmF5OwotICAgIH0KLSAgICBoZWFw
LT5hZGRSZWZlcmVuY2UodGhpc09iamVjdCwgYnVmZmVyLmdldCgpKTsKLSAgICAKLSAgICByZXR1
cm4gYnVmZmVyLmdldCgpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgogUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4gSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmdldFR5
cGVkQXJyYXlJbXBsKEpTQXJyYXlCdWZmZXJWaWV3KiBvYmplY3QpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344184</attachid>
            <date>2018-07-03 07:08:08 -0700</date>
            <delta_ts>2018-07-03 10:50:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187290-20180703230807.patch</filename>
            <type>text/plain</type>
            <size>15679</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZGRlYzAwYzc1MjEwODA2NDAzNmRhYzI1ZGYwMDg2NmE0ZDhkM2Q0Li5lNGMxYWM3MWRhNWM5ZTZk
ZWJjNzYxMTNkNGZkZTA5M2NiNmQ5MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxOC0wNy0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgZnVuY3Rp
b24gdG8gSlNBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NzI5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgaXMganVzdCBvdmVycmlkZGVu
IGJ5IHR5cGVkIGFycmF5cy4gU2luY2UgdGhleSBhcmUgbGltaXRlZCwKKyAgICAgICAgd2UgZG8g
bm90IG5lZWQgdG8gYWRkIHRoaXMgZnVuY3Rpb24gdG8gTWV0aG9kVGFibGU6IGp1c3QgZGlzcGF0
Y2hpbmcgaXQgaW4gSlNBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaXMgZmluZS4gQW5kIHNsb3dE
b3duQW5kV2FzdGVNZW1vcnkgb25seSByZXF1aXJlcyB0aGUgc2l6ZW9mKGVsZW1lbnQpLCB3aGlj
aCBjYW4gYmUKKyAgICAgICAgZWFzaWx5IGNhbGN1bGF0ZWQgZnJvbSBKU1R5cGUuCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyBzbG93RG93bkFuZFdhc3RlTWVtb3J5IGZyb20gTWV0aG9kVGFi
bGUsIGFuZCBtb3ZlcyBpdCB0byBKU0FycmF5QnVmZmVyVmlldy4KKworICAgICAgICAqIHJ1bnRp
bWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6
CisgICAgICAgIChKU0M6OmVsZW1lbnRTaXplKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
clZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eUJ1ZmZlclZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3SW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFyZWRCdWZm
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxs
OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
Q2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6
OkpTRGF0YVZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNEYXRhVmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSk6IERlbGV0ZWQuCisKIDIwMTgtMDctMDIgIFN1a29sc2Fr
IFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVndWxhciBleHBy
ZXNzaW9ucyB3aXRoICIuPyIgZXhwcmVzc2lvbnMgYXQgdGhlIHN0YXJ0IGFuZCB0aGUgZW5kIG1h
dGNoIHRoZSBlbnRpcmUgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNz
SW5mby5oCmluZGV4IDQyYjM5ZTFjNjhkM2VkNjEwYTIwMjY4MWZmNWFjZDQ1ZDY2NjEzMDAuLmYw
ZmFmMzRiNTE3OTQwMjRkMWFjMDcyODU2Y2ViNDc3ZmU2ZjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC0xMDEsOSArMTAxLDYgQEAgc3RydWN0IE1l
dGhvZFRhYmxlIHsKICAgICB1c2luZyBEZWZpbmVPd25Qcm9wZXJ0eUZ1bmN0aW9uUHRyID0gYm9v
bCAoKikoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYsIGJvb2wpOwogICAgIERlZmluZU93blByb3BlcnR5RnVuY3Rpb25QdHIgV1RG
X01FVEhPRF9UQUJMRV9FTlRSWShkZWZpbmVPd25Qcm9wZXJ0eSk7CiAKLSAgICB1c2luZyBTbG93
RG93bkFuZFdhc3RlTWVtb3J5ID0gQXJyYXlCdWZmZXIqICgqKShKU0FycmF5QnVmZmVyVmlldyop
OwotICAgIFNsb3dEb3duQW5kV2FzdGVNZW1vcnkgV1RGX01FVEhPRF9UQUJMRV9FTlRSWShzbG93
RG93bkFuZFdhc3RlTWVtb3J5KTsKLQogICAgIHVzaW5nIEdldFR5cGVkQXJyYXlJbXBsID0gUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gKCopKEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAgICAgR2V0VHlw
ZWRBcnJheUltcGwgV1RGX01FVEhPRF9UQUJMRV9FTlRSWShnZXRUeXBlZEFycmF5SW1wbCk7CiAK
QEAgLTE3NCw3ICsxNzEsNiBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgICAgICAmQ2xhc3NO
YW1lOjp0b1N0cmluZ05hbWUsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Y3VzdG9tSGFzSW5zdGFu
Y2UsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVmaW5lT3duUHJvcGVydHksIFwKLSAgICAgICAg
JkNsYXNzTmFtZTo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSwgXAogICAgICAgICAmQ2xhc3NOYW1l
OjpnZXRUeXBlZEFycmF5SW1wbCwgXAogICAgICAgICAmQ2xhc3NOYW1lOjpwcmV2ZW50RXh0ZW5z
aW9ucywgXAogICAgICAgICAmQ2xhc3NOYW1lOjppc0V4dGVuc2libGUsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAppbmRleCA5
Y2RiYzE2N2ExZjBmZjVlNjhhNGViNDg0NDUyNTA5ZWE4ZDEyZDY5Li43OWM4OGMyZjhkMTlkM2Rm
OGU5MjM3YTc3ODJhN2M3ZTI5OTgyODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1
ZGUgIkpTVHlwZWRBcnJheXMuaCIKICNpbmNsdWRlICJUeXBlRXJyb3IuaCIKICNpbmNsdWRlICJU
eXBlZEFycmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9HaWdhY2FnZS5oPgpAQCAtMjE3
LDYgKzIxOCw5MiBAQCB2b2lkIEpTQXJyYXlCdWZmZXJWaWV3OjpuZXV0ZXIoKQogICAgIG1fdmVj
dG9yLmNsZWFyKCk7CiB9CiAKK3N0YXRpYyBjb25zdCBjb25zdGV4cHIgc2l6ZV90IEVsZW1lbnRT
aXplRGF0YVtdID0geworICAgIHNpemVvZih0eXBlbmFtZSBJbnQ4QWRhcHRvcjo6VHlwZSksIC8v
IEludDhBcnJheVR5cGUKKyAgICBzaXplb2YodHlwZW5hbWUgVWludDhBZGFwdG9yOjpUeXBlKSwg
Ly8gVWludDhBcnJheVR5cGUKKyAgICBzaXplb2YodHlwZW5hbWUgVWludDhDbGFtcGVkQWRhcHRv
cjo6VHlwZSksIC8vIFVpbnQ4Q2xhbXBlZEFycmF5VHlwZQorICAgIHNpemVvZih0eXBlbmFtZSBJ
bnQxNkFkYXB0b3I6OlR5cGUpLCAvLyBJbnQxNkFycmF5VHlwZQorICAgIHNpemVvZih0eXBlbmFt
ZSBVaW50MTZBZGFwdG9yOjpUeXBlKSwgLy8gVWludDE2QXJyYXlUeXBlCisgICAgc2l6ZW9mKHR5
cGVuYW1lIEludDMyQWRhcHRvcjo6VHlwZSksIC8vIEludDMyQXJyYXlUeXBlCisgICAgc2l6ZW9m
KHR5cGVuYW1lIFVpbnQzMkFkYXB0b3I6OlR5cGUpLCAvLyBVaW50MzJBcnJheVR5cGUKKyAgICBz
aXplb2YodHlwZW5hbWUgRmxvYXQzMkFkYXB0b3I6OlR5cGUpLCAvLyBGbG9hdDMyQXJyYXlUeXBl
CisgICAgc2l6ZW9mKHR5cGVuYW1lIEZsb2F0NjRBZGFwdG9yOjpUeXBlKSwgLy8gRmxvYXQ2NEFy
cmF5VHlwZQorfTsKKworc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTSW50OEFycmF5Pjo6
dmFsdWUsICIiKTsKK3N0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1VpbnQ4QXJyYXk+Ojp2
YWx1ZSwgIiIpOworc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTVWludDhDbGFtcGVkQXJy
YXk+Ojp2YWx1ZSwgIiIpOworc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTSW50MTZBcnJh
eT46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNVaW50MTZBcnJh
eT46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNJbnQzMkFycmF5
Pjo6dmFsdWUsICIiKTsKK3N0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1VpbnQzMkFycmF5
Pjo6dmFsdWUsICIiKTsKK3N0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU0Zsb2F0MzJBcnJh
eT46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNGbG9hdDY0QXJy
YXk+Ojp2YWx1ZSwgIiIpOworCitzdGF0aWMgaW5saW5lIHNpemVfdCBlbGVtZW50U2l6ZShKU1R5
cGUgdHlwZSkKK3sKKyAgICBBU1NFUlQodHlwZSA+PSBJbnQ4QXJyYXlUeXBlICYmIHR5cGUgPD0g
RmxvYXQ2NEFycmF5VHlwZSk7CisgICAgcmV0dXJuIEVsZW1lbnRTaXplRGF0YVt0eXBlIC0gSW50
OEFycmF5VHlwZV07Cit9CisKK0FycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6c2xvd0Rv
d25BbmRXYXN0ZU1lbW9yeSgpCit7CisgICAgQVNTRVJUKG1fbW9kZSA9PSBGYXN0VHlwZWRBcnJh
eSB8fCBtX21vZGUgPT0gT3ZlcnNpemVUeXBlZEFycmF5KTsKKworICAgIC8vIFdlIHBsYXkgdGhp
cyBnYW1lIGJlY2F1c2Ugd2Ugd2FudCB0aGlzIHRvIGJlIGNhbGxhYmxlIGV2ZW4gZnJvbSBwbGFj
ZXMgdGhhdAorICAgIC8vIGRvbid0IGhhdmUgYWNjZXNzIHRvIEV4ZWNTdGF0ZSogb3IgdGhlIFZN
LCBhbmQgd2Ugb25seSBhbGxvY2F0ZSBzbyBsaXR0bGUKKyAgICAvLyBtZW1vcnkgaGVyZSB0aGF0
IGl0J3Mgbm90IG5lY2Vzc2FyeSB0byB0cmlnZ2VyIGEgR0MgLSBqdXN0IGFjY291bnRpbmcgd2hh
dAorICAgIC8vIHdlIGhhdmUgZG9uZSBpcyBnb29kIGVub3VnaC4gVGhlIHNvcnQgb2YgYml6YXJy
ZSBleGNlcHRpb24gdG8gdGhlICJhbGxvY2F0aW5nCisgICAgLy8gbGl0dGxlIG1lbW9yeSIgaXMg
d2hlbiB3ZSB0cmFuc2ZlciBhIGJhY2tpbmcgYnVmZmVyIGludG8gdGhlIEMgaGVhcDsgdGhpcwor
ICAgIC8vIHdpbGwgdGVtcG9yYXJpbHkgZ2V0IGNvdW50ZWQgdG93YXJkcyBoZWFwIGZvb3Rwcmlu
dCAoaW5jb3JyZWN0bHksIGluIHRoZSBjYXNlCisgICAgLy8gb2YgYWRvcHRpbmcgYW4gb3ZlcnNp
emUgdHlwZWQgYXJyYXkpIGJ1dCB3ZSBkb24ndCBHQyBoZXJlIGFueXdheS4gVGhhdCdzCisgICAg
Ly8gYWxtb3N0IGNlcnRhaW5seSBmaW5lLiBUaGUgd29yc3QgY2FzZSBpcyBpZiB5b3UgY3JlYXRl
ZCBhIHRvbiBvZiBmYXN0IHR5cGVkCisgICAgLy8gYXJyYXlzLCBhbmQgZGlkIG5vdGhpbmcgYnV0
IGNhdXNlZCBhbGwgb2YgdGhlbSB0byBzbG93IGRvd24gYW5kIHdhc3RlIG1lbW9yeS4KKyAgICAv
LyBJbiB0aGF0IGNhc2UsIHlvdXIgbWVtb3J5IGZvb3RwcmludCB3aWxsIGRvdWJsZSBiZWZvcmUg
dGhlIEdDIHJlYWxpemVzIHdoYXQncworICAgIC8vIHVwLiBCdXQgaWYgeW91IGRvICphbnl0aGlu
ZyogdG8gdHJpZ2dlciBhIEdDIHdhdGVybWFyayBjaGVjaywgaXQgd2lsbCBrbm93CisgICAgLy8g
dGhhdCB5b3UgKmhhZCogZG9uZSB0aG9zZSBhbGxvY2F0aW9ucyBhbmQgaXQgd2lsbCBHQyBhcHBy
b3ByaWF0ZWx5LgorICAgIEhlYXAqIGhlYXAgPSBIZWFwOjpoZWFwKHRoaXMpOworICAgIFZNJiB2
bSA9ICpoZWFwLT52bSgpOworICAgIERlZmVyR0NGb3JBV2hpbGUgZGVmZXJHQygqaGVhcCk7CisK
KyAgICBSRUxFQVNFX0FTU0VSVCghaGFzSW5kZXhpbmdIZWFkZXIodm0pKTsKKyAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSh2bSk7CisgICAgc2V0QnV0dGVyZmx5KHZt
LCBCdXR0ZXJmbHk6OmNyZWF0ZU9yR3Jvd0FycmF5UmlnaHQoCisgICAgICAgIGJ1dHRlcmZseSgp
LCB2bSwgdGhpcywgc3RydWN0dXJlLAorICAgICAgICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFj
aXR5KCksIGZhbHNlLCAwLCAwKSk7CisKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlcjsK
KyAgICB1bnNpZ25lZCBieXRlTGVuZ3RoID0gbV9sZW5ndGggKiBlbGVtZW50U2l6ZSh0eXBlKCkp
OworCisgICAgc3dpdGNoIChtX21vZGUpIHsKKyAgICBjYXNlIEZhc3RUeXBlZEFycmF5OgorICAg
ICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZlY3RvcigpLCBieXRlTGVuZ3RoKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE92ZXJzaXplVHlwZWRBcnJheToKKyAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIGRvaW5nIHNvbWV0aGluZyBsaWtlICJzdWJ0cmFjdGluZyIgZnJv
bSBleHRyYSBtZW1vcnkKKyAgICAgICAgLy8gY29zdCwgc2luY2UgcmlnaHQgbm93IHRoaXMgY2Fz
ZSB3aWxsIGNhdXNlIHRoZSBHQyB0byB0aGluayB0aGF0IHdlIHJlYWxsb2NhdGVkCisgICAgICAg
IC8vIHRoZSB3aG9sZSBidWZmZXIuCisgICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVh
dGVBZG9wdGVkKHZlY3RvcigpLCBieXRlTGVuZ3RoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBk
ZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2Vs
bExvY2soKSk7CisgICAgICAgIGJ1dHRlcmZseSgpLT5pbmRleGluZ0hlYWRlcigpLT5zZXRBcnJh
eUJ1ZmZlcihidWZmZXIuZ2V0KCkpOworICAgICAgICBtX3ZlY3Rvci5zZXRXaXRob3V0QmFycmll
cihidWZmZXItPmRhdGEoKSk7CisgICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CisgICAg
ICAgIG1fbW9kZSA9IFdhc3RlZnVsVHlwZWRBcnJheTsKKyAgICB9CisgICAgaGVhcC0+YWRkUmVm
ZXJlbmNlKHRoaXMsIGJ1ZmZlci5nZXQoKSk7CisKKyAgICByZXR1cm4gYnVmZmVyLmdldCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaAppbmRleCAyNDQyNmQw
ZjIzYTQ3OTUzYmE2YjFhMzIyMmVmYTYzNzg4ZTljNGVmLi4xYzBkOTBhY2VjYjUyNTAyOGY4MTUw
NDhmZTljZDBhZWFkOWZmYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgKQEAgLTE4MSw2ICsxODEsNyBAQCBjbGFzcyBKU0FycmF5
QnVmZmVyVmlldyA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBzdGF0aWMgUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4gdG9XcmFwcGVkKFZNJiwgSlNWYWx1ZSk7CiAKIHByaXZhdGU6Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXIqIHNsb3dEb3duQW5kV2FzdGVNZW1vcnko
KTsKICAgICBzdGF0aWMgdm9pZCBmaW5hbGl6ZShKU0NlbGwqKTsKIAogcHJvdGVjdGVkOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJ
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmll
d0lubGluZXMuaAppbmRleCBkNWM3MjdmNzRhZjdjZWQzYzNhZmI1MmM3ZWFkN2FlOTlmNmE4NmVl
Li43NjIyMzQ5MGIwY2U3MmE2N2M1YTA3ZWQ4ZDc4MmI2YmNmOWI5MWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGlu
ZXMuaApAQCAtNTAsOSArNTAsMTIgQEAgaW5saW5lIEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVy
Vmlldzo6cG9zc2libHlTaGFyZWRCdWZmZXIoKQogICAgICAgICByZXR1cm4gZXhpc3RpbmdCdWZm
ZXJJbkJ1dHRlcmZseSgpOwogICAgIGNhc2UgRGF0YVZpZXdNb2RlOgogICAgICAgICByZXR1cm4g
anNDYXN0PEpTRGF0YVZpZXcqPih0aGlzKS0+cG9zc2libHlTaGFyZWRCdWZmZXIoKTsKLSAgICBk
ZWZhdWx0OgotICAgICAgICByZXR1cm4gbWV0aG9kVGFibGUoKS0+c2xvd0Rvd25BbmRXYXN0ZU1l
bW9yeSh0aGlzKTsKKyAgICBjYXNlIEZhc3RUeXBlZEFycmF5OgorICAgIGNhc2UgT3ZlcnNpemVU
eXBlZEFycmF5OgorICAgICAgICByZXR1cm4gc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSgpOwogICAg
IH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAog
aW5saW5lIEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6ZXhpc3RpbmdCdWZmZXJJbkJ1
dHRlcmZseSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCAx
ZDBiNWNjN2NiODJjODRmMzE3OTkyMzU1ZTg1MzQ4ZTA1MmQ5NGFjLi45NDUzMmZmOTZiMjEyNmY4
MzI5ZGI4N2JiNDZiNmJkMTg1MTZkYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAKQEAgLTI1NiwxMiArMjU2LDYgQEAgYm9vbCBKU0NlbGw6OmRlZmluZU93blBy
b3BlcnR5KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXIK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUFycmF5QnVmZmVyKiBKU0NlbGw6OnNsb3dEb3duQW5k
V2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqKQotewotICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIFJlZlB0cjxBcnJheUJ1ZmZl
clZpZXc+IEpTQ2VsbDo6Z2V0VHlwZWRBcnJheUltcGwoSlNBcnJheUJ1ZmZlclZpZXcqKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5oCmluZGV4IGFlNmVmNmNmZjk5ZWI1MmE2MzcwMGM5ZmE5MzkwZjkyNzAxZDkx
ODQuLmU1ZTg4OGRiNzI5NGQ0NjdhNWEzYzgwYzVkZmM5NzMyMDY0NjliMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC0yNjUsNyArMjY1LDYgQEAgY2xhc3MgSlND
ZWxsIDogcHVibGljIEhlYXBDZWxsIHsKICAgICBzdGF0aWMgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0
eShKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNj
cmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgQXJyYXlCdWZmZXIqIHNsb3dEb3duQW5kV2FzdGVNZW1v
cnkoSlNBcnJheUJ1ZmZlclZpZXcqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gZ2V0VHlwZWRBcnJheUltcGwoSlNBcnJheUJ1ZmZlclZpZXcq
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRGF0YVZpZXcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmll
dy5jcHAKaW5kZXggNmJlNTZlOTI0ZTk2NzMxODYyN2ZiMTI0M2VjOGQyMTMzNjQ5NDFiNi4uNjIy
NTg3OGIxNDg2OGMxMmRkYTk4YWI3YjBjNzE1MDkxZTIwODk3NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5jcHAKQEAgLTE4MCwxMiArMTgwLDYgQEAgdm9p
ZCBKU0RhdGFWaWV3OjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMoCiAgICAgQmFzZTo6Z2V0
T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIGFycmF5LCBtb2RlKTsK
IH0KIAotQXJyYXlCdWZmZXIqIEpTRGF0YVZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNB
cnJheUJ1ZmZlclZpZXcqKQotewotICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOwotICAg
IHJldHVybiAwOwotfQotCiBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBKU0RhdGFWaWV3OjpnZXRU
eXBlZEFycmF5SW1wbChKU0FycmF5QnVmZmVyVmlldyogb2JqZWN0KQogewogICAgIEpTRGF0YVZp
ZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEYXRhVmlldyo+KG9iamVjdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgKaW5kZXggMmVhYjI3MmI3OGEzOGViNzI1
ZWM0NTRkNWM1ZGRmYTg4ZTMwOTU1Ny4uOTIwZWIyODIwNWIyNWJiNmEwNDdlZTVhNTc2NGNhMjU3
MTMzNTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRh
Vmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXcuaApA
QCAtNzAsNyArNzAsNiBAQCBjbGFzcyBKU0RhdGFWaWV3IGZpbmFsIDogcHVibGljIEpTQXJyYXlC
dWZmZXJWaWV3IHsKIAogICAgIHN0YXRpYyB2b2lkIGdldE93bk5vbkluZGV4UHJvcGVydHlOYW1l
cyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlKTsKIAotICAgIHN0YXRpYyBBcnJheUJ1ZmZlciogc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeShK
U0FycmF5QnVmZmVyVmlldyopOwogICAgIHN0YXRpYyBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBn
ZXRUeXBlZEFycmF5SW1wbChKU0FycmF5QnVmZmVyVmlldyopOwogICAgIAogcHVibGljOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3LmgKaW5kZXggZjM1NTUzYzU1NTQ1YzE0ODk1YWM4MTgzZDY4OTgzMWU0ZGM5YmZjZS4u
NTQ0YjY2OTZiNjM2NGRmM2RjNTVlYjIxYTI1NTE5MTBmNjM2MzhhOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5o
CkBAIC0yOTAsNyArMjkwLDYgQEAgY2xhc3MgSlNHZW5lcmljVHlwZWRBcnJheVZpZXcgZmluYWwg
OiBwdWJsaWMgSlNBcnJheUJ1ZmZlclZpZXcgewogCiAgICAgLy8gQWxsb2NhdGVzIHRoZSBmdWxs
LW9uIG5hdGl2ZSBidWZmZXIgYW5kIG1vdmVzIGRhdGEgaW50byB0aGUgQyBoZWFwIGlmCiAgICAg
Ly8gbmVjZXNzYXJ5LiBOb3RlIHRoYXQgdGhpcyBuZXZlciBhbGxvY2F0ZXMgaW4gdGhlIEdDIGhl
YXAuCi0gICAgc3RhdGljIEFycmF5QnVmZmVyKiBzbG93RG93bkFuZFdhc3RlTWVtb3J5KEpTQXJy
YXlCdWZmZXJWaWV3Kik7CiAgICAgc3RhdGljIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGdldFR5
cGVkQXJyYXlJbXBsKEpTQXJyYXlCdWZmZXJWaWV3Kik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3SW5saW5lcy5oCmluZGV4IGQxZTZiYzU2ODY2MjU1NWRiZDYwYWE3M2ZmOTgwOTY0MzQz
NDJkNDQuLjU1ZmRjMDU2YzNkMDUyNmM4YjM5OGQxNjMzMjY5ZTdkZGRlMGRmNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3SW5saW5lcy5oCkBAIC01NDgsNjMgKzU0OCw2IEBAIHZvaWQgSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYKICAgICB9CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+Ci1BcnJheUJ1
ZmZlciogSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnNsb3dEb3duQW5kV2FzdGVN
ZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqIG9iamVjdCkKLXsKLSAgICBKU0dlbmVyaWNUeXBlZEFy
cmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyo+KG9i
amVjdCk7Ci0gICAgCi0gICAgLy8gV2UgcGxheSB0aGlzIGdhbWUgYmVjYXVzZSB3ZSB3YW50IHRo
aXMgdG8gYmUgY2FsbGFibGUgZXZlbiBmcm9tIHBsYWNlcyB0aGF0Ci0gICAgLy8gZG9uJ3QgaGF2
ZSBhY2Nlc3MgdG8gRXhlY1N0YXRlKiBvciB0aGUgVk0sIGFuZCB3ZSBvbmx5IGFsbG9jYXRlIHNv
IGxpdHRsZQotICAgIC8vIG1lbW9yeSBoZXJlIHRoYXQgaXQncyBub3QgbmVjZXNzYXJ5IHRvIHRy
aWdnZXIgYSBHQyAtIGp1c3QgYWNjb3VudGluZyB3aGF0Ci0gICAgLy8gd2UgaGF2ZSBkb25lIGlz
IGdvb2QgZW5vdWdoLiBUaGUgc29ydCBvZiBiaXphcnJvIGV4Y2VwdGlvbiB0byB0aGUgImFsbG9j
YXRpbmcKLSAgICAvLyBsaXR0bGUgbWVtb3J5IiBpcyB3aGVuIHdlIHRyYW5zZmVyIGEgYmFja2lu
ZyBidWZmZXIgaW50byB0aGUgQyBoZWFwOyB0aGlzCi0gICAgLy8gd2lsbCB0ZW1wb3JhcmlseSBn
ZXQgY291bnRlZCB0b3dhcmRzIGhlYXAgZm9vdHByaW50IChpbmNvcnJlY3RseSwgaW4gdGhlIGNh
c2UKLSAgICAvLyBvZiBhZG9wdGluZyBhbiBvdmVyc2l6ZSB0eXBlZCBhcnJheSkgYnV0IHdlIGRv
bid0IEdDIGhlcmUgYW55d2F5LiBUaGF0J3MKLSAgICAvLyBhbG1vc3QgY2VydGFpbmx5IGZpbmUu
IFRoZSB3b3JzdCBjYXNlIGlzIGlmIHlvdSBjcmVhdGVkIGEgdG9uIG9mIGZhc3QgdHlwZWQKLSAg
ICAvLyBhcnJheXMsIGFuZCBkaWQgbm90aGluZyBidXQgY2F1c2VkIGFsbCBvZiB0aGVtIHRvIHNs
b3cgZG93biBhbmQgd2FzdGUgbWVtb3J5LgotICAgIC8vIEluIHRoYXQgY2FzZSwgeW91ciBtZW1v
cnkgZm9vdHByaW50IHdpbGwgZG91YmxlIGJlZm9yZSB0aGUgR0MgcmVhbGl6ZXMgd2hhdCdzCi0g
ICAgLy8gdXAuIEJ1dCBpZiB5b3UgZG8gKmFueXRoaW5nKiB0byB0cmlnZ2VyIGEgR0Mgd2F0ZXJt
YXJrIGNoZWNrLCBpdCB3aWxsIGtub3cKLSAgICAvLyB0aGF0IHlvdSAqaGFkKiBkb25lIHRob3Nl
IGFsbG9jYXRpb25zIGFuZCBpdCB3aWxsIEdDIGFwcHJvcHJpYXRlbHkuCi0gICAgSGVhcCogaGVh
cCA9IEhlYXA6OmhlYXAodGhpc09iamVjdCk7Ci0gICAgVk0mIHZtID0gKmhlYXAtPnZtKCk7Ci0g
ICAgRGVmZXJHQ0ZvckFXaGlsZSBkZWZlckdDKCpoZWFwKTsKLSAgICAKLSAgICBSRUxFQVNFX0FT
U0VSVCghdGhpc09iamVjdC0+aGFzSW5kZXhpbmdIZWFkZXIodm0pKTsKLSAgICB0aGlzT2JqZWN0
LT5zZXRCdXR0ZXJmbHkodm0sIEJ1dHRlcmZseTo6Y3JlYXRlT3JHcm93QXJyYXlSaWdodCgKLSAg
ICAgICAgdGhpc09iamVjdC0+YnV0dGVyZmx5KCksIHZtLCB0aGlzT2JqZWN0LCB0aGlzT2JqZWN0
LT5zdHJ1Y3R1cmUodm0pLAotICAgICAgICB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5vdXRP
ZkxpbmVDYXBhY2l0eSgpLCBmYWxzZSwgMCwgMCkpOwotCi0gICAgUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXI7Ci0gICAgCi0gICAgc3dpdGNoICh0aGlzT2JqZWN0LT5tX21vZGUpIHsKLSAgICBj
YXNlIEZhc3RUeXBlZEFycmF5OgotICAgICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KHRoaXNPYmplY3QtPnZlY3RvcigpLCB0aGlzT2JqZWN0LT5ieXRlTGVuZ3RoKCkpOwotICAgICAg
ICBicmVhazsKLSAgICAgICAgCi0gICAgY2FzZSBPdmVyc2l6ZVR5cGVkQXJyYXk6Ci0gICAgICAg
IC8vIEZJWE1FOiBjb25zaWRlciBkb2luZyBzb21ldGhpbmcgbGlrZSAic3VidHJhY3RpbmciIGZy
b20gZXh0cmEgbWVtb3J5Ci0gICAgICAgIC8vIGNvc3QsIHNpbmNlIHJpZ2h0IG5vdyB0aGlzIGNh
c2Ugd2lsbCBjYXVzZSB0aGUgR0MgdG8gdGhpbmsgdGhhdCB3ZSByZWFsbG9jYXRlZAotICAgICAg
ICAvLyB0aGUgd2hvbGUgYnVmZmVyLgotICAgICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlQWRvcHRlZCh0aGlzT2JqZWN0LT52ZWN0b3IoKSwgdGhpc09iamVjdC0+Ynl0ZUxlbmd0aCgp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHsK
LSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsK
LSAgICAgICAgdGhpc09iamVjdC0+YnV0dGVyZmx5KCktPmluZGV4aW5nSGVhZGVyKCktPnNldEFy
cmF5QnVmZmVyKGJ1ZmZlci5nZXQoKSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPm1fdmVjdG9yLnNl
dFdpdGhvdXRCYXJyaWVyKGJ1ZmZlci0+ZGF0YSgpKTsKLSAgICAgICAgV1RGOjpzdG9yZVN0b3Jl
RmVuY2UoKTsKLSAgICAgICAgdGhpc09iamVjdC0+bV9tb2RlID0gV2FzdGVmdWxUeXBlZEFycmF5
OwotICAgIH0KLSAgICBoZWFwLT5hZGRSZWZlcmVuY2UodGhpc09iamVjdCwgYnVmZmVyLmdldCgp
KTsKLSAgICAKLSAgICByZXR1cm4gYnVmZmVyLmdldCgpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBZGFwdG9yPgogUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXc8QWRhcHRvcj46OmdldFR5cGVkQXJyYXlJbXBsKEpTQXJyYXlCdWZmZXJWaWV3KiBvYmplY3Qp
CiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>