<?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>22693</bug_id>
          
          <creation_ts>2008-12-05 13:57:31 -0800</creation_ts>
          <short_desc>Remove m_assembler from MacroAssembler::Jump.</short_desc>
          <delta_ts>2008-12-05 14:14:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>101554</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-05 13:57:31 -0800</bug_when>
    <thetext>Keeping a pointer allowed for some syntactic sugar - &quot;link()&quot; looks nicer than &quot;link(this)&quot;.  But maintaining this doubles the size of Jump, which is even more unfortunate for the JIT, since there are many large structures holding JmpSrcs.  Probably best to remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101557</commentid>
    <comment_count>1</comment_count>
      <attachid>25787</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-05 13:59:31 -0800</bug_when>
    <thetext>Created attachment 25787
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101560</commentid>
    <comment_count>2</comment_count>
      <attachid>25787</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-05 14:10:11 -0800</bug_when>
    <thetext>Comment on attachment 25787
The patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101563</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-05 14:14:13 -0800</bug_when>
    <thetext>Sending        JavaScriptCore/ChangeLog
Sending        JavaScriptCore/assembler/MacroAssembler.h
Sending        JavaScriptCore/wrec/WREC.cpp
Sending        JavaScriptCore/wrec/WRECGenerator.cpp
Sending        JavaScriptCore/wrec/WRECParser.h
Transmitting file data .....
Committed revision 39043.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25787</attachid>
            <date>2008-12-05 13:59:31 -0800</date>
            <delta_ts>2008-12-05 14:10:11 -0800</delta_ts>
            <desc>The patch</desc>
            <filename>patch.jumpnoasm.txt</filename>
            <type>text/plain</type>
            <size>21387</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM5MDQw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIwMDgtMTIt
MDUgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBtX2Fzc2VtYmxl
ciBmcm9tIE1hY3JvQXNzZW1ibGVyOjpKdW1wLgorICAgICAgICBLZWVwaW5nIGEgcG9pbnRlciBh
bGxvd2VkIGZvciBzb21lIHN5bnRhY3RpYyBzdWdhciAtICJsaW5rKCkiIGxvb2tzIG5pY2VyCisg
ICAgICAgIHRoYW4gImxpbmsodGhpcykiLiAgQnV0IG1haW50YWluaW5nIHRoaXMgZG91YmxlcyB0
aGUgc2l6ZSBvZiBKdW1wLCB3aGljaAorICAgICAgICBpcyBldmVuIG1vcmUgdW5mb3J0dW5hdGUg
Zm9yIHRoZSBKSVQsIHNpbmNlIHRoZXJlIGFyZSBtYW55IGxhcmdlIHN0cnVjdHVyZXMKKyAgICAg
ICAgaG9sZGluZyBKbXBTcmNzLiAgUHJvYmFibHkgYmVzdCB0byByZW1vdmUgaXQuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjkzCisKKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXI6Okp1bXA6Okp1bXApOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6SnVtcDo6
bGluayk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpKdW1wOjpsaW5rVG8pOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Q6OmxpbmspOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Q6OmxpbmtUbyk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpqYWUzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpqZTMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmplMTYpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlcjo6amczMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpqZ2UzMik6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpqbDMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OmpsZTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmpuZVB0
cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpqbmUzMik6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyOjpqbnNldDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6
OmpzZXQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpqdW1wKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXI6Omp6U3ViMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlcjo6am9BZGQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpjYWxsKToKKyAg
ICAgICAgKiB3cmVjL1dSRUMuY3BwOgorICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OmNv
bXBpbGVSZWdFeHApOgorICAgICAgICAqIHdyZWMvV1JFQ0dlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2VuZXJhdGVFbnRlcik6CisgICAgICAgIChKU0M6OldS
RUM6OkdlbmVyYXRvcjo6Z2VuZXJhdGVCYWNrcmVmZXJlbmNlUXVhbnRpZmllcik6CisgICAgICAg
IChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2VuZXJhdGVOb25HcmVlZHlRdWFudGlmaWVyKToKKyAg
ICAgICAgKEpTQzo6V1JFQzo6R2VuZXJhdG9yOjpnZW5lcmF0ZUdyZWVkeVF1YW50aWZpZXIpOgor
ICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OmdlbmVyYXRlUGF0dGVybkNoYXJhY3Rlcik6
CisgICAgICAgIChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2VuZXJhdGVDaGFyYWN0ZXJDbGFzc0lu
dmVydGVkUmFuZ2UpOgorICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OmdlbmVyYXRlQ2hh
cmFjdGVyQ2xhc3NJbnZlcnRlZCk6CisgICAgICAgIChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2Vu
ZXJhdGVDaGFyYWN0ZXJDbGFzcyk6CisgICAgICAgIChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2Vu
ZXJhdGVQYXJlbnRoZXNlc0Fzc2VydGlvbik6CisgICAgICAgIChKU0M6OldSRUM6OkdlbmVyYXRv
cjo6Z2VuZXJhdGVQYXJlbnRoZXNlc0ludmVydGVkQXNzZXJ0aW9uKToKKyAgICAgICAgKEpTQzo6
V1JFQzo6R2VuZXJhdG9yOjpnZW5lcmF0ZVBhcmVudGhlc2VzTm9uR3JlZWR5KToKKyAgICAgICAg
KEpTQzo6V1JFQzo6R2VuZXJhdG9yOjpnZW5lcmF0ZVBhcmVudGhlc2VzUmVzZXRUcmFtcG9saW5l
KToKKyAgICAgICAgKEpTQzo6V1JFQzo6R2VuZXJhdG9yOjpnZW5lcmF0ZUFzc2VydGlvbkJPTCk6
CisgICAgICAgIChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2VuZXJhdGVBc3NlcnRpb25FT0wpOgor
ICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OmdlbmVyYXRlQXNzZXJ0aW9uV29yZEJvdW5k
YXJ5KToKKyAgICAgICAgKEpTQzo6V1JFQzo6R2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2tyZWZlcmVu
Y2UpOgorICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OnRlcm1pbmF0ZUFsdGVybmF0aXZl
KToKKyAgICAgICAgKEpTQzo6V1JFQzo6R2VuZXJhdG9yOjp0ZXJtaW5hdGVEaXNqdW5jdGlvbik6
CisgICAgICAgICogd3JlYy9XUkVDUGFyc2VyLmg6CisKIDIwMDgtMTItMDUgIEdhdmluIEJhcnJh
Y2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdl
b2ZmcmV5IEdhcmVuLgpJbmRleDogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDM5MDQwKQorKysgYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NywyNiArMTY3LDIy
IEBAIHB1YmxpYzoKICAgICBjbGFzcyBKdW1wIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEp1bXAo
KQotICAgICAgICAgICAgOiBtX2Fzc2VtYmxlcigwKQogICAgICAgICB7CiAgICAgICAgIH0KLQot
ICAgICAgICBKdW1wKFg4NkFzc2VtYmxlciYgYXNzZW1ibGVyLCBYODZBc3NlbWJsZXI6OkptcFNy
YyBqbXApCi0gICAgICAgICAgICA6IG1fYXNzZW1ibGVyKCZhc3NlbWJsZXIpCi0gICAgICAgICAg
ICAsIG1fam1wKGptcCkKKyAgICAgICAgCisgICAgICAgIEp1bXAoWDg2QXNzZW1ibGVyOjpKbXBT
cmMgam1wKQorICAgICAgICAgICAgOiBtX2ptcChqbXApCiAgICAgICAgIHsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgdm9pZCBsaW5rKCkKKyAgICAgICAgdm9pZCBsaW5rKE1hY3JvQXNz
ZW1ibGVyKiBtYXNtKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9hc3NlbWJsZXIp
OwotICAgICAgICAgICAgbV9hc3NlbWJsZXItPmxpbmsobV9qbXAsIG1fYXNzZW1ibGVyLT5sYWJl
bCgpKTsKKyAgICAgICAgICAgIG1hc20tPm1fYXNzZW1ibGVyLmxpbmsobV9qbXAsIG1hc20tPm1f
YXNzZW1ibGVyLmxhYmVsKCkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2b2lkIGxp
bmtUbyhMYWJlbCBsYWJlbCkKKyAgICAgICAgdm9pZCBsaW5rVG8oTGFiZWwgbGFiZWwsIE1hY3Jv
QXNzZW1ibGVyKiBtYXNtKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9hc3NlbWJs
ZXIpOwotICAgICAgICAgICAgbV9hc3NlbWJsZXItPmxpbmsobV9qbXAsIGxhYmVsLm1fbGFiZWwp
OworICAgICAgICAgICAgbWFzbS0+bV9hc3NlbWJsZXIubGluayhtX2ptcCwgbGFiZWwubV9sYWJl
bCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiB0cmFuc2l0aW9uYXJ5
IG1ldGhvZCwgd2hpbGUgd2UgcmVwbGFjZSBKbXBTcmNlcyB3aXRoIEp1bXBzLgpAQCAtMTk2LDcg
KzE5Miw2IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgWDg2
QXNzZW1ibGVyKiBtX2Fzc2VtYmxlcjsKICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgbV9q
bXA7CiAgICAgfTsKIApAQCAtMjA2LDE5ICsyMDEsMTkgQEAgcHVibGljOgogICAgIC8vIEFsbCBq
dW1wcyBpbiB0aGUgc2V0IHdpbGwgYmUgbGlua2VkIHRvIHRoZSBzYW1lIGRlc3RpbmF0aW9uLgog
ICAgIGNsYXNzIEp1bXBMaXN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgbGluaygpCisg
ICAgICAgIHZvaWQgbGluayhNYWNyb0Fzc2VtYmxlciogbWFzbSkKICAgICAgICAgewogICAgICAg
ICAgICAgc2l6ZV90IHNpemUgPSBtX2p1bXBzLnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICAgICAgICAgIG1fanVtcHNbaV0ubGlu
aygpOworICAgICAgICAgICAgICAgIG1fanVtcHNbaV0ubGluayhtYXNtKTsKICAgICAgICAgICAg
IG1fanVtcHMuY2xlYXIoKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgdm9pZCBsaW5r
VG8oTGFiZWwgbGFiZWwpCisgICAgICAgIHZvaWQgbGlua1RvKExhYmVsIGxhYmVsLCBNYWNyb0Fz
c2VtYmxlciogbWFzbSkKICAgICAgICAgewogICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBtX2p1
bXBzLnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQotICAgICAgICAgICAgICAgIG1fanVtcHNbaV0ubGlua1RvKGxhYmVsKTsKKyAgICAgICAgICAg
ICAgICBtX2p1bXBzW2ldLmxpbmtUbyhsYWJlbCwgbWFzbSk7CiAgICAgICAgICAgICBtX2p1bXBz
LmNsZWFyKCk7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC01NjMsMjUgKzU1OCwyNSBAQCBwdWJs
aWM6CiAgICAgSnVtcCBqYWUzMihSZWdpc3RlcklEIGxlZnQsIEltbTMyIHJpZ2h0KQogICAgIHsK
ICAgICAgICAgY29tcGFyZUltbTMyRm9yQnJhbmNoKGxlZnQsIHJpZ2h0Lm1fdmFsdWUpOwotICAg
ICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlciwgbV9hc3NlbWJsZXIuamFlKCkpOworICAgICAg
ICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qYWUoKSk7CiAgICAgfQogICAgIAogICAgIEp1bXAg
amUzMihSZWdpc3RlcklEIG9wMSwgUmVnaXN0ZXJJRCBvcDIpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5jbXBsX3JyKG9wMSwgb3AyKTsKLSAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJs
ZXIsIG1fYXNzZW1ibGVyLmplKCkpOworICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5q
ZSgpKTsKICAgICB9CiAgICAgCiAgICAgSnVtcCBqZTMyKFJlZ2lzdGVySUQgb3AxLCBBZGRyZXNz
IG9wMikKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmNtcGxfcm0ob3AxLCBvcDIub2Zmc2V0
LCBvcDIuYmFzZSk7Ci0gICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLCBtX2Fzc2VtYmxl
ci5qZSgpKTsKKyAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuamUoKSk7CiAgICAgfQog
ICAgIAogICAgIEp1bXAgamUzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAg
ICAgICAgY29tcGFyZUltbTMyRm9yQnJhbmNoRXF1YWxpdHkocmVnLCBpbW0ubV92YWx1ZSk7Ci0g
ICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLCBtX2Fzc2VtYmxlci5qZSgpKTsKKyAgICAg
ICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuamUoKSk7CiAgICAgfQogICAgIAogICAgIEp1bXAg
amUxNihSZWdpc3RlcklEIG9wMSwgQmFzZUluZGV4IG9wMikKQEAgLTU5MSw2MyArNTg2LDYzIEBA
IHB1YmxpYzoKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wd19ybShv
cDEsIG9wMi5vZmZzZXQsIG9wMi5iYXNlLCBvcDIuaW5kZXgsIG9wMi5zY2FsZSk7CiAKLSAgICAg
ICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIsIG1fYXNzZW1ibGVyLmplKCkpOworICAgICAgICBy
ZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qZSgpKTsKICAgICB9CiAgICAgCiAgICAgSnVtcCBqZzMy
KFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmNtcGxfcnIocmlnaHQsIGxlZnQpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2Vt
YmxlciwgbV9hc3NlbWJsZXIuamcoKSk7CisgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVy
LmpnKCkpOwogICAgIH0KICAgICAKICAgICBKdW1wIGpnZTMyKFJlZ2lzdGVySUQgbGVmdCwgUmVn
aXN0ZXJJRCByaWdodCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmNtcGxfcnIocmlnaHQs
IGxlZnQpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlciwgbV9hc3NlbWJsZXIuamdl
KCkpOworICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qZ2UoKSk7CiAgICAgfQogCiAg
ICAgSnVtcCBqZ2UzMihSZWdpc3RlcklEIGxlZnQsIEltbTMyIHJpZ2h0KQogICAgIHsKICAgICAg
ICAgY29tcGFyZUltbTMyRm9yQnJhbmNoKGxlZnQsIHJpZ2h0Lm1fdmFsdWUpOwotICAgICAgICBy
ZXR1cm4gSnVtcChtX2Fzc2VtYmxlciwgbV9hc3NlbWJsZXIuamdlKCkpOworICAgICAgICByZXR1
cm4gSnVtcChtX2Fzc2VtYmxlci5qZ2UoKSk7CiAgICAgfQogICAgIAogICAgIEp1bXAgamwzMihS
ZWdpc3RlcklEIGxlZnQsIEltbTMyIHJpZ2h0KQogICAgIHsKICAgICAgICAgY29tcGFyZUltbTMy
Rm9yQnJhbmNoKGxlZnQsIHJpZ2h0Lm1fdmFsdWUpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fz
c2VtYmxlciwgbV9hc3NlbWJsZXIuamwoKSk7CisgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1i
bGVyLmpsKCkpOwogICAgIH0KIAogICAgIEp1bXAgamxlMzIoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdp
c3RlcklEIHJpZ2h0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuY21wbF9ycihyaWdodCwg
bGVmdCk7Ci0gICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLCBtX2Fzc2VtYmxlci5qbGUo
KSk7CisgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmpsZSgpKTsKICAgICB9CiAgICAg
CiAgICAgSnVtcCBqbGUzMihSZWdpc3RlcklEIGxlZnQsIEltbTMyIHJpZ2h0KQogICAgIHsKICAg
ICAgICAgY29tcGFyZUltbTMyRm9yQnJhbmNoKGxlZnQsIHJpZ2h0Lm1fdmFsdWUpOwotICAgICAg
ICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlciwgbV9hc3NlbWJsZXIuamxlKCkpOworICAgICAgICBy
ZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qbGUoKSk7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKFg4
Nl82NCkKICAgICBKdW1wIGpuZVB0cih2b2lkKiBwdHIsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIGNvbXBhcmVJbW0zMkZvckJyYW5jaEVxdWFsaXR5KGFkZHJlc3MsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludDMyX3Q+KHB0cikpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxl
ciwgbV9hc3NlbWJsZXIuam5lKCkpOworICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5q
bmUoKSk7CiAgICAgfQogI2VuZGlmCiAKICAgICBKdW1wIGpuZTMyKFJlZ2lzdGVySUQgb3AxLCBS
ZWdpc3RlcklEIG9wMikKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmNtcGxfcnIob3AxLCBv
cDIpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlciwgbV9hc3NlbWJsZXIuam5lKCkp
OworICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qbmUoKSk7CiAgICAgfQogCiAgICAg
SnVtcCBqbmUzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAgICAgICAgY29t
cGFyZUltbTMyRm9yQnJhbmNoRXF1YWxpdHkocmVnLCBpbW0ubV92YWx1ZSk7Ci0gICAgICAgIHJl
dHVybiBKdW1wKG1fYXNzZW1ibGVyLCBtX2Fzc2VtYmxlci5qbmUoKSk7CisgICAgICAgIHJldHVy
biBKdW1wKG1fYXNzZW1ibGVyLmpuZSgpKTsKICAgICB9CiAKICAgICBKdW1wIGpuc2V0MzIoSW1t
MzIgaW1tLCBSZWdpc3RlcklEIHJlZykKQEAgLTY1Nyw3ICs2NTIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci50ZXN0Yl9pOHIoaW1tLm1fdmFsdWUsIHJlZyk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRlc3RsX2kzMnIoaW1tLm1fdmFsdWUsIHJl
Zyk7Ci0gICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLCBtX2Fzc2VtYmxlci5qZSgpKTsK
KyAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuamUoKSk7CiAgICAgfQogCiAgICAgSnVt
cCBqc2V0MzIoSW1tMzIgaW1tLCBSZWdpc3RlcklEIHJlZykKQEAgLTY2NywxMiArNjYyLDEyIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRlc3RiX2k4cihpbW0ubV92YWx1ZSwg
cmVnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9hc3NlbWJsZXIudGVzdGxfaTMycihp
bW0ubV92YWx1ZSwgcmVnKTsKLSAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIsIG1fYXNz
ZW1ibGVyLmpuZSgpKTsKKyAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuam5lKCkpOwog
ICAgIH0KIAogICAgIEp1bXAganVtcCgpCiAgICAgewotICAgICAgICByZXR1cm4gSnVtcChtX2Fz
c2VtYmxlciwgbV9hc3NlbWJsZXIuam1wKCkpOworICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2Vt
Ymxlci5qbXAoKSk7CiAgICAgfQogCiAKQEAgLTY5OCwzMiArNjkzLDMyIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgamUzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgb3AyLCBMYWJlbCB0YXJnZXQpCiAg
ICAgewotICAgICAgICBqZTMyKGltbSwgb3AyKS5saW5rVG8odGFyZ2V0KTsKKyAgICAgICAgamUz
MihpbW0sIG9wMikubGlua1RvKHRhcmdldCwgdGhpcyk7CiAgICAgfQogCiAgICAgdm9pZCBqZTE2
KFJlZ2lzdGVySUQgb3AxLCBCYXNlSW5kZXggb3AyLCBMYWJlbCB0YXJnZXQpCiAgICAgewotICAg
ICAgICBqZTE2KG9wMSwgb3AyKS5saW5rVG8odGFyZ2V0KTsKKyAgICAgICAgamUxNihvcDEsIG9w
MikubGlua1RvKHRhcmdldCwgdGhpcyk7CiAgICAgfQogICAgIAogICAgIHZvaWQgamwzMihSZWdp
c3RlcklEIGxlZnQsIEltbTMyIHJpZ2h0LCBMYWJlbCB0YXJnZXQpCiAgICAgewotICAgICAgICBq
bDMyKGxlZnQsIHJpZ2h0KS5saW5rVG8odGFyZ2V0KTsKKyAgICAgICAgamwzMihsZWZ0LCByaWdo
dCkubGlua1RvKHRhcmdldCwgdGhpcyk7CiAgICAgfQogICAgIAogICAgIHZvaWQgamxlMzIoUmVn
aXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBMYWJlbCB0YXJnZXQpCiAgICAgewotICAg
ICAgICBqbGUzMihsZWZ0LCByaWdodCkubGlua1RvKHRhcmdldCk7CisgICAgICAgIGpsZTMyKGxl
ZnQsIHJpZ2h0KS5saW5rVG8odGFyZ2V0LCB0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBq
bmUzMihSZWdpc3RlcklEIG9wMSwgUmVnaXN0ZXJJRCBvcDIsIExhYmVsIHRhcmdldCkKICAgICB7
Ci0gICAgICAgIGpuZTMyKG9wMSwgb3AyKS5saW5rVG8odGFyZ2V0KTsKKyAgICAgICAgam5lMzIo
b3AxLCBvcDIpLmxpbmtUbyh0YXJnZXQsIHRoaXMpOwogICAgIH0KIAogICAgIHZvaWQgam5lMzIo
SW1tMzIgaW1tLCBSZWdpc3RlcklEIG9wMiwgTGFiZWwgdGFyZ2V0KQogICAgIHsKLSAgICAgICAg
am5lMzIoaW1tLCBvcDIpLmxpbmtUbyh0YXJnZXQpOworICAgICAgICBqbmUzMihpbW0sIG9wMiku
bGlua1RvKHRhcmdldCwgdGhpcyk7CiAgICAgfQogCiAgICAgdm9pZCBqdW1wKExhYmVsIHRhcmdl
dCkKQEAgLTc0OCwxMyArNzQzLDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnN1YmxfaThyKGltbS5tX3ZhbHVlLCBkZXN0KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc3VibF9pMzJyKGltbS5tX3ZhbHVlLCBkZXN0KTsKLSAgICAgICAgcmV0dXJu
IEp1bXAobV9hc3NlbWJsZXIsIG1fYXNzZW1ibGVyLmplKCkpOworICAgICAgICByZXR1cm4gSnVt
cChtX2Fzc2VtYmxlci5qZSgpKTsKICAgICB9CiAgICAgCiAgICAgSnVtcCBqb0FkZDMyKFJlZ2lz
dGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5h
ZGRsX3JyKHNyYywgZGVzdCk7Ci0gICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLCBtX2Fz
c2VtYmxlci5qbygpKTsKKyAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuam8oKSk7CiAg
ICAgfQogICAgIAogCkBAIC03NjcsMTIgKzc2MiwxMiBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGNh
bGwoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIsIG1fYXNzZW1ibGVy
LmNhbGwoKSk7CisgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmNhbGwoKSk7CiAgICAg
fQogCiAgICAgSnVtcCBjYWxsKFJlZ2lzdGVySUQgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIEp1bXAobV9hc3NlbWJsZXIsIG1fYXNzZW1ibGVyLmNhbGwodGFyZ2V0KSk7CisgICAgICAg
IHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmNhbGwodGFyZ2V0KSk7CiAgICAgfQogCiAgICAgdm9p
ZCByZXQoKQpJbmRleDogd3JlYy9XUkVDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3cmVjL1dSRUMuY3Bw
CShyZXZpc2lvbiAzOTA0MCkKKysrIHdyZWMvV1JFQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDE2ICs2MCwxNiBAQCBDb21waWxlZFJlZ0V4cCBHZW5lcmF0b3I6OmNvbXBpbGVSZWdFeHAoCiAg
ICAgcGFyc2VyLnBhcnNlUGF0dGVybihmYWlsdXJlcyk7CiAgICAgZ2VuZXJhdG9yLmdlbmVyYXRl
UmV0dXJuU3VjY2VzcygpOwogCi0gICAgZmFpbHVyZXMubGluaygpOworICAgIGZhaWx1cmVzLmxp
bmsoJmdlbmVyYXRvcik7CiAgICAgZ2VuZXJhdG9yLmdlbmVyYXRlSW5jcmVtZW50SW5kZXgoJmVu
ZE9mSW5wdXQpOwogICAgIHBhcnNlci5wYXJzZVBhdHRlcm4oZmFpbHVyZXMpOwogICAgIGdlbmVy
YXRvci5nZW5lcmF0ZVJldHVyblN1Y2Nlc3MoKTsKIAotICAgIGZhaWx1cmVzLmxpbmsoKTsKKyAg
ICBmYWlsdXJlcy5saW5rKCZnZW5lcmF0b3IpOwogICAgIGdlbmVyYXRvci5nZW5lcmF0ZUluY3Jl
bWVudEluZGV4KCk7CiAgICAgZ2VuZXJhdG9yLmdlbmVyYXRlSnVtcElmTm90RW5kT2ZJbnB1dChi
ZWdpblBhdHRlcm4pOwogICAgIAotICAgIGVuZE9mSW5wdXQubGluaygpOworICAgIGVuZE9mSW5w
dXQubGluaygmZ2VuZXJhdG9yKTsKICAgICBnZW5lcmF0b3IuZ2VuZXJhdGVSZXR1cm5GYWlsdXJl
KCk7CiAKICAgICBpZiAocGFyc2VyLmVycm9yKCkpIHsKSW5kZXg6IHdyZWMvV1JFQ0dlbmVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gd3JlYy9XUkVDR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMzkw
NDApCisrKyB3cmVjL1dSRUNHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3
Miw3IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZUVudGVyKCkKICAgICAvLyBBU1NFUlQgdGhh
dCB0aGUgb3V0cHV0IHJlZ2lzdGVyIGlzIG5vdCBudWxsLgogICAgIEp1bXAgb3V0cHV0Tm90TnVs
bCA9IGpuZTMyKEltbTMyKDApLCBvdXRwdXQpOwogICAgIGJyZWFrcG9pbnQoKTsKLSAgICBvdXRw
dXROb3ROdWxsLmxpbmsoKTsKKyAgICBvdXRwdXROb3ROdWxsLmxpbmsodGhpcyk7CiAjZW5kaWYK
IH0KIApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2tyZWZl
cmVuY2VRdWEKICAgICBlbHNlCiAgICAgICAgIGdlbmVyYXRlTm9uR3JlZWR5UXVhbnRpZmllcihm
YWlsdXJlcywgZnVuY3RvciwgbWluLCBtYXgpOwogCi0gICAgc2tpcElmRW1wdHkubGluaygpOwor
ICAgIHNraXBJZkVtcHR5LmxpbmsodGhpcyk7CiB9CiAKIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0
ZU5vbkdyZWVkeVF1YW50aWZpZXIoSnVtcExpc3QmIGZhaWx1cmVzLCBHZW5lcmF0ZUF0b21GdW5j
dG9yJiBmdW5jdG9yLCB1bnNpZ25lZCBtaW4sIHVuc2lnbmVkIG1heCkKQEAgLTE4OSwxNyArMTg5
LDE3IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZU5vbkdyZWVkeVF1YW50aWYKICAgICAvLyAo
MS4wKSBUaGlzIGlzIHdoZXJlIHdlIHN0YXJ0LCBpZiB0aGVyZSBpcyBhIG1pbmltdW0gKHRoZW4g
d2UgbXVzdCByZWFkIGF0IGxlYXN0IG9uZSBvZiB0aGUgYXRvbSkuCiAgICAgTGFiZWwgdGVzdFF1
YW50aWZpZWRBdG9tKHRoaXMpOwogICAgIGlmIChtaW4pCi0gICAgICAgIGdvdG9TdGFydC5saW5r
KCk7CisgICAgICAgIGdvdG9TdGFydC5saW5rKHRoaXMpOwogICAgIC8vICgxLjEpIERvIGEgY2hl
Y2sgZm9yIHRoZSBhdG9tIGNoZWNrLgogICAgIGZ1bmN0b3IuZ2VuZXJhdGVBdG9tKHRoaXMsIG5l
d0ZhaWx1cmVzKTsKICAgICAvLyAoMS4yKSBJZiB3ZSBnZXQgaGVyZSwgc3VjY2Vzc2Z1bCBtYXRj
aCEKICAgICBhZGQzMihJbW0zMigxKSwgcmVwZWF0Q291bnQpOwogICAgIC8vICgxLjMpIFdlIG5l
ZWRlZCB0byByZWFkIHRoZSBhdG9tLCBhbmQgd2UgZmFpbGVkIC0gdGhhdCdzIHRlcm1pbmFsbHkg
IGJhZCBuZXdzLgotICAgIG5ld0ZhaWx1cmVzLmxpbmtUbyhxdWFudGlmaWVyRmFpbGVkKTsKKyAg
ICBuZXdGYWlsdXJlcy5saW5rVG8ocXVhbnRpZmllckZhaWxlZCwgdGhpcyk7CiAgICAgLy8gKDEu
NCkgSWYgdGhlcmUgaXMgYSBtaW5pbXVtLCBjaGVjayB3ZSBoYXZlIHJlYWQgZW5vdWdoIC4uLgog
ICAgIC8vIGlmIHRoZXJlIHdhcyBubyBtaW5pbXVtLCB0aGlzIGlzIHdoZXJlIHdlIHN0YXJ0Lgog
ICAgIGlmICghbWluKQotICAgICAgICBnb3RvU3RhcnQubGluaygpOworICAgICAgICBnb3RvU3Rh
cnQubGluayh0aGlzKTsKICAgICAvLyBpZiBtaW4gPiAxIHdlIG5lZWQgdG8ga2VlcCBjaGVja2lu
ZyEKICAgICBlbHNlIGlmIChtaW4gIT0gMSkKICAgICAgICAgamwzMihyZXBlYXRDb3VudCwgSW1t
MzIobWluKSwgdGVzdFF1YW50aWZpZWRBdG9tKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIEdl
bmVyYXRvcjo6Z2VuZXJhdGVOb25HcmVlZHlRdWFudGlmCiAgICAgcG9wKCk7CiAgICAgcG9wKHJl
cGVhdENvdW50KTsKICAgICAvLyAoMi4yKSBsaW5rIGZhaWx1cmUgY2FzZXMgdG8ganVtcCBiYWNr
IHVwIHRvIGFsdGVybmF0aXZlRmFpbGVkLgotICAgIG5ld0ZhaWx1cmVzLmxpbmtUbyhhbHRlcm5h
dGl2ZUZhaWxlZCk7CisgICAgbmV3RmFpbHVyZXMubGlua1RvKGFsdGVybmF0aXZlRmFpbGVkLCB0
aGlzKTsKIH0KIAogdm9pZCBHZW5lcmF0b3I6OmdlbmVyYXRlR3JlZWR5UXVhbnRpZmllcihKdW1w
TGlzdCYgZmFpbHVyZXMsIEdlbmVyYXRlQXRvbUZ1bmN0b3ImIGZ1bmN0b3IsIHVuc2lnbmVkIG1p
biwgdW5zaWduZWQgbWF4KQpAQCAtMjUxLDEyICsyNTEsMTQgQEAgdm9pZCBHZW5lcmF0b3I6Omdl
bmVyYXRlR3JlZWR5UXVhbnRpZmllcgogICAgIHN1YjMyKEltbTMyKDEpLCByZXBlYXRDb3VudCk7
CiAKICAgICAvLyAoMikgVmVyaWZ5IHRoYXQgd2UgaGF2ZSBlbm91Z2ggYXRvbXMuCi0gICAgZG9u
ZVJlYWRpbmdBdG9tcy5saW5rKCk7CisgICAgZG9uZVJlYWRpbmdBdG9tcy5saW5rKHRoaXMpOwog
ICAgIGpsMzIocmVwZWF0Q291bnQsIEltbTMyKG1pbiksIHF1YW50aWZpZXJGYWlsZWQpOwogCiAg
ICAgLy8gKDMpIFRlc3QgdGhlIHJlc3Qgb2YgdGhlIGFsdGVybmF0aXZlLgogICAgIHB1c2goaW5k
ZXgpOwotICAgIG1fcGFyc2VyLnBhcnNlQWx0ZXJuYXRpdmUoYmFja3RyYWNrKTsKKyAgICBKdW1w
TGlzdCBuZXdGYWlsdXJlczsKKyAgICBtX3BhcnNlci5wYXJzZUFsdGVybmF0aXZlKG5ld0ZhaWx1
cmVzKTsKKyAgICBuZXdGYWlsdXJlcy5saW5rVG8oYmFja3RyYWNrLCB0aGlzKTsKIAogICAgIHBv
cCgpOwogICAgIHBvcChyZXBlYXRDb3VudCk7CkBAIC0zNTIsNyArMzU0LDcgQEAgdm9pZCBHZW5l
cmF0b3I6OmdlbmVyYXRlUGF0dGVybkNoYXJhY3RlcgogCiAgICAgaWYgKG1fcGFyc2VyLmlnbm9y
ZUNhc2UoKSAmJiBoYXNVcHBlcikgewogICAgICAgICAvLyBmb3IgdW5pY29kZSBjYXNlIGluc2Vu
c2l0aXZlIG1hdGNoZXMsIGJyYW5jaCBoZXJlIGlmIHVwcGVyIG1hdGNoZXMuCi0gICAgICAgIGlz
VXBwZXIubGluaygpOworICAgICAgICBpc1VwcGVyLmxpbmsodGhpcyk7CiAgICAgfQogICAgIAog
ICAgIC8vIG9uIHN1Y2Nlc3MgY29uc3VtZSB0aGUgY2hhcgpAQCAtMzgyLDE0ICszODQsMTQgQEAg
dm9pZCBHZW5lcmF0b3I6OmdlbmVyYXRlQ2hhcmFjdGVyQ2xhc3NJbgogICAgICAgICAgICAgfSB3
aGlsZSAoKCptYXRjaEluZGV4IDwgbWF0Y2hDb3VudCkgJiYgKG1hdGNoZXNbKm1hdGNoSW5kZXhd
IDwgbG8pKTsKICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChqdW1wKCkpOwogCi0gICAgICAg
ICAgICBsb09yQWJvdmUubGluaygpOworICAgICAgICAgICAgbG9PckFib3ZlLmxpbmsodGhpcyk7
CiAgICAgICAgIH0gZWxzZSBpZiAod2hpY2gpIHsKICAgICAgICAgICAgIEp1bXAgbG9PckFib3Zl
ID0gamdlMzIoY2hhcmFjdGVyLCBJbW0zMigodW5zaWduZWQgc2hvcnQpbG8pKTsKIAogICAgICAg
ICAgICAgZ2VuZXJhdGVDaGFyYWN0ZXJDbGFzc0ludmVydGVkUmFuZ2UoZmFpbHVyZXMsIG1hdGNo
RGVzdCwgcmFuZ2VzLCB3aGljaCwgbWF0Y2hJbmRleCwgbWF0Y2hlcywgbWF0Y2hDb3VudCk7CiAg
ICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQoanVtcCgpKTsKIAotICAgICAgICAgICAgbG9PckFi
b3ZlLmxpbmsoKTsKKyAgICAgICAgICAgIGxvT3JBYm92ZS5saW5rKHRoaXMpOwogICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChqbDMyKGNoYXJhY3RlciwgSW1tMzIo
KHVuc2lnbmVkIHNob3J0KWxvKSkpOwogCkBAIC00MjYsMTIgKzQyOCwxMiBAQCB2b2lkIEdlbmVy
YXRvcjo6Z2VuZXJhdGVDaGFyYWN0ZXJDbGFzc0luCiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgSnVtcCBiZWxvdyA9IGpsMzIoY2hhcmFjdGVyLCBJbW0zMihsbykpOwogICAgICAg
ICAgICAgICAgIG1hdGNoRGVzdC5hcHBlbmQoamxlMzIoY2hhcmFjdGVyLCBJbW0zMihoaSkpKTsK
LSAgICAgICAgICAgICAgICBiZWxvdy5saW5rKCk7CisgICAgICAgICAgICAgICAgYmVsb3cubGlu
ayh0aGlzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHVuaWNvZGVGYWls
ID0ganVtcCgpOwotICAgICAgICBpc0FzY2lpLmxpbmsoKTsKKyAgICAgICAgaXNBc2NpaS5saW5r
KHRoaXMpOwogICAgIH0KIAogICAgIGlmIChjaGFyQ2xhc3MubnVtUmFuZ2VzKSB7CkBAIC00NDEs
NyArNDQzLDcgQEAgdm9pZCBHZW5lcmF0b3I6OmdlbmVyYXRlQ2hhcmFjdGVyQ2xhc3NJbgogICAg
ICAgICB3aGlsZSAobWF0Y2hJbmRleCA8IGNoYXJDbGFzcy5udW1NYXRjaGVzKQogICAgICAgICAg
ICAgbWF0Y2hEZXN0LmFwcGVuZChqZTMyKEltbTMyKCh1bnNpZ25lZCBzaG9ydCljaGFyQ2xhc3Mu
bWF0Y2hlc1ttYXRjaEluZGV4KytdKSwgY2hhcmFjdGVyKSk7CiAKLSAgICAgICAgZmFpbHVyZXMu
bGluaygpOworICAgICAgICBmYWlsdXJlcy5saW5rKHRoaXMpOwogICAgIH0gZWxzZSBpZiAoY2hh
ckNsYXNzLm51bU1hdGNoZXMpIHsKICAgICAgICAgLy8gb3B0aW1pemF0aW9uOiBnYXRoZXIgJ2En
LCdBJyBldGMgYmFjayB0b2dldGhlciwgY2FuIG1hc2sgJiB0ZXN0IG9uY2UuCiAgICAgICAgIFZl
Y3RvcjxjaGFyPiBtYXRjaGVzQVphejsKQEAgLTQ2Nyw3ICs0NjksNyBAQCB2b2lkIEdlbmVyYXRv
cjo6Z2VuZXJhdGVDaGFyYWN0ZXJDbGFzc0luCiAgICAgfQogCiAgICAgaWYgKGNoYXJDbGFzcy5u
dW1NYXRjaGVzVW5pY29kZSB8fCBjaGFyQ2xhc3MubnVtUmFuZ2VzVW5pY29kZSkKLSAgICAgICAg
dW5pY29kZUZhaWwubGluaygpOworICAgICAgICB1bmljb2RlRmFpbC5saW5rKHRoaXMpOwogfQog
CiB2b2lkIEdlbmVyYXRvcjo6Z2VuZXJhdGVDaGFyYWN0ZXJDbGFzcyhKdW1wTGlzdCYgZmFpbHVy
ZXMsIGNvbnN0IENoYXJhY3RlckNsYXNzJiBjaGFyQ2xhc3MsIGJvb2wgaW52ZXJ0KQpAQCAtNDgw
LDcgKzQ4Miw3IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZUNoYXJhY3RlckNsYXNzKEoKICAg
ICAgICAgSnVtcExpc3Qgc3VjY2Vzc2VzOwogICAgICAgICBnZW5lcmF0ZUNoYXJhY3RlckNsYXNz
SW52ZXJ0ZWQoc3VjY2Vzc2VzLCBjaGFyQ2xhc3MpOwogICAgICAgICBmYWlsdXJlcy5hcHBlbmQo
anVtcCgpKTsKLSAgICAgICAgc3VjY2Vzc2VzLmxpbmsoKTsKKyAgICAgICAgc3VjY2Vzc2VzLmxp
bmsodGhpcyk7CiAgICAgfQogICAgIAogICAgIGFkZDMyKEltbTMyKDEpLCBpbmRleCk7CkBAIC00
OTQsMTEgKzQ5NiwxMSBAQCB2b2lkIEdlbmVyYXRvcjo6Z2VuZXJhdGVQYXJlbnRoZXNlc0Fzc2Vy
CiAgICAgbV9wYXJzZXIucGFyc2VEaXNqdW5jdGlvbihkaXNqdW5jdGlvbkZhaWxlZCk7CiAgICAg
SnVtcCBzdWNjZXNzID0ganVtcCgpOwogCi0gICAgZGlzanVuY3Rpb25GYWlsZWQubGluaygpOwor
ICAgIGRpc2p1bmN0aW9uRmFpbGVkLmxpbmsodGhpcyk7CiAgICAgcG9wKGluZGV4KTsKICAgICBm
YWlsdXJlcy5hcHBlbmQoanVtcCgpKTsKIAotICAgIHN1Y2Nlc3MubGluaygpOworICAgIHN1Y2Nl
c3MubGluayh0aGlzKTsKICAgICBwb3AoaW5kZXgpOwogfQogCkBAIC01MTQsMjggKzUxNiwyOCBA
QCB2b2lkIEdlbmVyYXRvcjo6Z2VuZXJhdGVQYXJlbnRoZXNlc0ludmVyCiAgICAgZmFpbHVyZXMu
YXBwZW5kKGp1bXAoKSk7CiAKICAgICAvLyBJZiB0aGUgZGlzanVuY3Rpb24gZmFpbGVkLCB0aGUg
aW52ZXJ0ZWQgYXNzZXJ0aW9uIHN1Y2NlZWRlZC4KLSAgICBkaXNqdW5jdGlvbkZhaWxlZC5saW5r
KCk7CisgICAgZGlzanVuY3Rpb25GYWlsZWQubGluayh0aGlzKTsKICAgICBwb3AoaW5kZXgpOwog
fQogCiB2b2lkIEdlbmVyYXRvcjo6Z2VuZXJhdGVQYXJlbnRoZXNlc05vbkdyZWVkeShKdW1wTGlz
dCYgZmFpbHVyZXMsIExhYmVsIHN0YXJ0LCBKdW1wIHN1Y2Nlc3MsIEp1bXAgZmFpbCkKIHsKICAg
ICBqdW1wKHN0YXJ0KTsKLSAgICBzdWNjZXNzLmxpbmsoKTsKKyAgICBzdWNjZXNzLmxpbmsodGhp
cyk7CiAgICAgZmFpbHVyZXMuYXBwZW5kKGZhaWwpOwogfQogCiBHZW5lcmF0b3I6Okp1bXAgR2Vu
ZXJhdG9yOjpnZW5lcmF0ZVBhcmVudGhlc2VzUmVzZXRUcmFtcG9saW5lKEp1bXBMaXN0JiBuZXdG
YWlsdXJlcywgdW5zaWduZWQgc3VicGF0dGVybklkQmVmb3JlLCB1bnNpZ25lZCBzdWJwYXR0ZXJu
SWRBZnRlcikKIHsKICAgICBKdW1wIHNraXAgPSBqdW1wKCk7Ci0gICAgbmV3RmFpbHVyZXMubGlu
aygpOworICAgIG5ld0ZhaWx1cmVzLmxpbmsodGhpcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
c3VicGF0dGVybklkQmVmb3JlICsgMTsgaSA8PSBzdWJwYXR0ZXJuSWRBZnRlcjsgKytpKSB7CiAg
ICAgICAgIHN0b3JlMzIoSW1tMzIoLTEpLCBBZGRyZXNzKG91dHB1dCwgKDIgKiBpKSAqIHNpemVv
ZihpbnQpKSk7CiAgICAgICAgIHN0b3JlMzIoSW1tMzIoLTEpLCBBZGRyZXNzKG91dHB1dCwgKDIg
KiBpICsgMSkgKiBzaXplb2YoaW50KSkpOwogICAgIH0KICAgICAKICAgICBKdW1wIG5ld0ZhaWxK
dW1wID0ganVtcCgpOwotICAgIHNraXAubGluaygpOworICAgIHNraXAubGluayh0aGlzKTsKICAg
ICAKICAgICByZXR1cm4gbmV3RmFpbEp1bXA7CiB9CkBAIC01NTQsNyArNTU2LDcgQEAgdm9pZCBH
ZW5lcmF0b3I6OmdlbmVyYXRlQXNzZXJ0aW9uQk9MKEp1bQogCiAgICAgICAgIGZhaWx1cmVzLmFw
cGVuZChqdW1wKCkpOwogCi0gICAgICAgIHByZXZpb3VzSXNOZXdsaW5lLmxpbmsoKTsKKyAgICAg
ICAgcHJldmlvdXNJc05ld2xpbmUubGluayh0aGlzKTsKICAgICB9IGVsc2UKICAgICAgICAgZmFp
bHVyZXMuYXBwZW5kKGpuZTMyKEltbTMyKDApLCBpbmRleCkpOwogfQpAQCAtNTY3LDcgKzU2OSw3
IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZUFzc2VydGlvbkVPTChKdW0KICAgICAgICAgZ2Vu
ZXJhdGVMb2FkQ2hhcmFjdGVyKG5leHRJc05ld2xpbmUpOyAvLyBlbmQgb2YgaW5wdXQgPT0gc3Vj
Y2VzcwogICAgICAgICBnZW5lcmF0ZUNoYXJhY3RlckNsYXNzSW52ZXJ0ZWQobmV4dElzTmV3bGlu
ZSwgQ2hhcmFjdGVyQ2xhc3M6Om5ld2xpbmUoKSk7CiAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChq
dW1wKCkpOwotICAgICAgICBuZXh0SXNOZXdsaW5lLmxpbmsoKTsKKyAgICAgICAgbmV4dElzTmV3
bGluZS5saW5rKHRoaXMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChq
bmUzMihsZW5ndGgsIGluZGV4KSk7CiAgICAgfQpAQCAtNTg3LDcgKzU4OSw3IEBAIHZvaWQgR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUFzc2VydGlvbldvcmRCb3UKICAgICBKdW1wTGlzdCBwcmV2aW91c0lz
V29yZDsKICAgICBnZW5lcmF0ZUNoYXJhY3RlckNsYXNzSW52ZXJ0ZWQocHJldmlvdXNJc1dvcmQs
IENoYXJhY3RlckNsYXNzOjp3b3JkY2hhcigpKTsKICAgICAvLyAoMS4zKSBpZiB3ZSBnZXQgaGVy
ZSwgcHJldmlvdXMgaXMgbm90IGEgd29yZCBjaGFyCi0gICAgYXRCZWdpbi5saW5rKCk7CisgICAg
YXRCZWdpbi5saW5rKHRoaXMpOwogCiAgICAgLy8gKDIpIEhhbmRsZSBzaXR1YXRpb24gd2hlcmUg
cHJldmlvdXMgd2FzIE5PVCBhIFx3CiAKQEAgLTU5OSw3ICs2MDEsNyBAQCB2b2lkIEdlbmVyYXRv
cjo6Z2VuZXJhdGVBc3NlcnRpb25Xb3JkQm91CiAgICAgLy8gKDMpIEhhbmRsZSBzaXR1YXRpb24g
d2hlcmUgcHJldmlvdXMgd2FzIGEgXHcKIAogICAgIC8vICgzLjApIGxpbmsgc3VjY2VzcyBpbiBm
aXJzdCBtYXRjaCB0byBoZXJlCi0gICAgcHJldmlvdXNJc1dvcmQubGluaygpOworICAgIHByZXZp
b3VzSXNXb3JkLmxpbmsodGhpcyk7CiAgICAgZ2VuZXJhdGVMb2FkQ2hhcmFjdGVyKHdvcmRCb3Vu
ZGFyeSk7CiAgICAgZ2VuZXJhdGVDaGFyYWN0ZXJDbGFzc0ludmVydGVkKG5vdFdvcmRCb3VuZGFy
eSwgQ2hhcmFjdGVyQ2xhc3M6OndvcmRjaGFyKCkpOwogICAgIC8vICgzLjEpIElmIHdlIGdldCBo
ZXJlLCB0aGlzIGlzIGFuIGVuZCBvZiBhIHdvcmQsIHdpdGhpbiB0aGUgaW5wdXQuCkBAIC02MTEs
MTIgKzYxMywxMiBAQCB2b2lkIEdlbmVyYXRvcjo6Z2VuZXJhdGVBc3NlcnRpb25Xb3JkQm91CiAg
ICAgICAgIHdvcmRCb3VuZGFyeS5hcHBlbmQoanVtcCgpKTsKICAgICAKICAgICAgICAgLy8gbG9v
a2luZyBmb3Igbm9uIHdvcmQgYm91bmRhcmllcywgc28gbGluayBib3VuZGFyeSBmYWlscyB0byBo
ZXJlLgotICAgICAgICBub3RXb3JkQm91bmRhcnkubGluaygpOworICAgICAgICBub3RXb3JkQm91
bmRhcnkubGluayh0aGlzKTsKIAogICAgICAgICBmYWlsdXJlcy5hcHBlbmQod29yZEJvdW5kYXJ5
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBsb29raW5nIGZvciB3b3JkIGJvdW5kYXJpZXMs
IHNvIGxpbmsgc3VjY2Vzc2VzIGhlcmUuCi0gICAgICAgIHdvcmRCb3VuZGFyeS5saW5rKCk7Cisg
ICAgICAgIHdvcmRCb3VuZGFyeS5saW5rKHRoaXMpOwogICAgICAgICAKICAgICAgICAgZmFpbHVy
ZXMuYXBwZW5kKG5vdFdvcmRCb3VuZGFyeSk7CiAgICAgfQpAQCAtNjM1LDcgKzYzNyw3IEBAIHZv
aWQgR2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2tyZWZlcmVuY2UoSnUKIAogICAgIGFkZDMyKEltbTMy
KDEpLCBpbmRleCk7CiAgICAgYWRkMzIoSW1tMzIoMSksIHJlcGVhdENvdW50KTsKLSAgICBza2lw
SW5jcmVtZW50LmxpbmsoKTsKKyAgICBza2lwSW5jcmVtZW50LmxpbmsodGhpcyk7CiAKICAgICAv
LyBjaGVjayBpZiB3ZSdyZSBhdCB0aGUgZW5kIG9mIGJhY2tyZWYgKGlmIHdlIGFyZSwgc3VjY2Vz
cyEpCiAgICAgSnVtcCBlbmRPZkJhY2tSZWYgPSBqZTMyKHJlcGVhdENvdW50LCBBZGRyZXNzKG91
dHB1dCwgKCgyICogc3VicGF0dGVybklkKSArIDEpICogc2l6ZW9mKGludCkpKTsKQEAgLTY0Nyw3
ICs2NDksNyBAQCB2b2lkIEdlbmVyYXRvcjo6Z2VuZXJhdGVCYWNrcmVmZXJlbmNlKEp1CiAKICAg
ICBqZTE2KGNoYXJhY3RlciwgQmFzZUluZGV4KGlucHV0LCBpbmRleCwgVGltZXNUd28pLCB0b3BP
Zkxvb3ApOwogICAgIAotICAgIGVuZE9mSW5wdXQubGluaygpOworICAgIGVuZE9mSW5wdXQubGlu
ayh0aGlzKTsKIAogICAgIC8vIEZhaWx1cmUKICAgICBwb3AocmVwZWF0Q291bnQpOwpAQCAtNjU1
LDcgKzY1Nyw3IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2tyZWZlcmVuY2UoSnUKICAg
ICBmYWlsdXJlcy5hcHBlbmQoanVtcCgpKTsKICAgICAKICAgICAvLyBTdWNjZXNzCi0gICAgZW5k
T2ZCYWNrUmVmLmxpbmsoKTsKKyAgICBlbmRPZkJhY2tSZWYubGluayh0aGlzKTsKICAgICBwb3Ao
cmVwZWF0Q291bnQpOwogICAgIHBvcCgpOwogfQpAQCAtNjY0LDEzICs2NjYsMTMgQEAgdm9pZCBH
ZW5lcmF0b3I6OnRlcm1pbmF0ZUFsdGVybmF0aXZlKEp1bQogewogICAgIHN1Y2Nlc3Nlcy5hcHBl
bmQoanVtcCgpKTsKICAgICAKLSAgICBmYWlsdXJlcy5saW5rKCk7CisgICAgZmFpbHVyZXMubGlu
ayh0aGlzKTsKICAgICBwZWVrKGluZGV4KTsKIH0KIAogdm9pZCBHZW5lcmF0b3I6OnRlcm1pbmF0
ZURpc2p1bmN0aW9uKEp1bXBMaXN0JiBzdWNjZXNzZXMpCiB7Ci0gICAgc3VjY2Vzc2VzLmxpbmso
KTsKKyAgICBzdWNjZXNzZXMubGluayh0aGlzKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OldSRUMKSW5kZXg6IHdyZWMvV1JFQ1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdyZWMvV1JFQ1Bh
cnNlci5oCShyZXZpc2lvbiAzOTA0MCkKKysrIHdyZWMvV1JFQ1BhcnNlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCwxMyArOTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdSRUMgewog
ICAgICAgICAgICAgd2hpbGUgKHBhcnNlVGVybShmYWlsdXJlcykpIHsgfQogICAgICAgICB9CiAK
LSAgICAgICAgdm9pZCBwYXJzZUFsdGVybmF0aXZlKE1hY3JvQXNzZW1ibGVyOjpMYWJlbCYgbGFi
ZWwpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEp1bXBMaXN0IGZhaWx1cmVzOwotICAgICAgICAg
ICAgcGFyc2VBbHRlcm5hdGl2ZShmYWlsdXJlcyk7Ci0gICAgICAgICAgICBmYWlsdXJlcy5saW5r
VG8obGFiZWwpOwotICAgICAgICB9Ci0KICAgICAgICAgdm9pZCBwYXJzZURpc2p1bmN0aW9uKEp1
bXBMaXN0JiBmYWlsdXJlcyk7CiAgICAgICAgIGJvb2wgcGFyc2VUZXJtKEp1bXBMaXN0JiBmYWls
dXJlcyk7CiAgICAgICAgIGJvb2wgcGFyc2VFc2NhcGUoSnVtcExpc3QmIGZhaWx1cmVzLCBjb25z
dCBFc2NhcGUmKTsK
</data>
<flag name="review"
          id="12072"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>