<?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>120327</bug_id>
          
          <creation_ts>2013-08-26 15:06:00 -0700</creation_ts>
          <short_desc>AlternativeTextController should hold onto Frame as a reference</short_desc>
          <delta_ts>2013-08-26 15:48:12 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rego+ews</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>921181</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-08-26 15:06:00 -0700</bug_when>
    <thetext>AlternativeTextController should hold onto Frame as a reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921182</commentid>
    <comment_count>1</comment_count>
      <attachid>209682</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-08-26 15:07:56 -0700</bug_when>
    <thetext>Created attachment 209682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921186</commentid>
    <comment_count>2</comment_count>
      <attachid>209682</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-26 15:12:38 -0700</bug_when>
    <thetext>Comment on attachment 209682
Patch

Attachment 209682 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1592041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921187</commentid>
    <comment_count>3</comment_count>
      <attachid>209682</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-26 15:13:36 -0700</bug_when>
    <thetext>Comment on attachment 209682
Patch

Attachment 209682 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1586046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921189</commentid>
    <comment_count>4</comment_count>
      <attachid>209682</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-26 15:14:13 -0700</bug_when>
    <thetext>Comment on attachment 209682
Patch

Attachment 209682 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1590047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921190</commentid>
    <comment_count>5</comment_count>
      <attachid>209682</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-26 15:14:31 -0700</bug_when>
    <thetext>Comment on attachment 209682
Patch

Attachment 209682 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1591046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921204</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-08-26 15:48:12 -0700</bug_when>
    <thetext>Committed r154648: &lt;http://trac.webkit.org/changeset/154648&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209682</attachid>
            <date>2013-08-26 15:07:56 -0700</date>
            <delta_ts>2013-08-26 15:14:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120327-20130826150755.patch</filename>
            <type>text/plain</type>
            <size>20900</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDY0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTA4LTI2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
