<?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>173703</bug_id>
          
          <creation_ts>2017-06-22 02:07:17 -0700</creation_ts>
          <short_desc>[JSC] Object.values should be implemented in C++</short_desc>
          <delta_ts>2017-06-22 08:19:07 -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></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>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1321802</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-06-22 02:07:17 -0700</bug_when>
    <thetext>[JSC] Object.values should be implemented in C++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321803</commentid>
    <comment_count>1</comment_count>
      <attachid>313598</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-06-22 02:10:13 -0700</bug_when>
    <thetext>Created attachment 313598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321804</commentid>
    <comment_count>2</comment_count>
      <attachid>313599</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-06-22 02:10:59 -0700</bug_when>
    <thetext>Created attachment 313599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321805</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-06-22 02:13:15 -0700</bug_when>
    <thetext>FYI https://twitter.com/cheedear/status/859159548241874945</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321866</commentid>
    <comment_count>4</comment_count>
      <attachid>313599</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-06-22 07:50:13 -0700</bug_when>
    <thetext>Comment on attachment 313599
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321886</commentid>
    <comment_count>5</comment_count>
      <attachid>313599</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-22 08:18:59 -0700</bug_when>
    <thetext>Comment on attachment 313599
Patch

Clearing flags on attachment: 313599

Committed r218697: &lt;http://trac.webkit.org/changeset/218697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321887</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-22 08:19:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313598</attachid>
            <date>2017-06-22 02:10:13 -0700</date>
            <delta_ts>2017-06-22 02:10:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173703-20170622181012.patch</filename>
            <type>text/plain</type>
            <size>10515</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZGNhYWM4MjNjZjk0OTc3MGJiODgyMjI2MzgzM2U5ZjhmZTMzOTI2Li5hODMzMThjOWZiNDJhZTAz
