<?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>64114</bug_id>
          
          <creation_ts>2011-07-07 11:42:21 -0700</creation_ts>
          <short_desc>Switch addFocusRingRects to to new layout types</short_desc>
          <delta_ts>2011-07-07 14:16:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (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>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433626</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-07 11:42:21 -0700</bug_when>
    <thetext>Convert addFocusRingRects to new layout abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433642</commentid>
    <comment_count>1</comment_count>
      <attachid>100016</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-07 12:08:33 -0700</bug_when>
    <thetext>Created attachment 100016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433646</commentid>
    <comment_count>2</comment_count>
      <attachid>100016</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-07 12:16:00 -0700</bug_when>
    <thetext>Comment on attachment 100016
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433698</commentid>
    <comment_count>3</comment_count>
      <attachid>100016</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-07 14:16:29 -0700</bug_when>
    <thetext>Comment on attachment 100016
Patch

Clearing flags on attachment: 100016

Committed r90590: &lt;http://trac.webkit.org/changeset/90590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433699</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-07 14:16:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100016</attachid>
            <date>2011-07-07 12:08:33 -0700</date>
            <delta_ts>2011-07-07 14:16:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64114-20110707120832.patch</filename>
            <type>text/plain</type>
            <size>18190</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNTgzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDctMDcgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBhZGRGb2N1c1JpbmdS
ZWN0cyB0byB0byBuZXcgbGF5b3V0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2Vz
LgorCisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFR5cGVzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpmbG9vcmVkTGF5b3V0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjphZGRGb2N1c1JpbmdS
ZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjph
ZGRGb2N1c1JpbmdSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RCb3g6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWRkRm9jdXNSaW5nUmVjdHMpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbDo6YWRkRm9jdXNSaW5nUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Q29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6YWRk
Rm9jdXNSaW5nUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFp
bmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6YWRkRm9jdXNSaW5nUmVjdHMpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1BhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUGF0aDo6
YWRkRm9jdXNSaW5nUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0
aC5oOgorCiAyMDExLTA3LTA3ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgUm9iIEJ1aXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0VHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGF5b3V0VHlwZXMuaAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0VHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgaW5saW5l
IExheW91dFBvaW50IGZsb29yZWRMYXlvdXRQb2ludChjbwogICAgIHJldHVybiBmbG9vcmVkSW50
UG9pbnQocCk7CiB9CiAKK2lubGluZSBMYXlvdXRQb2ludCBmbG9vcmVkTGF5b3V0UG9pbnQoY29u
c3QgRmxvYXRTaXplJiBzKQoreworICAgIHJldHVybiBmbG9vcmVkSW50UG9pbnQocyk7Cit9CisK
IGlubGluZSBMYXlvdXRVbml0IHJvdW5kZWRMYXlvdXRVbml0KGZsb2F0IHZhbHVlKQogewogICAg
IHJldHVybiBscm91bmRmKHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODg0LDcgKzU4ODQsNyBAQCBJ
bnRSZWN0IFJlbmRlckJsb2NrOjpsb2NhbENhcmV0UmVjdChJbmxpCiAgICAgcmV0dXJuIEludFJl
Y3QoeCwgeSwgY2FyZXRXaWR0aCwgaGVpZ2h0KTsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6YWRk
Rm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgSW50UG9pbnQmIGFk
ZGl0aW9uYWxPZmZzZXQpCit2b2lkIFJlbmRlckJsb2NrOjphZGRGb2N1c1JpbmdSZWN0cyhWZWN0
b3I8TGF5b3V0UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNl
dCkKIHsKICAgICAvLyBGb3IgYmxvY2tzIGluc2lkZSBpbmxpbmVzLCB3ZSBnbyBhaGVhZCBhbmQg
aW5jbHVkZSBtYXJnaW5zIHNvIHRoYXQgd2UgcnVuIHJpZ2h0IHVwIHRvIHRoZQogICAgIC8vIGlu
bGluZSBib3hlcyBhYm92ZSBhbmQgYmVsb3cgdXMgKHRodXMgZ2V0dGluZyBtZXJnZWQgd2l0aCB0
aGVtIHRvIGZvcm0gYSBzaW5nbGUgaXJyZWd1bGFyCkBAIC01ODk2LDE5ICs1ODk2LDE5IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3QKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCiAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQogICAg
ICAgICBib29sIHByZXZJbmxpbmVIYXNMaW5lQm94ID0gdG9SZW5kZXJJbmxpbmUoaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpLT5ub2RlKCktPnJlbmRlcmVyKCkpLT5maXJzdExpbmVCb3goKTsg
Ci0gICAgICAgIGludCB0b3BNYXJnaW4gPSBwcmV2SW5saW5lSGFzTGluZUJveCA/IGNvbGxhcHNl
ZE1hcmdpbkJlZm9yZSgpIDogMDsKLSAgICAgICAgaW50IGJvdHRvbU1hcmdpbiA9IG5leHRJbmxp
bmVIYXNMaW5lQm94ID8gY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSA6IDA7Ci0gICAgICAgIEludFJl
Y3QgcmVjdChhZGRpdGlvbmFsT2Zmc2V0LngoKSwgYWRkaXRpb25hbE9mZnNldC55KCkgLSB0b3BN
YXJnaW4sIHdpZHRoKCksIGhlaWdodCgpICsgdG9wTWFyZ2luICsgYm90dG9tTWFyZ2luKTsKKyAg
ICAgICAgZmxvYXQgdG9wTWFyZ2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUoKSA6IHN0YXRpY19jYXN0PExheW91dFVuaXQ+KDApOworICAgICAgICBmbG9h
dCBib3R0b21NYXJnaW4gPSBuZXh0SW5saW5lSGFzTGluZUJveCA/IGNvbGxhcHNlZE1hcmdpbkFm
dGVyKCkgOiBzdGF0aWNfY2FzdDxMYXlvdXRVbml0PigwKTsKKyAgICAgICAgTGF5b3V0UmVjdCBy
ZWN0KGFkZGl0aW9uYWxPZmZzZXQueCgpLCBhZGRpdGlvbmFsT2Zmc2V0LnkoKSAtIHRvcE1hcmdp
biwgd2lkdGgoKSwgaGVpZ2h0KCkgKyB0b3BNYXJnaW4gKyBib3R0b21NYXJnaW4pOwogICAgICAg
ICBpZiAoIXJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVjdHMuYXBwZW5kKHJlY3QpOwog
ICAgIH0gZWxzZSBpZiAod2lkdGgoKSAmJiBoZWlnaHQoKSkKLSAgICAgICAgcmVjdHMuYXBwZW5k
KEludFJlY3QoYWRkaXRpb25hbE9mZnNldCwgc2l6ZSgpKSk7CisgICAgICAgIHJlY3RzLmFwcGVu
ZChMYXlvdXRSZWN0KGFkZGl0aW9uYWxPZmZzZXQsIHNpemUoKSkpOwogCiAgICAgaWYgKCFoYXNP
dmVyZmxvd0NsaXAoKSAmJiAhaGFzQ29udHJvbENsaXAoKSkgewogICAgICAgICBmb3IgKFJvb3RJ
bmxpbmVCb3gqIGN1cnIgPSBmaXJzdFJvb3RCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRS
b290Qm94KCkpIHsKLSAgICAgICAgICAgIGludCB0b3AgPSBtYXgoY3Vyci0+bGluZVRvcCgpLCBj
dXJyLT5sb2dpY2FsVG9wKCkpOwotICAgICAgICAgICAgaW50IGJvdHRvbSA9IG1pbihjdXJyLT5s
aW5lQm90dG9tKCksIGN1cnItPmxvZ2ljYWxUb3AoKSArIGN1cnItPmxvZ2ljYWxIZWlnaHQoKSk7
Ci0gICAgICAgICAgICBJbnRSZWN0IHJlY3QoYWRkaXRpb25hbE9mZnNldC54KCkgKyBjdXJyLT54
KCksIGFkZGl0aW9uYWxPZmZzZXQueSgpICsgdG9wLCBjdXJyLT5sb2dpY2FsV2lkdGgoKSwgYm90
dG9tIC0gdG9wKTsKKyAgICAgICAgICAgIExheW91dFVuaXQgdG9wID0gbWF4KGN1cnItPmxpbmVU
b3AoKSwgY3Vyci0+bG9naWNhbFRvcCgpKTsKKyAgICAgICAgICAgIExheW91dFVuaXQgYm90dG9t
ID0gbWluKGN1cnItPmxpbmVCb3R0b20oKSwgY3Vyci0+bG9naWNhbFRvcCgpICsgY3Vyci0+bG9n
aWNhbEhlaWdodCgpKTsKKyAgICAgICAgICAgIExheW91dFJlY3QgcmVjdChhZGRpdGlvbmFsT2Zm
c2V0LngoKSArIGN1cnItPngoKSwgYWRkaXRpb25hbE9mZnNldC55KCkgKyB0b3AsIGN1cnItPmxv
Z2ljYWxXaWR0aCgpLCBib3R0b20gLSB0b3ApOwogICAgICAgICAgICAgaWYgKCFyZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICByZWN0cy5hcHBlbmQocmVjdCk7CiAgICAgICAgIH0KQEAg
LTU5MjgsNyArNTkyOCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKFZl
Y3QKICAgICB9CiAKICAgICBpZiAoaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpKQotICAgICAg
ICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBm
bG9vcmVkSW50UG9pbnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51YXRp
b24oKS0+Y29udGFpbmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSk7CisgICAg
ICAgIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+YWRkRm9jdXNSaW5nUmVjdHMocmVjdHMs
IGZsb29yZWRMYXlvdXRQb2ludChhZGRpdGlvbmFsT2Zmc2V0ICsgaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpLT5jb250YWluaW5nQmxvY2soKS0+bG9jYXRpb24oKSAtIGxvY2F0aW9uKCkpKTsK
IH0KIAogUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXNCbG9jayhib29s
IGlzRmxleGlibGVCb3gpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzM2LDcgKzMzNiw3IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGFkZE92ZXJmbG93RnJvbUJsb2NrQ2hpbGRyZW4oKTsKICAgICB2b2lkIGFkZE92
ZXJmbG93RnJvbUlubGluZUNoaWxkcmVuKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNS
aW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0
UG9pbnQmKTsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAgLy8gT25seSB1c2VkIGJ5IFJlbmRlclNW
R1RleHQsIHdoaWNoIGV4cGxpY2l0ZWx5IG92ZXJyaWRlcyBSZW5kZXJCbG9jazo6bGF5b3V0Qmxv
Y2soKSwgZG8gTk9UIHVzZSBmb3IgYW55dGhpbmcgZWxzZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiA5MDU3NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTAsMTAgKzUxMCwx
MCBAQCBJbnRSZWN0IFJlbmRlckJveDo6b3V0bGluZUJvdW5kc0ZvclJlcGFpCiAgICAgcmV0dXJu
IGJveDsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMsIGNvbnN0IEludFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0KQordm9pZCBSZW5k
ZXJCb3g6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjdHMsIGNvbnN0
IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0KQogewogICAgIGlmICghc2l6ZSgpLmlzRW1w
dHkoKSkKLSAgICAgICAgcmVjdHMuYXBwZW5kKEludFJlY3QoYWRkaXRpb25hbE9mZnNldCwgc2l6
ZSgpKSk7CisgICAgICAgIHJlY3RzLmFwcGVuZChMYXlvdXRSZWN0KGFkZGl0aW9uYWxPZmZzZXQs
IHNpemUoKSkpOwogfQogCiBJbnRSZWN0IFJlbmRlckJveDo6cmVmbGVjdGlvbkJveCgpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiA5MDU3NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpA
QCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEJvdW5kcyBvZiB0aGUgb3V0bGlu
ZSBib3ggaW4gYWJzb2x1dGUgY29vcmRzLiBSZXNwZWN0cyB0cmFuc2Zvcm1zCiAgICAgdmlydHVh
bCBJbnRSZWN0IG91dGxpbmVCb3VuZHNGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiAv
KnJlcGFpbnRDb250YWluZXIqLywgSW50UG9pbnQqIGNhY2hlZE9mZnNldFRvUmVwYWludENvbnRh
aW5lcikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJ
bnRSZWN0PiYsIGNvbnN0IEludFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmlu
Z1JlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKICAgICAv
LyBVc2UgdGhpcyB3aXRoIGNhdXRpb24hIE5vIHR5cGUgY2hlY2tpbmcgaXMgZG9uZSEKICAgICBS
ZW5kZXJCb3gqIHByZXZpb3VzU2libGluZ0JveCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDkwNTc0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
MzQsMTMgKzEzMzQsMTMgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmltYWdlQ2hhbmdlZChXcmFwcGVk
SQogICAgIHJlcGFpbnQoKTsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6OmFkZEZvY3VzUmluZ1Jl
Y3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IEludFBvaW50JiBhZGRpdGlvbmFsT2Zm
c2V0KQordm9pZCBSZW5kZXJJbmxpbmU6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlvdXRS
ZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0KQogewogICAg
IGlmICghYWx3YXlzQ3JlYXRlTGluZUJveGVzKCkpCi0gICAgICAgIGN1bGxlZElubGluZUFic29s
dXRlUmVjdHModGhpcywgcmVjdHMsIHRvU2l6ZShhZGRpdGlvbmFsT2Zmc2V0KSk7CisgICAgICAg
IGN1bGxlZElubGluZUFic29sdXRlUmVjdHModGhpcywgcmVjdHMsIHRvTGF5b3V0U2l6ZShhZGRp
dGlvbmFsT2Zmc2V0KSk7CiAgICAgZWxzZSB7CiAgICAgICAgIGZvciAoSW5saW5lRmxvd0JveCog
Y3VyciA9IGZpcnN0TGluZUJveCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dExpbmVCb3goKSkK
LSAgICAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChhZGRp
dGlvbmFsT2Zmc2V0LngoKSArIGN1cnItPngoKSwgYWRkaXRpb25hbE9mZnNldC55KCkgKyBjdXJy
LT55KCksIGN1cnItPndpZHRoKCksIGN1cnItPmhlaWdodCgpKSkpOworICAgICAgICAgICAgcmVj
dHMuYXBwZW5kKGVuY2xvc2luZ0xheW91dFJlY3QoRmxvYXRSZWN0KGFkZGl0aW9uYWxPZmZzZXQu
eCgpICsgY3Vyci0+eCgpLCBhZGRpdGlvbmFsT2Zmc2V0LnkoKSArIGN1cnItPnkoKSwgY3Vyci0+
d2lkdGgoKSwgY3Vyci0+aGVpZ2h0KCkpKSk7CiAgICAgfQogCiAgICAgZm9yIChSZW5kZXJPYmpl
Y3QqIGN1cnIgPSBmaXJzdENoaWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0U2libGluZygp
KSB7CkBAIC0xMzU3LDkgKzEzNTcsOSBAQCB2b2lkIFJlbmRlcklubGluZTo6YWRkRm9jdXNSaW5n
UmVjdHMoVmVjCiAKICAgICBpZiAoY29udGludWF0aW9uKCkpIHsKICAgICAgICAgaWYgKGNvbnRp
bnVhdGlvbigpLT5pc0lubGluZSgpKQotICAgICAgICAgICAgY29udGludWF0aW9uKCktPmFkZEZv
Y3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkSW50UG9pbnQoYWRkaXRpb25hbE9mZnNldCArIGNv
bnRpbnVhdGlvbigpLT5jb250YWluaW5nQmxvY2soKS0+bG9jYXRpb24oKSAtIGNvbnRhaW5pbmdC
bG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgICAgICBjb250aW51YXRpb24oKS0+YWRkRm9j
dXNSaW5nUmVjdHMocmVjdHMsIGZsb29yZWRMYXlvdXRQb2ludChhZGRpdGlvbmFsT2Zmc2V0ICsg
Y29udGludWF0aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpIC0gY29udGFpbmlu
Z0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgY29udGlu
dWF0aW9uKCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkSW50UG9pbnQoYWRkaXRp
b25hbE9mZnNldCArIHRvUmVuZGVyQm94KGNvbnRpbnVhdGlvbigpKS0+bG9jYXRpb24oKSAtIGNv
bnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgICAgICBjb250aW51YXRpb24o
KS0+YWRkRm9jdXNSaW5nUmVjdHMocmVjdHMsIGZsb29yZWRMYXlvdXRQb2ludChhZGRpdGlvbmFs
T2Zmc2V0ICsgdG9SZW5kZXJCb3goY29udGludWF0aW9uKCkpLT5sb2NhdGlvbigpIC0gY29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHJldmlzaW9uIDkwNTc0KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3
NSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBMYXlvdXRTaXplIHJlbGF0aXZlUG9zaXRpb25lZElu
bGluZU9mZnNldChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKIAotICAgIHZpcnR1YWwg
dm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBJbnRQb2ludCYp
OworICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZvaWQgcGFpbnRPdXRsaW5lKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFBvaW50Jik7CiAKICAgICB1c2luZyBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Y29udGludWF0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lk
IFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KFBhaW50SW5mCiAgICAgfQogfQogCi12b2lkIFJl
bmRlckxpc3RCb3g6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNv
bnN0IEludFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0KQordm9pZCBSZW5kZXJMaXN0Qm94OjphZGRG
b2N1c1JpbmdSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWRkaXRpb25hbE9mZnNldCkKIHsKICAgICBpZiAoIWlzU3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkKGZyYW1lKCkpKQogICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1Jl
Y3RzKHJlY3RzLCBhZGRpdGlvbmFsT2Zmc2V0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgSW50UG9pbnQmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+Jiwg
Y29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVByb2dyYW1hdGlj
YWxseVNjcm9sbGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBh
dXRvc2Nyb2xsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CShyZXZpc2lvbiA5MDU3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzc3LDcgKzc3Nyw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250
YWluZXIpIGNvbnN0OwogICAgIHZvaWQgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb25zdCBS
ZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgY29uc3QgSW50U2l6ZSYgb2Zmc2V0SW5Db250YWluZXIs
IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3Q7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFk
ZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IEludFBvaW50JikgeyB9Owor
ICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4mLCBj
b25zdCBMYXlvdXRQb2ludCYpIHsgfTsKIAogICAgIEludFJlY3QgYWJzb2x1dGVPdXRsaW5lQm91
bmRzKCkgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDkwNTc0KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgzLDEw
ICs1ODMsMTAgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6c2VsZWN0aW9uQ2hhbmdlZAogICAg
IH0KIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9y
PEludFJlY3Q+JiByZWN0cywgY29uc3QgSW50UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQpCit2b2lk
IFJlbmRlclRleHRDb250cm9sOjphZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8TGF5b3V0UmVjdD4m
IHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCkKIHsKICAgICBpZiAo
IXNpemUoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJlY3RzLmFwcGVuZChJbnRSZWN0KGFkZGl0aW9u
YWxPZmZzZXQsIHNpemUoKSkpOworICAgICAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdChhZGRp
dGlvbmFsT2Zmc2V0LCBzaXplKCkpKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6dXBk
YXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KGJvb2wgcGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGUs
IGJvb2wgcGxhY2Vob2xkZXJWYWx1ZUNoYW5nZWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAkod29ya2luZyBjb3B5KQpAQCAt
OTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZEZv
Y3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IEludFBvaW50Jik7CisgICAgdmly
dHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYsIGNvbnN0IExh
eW91dFBvaW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVQcm9ncmFtYXRpY2FsbHlTY3Jv
bGxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAkocmV2aXNpb24gOTA1
NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw5ICsxMzksOSBAQCB2b2lkIFJlbmRlclNWR0NvbnRh
aW5lcjo6cGFpbnQoUGFpbnRJbmZvCiB9CiAKIC8vIGFkZEZvY3VzUmluZ1JlY3RzIGlzIGNhbGxl
ZCBmcm9tIHBhaW50T3V0bGluZSBhbmQgbmVlZHMgdG8gYmUgaW4gdGhlIHNhbWUgY29vcmRpbmF0
ZXMgYXMgdGhlIHBhaW50T3VsaW5lIGNhbGwKLXZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjphZGRG
b2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBJbnRQb2ludCYpCit2
b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJl
Y3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmKQogewotICAgIEludFJlY3QgcGFpbnRSZWN0
SW5QYXJlbnQgPSBlbmNsb3NpbmdJbnRSZWN0KGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBS
ZWN0KHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpKTsKKyAgICBMYXlvdXRSZWN0IHBh
aW50UmVjdEluUGFyZW50ID0gZW5jbG9zaW5nTGF5b3V0UmVjdChsb2NhbFRvUGFyZW50VHJhbnNm
b3JtKCkubWFwUmVjdChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKSk7CiAgICAgaWYg
KCFwYWludFJlY3RJblBhcmVudC5pc0VtcHR5KCkpCiAgICAgICAgIHJlY3RzLmFwcGVuZChwYWlu
dFJlY3RJblBhcmVudCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0NvbnRhaW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgJKHJldmlzaW9uIDkwNTc0KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+Jiwg
Y29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVj
dG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIHZpcnR1YWwgRmxv
YXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RCb3VuZGlu
Z0JveDsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Qg
eyByZXR1cm4gbV9zdHJva2VCb3VuZGluZ0JveDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAJKHJldmlzaW9uIDkwNTc0KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3OSwxMCArMTc5LDEwIEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmltYWdlQ2hh
bmdlZChXcmFwcGUKICAgICByZXBhaW50KCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmFk
ZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IEludFBvaW50JikK
K3ZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlvdXRSZWN0
PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JikKIHsKICAgICAvLyB0aGlzIGlzIGNhbGxlZCBm
cm9tIHBhaW50KCkgYWZ0ZXIgdGhlIGxvY2FsVHJhbnNmb3JtIGhhcyBhbHJlYWR5IGJlZW4gYXBw
bGllZAotICAgIEludFJlY3QgY29udGVudFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHJlcGFpbnRS
ZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpOworICAgIExheW91dFJlY3QgY29udGVudFJlY3QgPSBl
bmNsb3NpbmdMYXlvdXRSZWN0KHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpOwogICAg
IGlmICghY29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZWN0cy5hcHBlbmQoY29udGVu
dFJlY3QpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW1hZ2UuaAkocmV2aXNpb24gOTA1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0ltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IHsg
cmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBh
aW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5k
aW5nQm94OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPElu
dFJlY3Q+JiwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5n
UmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9
IDApOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UGF0aC5jcHAJKHJldmlzaW9uIDkwNTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDkgKzIzNiw5IEBAIHZv
aWQgUmVuZGVyU1ZHUGF0aDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKIAogLy8gVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIGZyb20gaW5zaWRlIHBhaW50T3V0bGluZSgpIHNpbmNlIHdlIGNhbGwgcGFpbnRP
dXRsaW5lKCkKIC8vIHdoaWxlIHRyYW5zZm9ybWVkIHRvIG91ciBjb29yZCBzeXN0ZW0sIHJldHVy
biBsb2NhbCBjb29yZHMKLXZvaWQgUmVuZGVyU1ZHUGF0aDo6YWRkRm9jdXNSaW5nUmVjdHMoVmVj
dG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgSW50UG9pbnQmKSAKK3ZvaWQgUmVuZGVyU1ZHUGF0
aDo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiByZWN0cywgY29uc3QgTGF5
b3V0UG9pbnQmKSAKIHsKLSAgICBJbnRSZWN0IHJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHJlcGFp
bnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpOworICAgIExheW91dFJlY3QgcmVjdCA9IGVuY2xv
c2luZ0xheW91dFJlY3QocmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSk7CiAgICAgaWYg
KCFyZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmVjdHMuYXBwZW5kKHJlY3QpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmgJKHJldmlzaW9u
IDkwNTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
dm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9y
PEludFJlY3Q+JiwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNS
aW5nUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rp
b24pOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>