<?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>150226</bug_id>
          
          <creation_ts>2015-10-16 01:18:13 -0700</creation_ts>
          <short_desc>Remove NodeRenderingTraversal</short_desc>
          <delta_ts>2015-10-16 11:02:38 -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>DOM</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1133796</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-10-16 01:18:13 -0700</bug_when>
    <thetext>It has been reduced to an implementation detail of FocusController. Move the remaining functions there as they have no general utility (and are wrong for focus navigation too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133804</commentid>
    <comment_count>1</comment_count>
      <attachid>263253</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-10-16 02:28:25 -0700</bug_when>
    <thetext>Created attachment 263253
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133862</commentid>
    <comment_count>2</comment_count>
      <attachid>263253</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-10-16 09:15:47 -0700</bug_when>
    <thetext>Comment on attachment 263253
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133926</commentid>
    <comment_count>3</comment_count>
      <attachid>263253</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-16 11:02:34 -0700</bug_when>
    <thetext>Comment on attachment 263253
patch

Clearing flags on attachment: 263253

Committed r191186: &lt;http://trac.webkit.org/changeset/191186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133927</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-16 11:02:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263253</attachid>
            <date>2015-10-16 02:28:25 -0700</date>
            <delta_ts>2015-10-16 11:02:34 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-noderendertingtraversal.patch</filename>
            <type>text/plain</type>
            <size>18009</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTE3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE1LTEwLTE2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTm9kZVJlbmRlcmlu
Z1RyYXZlcnNhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUwMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSXQgaGFzIGJlZW4gcmVkdWNlZCB0byBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgRm9j
dXNDb250cm9sbGVyLiBNb3ZlIHRoZSByZW1haW5pbmcKKyAgICAgICAgZnVuY3Rpb25zIHRoZXJl
IGFzIHRoZXkgaGF2ZSBubyBnZW5lcmFsIHV0aWxpdHkgKGFuZCBhcmUgd3JvbmcgZm9yIGZvY3Vz
IG5hdmlnYXRpb24gdG9vKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZp
cnN0Q2hpbGRJblNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RDaGlsZEluU2NvcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyZW50SW5TY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0
SW5TY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c0luU2NvcGUpOgorICAgICAgICAo
V2ViQ29yZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6OkZvY3VzTmF2aWdhdGlvblNjb3BlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29w
ZU9mKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEVsZW1lbnRXaXRo
RXhhY3RUYWJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0RWxlbWVudFdpdGhHcmVhdGVy
VGFiSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNFbGVtZW50V2l0aExvd2VyVGFi
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxl
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9j
dXNhYmxlRWxlbWVudCk6CisKIDIwMTUtMTAtMTUgIFJvb3Blc2ggQ2hhbmRlciAgPHJvb3BAcm9v
cGMubmV0PgogCiAgICAgICAgIFtDb250ZW50IEV4dGVuc2lvbnNdIENvbnRlbnQgYmxvY2tpbmcg
cnVsZXMgYXJlIG5vdCBjb25zdWx0ZWQgZm9yIHBpbmdzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkocmV2aXNpb24gMTkxMTcxKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE0ODcsNyArMTQ4Nyw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBkb20vTm9kZUl0ZXJhdG9yLmNwcAogICAgIGRvbS9Ob2RlT3JTdHJpbmcuY3BwCiAgICAgZG9t
L05vZGVSYXJlRGF0YS5jcHAKLSAgICBkb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAKICAg
ICBkb20vTm9kZVRyYXZlcnNhbC5jcHAKICAgICBkb20vT3ZlcmZsb3dFdmVudC5jcHAKICAgICBk
b20vUGFnZVRyYW5zaXRpb25FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5MTE3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNDExNyw4ICs0MTE3LDYgQEAKIAkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8q
IEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5n
cy5oICovOyB9OwogCQlBNzQwQjVBNzE0QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRp
bmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovOyB9Owog
CQlBNzRCQjc2QjEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRCQjc2QTEz
QkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc0RjNFRjMxNjc4QjI0QTAw
QjA1QTZFIC8qIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyMTFGMjMxNjc4QTU0MjAwOTU3NDQ0IC8qIE5v
ZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwICovOyB9OwotCQlBNzRGM0VGNTE2NzhCMjRGMDBCMDVB
NkUgLyogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyMTFGMjQxNjc4QTU0MjAwOTU3NDQ0IC8qIE5vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWwuaCAqLzsgfTsKIAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3NUU0OTc3MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzUxMDc1
MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CiAJCUE3NUU4
Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4QjgwMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJs
ZW5kLmNwcCAqLzsgfTsKQEAgLTExNjEyLDggKzExNjEwLDYgQEAKIAkJQTcxOTdGMjMxNzU2ODlD
NDAwN0I5NDQyIC8qIFBhZ2VUaHJvdHRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFnZVRocm90dGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE5
N0YyNTE3NTY4QUU1MDA3Qjk0NDIgLyogUGFnZVRocm90dGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlVGhyb3R0bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzIxMUYyMzE2NzhBNTQyMDA5NTc0NDQgLyogTm9k
ZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQTcyMTFGMjQxNjc4QTU0MjAwOTU3NDQ0IC8qIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNh
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZE
QkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBY3Rpb25FbGVtZW50U2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3Vu
ZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzc3Miw4ICsyMzc2
OCw2IEBACiAJCQkJN0NFQUMxMDYxQjQ4M0QxRDAwMzM0NDgyIC8qIE5vZGVPclN0cmluZy5oICov
LAogCQkJCTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEuY3BwICovLAog
CQkJCTYzMTg5QUUyMEU4M0EzMzMwMDAxMkU0MSAvKiBOb2RlUmFyZURhdGEuaCAqLywKLQkJCQlB
NzIxMUYyMzE2NzhBNTQyMDA5NTc0NDQgLyogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAgKi8s
Ci0JCQkJQTcyMTFGMjQxNjc4QTU0MjAwOTU3NDQ0IC8qIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwu
aCAqLywKIAkJCQk2M0Q3QjMyQzBFNzhDRDNGMDBGNzYxN0MgLyogTm9kZVJlbmRlclN0eWxlLmgg
Ki8sCiAJCQkJRTQzMTA1QjcxNjc1MEYwQzAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuY3BwICov
LAogCQkJCUU0MzEwNUJBMTY3NTBGMTYwMERCMkZCOCAvKiBOb2RlVHJhdmVyc2FsLmggKi8sCkBA
IC0yNjU3OSw3ICsyNjU3Myw2IEBACiAJCQkJQTgxODcyMUIwOTc3RDNDMDAwNTgyNkQ5IC8qIE5v
ZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0VBQzEwNzFCNDgzRDFEMDAzMzQ0ODIgLyog
Tm9kZU9yU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MzE4OUFFMzBFODNBMzMzMDAwMTJF
NDEgLyogTm9kZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNzRGM0VGNTE2NzhCMjRG
MDBCMDVBNkUgLyogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjNEN0IzMkQwRTc4Q0QzRjAwRjc2MTdDIC8qIE5vZGVSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQzMTA1QkIxNjc1MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzODJBQUI0MEQ4QzM4NjEwMEYzNTdBNiAvKiBOb2RlV2l0aEluZGV4
LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjMyLDcgKzMwMjI1LDYgQEAKIAkJCQk4NTRGRTczNDBB
MjI5N0JFMDA1OEQ3QUQgLyogTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
RUFDMTA5MUI0ODNEN0YwMDMzNDQ4MiAvKiBOb2RlT3JTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJlRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBNzRGM0VGMzE2NzhCMjRBMDBCMDVBNkUgLyogTm9kZVJlbmRlcmluZ1Ry
YXZlcnNhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDMxMDVCODE2NzUwRjBDMDBEQjJGQjgg
LyogTm9kZVRyYXZlcnNhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzUwM0NDNzEwMTdBMUIx
MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzOTBDQTU1
MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHJldmlzaW9uIDE5MTE3MSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
Myw3ICsxMTMsNiBAQAogI2luY2x1ZGUgIk5vZGVJdGVyYXRvci5jcHAiCiAjaW5jbHVkZSAiTm9k
ZU9yU3RyaW5nLmNwcCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuY3BwIgotI2luY2x1ZGUgIk5v
ZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuY3BwIgog
I2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuY3BwIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZl
bnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVy
c2FsLmNwcAkocmV2aXNpb24gMTkxMTcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExMSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOb2RlUmVuZGVyaW5nVHJhdmVyc2FsLmgiCi0KLSNp
bmNsdWRlICJTaGFkb3dSb290LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNl
IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwgewotCi1zdGF0aWMgQ29udGFpbmVyTm9kZSogdHJhdmVy
c2VQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBpZiAobm9kZS0+aXNTaGFkb3dSb290
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ29udGFpbmVyTm9kZSogcGFyZW50
ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwotICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5zaGFkb3dS
b290KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHBhcmVudDsKLX0K
LQotc3RhdGljIE5vZGUqIHRyYXZlcnNlRmlyc3RDaGlsZChjb25zdCBOb2RlKiBub2RlKQotewot
ICAgIEFTU0VSVChub2RlKTsKLSAgICBpZiAobm9kZS0+c2hhZG93Um9vdCgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gbm9kZS0+Zmlyc3RDaGlsZCgpOwotfQotCi1zdGF0
aWMgTm9kZSogdHJhdmVyc2VMYXN0Q2hpbGQoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBBU1NF
UlQobm9kZSk7Ci0gICAgaWYgKG5vZGUtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIG5vZGUtPmxhc3RDaGlsZCgpOwotfQotCi1zdGF0aWMgTm9kZSog
dHJhdmVyc2VOZXh0U2libGluZyhjb25zdCBOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2Rl
KTsKLSAgICByZXR1cm4gbm9kZS0+bmV4dFNpYmxpbmcoKTsKLX0KLQotc3RhdGljIE5vZGUqIHRy
YXZlcnNlUHJldmlvdXNTaWJsaW5nKGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJUKG5v
ZGUpOwotICAgIHJldHVybiBub2RlLT5wcmV2aW91c1NpYmxpbmcoKTsKLX0KLQotTm9kZSogbmV4
dEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoTm9kZSogbmV4dCA9IHRyYXZl
cnNlRmlyc3RDaGlsZChub2RlKSkKLSAgICAgICAgcmV0dXJuIG5leHQ7Ci0gICAgaWYgKE5vZGUq
IG5leHQgPSB0cmF2ZXJzZU5leHRTaWJsaW5nKG5vZGUpKQotICAgICAgICByZXR1cm4gbmV4dDsK
LSAgICBjb25zdCBOb2RlKiBjdXJyZW50ID0gbm9kZTsKLSAgICB3aGlsZSAoY3VycmVudCAmJiAh
dHJhdmVyc2VOZXh0U2libGluZyhjdXJyZW50KSkKLSAgICAgICAgY3VycmVudCA9IHRyYXZlcnNl
UGFyZW50KGN1cnJlbnQpOwotICAgIHJldHVybiBjdXJyZW50ID8gdHJhdmVyc2VOZXh0U2libGlu
ZyhjdXJyZW50KSA6IDA7Ci19Ci0KLU5vZGUqIHByZXZpb3VzSW5TY29wZShjb25zdCBOb2RlKiBu
b2RlKQotewotICAgIGlmIChOb2RlKiBjdXJyZW50ID0gdHJhdmVyc2VQcmV2aW91c1NpYmxpbmco
bm9kZSkpIHsKLSAgICAgICAgd2hpbGUgKE5vZGUqIGNoaWxkID0gdHJhdmVyc2VMYXN0Q2hpbGQo
Y3VycmVudCkpCi0gICAgICAgICAgICBjdXJyZW50ID0gY2hpbGQ7Ci0gICAgICAgIHJldHVybiBj
dXJyZW50OwotICAgIH0KLSAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnQobm9kZSk7Ci19Ci0KLU5v
ZGUqIHBhcmVudEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gdHJhdmVy
c2VQYXJlbnQobm9kZSk7Ci19Ci0KLU5vZGUqIGxhc3RDaGlsZEluU2NvcGUoY29uc3QgTm9kZSog
bm9kZSkKLXsKLSAgICByZXR1cm4gdHJhdmVyc2VMYXN0Q2hpbGQobm9kZSk7Ci19Ci0KLX0KLQot
fSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJh
dmVyc2FsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdU
cmF2ZXJzYWwuaAkocmV2aXNpb24gMTkxMTcxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdUcmF2ZXJzYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgTm9kZVJlbmRlcmluZ1RyYXZlcnNhbF9oCi0jZGVmaW5lIE5vZGVSZW5kZXJpbmdUcmF2ZXJz
YWxfaAotCi0jaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLW5hbWVzcGFjZSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsIHsKLQotTm9kZSogbmV4dEluU2Nv
cGUoY29uc3QgTm9kZSopOwotTm9kZSogcHJldmlvdXNJblNjb3BlKGNvbnN0IE5vZGUqKTsKLU5v
ZGUqIHBhcmVudEluU2NvcGUoY29uc3QgTm9kZSopOwotTm9kZSogbGFzdENoaWxkSW5TY29wZShj
b25zdCBOb2RlKik7Ci0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE5MTE3
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNs
dWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCi0jaW5jbHVkZSAi
Tm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
YW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgpAQCAtNjgsNiArNjcsNTcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCisvLyBGSVhN
RTogRm9jdXMgbmF2aWdhdGlvbiBzaG91bGQgd29yayB3aXRoIHNoYWRvdyB0cmVlcyB0aGF0IGhh
dmUgc2xvdHMuCitzdGF0aWMgTm9kZSogZmlyc3RDaGlsZEluU2NvcGUoY29uc3QgTm9kZSogbm9k
ZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKG5vZGUtPnNoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG5vZGUtPmZpcnN0Q2hpbGQoKTsKK30K
Kworc3RhdGljIE5vZGUqIGxhc3RDaGlsZEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgaWYgKG5vZGUtPnNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG5vZGUtPmxhc3RDaGlsZCgpOworfQorCitzdGF0aWMg
Tm9kZSogcGFyZW50SW5TY29wZShjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlLT5p
c1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDb250YWluZXJO
b2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CisgICAgaWYgKHBhcmVudCAmJiBwYXJl
bnQtPnNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
cGFyZW50OworfQorCitzdGF0aWMgTm9kZSogbmV4dEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkK
K3sKKyAgICBpZiAoTm9kZSogbmV4dCA9IGZpcnN0Q2hpbGRJblNjb3BlKG5vZGUpKQorICAgICAg
ICByZXR1cm4gbmV4dDsKKyAgICBpZiAoTm9kZSogbmV4dCA9IG5vZGUtPm5leHRTaWJsaW5nKCkp
CisgICAgICAgIHJldHVybiBuZXh0OworICAgIGNvbnN0IE5vZGUqIGN1cnJlbnQgPSBub2RlOwor
ICAgIHdoaWxlIChjdXJyZW50ICYmICFjdXJyZW50LT5uZXh0U2libGluZygpKQorICAgICAgICBj
dXJyZW50ID0gcGFyZW50SW5TY29wZShjdXJyZW50KTsKKyAgICByZXR1cm4gY3VycmVudCA/IGN1
cnJlbnQtPm5leHRTaWJsaW5nKCkgOiBudWxscHRyOworfQorCitzdGF0aWMgTm9kZSogcHJldmlv
dXNJblNjb3BlKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKE5vZGUqIGN1cnJlbnQgPSBu
b2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgeworICAgICAgICB3aGlsZSAoTm9kZSogY2hpbGQgPSBs
YXN0Q2hpbGRJblNjb3BlKGN1cnJlbnQpKQorICAgICAgICAgICAgY3VycmVudCA9IGNoaWxkOwor
ICAgICAgICByZXR1cm4gY3VycmVudDsKKyAgICB9CisgICAgcmV0dXJuIHBhcmVudEluU2NvcGUo
bm9kZSk7Cit9CisKIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpGb2N1c05hdmlnYXRpb25TY29wZShU
cmVlU2NvcGUqIHRyZWVTY29wZSkKICAgICA6IG1fcm9vdFRyZWVTY29wZSh0cmVlU2NvcGUpCiB7
CkBAIC05Myw3ICsxNDMsNyBAQCBGb2N1c05hdmlnYXRpb25TY29wZSBGb2N1c05hdmlnYXRpb25T
Y29wCiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIE5vZGUqIHJvb3QgPSBub2RlOwotICAgIGZv
ciAoTm9kZSogbiA9IG5vZGU7IG47IG4gPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwYXJlbnRJ
blNjb3BlKG4pKQorICAgIGZvciAoTm9kZSogbiA9IG5vZGU7IG47IG4gPSBwYXJlbnRJblNjb3Bl
KG4pKQogICAgICAgICByb290ID0gbjsKICAgICAvLyBUaGUgcmVzdWx0IGlzIG5vdCBhbHdheXMg
YSBTaGFkb3dSb290IG5vciBhIERvY3VtZW50Tm9kZSBzaW5jZQogICAgIC8vIGEgc3RhcnRpbmcg
bm9kZSBpcyBpbiBhbiBvcnBoYW5lZCB0cmVlIGluIGNvbXBvc2VkIHNoYWRvdyB0cmVlLgpAQCAt
NDEwLDcgKzQ2MCw2IEBAIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZUUK
IEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6ZmluZEVsZW1lbnRXaXRoRXhhY3RUYWJJbmRleChO
b2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2FyZEV2ZW50KiBldmVudCwgRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uKQogewogICAgIC8vIFNlYXJjaCBpcyBpbmNsdXNpdmUgb2Ygc3RhcnQK
LSAgICB1c2luZyBuYW1lc3BhY2UgTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDsKICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBzdGFydDsgbm9kZTsgbm9kZSA9IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlv
bkZvcndhcmQgPyBuZXh0SW5TY29wZShub2RlKSA6IHByZXZpb3VzSW5TY29wZShub2RlKSkgewog
ICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpub2RlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtNDI2LDcgKzQ3NSw3IEBAIHN0YXRpYyBFbGVtZW50KiBuZXh0RWxlbWVudFdpdGhHcmVhdGVy
VGEKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0CiAgICAgaW50IHdpbm5pbmdU
YWJJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptYXgoKSArIDE7CiAgICAgRWxl
bWVudCogd2lubmVyID0gbnVsbHB0cjsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydDsgbm9k
ZTsgbm9kZSA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRJblNjb3BlKG5vZGUpKSB7Cisg
ICAgZm9yIChOb2RlKiBub2RlID0gc3RhcnQ7IG5vZGU7IG5vZGUgPSBuZXh0SW5TY29wZShub2Rl
KSkgewogICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpub2RlKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
OwpAQCAtNDQ0LDcgKzQ5Myw3IEBAIHN0YXRpYyBFbGVtZW50KiBwcmV2aW91c0VsZW1lbnRXaXRo
TG93ZXIKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0CiAgICAgaW50IHdpbm5p
bmdUYWJJbmRleCA9IDA7CiAgICAgRWxlbWVudCogd2lubmVyID0gbnVsbHB0cjsKLSAgICBmb3Ig
KE5vZGUqIG5vZGUgPSBzdGFydDsgbm9kZTsgbm9kZSA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6
OnByZXZpb3VzSW5TY29wZShub2RlKSkgeworICAgIGZvciAoTm9kZSogbm9kZSA9IHN0YXJ0OyBu
b2RlOyBub2RlID0gcHJldmlvdXNJblNjb3BlKG5vZGUpKSB7CiAgICAgICAgIGlmICghaXM8RWxl
bWVudD4oKm5vZGUpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEVsZW1lbnQmIGVs
ZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CkBAIC00NTksOCArNTA4LDYgQEAgc3Rh
dGljIEVsZW1lbnQqIHByZXZpb3VzRWxlbWVudFdpdGhMb3dlcgogCiBFbGVtZW50KiBGb2N1c0Nv
bnRyb2xsZXI6Om5leHRGb2N1c2FibGVFbGVtZW50KEZvY3VzTmF2aWdhdGlvblNjb3BlIHNjb3Bl
LCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7Ci0gICAgdXNpbmcgbmFtZXNw
YWNlIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw7Ci0KICAgICBpZiAoc3RhcnQpIHsKICAgICAgICAg
aW50IHRhYkluZGV4ID0gYWRqdXN0ZWRUYWJJbmRleCgqc3RhcnQsICpldmVudCk7CiAgICAgICAg
IC8vIElmIGEgbm9kZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBub3JtYWwgdGFiYmluZyBjeWNsZSwg
dGhlIG5leHQgZm9jdXNhYmxlIG5vZGUgaXMgZGV0ZXJtaW5lZCBieSB0cmVlIG9yZGVyCkBAIC00
OTcsNyArNTQ0LDcgQEAgRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxlRQog
RWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQoRm9jdXNO
YXZpZ2F0aW9uU2NvcGUgc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkK
IHsKICAgICBOb2RlKiBsYXN0ID0gbnVsbHB0cjsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBzY29w
ZS5yb290Tm9kZSgpOyBub2RlOyBub2RlID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bGFzdENo
aWxkSW5TY29wZShub2RlKSkKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBzY29wZS5yb290Tm9kZSgp
OyBub2RlOyBub2RlID0gbGFzdENoaWxkSW5TY29wZShub2RlKSkKICAgICAgICAgbGFzdCA9IG5v
ZGU7CiAgICAgQVNTRVJUKGxhc3QpOwogCkBAIC01MDYsNyArNTUzLDcgQEAgRWxlbWVudCogRm9j
dXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYQogICAgIE5vZGUqIHN0YXJ0aW5nTm9kZTsKICAg
ICBpbnQgc3RhcnRpbmdUYWJJbmRleDsKICAgICBpZiAoc3RhcnQpIHsKLSAgICAgICAgc3RhcnRp
bmdOb2RlID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cHJldmlvdXNJblNjb3BlKHN0YXJ0KTsK
KyAgICAgICAgc3RhcnRpbmdOb2RlID0gcHJldmlvdXNJblNjb3BlKHN0YXJ0KTsKICAgICAgICAg
c3RhcnRpbmdUYWJJbmRleCA9IGFkanVzdGVkVGFiSW5kZXgoKnN0YXJ0LCAqZXZlbnQpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIHN0YXJ0aW5nTm9kZSA9IGxhc3Q7CkBAIC01MTUsNyArNTYyLDcg
QEAgRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYQogCiAgICAgLy8gSG93
ZXZlciwgaWYgYSBub2RlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIG5vcm1hbCB0YWJiaW5nIGN5Y2xl
LCB0aGUgcHJldmlvdXMgZm9jdXNhYmxlIG5vZGUgaXMgZGV0ZXJtaW5lZCBieSB0cmVlIG9yZGVy
CiAgICAgaWYgKHN0YXJ0aW5nVGFiSW5kZXggPCAwKSB7Ci0gICAgICAgIGZvciAoTm9kZSogbm9k
ZSA9IHN0YXJ0aW5nTm9kZTsgbm9kZTsgbm9kZSA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnBy
ZXZpb3VzSW5TY29wZShub2RlKSkgeworICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydGlu
Z05vZGU7IG5vZGU7IG5vZGUgPSBwcmV2aW91c0luU2NvcGUobm9kZSkpIHsKICAgICAgICAgICAg
IGlmICghaXM8RWxlbWVudD4oKm5vZGUpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>