YWVjNTU5N2EwOWZkZmM1MWJmZGJmNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBPYmplY3QudmFsdWVzIHNob3VsZCBiZSBpbXBsZW1lbnRl
ZCBpbiBDKysKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MzcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanM6CisgICAgICAgICh2YWx1ZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk6CisKIDIwMTctMDYtMjEgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXJyYXlQcm90b3R5cGUubWFwIGJ1aWx0
aW4gZGVjbGFyZXMgYSB2YXIgaXQgZG9lcyBub3QgdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMKaW5kZXggMTRkM2Q2YzIwZDlj
OWNkODRjMjU1ZDNmZDZkYjk3ZTFlZjBhMjJiMi4uNGMxMDk2YWZkYThkOTk1NzMxNjEzYWRiNWQ4
MzhhZTE1M2ZlNzYwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L09iamVjdENvbnN0cnVjdG9yLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9PYmplY3RDb25zdHJ1Y3Rvci5qcwpAQCAtNDcsMTYgKzQ3LDYgQEAgZWxzZSBpZiAoa2luZCA9
PT0gQGl0ZXJhdGlvbktpbmRLZXlWYWx1ZSkKICAgICByZXR1cm4gcHJvcGVydGllczsKIH0KIAot
ZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0gICAgCi0gICAg
aWYgKG9iamVjdCA9PSBudWxsKQotICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIk9iamVjdC52YWx1
ZXMgcmVxdWlyZXMgdGhhdCBpbnB1dCBwYXJhbWV0ZXIgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVk
Iik7Ci0KLSAgICByZXR1cm4gQGVudW1lcmFibGVPd25Qcm9wZXJ0aWVzKG9iamVjdCwgQGl0ZXJh
dGlvbktpbmRWYWx1ZSk7Ci19Ci0KIGZ1bmN0aW9uIGVudHJpZXMob2JqZWN0KQogewogICAgICJ1
c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmNwcAppbmRleCAyMWM5MzNiYTkwYTkzN2VkMzkyMjA1MmJkMzI5NjJiZjNj
MTVlYmUxLi5hMGRiYmM2OGU5NTYxMTk5ZDViYzBlZjdkNzU5OTFlY2UzYmM1MDM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
CkBAIC00MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbihFeGVjU3RhdGUqKTsKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMoRXhlY1N0YXRlKik7
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90
eXBlT2YoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yU2V0UHJvdG90eXBlT2YoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUq
KTsKQEAgLTg0LDcgKzg1LDcgQEAgY29uc3QgQ2xhc3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICAgaXNFeHRlbnNp
YmxlICAgICAgICAgICAgICBvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZSAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgaXMgICAgICAgICAgICAgICAgICAgICAgICBvYmpl
Y3RDb25zdHJ1Y3RvcklzICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
IDIKICAgYXNzaWduICAgICAgICAgICAgICAgICAgICBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbiAg
ICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIKLSAgdmFsdWVzICAgICAgICAg
ICAgICAgICAgICBKU0J1aWx0aW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uIDEKKyAgdmFsdWVzICAgICAgICAgICAgICAgICAgICBvYmplY3RDb25z
dHJ1Y3RvclZhbHVlcyAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAg
ZW50cmllcyAgICAgICAgICAgICAgICAgICBKU0J1aWx0aW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKIEBlbmQKICovCkBAIC0zNzUsNiArMzc2
LDU0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3Np
Z24oRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFyZ2V0KTsK
IH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvclZhbHVl
cyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1ZhbHVlIHRhcmdldFZh
bHVlID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgaWYgKHRhcmdldFZhbHVlLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBB
U0NJSUxpdGVyYWwoIk9iamVjdC52YWx1ZXMgcmVxdWlyZXMgdGhhdCBpbnB1dCBwYXJhbWV0ZXIg
bm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIikpOworICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0YXJn
ZXRWYWx1ZS50b09iamVjdChleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworCisgICAgSlNBcnJheSogdmFsdWVzID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCAw
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgUHJvcGVydHlO
YW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAg
ICB0YXJnZXQtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQsIGV4
ZWMsIHByb3BlcnRpZXMsIEVudW1lcmF0aW9uTW9kZShEb250RW51bVByb3BlcnRpZXNNb2RlOjpJ
bmNsdWRlKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGF1
dG8gYWRkVmFsdWUgPSBbJl0gKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIHsKKyAgICAgICAg
UHJvcGVydHlTbG90IHNsb3QodGFyZ2V0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6R2V0T3duUHJvcGVydHkpOworICAgICAgICBpZiAoIXRhcmdldC0+bWV0aG9kVGFibGUodm0p
LT5nZXRPd25Qcm9wZXJ0eVNsb3QodGFyZ2V0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoc2xvdC5hdHRyaWJ1dGVzKCkgJiBEb250
RW51bSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBKU1ZhbHVlIHZhbHVlOworICAg
ICAgICBpZiAoTElLRUxZKCFzbG90LmlzVGFpbnRlZEJ5T3BhcXVlT2JqZWN0KCkpKQorICAgICAg
ICAgICAgdmFsdWUgPSBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gdGFyZ2V0LT5nZXQoZXhlYywgcHJvcGVydHlOYW1l
KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAgICAg
ICB2YWx1ZXMtPnB1c2goZXhlYywgdmFsdWUpOworICAgIH07CisKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwLCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5zaXplKCk7IGkgPCBudW1Qcm9wZXJ0
aWVzOyBpKyspIHsKKyAgICAgICAgY29uc3QgYXV0byYgcHJvcGVydHlOYW1lID0gcHJvcGVydGll
c1tpXTsKKyAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgYWRkVmFsdWUocHJvcGVydHlOYW1lKTsKKyAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHZhbHVlcyk7Cit9CisKKwogLy8gRVM2IDYuMi40LjUgVG9Qcm9wZXJ0eURlc2Ny
aXB0b3IKIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvcHJvcGVydHlk
ZXNjcmlwdG9yCiBib29sIHRvUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBpbiwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9D
aGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBkNWY2ZTg3MDUyNDg4Nzg3YTFlNmYz
ZjI3Y2E5ODA3OWM1Njc3MWY3Li5mNDA3ZjM5ZDJkMmNlNDM2ZDQxZGMxMzM2OTdhMDliOGFhMWMy
ZDg1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA2LTIyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIE9iamVjdC52YWx1ZXMgc2hvdWxkIGJlIGlt
cGxlbWVudGVkIGluIEMrKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTczNzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXMgdGhlIHNhbWUgdG8gT2JqZWN0LmFzc2lnbiwgT2JqZWN0LnZhbHVlcygpIGlz
IGFsc28gaW5oZXJlbnRseSBwb2x5bW9ycGhpYy4KKyAgICAgICAgQW5kIGFsbG9jYXRpbmcgSlNT
dHJpbmcgLyBTeW1ib2wgZm9yIElkZW50aWZpZXIgYW5kIEpTQXJyYXkgZm9yIE9iamVjdC5rZXlz
KCkKKyAgICAgICAgcmVzdWx0IGlzIGNvc3RseS4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3
ZSBpbXBsZW1lbnQgT2JqZWN0LnZhbHVlcygpIGluIEMrKy4gSXQgY2FuIGF2b2lkIGFib3ZlIGFs
bG9jYXRpb25zLgorICAgICAgICBGdXJ0aGVybW9yZSwgYnkgdXNpbmcgYHNsb3QuaXNUYWludGVk
QnlPcGFxdWVPYmplY3QoKWAgaW5mb3JtYXRpb24sIHdlIGNhbiBza2lwCisgICAgICAgIG5vbi1v
YnNlcnZhYmxlIEpTT2JqZWN0OjpnZXQoKSBjYWxscy4KKworICAgICAgICBUaGlzIGltcHJvdmVz
IHBlcmZvcm1hbmNlIGJ5IDIuNDl4LiBBbmQgYWxzbyBub3cgT2JqZWN0LnZhbHVlcygpIGJlYXRz
CisgICAgICAgIE9iamVjdC5rZXlzKG9iamVjdCkubWFwKGtleSA9PiBvYmplY3Rba2V5XSkgaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJhc2VsaW5lICAgICAgICAgICAgICAgICAgcGF0Y2hlZAorCisgICAgICAgICAgICBvYmpl
Y3QtdmFsdWVzICAgICAgICAgICAgICAgMTMyLjE1NTErLTMuNzIwOSAgICAgXiAgICAgNTMuMTI1
NCstMS42MTM5ICAgICAgICBeIGRlZmluaXRlbHkgMi40ODc2eCBmYXN0ZXIKKyAgICAgICAgICAg
IG9iamVjdC1rZXlzLW1hcC12YWx1ZXMgICAgICAgNzguMjAwOCstMi4xMzc4ICAgICA/ICAgICA3
OC45MDc4Ky0yLjIxMjEgICAgICAgID8KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9vYmpl
Y3Qta2V5cy1tYXAtdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IG1pY3JvYmVuY2htYXJrcy9vYmplY3QtdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHN0cmVzcy9vYmplY3QtdmFsdWVzLWNoYW5naW5nLXByb3BlcnRpZXMuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yLmxl
dC5zb3VyY2UuZ2V0IHgpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKHNo
b3VsZEJlLmxldC5oYW5kbGVyLmdldCBvcmRlcik6CisgICAgICAgIChnZXQgbGV0KToKKyAgICAg
ICAgKHNob3VsZEJlLmxldC5oYW5kbGVyLmdldCByZXR1cm4pOgorICAgICAgICAobGV0LmhhbmRs
ZXIuZ2V0IG9yZGVyKToKKwogMjAxNy0wNi0yMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBldmFsIHZpcnR1YWwgY2FsbCBpcyBpbmNvcnJlY3QgaW4gdGhlIGJh
c2VsaW5lIEpJVApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LWtl
eXMtbWFwLXZhbHVlcy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL29iamVjdC1rZXlzLW1h
cC12YWx1ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkxMTVlM2RkN2Y2ZmQ0YjViNzQyMDVhYTg0ZTI5ZjE3
MjEzYjc0YgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL29iamVj
dC1rZXlzLW1hcC12YWx1ZXMuanMKQEAgLTAsMCArMSwxMyBAQAordmFyIG9iamVjdCA9IHt9Owor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIG9iamVjdFtpICsgJ3Byb3AnXSA9
IGk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KQoreworICAgIHJldHVybiBPYmplY3Qua2V5
cyhvYmplY3QpLm1hcChrZXkgPT4gb2JqZWN0W2tleV0pOworfQorbm9JbmxpbmUodGVzdCk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWUzOyArK2kpCisgICAgdGVzdChvYmplY3QpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LXZhbHVlcy5qcyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL29iamVjdC12YWx1ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyZTdmOGIyNzYy
ZGFkOTBiYWJhNTI2MmE2MjIwOGU3MzlmYzgzYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL29iamVjdC12YWx1ZXMuanMKQEAgLTAsMCArMSwxMyBAQAordmFyIG9i
amVjdCA9IHt9OworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIG9iamVjdFtp
ICsgJ3Byb3AnXSA9IGk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KQoreworICAgIHJldHVy
biBPYmplY3QudmFsdWVzKG9iamVjdCk7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxZTM7ICsraSkKKyAgICB0ZXN0KG9iamVjdCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vYmplY3QtdmFsdWVzLWNoYW5naW5nLXByb3BlcnRpZXMuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vYmplY3QtdmFsdWVzLWNoYW5naW5nLXByb3BlcnRpZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODY5N2VmZDhkYWYzMTAxNTgxODIxMmQyOWM0YjMwYTliNDI4OGIxMwotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC12YWx1ZXMtY2hhbmdpbmctcHJvcGVydGllcy5qcwpA
QCAtMCwwICsxLDk2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQorewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3sKKyAgICBsZXQgc291cmNlID0geworICAgICAg
ICBnZXQgeCgpIHsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnk7CisgICAgICAgICAgICByZXR1
cm4gNDI7CisgICAgICAgIH0sCisgICAgICAgIHk6IDQyCisgICAgfTsKKyAgICBsZXQgcmVzdWx0
ID0gT2JqZWN0LnZhbHVlcyhzb3VyY2UpOworICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDEp
OworICAgIHNob3VsZEJlKHJlc3VsdFswXSwgNDIpOworfQorCit7CisgICAgbGV0IHNvdXJjZSA9
IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHt9LCB7CisgICAgICAgIG5vbkVudW1lcmFibGU6IHsK
KyAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAorICAgICAgICAgICAgdmFsdWU6IDQyCisg
ICAgICAgIH0KKyAgICB9KTsKKworICAgIGxldCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHNvdXJj
ZSk7CisgICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMCk7Cit9CisKK3sKKyAgICBsZXQgb3Jk
ZXIgPSBbXTsKKyAgICBsZXQgdGFyZ2V0ID0ge3g6IDIwLCB5OjQyfTsKKyAgICBsZXQgaGFuZGxl
ciA9IHsKKyAgICAgICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoZVRhcmdldCwgcHJvcE5h
bWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9yZGVyLnB1c2goYGdldE93blByb3BlcnR5RGVz
Y3JpcHRvciAke3Byb3BOYW1lfWApOworICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICAgICBlbnVtZXJhYmxlOiB0cnVlLAorICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwKKyAgICAgICAgICAgICAgICB2YWx1ZTogNDIKKyAgICAgICAgICAgIH07CisgICAgICAgIH0s
CisgICAgICAgIGdldCh0aGVUYXJnZXQsIHByb3BOYW1lLCByZWNlaXZlcikKKyAgICAgICAgewor
ICAgICAgICAgICAgb3JkZXIucHVzaChgZ2V0ICR7cHJvcE5hbWV9YCk7CisgICAgICAgICAgICBy
ZXR1cm4gMjA7CisgICAgICAgIH0KKyAgICB9OworCisgICAgbGV0IHByb3h5ID0gbmV3IFByb3h5
KHRhcmdldCwgaGFuZGxlcik7CisgICAgbGV0IHJlc3VsdCA9IE9iamVjdC52YWx1ZXMocHJveHkp
OworICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDIpOworICAgIHNob3VsZEJlKHJlc3VsdFsw
XSwgMjApOworICAgIHNob3VsZEJlKHJlc3VsdFsxXSwgMjApOworICAgIHNob3VsZEJlKG9yZGVy
LmpvaW4oJywnKSwgYGdldE93blByb3BlcnR5RGVzY3JpcHRvciB4LGdldCB4LGdldE93blByb3Bl
cnR5RGVzY3JpcHRvciB5LGdldCB5YCk7Cit9CisKK3sKKyAgICBsZXQgb3JkZXIgPSBbXTsKKyAg
ICBsZXQgdGFyZ2V0ID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoe30sIHsKKyAgICAgICAgeDog
eworICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAgICAgICAgICBjb25maWd1cmFi
bGU6IHRydWUsCisgICAgICAgICAgICB2YWx1ZTogMjAKKyAgICAgICAgfSwKKyAgICAgICAgeTog
eworICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAgICAgICAgICBjb25maWd1cmFi
bGU6IHRydWUsCisgICAgICAgICAgICB2YWx1ZTogNDIKKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgbGV0IGhhbmRsZXIgPSB7CisgICAgICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGVU
YXJnZXQsIHByb3BOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBvcmRlci5wdXNoKGBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IgJHtwcm9wTmFtZX1gKTsKKyAgICAgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAgICAgICAgICAgICAgY29u
ZmlndXJhYmxlOiB0cnVlLAorICAgICAgICAgICAgICAgIHZhbHVlOiA0MgorICAgICAgICAgICAg
fTsKKyAgICAgICAgfSwKKyAgICAgICAgZ2V0KHRoZVRhcmdldCwgcHJvcE5hbWUsIHJlY2VpdmVy
KQorICAgICAgICB7CisgICAgICAgICAgICBvcmRlci5wdXNoKGBnZXQgJHtwcm9wTmFtZX1gKTsK
KyAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBsZXQgcHJv
eHkgPSBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKTsKKyAgICBsZXQgcmVzdWx0ID0gT2JqZWN0
LnZhbHVlcyhwcm94eSk7CisgICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMCk7CisgICAgc2hv
dWxkQmUob3JkZXIuam9pbignLCcpLCBgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIHgsZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yIHlgKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313599</attachid>
            <date>2017-06-22 02:10:59 -0700</date>
            <delta_ts>2017-06-22 08:18:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173703-20170622181058.patch</filename>
            <type>text/plain</type>
            <size>10515</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZGNhYWM4MjNjZjk0OTc3MGJiODgyMjI2MzgzM2U5ZjhmZTMzOTI2Li5hMTM2ODExMmRhZjE4ZWYy