ciBzaG91bGQgaG9sZCBvbnRvIEZyYW1lIGFzIGEgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAzMjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBpbiB0aGUgYXJlYSBJIGFsc286
CisgICAgICAgICAgLSBSZWZlcmVuY2UtaWZpZWQgRWRpdG9yOjpraWxsUmluZygpLgorICAgICAg
ICAgIC0gQ29uc3QtaWZpZWQgRWRpdG9yOjptX2tpbGxSaW5nLCBFZGl0b3I6Om1fc3BlbGxDaGVj
a2VyLCBhbmQgRWRpdG9yOjptX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuCisKKyAgICAgICAg
KiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdG9wUGVuZGlu
Z0NvcnJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6aXNTcGVsbGluZ01hcmtlckFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlcjo6YXBwbHlBbHRlcm5hdGl2ZVRleHRUb1JhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5QXV0b2NvcnJlY3Rpb25C
ZWZvcmVUeXBpbmdJZkFwcHJvcHJpYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXI6OnJlc3BvbmRUb1VuYXBwbGllZFNwZWxsQ29ycmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0
aXZlVGV4dFVJUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OnJvb3RWaWV3UmVjdEZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFRvQXBwbGllZEVkaXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9u
ZFRvVW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjphbHRlcm5hdGl2ZVRleHRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6ZWRpdG9yQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6Om1hcmtQcmVjZWRpbmdXaGl0ZXNwYWNlRm9yRGVs
ZXRlZEF1dG9jb3JyZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6OnByb2Nlc3NNYXJrZXJzT25UZXh0VG9CZVJlcGxhY2VkQnlS
ZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cmVz
cG9uZFRvTWFya2VyQXRFbmRPZldvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlcjo6aW5zZXJ0RGljdGF0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUpOgorICAg
ICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6VU5MRVNTX0VOQUJMRUQpOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6RWRpdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YWRkVG9LaWxsUmluZyk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6a2lsbFJpbmcpOgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpl
eGVjdXRlWWFuayk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlWWFua0FuZFNlbGVjdCk6CisK
IDIwMTMtMDgtMjYgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAg
ICAgIFBhZ2U6OmNvbnNvbGUoKSBzaG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDE1NDYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw3ICsxMzIsNyBAQCBz
dGF0aWMgYm9vbCBtYXJrZXJzSGF2ZUlkZW50aWNhbERlc2NyaXB0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXIoRnJhbWUqIGZyYW1lKQorQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6QWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlcihGcmFtZSYgZnJhbWUpCiAgICAgOiBtX3RpbWVyKHRoaXMsICZBbHRlcm5h
dGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKQogICAgICwgbV9mcmFtZShmcmFtZSkKIHsK
QEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BB
bHRlCiB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BQZW5kaW5nQ29ycmVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24pCiB7CiAgICAgLy8gTWFrZSBz
dXJlIHRoZXJlJ3Mgbm8gcGVuZGluZyBhdXRvY29ycmVjdGlvbiBiZWZvcmUgd2UgY2FsbCBtYXJr
TWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcigpIGJlbG93LgotICAgIFZpc2libGVTZWxlY3Rpb24g
Y3VycmVudFNlbGVjdGlvbihtX2ZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7CisgICAg
VmlzaWJsZVNlbGVjdGlvbiBjdXJyZW50U2VsZWN0aW9uKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCkpOwogICAgIGlmIChjdXJyZW50U2VsZWN0aW9uID09IG9sZFNlbGVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpoYXNQZW5kaQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6Omlz
U3BlbGxpbmdNYXJrZXJBbGxvd2VkKFBhc3NSZWZQdHI8UmFuZ2U+IG1pc3NwZWxsaW5nUmFuZ2Up
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5tYXJrZXJzKCkuaGFz
TWFya2VycyhtaXNzcGVsbGluZ1JhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxDaGVj
a2luZ0V4ZW1wdGlvbik7CisgICAgcmV0dXJuICFtX2ZyYW1lLmRvY3VtZW50KCktPm1hcmtlcnMo
KS5oYXNNYXJrZXJzKG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVs
bENoZWNraW5nRXhlbXB0aW9uKTsKIH0KIAogdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
OjpzaG93KFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlVG9SZXBsYWNlLCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50KQpAQCAtMjc2LDEyICsyNzYsMTIgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyOjphcHBseUFsdAogICAgIC8vIENsb25lIHRoZSByYW5nZSwgc2luY2UgdGhlIGNhbGxl
ciBvZiB0aGlzIG1ldGhvZCBtYXkgd2FudCB0byBrZWVwIHRoZSBvcmlnaW5hbCByYW5nZSBhcm91
bmQuCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IHJhbmdlLT5jbG9u
ZVJhbmdlKGVjKTsKICAgICAKLSAgICBpbnQgcGFyYWdyYXBoU3RhcnRJbmRleCA9IFRleHRJdGVy
YXRvcjo6cmFuZ2VMZW5ndGgoUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBtX2Zy
YW1lLT5kb2N1bWVudCgpLCAwLCBwYXJhZ3JhcGhSYW5nZUNvbnRhaW5pbmdDb3JyZWN0aW9uLmdl
dCgpLT5zdGFydENvbnRhaW5lcigpLCBwYXJhZ3JhcGhSYW5nZUNvbnRhaW5pbmdDb3JyZWN0aW9u
LmdldCgpLT5zdGFydE9mZnNldCgpKS5nZXQoKSk7CisgICAgaW50IHBhcmFncmFwaFN0YXJ0SW5k
ZXggPSBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKFJhbmdlOjpjcmVhdGUobV9mcmFtZS5kb2N1
bWVudCgpLCBtX2ZyYW1lLmRvY3VtZW50KCksIDAsIHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0Nv
cnJlY3Rpb24uZ2V0KCktPnN0YXJ0Q29udGFpbmVyKCksIHBhcmFncmFwaFJhbmdlQ29udGFpbmlu
Z0NvcnJlY3Rpb24uZ2V0KCktPnN0YXJ0T2Zmc2V0KCkpLmdldCgpKTsKICAgICBhcHBseUNvbW1h
bmQoU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKHJhbmdlV2l0aEFsdGVybmF0aXZl
LCBhbHRlcm5hdGl2ZSkpOwogICAgIC8vIFJlY2FsY3VsYXRlIHByYWdyYXBoUmFuZ2VDb250YWlu
aW5nQ29ycmVjdGlvbiwgc2luY2UgU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZCBtb2RpZmllZCB0
aGUgRE9NLCBzdWNoIHRoYXQgdGhlIG9yaWdpbmFsIHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0Nv
cnJlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkLiBSYWRhcjogMTAzMDUzMTUgQnVnemlsbGE6IDg5
NTI2Ci0gICAgcGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVjdGlvbiA9IFRleHRJdGVyYXRv
cjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgobV9mcmFtZS0+ZG9jdW1lbnQoKSwgcGFyYWdy
YXBoU3RhcnRJbmRleCwgY29ycmVjdGlvblN0YXJ0T2Zmc2V0SW5QYXJhZ3JhcGggKyBhbHRlcm5h
dGl2ZS5sZW5ndGgoKSk7CisgICAgcGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVjdGlvbiA9
IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgobV9mcmFtZS5kb2N1bWVu
dCgpLCBwYXJhZ3JhcGhTdGFydEluZGV4LCBjb3JyZWN0aW9uU3RhcnRPZmZzZXRJblBhcmFncmFw
aCArIGFsdGVybmF0aXZlLmxlbmd0aCgpKTsKICAgICAKLSAgICBzZXRFbmQocGFyYWdyYXBoUmFu
Z2VDb250YWluaW5nQ29ycmVjdGlvbi5nZXQoKSwgbV9mcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0
aW9uKCkuc3RhcnQoKSk7CisgICAgc2V0RW5kKHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0NvcnJl
Y3Rpb24uZ2V0KCksIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAg
ICAgUmVmUHRyPFJhbmdlPiByZXBsYWNlbWVudFJhbmdlID0gVGV4dEl0ZXJhdG9yOjpzdWJyYW5n
ZShwYXJhZ3JhcGhSYW5nZUNvbnRhaW5pbmdDb3JyZWN0aW9uLmdldCgpLCBjb3JyZWN0aW9uU3Rh
cnRPZmZzZXRJblBhcmFncmFwaCwgYWx0ZXJuYXRpdmUubGVuZ3RoKCkpOwogICAgIFN0cmluZyBu
ZXdUZXh0ID0gcGxhaW5UZXh0KHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCkpOwogCkBAIC0zMDMsNyAr
MzAzLDcgQEAgYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseUF1dAogICAgIGlm
IChtX2FsdGVybmF0aXZlVGV4dEluZm8udHlwZSAhPSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVj
dGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUG9zaXRpb24gY2FyZXRQb3NpdGlv
biA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCk7CisgICAgUG9zaXRp
b24gY2FyZXRQb3NpdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQo
KTsKIAogICAgIGlmIChtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUt
PmVuZFBvc2l0aW9uKCkgPT0gY2FyZXRQb3NpdGlvbikgewogICAgICAgICBoYW5kbGVBbHRlcm5h
dGl2ZVRleHRVSVJlc3VsdChkaXNtaXNzU29vbihSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRp
dmVUZXh0QWNjZXB0ZWQpKTsKQEAgLTMyMCwxMSArMzIwLDExIEBAIHZvaWQgQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlcjo6cmVzcG9uZFQKIHsKICAgICBpZiAoQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
KiBjbGllbnQgPSBhbHRlcm5hdGl2ZVRleHRDbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5yZWNv
cmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmV2ZXJ0ZWQsIGNvcnJlY3Rl
ZCwgY29ycmVjdGlvbik7Ci0gICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7
Ci0gICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbk9mQ29ycmVj
dGVkLCBGcmFtZVNlbGVjdGlvbjo6Q2xvc2VUeXBpbmcgfCBGcmFtZVNlbGVjdGlvbjo6Q2xlYXJU
eXBpbmdTdHlsZSB8IEZyYW1lU2VsZWN0aW9uOjpTcGVsbENvcnJlY3Rpb25UcmlnZ2VyZWQpOwot
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50
KCksIG1fZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCksIG1fZnJhbWUtPnNl
bGVjdGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKKyAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnVw
ZGF0ZUxheW91dCgpOworICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHNlbGVj
dGlvbk9mQ29ycmVjdGVkLCBGcmFtZVNlbGVjdGlvbjo6Q2xvc2VUeXBpbmcgfCBGcmFtZVNlbGVj
dGlvbjo6Q2xlYXJUeXBpbmdTdHlsZSB8IEZyYW1lU2VsZWN0aW9uOjpTcGVsbENvcnJlY3Rpb25U
cmlnZ2VyZWQpOworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fZnJh
bWUuZG9jdW1lbnQoKSwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpLCBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKIAotICAgIERvY3VtZW50TWFy
a2VyQ29udHJvbGxlciYgbWFya2VycyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPm1hcmtlcnMoKTsK
KyAgICBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXImIG1hcmtlcnMgPSBtX2ZyYW1lLmRvY3VtZW50
KCktPm1hcmtlcnMoKTsKICAgICBtYXJrZXJzLnJlbW92ZU1hcmtlcnMocmFuZ2UuZ2V0KCksIERv
Y3VtZW50TWFya2VyOjpTcGVsbGluZyB8IERvY3VtZW50TWFya2VyOjpBdXRvY29ycmVjdGVkLCBE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OlJlbW92ZVBhcnRpYWxseU92ZXJsYXBwaW5nTWFya2Vy
KTsKICAgICBtYXJrZXJzLmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlJl
cGxhY2VtZW50KTsKICAgICBtYXJrZXJzLmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgRG9jdW1lbnRN
YXJrZXI6OlNwZWxsQ2hlY2tpbmdFeGVtcHRpb24pOwpAQCAtMzM1LDExICszMzUsMTEgQEAgdm9p
ZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcgogICAgIG1faXNEaXNtaXNzZWRC
eUVkaXRpbmcgPSBmYWxzZTsKICAgICBzd2l0Y2ggKG1fYWx0ZXJuYXRpdmVUZXh0SW5mby50eXBl
KSB7CiAgICAgY2FzZSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbjogewotICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihtX2ZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KSk7CisgICAgICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9u
LnN0YXJ0KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9u
IHAgPSBzdGFydE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0
KTsKLSAgICAgICAgbV9mcmFtZS0+ZWRpdG9yKCkubWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdy
YW1tYXJJblJhbmdlcyhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBl
UmVwbGFjZW1lbnQgfCBUZXh0Q2hlY2tpbmdUeXBlU2hvd0NvcnJlY3Rpb25QYW5lbCwgYWRqYWNl
bnRXb3Jkcy50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCAwKTsKKyAgICAgICAgbV9mcmFtZS5l
ZGl0b3IoKS5tYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudCB8IFRleHRDaGVj
a2luZ1R5cGVTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXplZFJh
bmdlKCkuZ2V0KCksIDApOwogICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbHRlcm5h
dGl2ZVRleHRUeXBlUmV2ZXJzaW9uOiB7CkBAIC0zOTcsNyArMzk3LDcgQEAgdm9pZCBBbHRlcm5h
dGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcgogdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyOjpoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkK
IHsKICAgICBSYW5nZSogcmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBtX2FsdGVybmF0aXZlVGV4dElu
Zm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuZ2V0KCk7Ci0gICAgaWYgKCFyYW5nZVdpdGhBbHRlcm5h
dGl2ZSB8fCBtX2ZyYW1lLT5kb2N1bWVudCgpICE9IHJhbmdlV2l0aEFsdGVybmF0aXZlLT5vd25l
ckRvY3VtZW50KCkpCisgICAgaWYgKCFyYW5nZVdpdGhBbHRlcm5hdGl2ZSB8fCBtX2ZyYW1lLmRv
Y3VtZW50KCkgIT0gcmFuZ2VXaXRoQWx0ZXJuYXRpdmUtPm93bmVyRG9jdW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHJhbmdlV2l0
aEFsdGVybmF0aXZlKTsKQEAgLTQzNSw3ICs0MzUsNyBAQCBib29sIEFsdGVybmF0aXZlVGV4dENv
bnRyb2xsZXI6OmlzQXV0b21hCiAKIEZsb2F0UmVjdCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
Ojpyb290Vmlld1JlY3RGb3JSYW5nZShjb25zdCBSYW5nZSogcmFuZ2UpIGNvbnN0CiB7Ci0gICAg
RnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOworICAgIEZyYW1lVmlldyogdmlldyA9
IG1fZnJhbWUudmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIEZsb2F0UmVj
dCgpOwogICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKQEAgLTQ0OSw3ICs0NDksNyBA
QCBGbG9hdFJlY3QgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cm9vCiAKIHZvaWQgQWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zIG9wdGlvbnMpCiB7Ci0gICAgVmlzaWJsZVNlbGVjdGlvbiBjdXJyZW50U2VsZWN0aW9u
KG1fZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9u
IGN1cnJlbnRTZWxlY3Rpb24obV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7CiAgICAg
Ly8gV2hlbiB1c2VyIG1vdmVzIGNhcmV0IHRvIHRoZSBlbmQgb2YgYXV0b2NvcnJlY3RlZCB3b3Jk
IGFuZCBwYXVzZXMsIHdlIHNob3cgdGhlIHBhbmVsCiAgICAgLy8gY29udGFpbmluZyB0aGUgb3Jp
Z2luYWwgcHJlLWNvcnJlY3Rpb24gd29yZCBzbyB0aGF0IHVzZXIgY2FuIHF1aWNrbHkgcmV2ZXJ0
IHRoZQogICAgIC8vIHVuZGVzaXJlZCBhdXRvY29ycmVjdGlvbi4gSGVyZSwgd2Ugc3RhcnQgY29y
cmVjdGlvbiBwYW5lbCB0aW1lciBvbmNlIHdlIGNvbmZpcm0gdGhhdApAQCAtNDg4LDcgKzQ4OCw3
IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFQKIHZvaWQgQWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFRvQXBwbGllZEVkaXRpbmcoQ29tcG9zaXRlRWRp
dENvbW1hbmQqIGNvbW1hbmQpCiB7CiAgICAgaWYgKGNvbW1hbmQtPmlzVG9wTGV2ZWxDb21tYW5k
KCkgJiYgIWNvbW1hbmQtPnNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkpCi0g
ICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS5yZW1vdmVNYXJrZXJzKERvY3Vt
ZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yKTsKKyAgICAgICAgbV9mcmFtZS5kb2N1bWVu
dCgpLT5tYXJrZXJzKCkucmVtb3ZlTWFya2VycyhEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlvbklu
ZGljYXRvcik7CiAKICAgICBtYXJrUHJlY2VkaW5nV2hpdGVzcGFjZUZvckRlbGV0ZWRBdXRvY29y
cmVjdGlvbkFmdGVyQ29tbWFuZChjb21tYW5kKTsKICAgICBtX29yaWdpbmFsU3RyaW5nRm9yTGFz
dERlbGV0ZWRBdXRvY29ycmVjdGlvbiA9IFN0cmluZygpOwpAQCAtNDk4LDI4ICs0OTgsMjIgQEAg
dm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpyZXNwb25kVAogewogICAgIGlmICghY29t
bWFuZC0+d2FzQ3JlYXRlTGlua0NvbW1hbmQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIFJlZlB0
cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIGNvbW1h
bmQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkuc3RhcnQoKSwgY29tbWFuZC0+c3RhcnRpbmdTZWxlY3Rp
b24oKS5lbmQoKSk7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9m
cmFtZS5kb2N1bWVudCgpLCBjb21tYW5kLT5zdGFydGluZ1NlbGVjdGlvbigpLnN0YXJ0KCksIGNv
bW1hbmQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkuZW5kKCkpOwogICAgIGlmICghcmFuZ2UpCiAgICAg
ICAgIHJldHVybjsKLSAgICBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXImIG1hcmtlcnMgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5tYXJrZXJzKCk7CisgICAgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
JiBtYXJrZXJzID0gbV9mcmFtZS5kb2N1bWVudCgpLT5tYXJrZXJzKCk7CiAgICAgbWFya2Vycy5h
ZGRNYXJrZXIocmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CiAgICAg
bWFya2Vycy5hZGRNYXJrZXIocmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVsbENoZWNr
aW5nRXhlbXB0aW9uKTsKIH0KIAogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBBbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyOjphbHRlcm5hdGl2ZVRleHRDbGllbnQoKQogewotICAgIGlmICghbV9mcmFt
ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpID8gbV9m
cmFtZS0+cGFnZSgpLT5hbHRlcm5hdGl2ZVRleHRDbGllbnQoKSA6IDA7CisgICAgcmV0dXJuIG1f
ZnJhbWUucGFnZSgpID8gbV9mcmFtZS5wYWdlKCktPmFsdGVybmF0aXZlVGV4dENsaWVudCgpIDog
MDsKIH0KIAogRWRpdG9yQ2xpZW50KiBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjplZGl0b3JD
bGllbnQoKQogewotICAgIGlmICghbV9mcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBy
ZXR1cm4gbV9mcmFtZS0+cGFnZSgpID8gbV9mcmFtZS0+cGFnZSgpLT5lZGl0b3JDbGllbnQoKSA6
IDA7CisgICAgcmV0dXJuIG1fZnJhbWUucGFnZSgpID8gbV9mcmFtZS5wYWdlKCktPmVkaXRvckNs
aWVudCgpIDogMDsKIH0KIAogVGV4dENoZWNrZXJDbGllbnQqIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OnRleHRDaGVja2VyKCkKQEAgLTU5Niw3ICs1OTAsNyBAQCB2b2lkIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXI6Om1hcmtQcmVjCiAgICAgaWYgKGVuZE9mU2VsZWN0aW9uID09IHByZWNl
ZGluZ0NoYXJhY3RlclBvc2l0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8UmFu
Z2U+IHByZWNlZGluZ0NoYXJhY3RlclJhbmdlID0gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1
bWVudCgpLCBwcmVjZWRpbmdDaGFyYWN0ZXJQb3NpdGlvbiwgZW5kT2ZTZWxlY3Rpb24pOworICAg
IFJlZlB0cjxSYW5nZT4gcHJlY2VkaW5nQ2hhcmFjdGVyUmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1f
ZnJhbWUuZG9jdW1lbnQoKSwgcHJlY2VkaW5nQ2hhcmFjdGVyUG9zaXRpb24sIGVuZE9mU2VsZWN0
aW9uKTsKICAgICBTdHJpbmcgc3RyaW5nID0gcGxhaW5UZXh0KHByZWNlZGluZ0NoYXJhY3RlclJh
bmdlLmdldCgpKTsKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSB8fCAhaXNXaGl0ZXNwYWNlKHN0
cmluZ1tzdHJpbmcubGVuZ3RoKCkgLSAxXSkpCiAgICAgICAgIHJldHVybjsKQEAgLTYwNCwxMiAr
NTk4LDEyIEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6bWFya1ByZWMKICAgICAv
LyBNYXJrIHRoaXMgd2hpdGVzcGFjZSB0byBpbmRpY2F0ZSB3ZSBoYXZlIGRlbGV0ZWQgYW4gYXV0
b2NvcnJlY3Rpb24gZm9sbG93aW5nIHRoaXMKICAgICAvLyB3aGl0ZXNwYWNlLiBTbyBpZiB0aGUg
dXNlciB0eXBlcyB0aGUgc2FtZSBvcmlnaW5hbCB3b3JkIGFnYWluIGF0IHRoaXMgcG9zaXRpb24s
IHdlCiAgICAgLy8gd29uJ3QgYXV0b2NvcnJlY3QgaXQgYWdhaW4uCi0gICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+bWFya2VycygpLmFkZE1hcmtlcihwcmVjZWRpbmdDaGFyYWN0ZXJSYW5nZS5nZXQo
KSwgRG9jdW1lbnRNYXJrZXI6OkRlbGV0ZWRBdXRvY29ycmVjdGlvbiwgbV9vcmlnaW5hbFN0cmlu
Z0Zvckxhc3REZWxldGVkQXV0b2NvcnJlY3Rpb24pOworICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+
bWFya2VycygpLmFkZE1hcmtlcihwcmVjZWRpbmdDaGFyYWN0ZXJSYW5nZS5nZXQoKSwgRG9jdW1l
bnRNYXJrZXI6OkRlbGV0ZWRBdXRvY29ycmVjdGlvbiwgbV9vcmlnaW5hbFN0cmluZ0Zvckxhc3RE
ZWxldGVkQXV0b2NvcnJlY3Rpb24pOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXI6OnByb2Nlc3NNYXJrZXJzT25UZXh0VG9CZVJlcGxhY2VkQnlSZXN1bHQoY29uc3QgVGV4dENo
ZWNraW5nUmVzdWx0KiByZXN1bHQsIFJhbmdlKiByYW5nZVdpdGhBbHRlcm5hdGl2ZSwgY29uc3Qg
U3RyaW5nJiBzdHJpbmdUb0JlUmVwbGFjZWQpCiB7Ci0gICAgRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyJiBtYXJrZXJDb250cm9sbGVyID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpOwor
ICAgIERvY3VtZW50TWFya2VyQ29udHJvbGxlciYgbWFya2VyQ29udHJvbGxlciA9IG1fZnJhbWUu
ZG9jdW1lbnQoKS0+bWFya2VycygpOwogICAgIGlmIChtYXJrZXJDb250cm9sbGVyLmhhc01hcmtl
cnMocmFuZ2VXaXRoQWx0ZXJuYXRpdmUsIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCkpIHsK
ICAgICAgICAgaWYgKHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbikK
ICAgICAgICAgICAgIHJlY29yZFNwZWxsY2hlY2tlclJlc3BvbnNlRm9yTW9kaWZpZWRDb3JyZWN0
aW9uKHJhbmdlV2l0aEFsdGVybmF0aXZlLCBzdHJpbmdUb0JlUmVwbGFjZWQsIHJlc3VsdC0+cmVw
bGFjZW1lbnQpOwpAQCAtNjIxLDcgKzYxNSw3IEBAIGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlcjo6cHJvY2Vzc00KIAogICAgIFBvc2l0aW9uIGJlZ2lubmluZ09mUmFuZ2UgPSByYW5nZVdp
dGhBbHRlcm5hdGl2ZS0+c3RhcnRQb3NpdGlvbigpOwogICAgIFBvc2l0aW9uIHByZWNlZGluZ0No
YXJhY3RlclBvc2l0aW9uID0gYmVnaW5uaW5nT2ZSYW5nZS5wcmV2aW91cygpOwotICAgIFJlZlB0
cjxSYW5nZT4gcHJlY2VkaW5nQ2hhcmFjdGVyUmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fZnJhbWUt
PmRvY3VtZW50KCksIHByZWNlZGluZ0NoYXJhY3RlclBvc2l0aW9uLCBiZWdpbm5pbmdPZlJhbmdl
KTsKKyAgICBSZWZQdHI8UmFuZ2U+IHByZWNlZGluZ0NoYXJhY3RlclJhbmdlID0gUmFuZ2U6OmNy
ZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCksIHByZWNlZGluZ0NoYXJhY3RlclBvc2l0aW9uLCBiZWdp
bm5pbmdPZlJhbmdlKTsKIAogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBt
YXJrZXJDb250cm9sbGVyLm1hcmtlcnNJblJhbmdlKHByZWNlZGluZ0NoYXJhY3RlclJhbmdlLmdl
dCgpLCBEb2N1bWVudE1hcmtlcjo6RGVsZXRlZEF1dG9jb3JyZWN0aW9uKTsKIApAQCAtNjQ1LDcg
KzYzOSw3IEBAIGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6cmVzcG9uZFQKICAgICBp
ZiAoIXNob3VsZFN0YXJ0VGltZXJGb3IobWFya2VyLCBlbmRPZldvcmRQb3NpdGlvbi5vZmZzZXRJ
bkNvbnRhaW5lck5vZGUoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBOb2RlKiBub2Rl
ID0gZW5kT2ZXb3JkUG9zaXRpb24uY29udGFpbmVyTm9kZSgpOwotICAgIFJlZlB0cjxSYW5nZT4g
d29yZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBub2RlLCBtYXJr
ZXIuc3RhcnRPZmZzZXQoKSwgbm9kZSwgbWFya2VyLmVuZE9mZnNldCgpKTsKKyAgICBSZWZQdHI8
UmFuZ2U+IHdvcmRSYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLCBub2Rl
LCBtYXJrZXIuc3RhcnRPZmZzZXQoKSwgbm9kZSwgbWFya2VyLmVuZE9mZnNldCgpKTsKICAgICBp
ZiAoIXdvcmRSYW5nZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIFN0cmluZyBjdXJyZW50
V29yZCA9IHBsYWluVGV4dCh3b3JkUmFuZ2UuZ2V0KCkpOwpAQCAtNjkzLDIwICs2ODcsMTggQEAg
U3RyaW5nIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6Om1hcmtlcgogCiBib29sIEFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6Omluc2VydERpY3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVybmF0aXZl
cywgRXZlbnQqIHRyaWdnZXJpbmdFdmVudCkKIHsKLSAgICBpZiAoIW1fZnJhbWUpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBFdmVudFRhcmdldCogdGFyZ2V0OwogICAgIGlmICh0cmlnZ2Vy
aW5nRXZlbnQpCiAgICAgICAgIHRhcmdldCA9IHRyaWdnZXJpbmdFdmVudC0+dGFyZ2V0KCk7CiAg
ICAgZWxzZQotICAgICAgICB0YXJnZXQgPSBldmVudFRhcmdldE5vZGVGb3JEb2N1bWVudChtX2Zy
YW1lLT5kb2N1bWVudCgpKTsKKyAgICAgICAgdGFyZ2V0ID0gZXZlbnRUYXJnZXROb2RlRm9yRG9j
dW1lbnQobV9mcmFtZS5kb2N1bWVudCgpKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkK
KyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS52aWV3KCkpCiAgICAgICAgIHZpZXct
PnJlc2V0RGVmZXJyZWRSZXBhaW50RGVsYXkoKTsKIAotICAgIFJlZlB0cjxUZXh0RXZlbnQ+IGV2
ZW50ID0gVGV4dEV2ZW50OjpjcmVhdGVGb3JEaWN0YXRpb24obV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCksIHRleHQsIGRpY3RhdGlvbkFsdGVybmF0aXZlcyk7CisgICAgUmVmUHRyPFRl
eHRFdmVudD4gZXZlbnQgPSBUZXh0RXZlbnQ6OmNyZWF0ZUZvckRpY3RhdGlvbihtX2ZyYW1lLmRv
Y3VtZW50KCktPmRvbVdpbmRvdygpLCB0ZXh0LCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpOwogICAg
IGV2ZW50LT5zZXRVbmRlcmx5aW5nRXZlbnQodHJpZ2dlcmluZ0V2ZW50KTsKIAogICAgIHRhcmdl
dC0+ZGlzcGF0Y2hFdmVudChldmVudCwgSUdOT1JFX0VYQ0VQVElPTik7CkBAIC03NDIsNyArNzM0
LDcgQEAgVmVjdG9yPFN0cmluZz4gQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcgogdm9pZCBBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKGNvbnN0IFN0
cmluZyYgYWx0ZXJuYXRpdmVTdHJpbmcpCiB7CiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElW
RVMpCi0gICAgRWRpdG9yJiBlZGl0b3IgPSBtX2ZyYW1lLT5lZGl0b3IoKTsKKyAgICBFZGl0b3Im
IGVkaXRvciA9IG1fZnJhbWUuZWRpdG9yKCk7CiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24g
PSBlZGl0b3Iuc2VsZWN0ZWRSYW5nZSgpOwogICAgIGlmICghc2VsZWN0aW9uIHx8ICFlZGl0b3Iu
c2hvdWxkSW5zZXJ0VGV4dChhbHRlcm5hdGl2ZVN0cmluZywgc2VsZWN0aW9uLmdldCgpLCBFZGl0
b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAkocmV2aXNp
b24gMTU0NjI4KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcihGcmFtZSopIFVOTEVTU19FTkFC
TEVEKHsgfSkKKyAgICBleHBsaWNpdCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyKEZyYW1lJikg
VU5MRVNTX0VOQUJMRUQoeyB9KQogICAgIH5BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyKCkgVU5M
RVNTX0VOQUJMRUQoeyB9KQogCiAgICAgdm9pZCBzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIo
QWx0ZXJuYXRpdmVUZXh0VHlwZSkgVU5MRVNTX0VOQUJMRUQoeyB9KQpAQCAtMTYxLDcgKzE2MSw3
IEBAIHByaXZhdGU6CiAgICAgUG9zaXRpb24gbV9wb3NpdGlvbkZvckxhc3REZWxldGVkQXV0b2Nv
cnJlY3Rpb247CiAjZW5kaWYKIAotICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIEZyYW1lJiBtX2Zy
YW1lOwogfTsKIAogI3VuZGVmIFVOTEVTU19FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCShyZXZpc2lvbiAxNTQ2NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5OSw3ICs4OTksNyBAQCBFZGl0b3I6OkVkaXRv
cihGcmFtZSYgZnJhbWUpCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAgICAs
IG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5nKSkKICAgICAsIG1fc3BlbGxDaGVja2Vy
KGFkb3B0UHRyKG5ldyBTcGVsbENoZWNrZXIoZnJhbWUpKSkKLSAgICAsIG1fYWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlcihhZG9wdFB0cihuZXcgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcigmZnJh
bWUpKSkKKyAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcihhZG9wdFB0cihuZXcgQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlcihmcmFtZSkpKQogICAgICwgbV9hcmVNYXJrZWRUZXh0TWF0
Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogICAgICwgbV9kZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9y
KEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2KQogICAgICwgbV9vdmVyd3JpdGVNb2RlRW5h
YmxlZChmYWxzZSkKQEAgLTI1NTcsMTMgKzI1NTcsMTMgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9z
ZSgpCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVu
ZCkKIHsKICAgICBpZiAobV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UpCi0gICAgICAg
IGtpbGxSaW5nKCktPnN0YXJ0TmV3U2VxdWVuY2UoKTsKKyAgICAgICAga2lsbFJpbmcoKS5zdGFy
dE5ld1NlcXVlbmNlKCk7CiAKICAgICBTdHJpbmcgdGV4dCA9IHBsYWluVGV4dChyYW5nZSk7CiAg
ICAgaWYgKHByZXBlbmQpCi0gICAgICAgIGtpbGxSaW5nKCktPnByZXBlbmQodGV4dCk7CisgICAg
ICAgIGtpbGxSaW5nKCkucHJlcGVuZCh0ZXh0KTsKICAgICBlbHNlCi0gICAgICAgIGtpbGxSaW5n
KCktPmFwcGVuZCh0ZXh0KTsKKyAgICAgICAga2lsbFJpbmcoKS5hcHBlbmQodGV4dCk7CiAgICAg
bV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UgPSBmYWxzZTsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiAxNTQ2NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjgsNyArMzI4LDcgQEAgcHVibGlj
OgogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50Kik7CiAK
LSAgICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVybiBtX2tpbGxSaW5nLmdldCgp
OyB9CisgICAgS2lsbFJpbmcmIGtpbGxSaW5nKCkgY29uc3QgeyByZXR1cm4gKm1fa2lsbFJpbmcu
Z2V0KCk7IH0KICAgICBTcGVsbENoZWNrZXImIHNwZWxsQ2hlY2tlcigpIGNvbnN0IHsgcmV0dXJu
ICptX3NwZWxsQ2hlY2tlci5nZXQoKTsgfQogCiAgICAgRWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9y
KCkgY29uc3Q7CkBAIC00MjcsOSArNDI3LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faWdub3Jl
Q29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3S2ls
bFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwotICAgIE93blB0
cjxLaWxsUmluZz4gbV9raWxsUmluZzsKLSAgICBPd25QdHI8U3BlbGxDaGVja2VyPiBtX3NwZWxs
Q2hlY2tlcjsKLSAgICBPd25QdHI8QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcj4gbV9hbHRlcm5h
dGl2ZVRleHRDb250cm9sbGVyOworICAgIGNvbnN0IE93blB0cjxLaWxsUmluZz4gbV9raWxsUmlu
ZzsKKyAgICBjb25zdCBPd25QdHI8U3BlbGxDaGVja2VyPiBtX3NwZWxsQ2hlY2tlcjsKKyAgICBj
b25zdCBPd25QdHI8QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcj4gbV9hbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOwogICAgIFZpc2libGVTZWxlY3Rpb24gbV9tYXJrOwogICAgIGJvb2wgbV9hcmVN
YXJrZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkOwogICAgIEVkaXRvclBhcmFncmFwaFNlcGFyYXRv
ciBtX2RlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDE1NDYyOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNDMsMTUgKzEx
NDMsMTUgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVVuc2VsZWN0KEZyYW1lKiBmcmFtZQogCiBzdGF0
aWMgYm9vbCBleGVjdXRlWWFuayhGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNv
dXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+ZWRpdG9yKCkuaW5zZXJ0VGV4dFdp
dGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS5raWxsUmluZygpLT55YW5rKCks
IGZhbHNlLCAwKTsKLSAgICBmcmFtZS0+ZWRpdG9yKCkua2lsbFJpbmcoKS0+c2V0VG9ZYW5rZWRT
dGF0ZSgpOworICAgIGZyYW1lLT5lZGl0b3IoKS5pbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0
RXZlbnQoZnJhbWUtPmVkaXRvcigpLmtpbGxSaW5nKCkueWFuaygpLCBmYWxzZSwgMCk7CisgICAg
ZnJhbWUtPmVkaXRvcigpLmtpbGxSaW5nKCkuc2V0VG9ZYW5rZWRTdGF0ZSgpOwogICAgIHJldHVy
biB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlWWFua0FuZFNlbGVjdChGcmFtZSogZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBm
cmFtZS0+ZWRpdG9yKCkuaW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5l
ZGl0b3IoKS5raWxsUmluZygpLT55YW5rKCksIHRydWUsIDApOwotICAgIGZyYW1lLT5lZGl0b3Io
KS5raWxsUmluZygpLT5zZXRUb1lhbmtlZFN0YXRlKCk7CisgICAgZnJhbWUtPmVkaXRvcigpLmlu
c2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCkua2lsbFJpbmco
KS55YW5rKCksIHRydWUsIDApOworICAgIGZyYW1lLT5lZGl0b3IoKS5raWxsUmluZygpLnNldFRv
WWFua2VkU3RhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAo=
</data>
<flag name="review"
          id="231731"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="231732"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>