Nzk5NjhjYTQwOTIxMGNhYTk1ZTlmNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBPYmplY3QudmFsdWVzIHNob3VsZCBiZSBpbXBsZW1lbnRl
ZCBpbiBDKysKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MzcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIHRoZSBzYW1lIHRvIE9iamVjdC5hc3NpZ24sIE9iamVjdC52YWx1ZXMoKSBpcyBhbHNvIGlu
aGVyZW50bHkgcG9seW1vcnBoaWMuCisgICAgICAgIEFuZCBhbGxvY2F0aW5nIEpTU3RyaW5nIC8g
U3ltYm9sIGZvciBJZGVudGlmaWVyIGFuZCBKU0FycmF5IGZvciBPYmplY3Qua2V5cygpCisgICAg
ICAgIHJlc3VsdCBpcyBjb3N0bHkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2UgaW1wbGVt
ZW50IE9iamVjdC52YWx1ZXMoKSBpbiBDKysuIEl0IGNhbiBhdm9pZCBhYm92ZSBhbGxvY2F0aW9u
cy4KKyAgICAgICAgRnVydGhlcm1vcmUsIGJ5IHVzaW5nIGBzbG90LmlzVGFpbnRlZEJ5T3BhcXVl
T2JqZWN0KClgIGluZm9ybWF0aW9uLCB3ZSBjYW4gc2tpcAorICAgICAgICBub24tb2JzZXJ2YWJs
ZSBKU09iamVjdDo6Z2V0KCkgY2FsbHMuCisKKyAgICAgICAgVGhpcyBpbXByb3ZlcyBwZXJmb3Jt
YW5jZSBieSAyLjQ5eC4gQW5kIGFsc28gbm93IE9iamVjdC52YWx1ZXMoKSBiZWF0cworICAgICAg
ICBPYmplY3Qua2V5cyhvYmplY3QpLm1hcChrZXkgPT4gb2JqZWN0W2tleV0pIGltcGxlbWVudGF0
aW9uLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl
bGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKworICAgICAgICAgICAgb2JqZWN0LXZhbHVl
cyAgICAgICAgICAgICAgIDEzMi4xNTUxKy0zLjcyMDkgICAgIF4gICAgIDUzLjEyNTQrLTEuNjEz
OSAgICAgICAgXiBkZWZpbml0ZWx5IDIuNDg3NnggZmFzdGVyCisgICAgICAgICAgICBvYmplY3Qt
a2V5cy1tYXAtdmFsdWVzICAgICAgIDc4LjIwMDgrLTIuMTM3OCAgICAgPyAgICAgNzguOTA3OCst
Mi4yMTIxICAgICAgICA/CisKKyAgICAgICAgKiBidWlsdGlucy9PYmplY3RDb25zdHJ1Y3Rvci5q
czoKKyAgICAgICAgKHZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yVmFsdWVzKToK
KwogMjAxNy0wNi0yMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBcnJheVByb3RvdHlwZS5tYXAgYnVpbHRpbiBkZWNsYXJlcyBhIHZhciBpdCBkb2VzIG5vdCB1
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RDb25z
dHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RDb25zdHJ1
Y3Rvci5qcwppbmRleCAxNGQzZDZjMjBkOWM5Y2Q4NGMyNTVkM2ZkNmRiOTdlMWVmMGEyMmIyLi40
YzEwOTZhZmRhOGQ5OTU3MzE2MTNhZGI1ZDgzOGFlMTUzZmU3NjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzCkBAIC00Nywx
NiArNDcsNiBAQCBlbHNlIGlmIChraW5kID09PSBAaXRlcmF0aW9uS2luZEtleVZhbHVlKQogICAg
IHJldHVybiBwcm9wZXJ0aWVzOwogfQogCi1mdW5jdGlvbiB2YWx1ZXMob2JqZWN0KQotewotICAg
ICJ1c2Ugc3RyaWN0IjsKLSAgICAKLSAgICBpZiAob2JqZWN0ID09IG51bGwpCi0gICAgICAgIEB0
aHJvd1R5cGVFcnJvcigiT2JqZWN0LnZhbHVlcyByZXF1aXJlcyB0aGF0IGlucHV0IHBhcmFtZXRl
ciBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKLQotICAgIHJldHVybiBAZW51bWVyYWJsZU93
blByb3BlcnRpZXMob2JqZWN0LCBAaXRlcmF0aW9uS2luZFZhbHVlKTsKLX0KLQogZnVuY3Rpb24g
ZW50cmllcyhvYmplY3QpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDIxYzkzM2Jh
OTBhOTM3ZWQzOTIyMDUyYmQzMjk2MmJmM2MxNWViZTEuLmEwZGJiYzY4ZTk1NjExOTlkNWJjMGVm
N2Q3NTk5MWVjZTNiYzUwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKIG5hbWVzcGFjZSBK
U0MgewogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yQXNz
aWduKEV4ZWNTdGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvclZhbHVlcyhFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZihFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZihFeGVjU3Rh
dGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSopOwpAQCAtODQsNyArODUsNyBAQCBjb25zdCBDbGFz
c0luZm8gT2JqZWN0Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFs
RnVuY3Rpb246OnNfaQogICBpc0V4dGVuc2libGUgICAgICAgICAgICAgIG9iamVjdENvbnN0cnVj
dG9ySXNFeHRlbnNpYmxlICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBpcyAg
ICAgICAgICAgICAgICAgICAgICAgIG9iamVjdENvbnN0cnVjdG9ySXMgICAgICAgICAgICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgogICBhc3NpZ24gICAgICAgICAgICAgICAgICAg
IG9iamVjdENvbnN0cnVjdG9yQXNzaWduICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMgotICB2YWx1ZXMgICAgICAgICAgICAgICAgICAgIEpTQnVpbHRpbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICB2YWx1ZXMgICAg
ICAgICAgICAgICAgICAgIG9iamVjdENvbnN0cnVjdG9yVmFsdWVzICAgICAgICAgICAgICAgICAg
ICAgRG9udEVudW18RnVuY3Rpb24gMQogICBlbnRyaWVzICAgICAgICAgICAgICAgICAgIEpTQnVp
bHRpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MQogQGVuZAogKi8KQEAgLTM3NSw2ICszNzYsNTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0YXJnZXQpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yVmFsdWVzKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBWTSYg
dm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIEpTVmFsdWUgdGFyZ2V0VmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKKyAgICBp
ZiAodGFyZ2V0VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiT2JqZWN0LnZhbHVlcyByZXF1
aXJlcyB0aGF0IGlucHV0IHBhcmFtZXRlciBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKSk7Cisg
ICAgSlNPYmplY3QqIHRhcmdldCA9IHRhcmdldFZhbHVlLnRvT2JqZWN0KGV4ZWMpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBKU0FycmF5KiB2YWx1ZXMgPSBj
b25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIDApOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMsIFByb3Bl
cnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIHRhcmdldC0+bWV0aG9kVGFibGUodm0pLT5nZXRP
d25Qcm9wZXJ0eU5hbWVzKHRhcmdldCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2Rl
KERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOworCisgICAgYXV0byBhZGRWYWx1ZSA9IFsmXSAoUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkgeworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0YXJnZXQsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CisgICAgICAgIGlm
ICghdGFyZ2V0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0YXJnZXQsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlm
IChzbG90LmF0dHJpYnV0ZXMoKSAmIERvbnRFbnVtKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIEpTVmFsdWUgdmFsdWU7CisgICAgICAgIGlmIChMSUtFTFkoIXNsb3QuaXNUYWludGVk
QnlPcGFxdWVPYmplY3QoKSkpCisgICAgICAgICAgICB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsdWUgPSB0YXJn
ZXQtPmdldChleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOworCisgICAgICAgIHZhbHVlcy0+cHVzaChleGVjLCB2YWx1ZSk7Cisg
ICAgfTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0
aWVzLnNpemUoKTsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgeworICAgICAgICBjb25zdCBhdXRv
JiBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0aWVzW2ldOworICAgICAgICBpZiAocHJvcGVydHlOYW1l
LmlzU3ltYm9sKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBhZGRWYWx1ZShw
cm9wZXJ0eU5hbWUpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
ICAgIH0KKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWVzKTsKK30KKworCiAvLyBF
UzYgNi4yLjQuNSBUb1Byb3BlcnR5RGVzY3JpcHRvcgogLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5p
by9lY21hMjYyLyNzZWMtdG9wcm9wZXJ0eWRlc2NyaXB0b3IKIGJvb2wgdG9Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGluLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRl
c2MpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGQ1ZjZlODcwNTI0ODg3ODdhMWU2ZjNmMjdjYTk4MDc5YzU2NzcxZjcuLjA3ZThlOGJmYTcy
M2RiZThmOTc4MTE4Y2NmZTZkYjhlZTJkN2FlYmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDYtMjIg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10g
T2JqZWN0LnZhbHVlcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gQysrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM3MDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9vYmpl
Y3Qta2V5cy1tYXAtdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IG1pY3JvYmVuY2htYXJrcy9vYmplY3QtdmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHN0cmVzcy9vYmplY3QtdmFsdWVzLWNoYW5naW5nLXByb3BlcnRpZXMuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yLmxl
dC5zb3VyY2UuZ2V0IHgpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKHNo
b3VsZEJlLmxldC5oYW5kbGVyLmdldCBvcmRlcik6CisgICAgICAgIChnZXQgbGV0KToKKyAgICAg
ICAgKHNob3VsZEJlLmxldC5oYW5kbGVyLmdldCByZXR1cm4pOgorICAgICAgICAobGV0LmhhbmRs
ZXIuZ2V0IG9yZGVyKToKKwogMjAxNy0wNi0yMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBldmFsIHZpcnR1YWwgY2FsbCBpcyBpbmNvcnJlY3QgaW4gdGhlIGJh
c2VsaW5lIEpJVApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LWtl
eXMtbWFwLXZhbHVlcy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL29iamVjdC1rZXlzLW1h
cC12YWx1ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkxMTVlM2RkN2Y2ZmQ0YjViNzQyMDVhYTg0ZTI5ZjE3
MjEzYjc0YgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL29iamVj
dC1rZXlzLW1hcC12YWx1ZXMuanMKQEAgLTAsMCArMSwxMyBAQAordmFyIG9iamVjdCA9IHt9Owor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIG9iamVjdFtpICsgJ3Byb3AnXSA9
IGk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KQoreworICAgIHJldHVybiBPYmplY3Qua2V5
cyhvYmplY3QpLm1hcChrZXkgPT4gb2JqZWN0W2tleV0pOworfQorbm9JbmxpbmUodGVzdCk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWUzOyArK2kpCisgICAgdGVzdChvYmplY3QpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LXZhbHVlcy5qcyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL29iamVjdC12YWx1ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyZTdmOGIyNzYy
ZGFkOTBiYWJhNTI2MmE2MjIwOGU3MzlmYzgzYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL29iamVjdC12YWx1ZXMuanMKQEAgLTAsMCArMSwxMyBAQAordmFyIG9i
amVjdCA9IHt9OworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIG9iamVjdFtp
ICsgJ3Byb3AnXSA9IGk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob2JqZWN0KQoreworICAgIHJldHVy
biBPYmplY3QudmFsdWVzKG9iamVjdCk7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxZTM7ICsraSkKKyAgICB0ZXN0KG9iamVjdCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vYmplY3QtdmFsdWVzLWNoYW5naW5nLXByb3BlcnRpZXMuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vYmplY3QtdmFsdWVzLWNoYW5naW5nLXByb3BlcnRpZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODY5N2VmZDhkYWYzMTAxNTgxODIxMmQyOWM0YjMwYTliNDI4OGIxMwotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC12YWx1ZXMtY2hhbmdpbmctcHJvcGVydGllcy5qcwpA
QCAtMCwwICsxLDk2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQorewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3sKKyAgICBsZXQgc291cmNlID0geworICAgICAg
ICBnZXQgeCgpIHsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnk7CisgICAgICAgICAgICByZXR1
cm4gNDI7CisgICAgICAgIH0sCisgICAgICAgIHk6IDQyCisgICAgfTsKKyAgICBsZXQgcmVzdWx0
ID0gT2JqZWN0LnZhbHVlcyhzb3VyY2UpOworICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDEp
OworICAgIHNob3VsZEJlKHJlc3VsdFswXSwgNDIpOworfQorCit7CisgICAgbGV0IHNvdXJjZSA9
IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHt9LCB7CisgICAgICAgIG5vbkVudW1lcmFibGU6IHsK
KyAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAorICAgICAgICAgICAgdmFsdWU6IDQyCisg
ICAgICAgIH0KKyAgICB9KTsKKworICAgIGxldCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHNvdXJj
ZSk7CisgICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMCk7Cit9CisKK3sKKyAgICBsZXQgb3Jk
ZXIgPSBbXTsKKyAgICBsZXQgdGFyZ2V0ID0ge3g6IDIwLCB5OjQyfTsKKyAgICBsZXQgaGFuZGxl
ciA9IHsKKyAgICAgICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoZVRhcmdldCwgcHJvcE5h
bWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9yZGVyLnB1c2goYGdldE93blByb3BlcnR5RGVz
Y3JpcHRvciAke3Byb3BOYW1lfWApOworICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICAgICBlbnVtZXJhYmxlOiB0cnVlLAorICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwKKyAgICAgICAgICAgICAgICB2YWx1ZTogNDIKKyAgICAgICAgICAgIH07CisgICAgICAgIH0s
CisgICAgICAgIGdldCh0aGVUYXJnZXQsIHByb3BOYW1lLCByZWNlaXZlcikKKyAgICAgICAgewor
ICAgICAgICAgICAgb3JkZXIucHVzaChgZ2V0ICR7cHJvcE5hbWV9YCk7CisgICAgICAgICAgICBy
ZXR1cm4gMjA7CisgICAgICAgIH0KKyAgICB9OworCisgICAgbGV0IHByb3h5ID0gbmV3IFByb3h5
KHRhcmdldCwgaGFuZGxlcik7CisgICAgbGV0IHJlc3VsdCA9IE9iamVjdC52YWx1ZXMocHJveHkp
OworICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDIpOworICAgIHNob3VsZEJlKHJlc3VsdFsw
XSwgMjApOworICAgIHNob3VsZEJlKHJlc3VsdFsxXSwgMjApOworICAgIHNob3VsZEJlKG9yZGVy
LmpvaW4oJywnKSwgYGdldE93blByb3BlcnR5RGVzY3JpcHRvciB4LGdldCB4LGdldE93blByb3Bl
cnR5RGVzY3JpcHRvciB5LGdldCB5YCk7Cit9CisKK3sKKyAgICBsZXQgb3JkZXIgPSBbXTsKKyAg
ICBsZXQgdGFyZ2V0ID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoe30sIHsKKyAgICAgICAgeDog
eworICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAgICAgICAgICBjb25maWd1cmFi
bGU6IHRydWUsCisgICAgICAgICAgICB2YWx1ZTogMjAKKyAgICAgICAgfSwKKyAgICAgICAgeTog
eworICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAgICAgICAgICBjb25maWd1cmFi
bGU6IHRydWUsCisgICAgICAgICAgICB2YWx1ZTogNDIKKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgbGV0IGhhbmRsZXIgPSB7CisgICAgICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGVU
YXJnZXQsIHByb3BOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBvcmRlci5wdXNoKGBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IgJHtwcm9wTmFtZX1gKTsKKyAgICAgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAgICAgICAgICAgICAgY29u
ZmlndXJhYmxlOiB0cnVlLAorICAgICAgICAgICAgICAgIHZhbHVlOiA0MgorICAgICAgICAgICAg
fTsKKyAgICAgICAgfSwKKyAgICAgICAgZ2V0KHRoZVRhcmdldCwgcHJvcE5hbWUsIHJlY2VpdmVy
KQorICAgICAgICB7CisgICAgICAgICAgICBvcmRlci5wdXNoKGBnZXQgJHtwcm9wTmFtZX1gKTsK
KyAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBsZXQgcHJv
eHkgPSBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKTsKKyAgICBsZXQgcmVzdWx0ID0gT2JqZWN0
LnZhbHVlcyhwcm94eSk7CisgICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMCk7CisgICAgc2hv
dWxkQmUob3JkZXIuam9pbignLCcpLCBgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIHgsZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yIHlgKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>