<?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>91966</bug_id>
          
          <creation_ts>2012-07-23 00:33:00 -0700</creation_ts>
          <short_desc>Replace some instances of shadowAncestorNode() with shadowHost()</short_desc>
          <delta_ts>2012-07-23 22:23:59 -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>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>91821</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>675490</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-23 00:33:00 -0700</bug_when>
    <thetext>Replace some instances of shadowAncestorNode() with shadowHost()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675491</commentid>
    <comment_count>1</comment_count>
      <attachid>153744</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-23 00:36:11 -0700</bug_when>
    <thetext>Created attachment 153744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675493</commentid>
    <comment_count>2</comment_count>
      <attachid>153744</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-23 00:41:17 -0700</bug_when>
    <thetext>Comment on attachment 153744
Patch

Attachment 153744 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13325018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675494</commentid>
    <comment_count>3</comment_count>
      <attachid>153745</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-23 00:46:09 -0700</bug_when>
    <thetext>Created attachment 153745
Patch 2

Fix listTreeScopes()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675497</commentid>
    <comment_count>4</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-07-23 00:51:32 -0700</bug_when>
    <thetext>Looks sane for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675607</commentid>
    <comment_count>5</comment_count>
      <attachid>153745</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 04:20:02 -0700</bug_when>
    <thetext>Comment on attachment 153745
Patch 2

Clearing flags on attachment: 153745

Committed r123329: &lt;http://trac.webkit.org/changeset/123329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675608</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 04:20:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153744</attachid>
            <date>2012-07-23 00:36:11 -0700</date>
            <delta_ts>2012-07-23 00:46:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91966-20120723163611.patch</filename>
            <type>text/plain</type>
            <size>18968</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIwMmYyYWU5ODM4ZWQx
ZjE4MmQzNTQ0YmI0MjhlYTYwZjY3NTZmNS4uNDUyYmY4ZTVmZjIwYzQ3NjQzNzFhMGZhMDVmZDI1
NjQwODA5NzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIHNvbWUgaW5z
dGFuY2VzIG9mIHNoYWRvd0FuY2VzdG9yTm9kZSgpIHdpdGggc2hhZG93SG9zdCgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTk2NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNoYWRvd0FuY2VzdG9yTm9k
ZSgpIGlzIGRlcHJlY2F0ZWQuIFdlIHNob3VsZCB1c2Ugc2hhZG93SG9zdCgpLgorICAgICAgICBO
byBuZXcgdGVzdHMuIFRoaXMgZG9lc24ndCBjaGFuZ2UgYW55IGJlaGF2aW9yLgorCisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGlzdFRyZWVTY29wZXMpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2xpY2thYmxlQ29udHJvbCk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWV0ZXJTaGFkb3dFbGVtZW50OjptZXRlckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1No
YWRvd0VsZW1lbnQ6OnByb2dyZXNzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1i
OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyQ29udGFpbmVyOjpsYXlv
dXQpOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5l
clRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3Bp
bkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U3BpbkJ1dHRvbkVsZW1lbnQ6OnN0ZXApOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNw
ZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzZXRSZWNvZ25pdGlvblJlc3Vs
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3Rh
cnRTcGVlY2hJbnB1dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2s6OnBvc2l0aW9uRm9yUG9pbnQpOgorCiAyMDEyLTA3LTIyICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgTWlzc2luZyAqZXhwbGljaXQqIGtleXdv
cmQgaW4gc3RvcmFnZSBhbmQgd29ya2Vycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
ci5jcHAKaW5kZXggNjZkYzU4NzRiZmI3NDcxNTI4MGVhZThiYjEwNzA1ZjkwN2JmOThjNS4uMjk5
ZTA3NWQ1NzFhMmEwMWEwNjY1ZjE3N2EyNThhODhiYTBjODVmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTU0MCwxMCArNTQwLDEwIEBAIFNlbGVjdG9yQ2hlY2tl
cjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgU2Vs
ZWN0b3JDaGVjCiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgc2FtZSB0cmVlLXNjb3Bl
IGFzIHRoZSBzY29waW5nIGVsZW1lbnQsIHRoZW4gZm9sbG93aW5nIGEgc2hhZG93IGRlc2NlbmRh
bnQgY29tYmluYXRvciB3b3VsZCBlc2NhcGUgdGhhdCBhbmQgdGh1cyB0aGUgc2NvcGUuCiAgICAg
ICAgICAgICBpZiAoY29udGV4dC5zY29wZSAmJiBjb250ZXh0LnNjb3BlLT50cmVlU2NvcGUoKSA9
PSBjb250ZXh0LmVsZW1lbnQtPnRyZWVTY29wZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBT
ZWxlY3RvckZhaWxzQ29tcGxldGVseTsKLSAgICAgICAgICAgIE5vZGUqIHNoYWRvd0hvc3ROb2Rl
ID0gY29udGV4dC5lbGVtZW50LT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKLSAgICAgICAgICAgIGlm
IChzaGFkb3dIb3N0Tm9kZSA9PSBjb250ZXh0LmVsZW1lbnQgfHwgIXNoYWRvd0hvc3ROb2RlLT5p
c0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICBFbGVtZW50KiBzaGFkb3dIb3N0Tm9kZSA9IGNv
bnRleHQuZWxlbWVudC0+c2hhZG93SG9zdCgpOworICAgICAgICAgICAgaWYgKCFzaGFkb3dIb3N0
Tm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7Ci0g
ICAgICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gdG9FbGVtZW50KHNoYWRvd0hvc3ROb2Rl
KTsKKyAgICAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnQgPSBzaGFkb3dIb3N0Tm9kZTsKICAg
ICAgICAgICAgIG5leHRDb250ZXh0LmlzU3ViU2VsZWN0b3IgPSBmYWxzZTsKICAgICAgICAgICAg
IG5leHRDb250ZXh0LmVsZW1lbnRTdHlsZSA9IDA7CiAgICAgICAgICAgICBuZXh0Q29udGV4dC5l
bGVtZW50UGFyZW50U3R5bGUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwMzJl
ZGYxMjZlMDgwN2Q0MTc1ZTJlZGI5Y2U1ZDEyODkzOWZhZjJhLi4wMzc3ZGMxMDRkZTM4NzNlYzMy
NGEyNGFlNjI3MTNjZWIwZWEwYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjY2
LDggKzI2Niw4IEBAIHN0YXRpYyB2b2lkIGxpc3RUcmVlU2NvcGVzKE5vZGUqIG5vZGUsIFZlY3Rv
cjxUcmVlU2NvcGUqLCA1PiYgdHJlZVNjb3BlcykKIHsKICAgICB3aGlsZSAodHJ1ZSkgewogICAg
ICAgICB0cmVlU2NvcGVzLmFwcGVuZChub2RlLT50cmVlU2NvcGUoKSk7Ci0gICAgICAgIE5vZGUq
IGFuY2VzdG9yID0gbm9kZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7Ci0gICAgICAgIGlmIChub2Rl
ID09IGFuY2VzdG9yKQorICAgICAgICBOb2RlKiBhbmNlc3RvciA9IG5vZGUtPnNoYWRvd0hvc3Qo
KTsKKyAgICAgICAgaWYgKCFub2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIG5vZGUg
PSBhbmNlc3RvcjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5jcHAKaW5kZXggZGFmMTI2Y2ZiMDA3NzJjNGZkNjY3M2MzMmIyMmJmYWU4ZTlmMmQxZi4uNzRm
ZjVlNmQ3NTI1ODU4YmY4NmE0MTU0ODA1NDczNzIzOGU0ZTE4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBi
b29sIGlzQ2xpY2thYmxlQ29udHJvbChOb2RlKiBub2RlKQogICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSB0b0VsZW1lbnQobm9kZSk7CiAgICAgaWYgKGVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIEVsZW1lbnQqIGhvc3QgPSB0b0VsZW1lbnQo
ZWxlbWVudC0+c2hhZG93QW5jZXN0b3JOb2RlKCkpOworICAgIEVsZW1lbnQqIGhvc3QgPSBlbGVt
ZW50LT5zaGFkb3dIb3N0KCk7CiAgICAgcmV0dXJuIGhvc3QgJiYgaG9zdC0+aXNGb3JtQ29udHJv
bEVsZW1lbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0
YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IGIzYmUzYzQ1YzE4ODk4MDA4OGY0ODQ2ODE3OWVi
YzhlN2IyYTc0MTAuLmIxMDllZjhlYjZkZTcxMjBmNDI2NTk1YjhhYjU1ZDhmOTIzOTVlMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9s
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAKQEAgLTYzLDkgKzYzLDkgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBEZXRhaWxzTWFya2Vy
Q29udHJvbDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiBIVE1MU3VtbWFyeUVsZW1lbnQqIERl
dGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCgpCiB7Ci0gICAgTm9kZSogbm9kZSA9
IHRoaXMtPnNoYWRvd0FuY2VzdG9yTm9kZSgpOwotICAgIEFTU0VSVCghbm9kZSB8fCB0b0VsZW1l
bnQobm9kZSktPmhhc1RhZ05hbWUoc3VtbWFyeVRhZykpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MU3VtbWFyeUVsZW1lbnQqPihub2RlKTsKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc2hh
ZG93SG9zdCgpOworICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKHN1
bW1hcnlUYWcpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFN1bW1hcnlFbGVtZW50Kj4o
ZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01ldGVyU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRl
clNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDJkNGQ4NDQ4MTM4ZDg5NjBiODdlMTczNGY0MTY3ZDM5
MDJlODdhOGUuLjMxMDFiZDEyNDU2OGI0NmI5Y2Y3MTg4ZjlhMDc0Y2E1ZGQ4NjEyYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcApA
QCAtNTAsOSArNTAsOSBAQCBNZXRlclNoYWRvd0VsZW1lbnQ6Ok1ldGVyU2hhZG93RWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCiAKIEhUTUxNZXRlckVsZW1lbnQqIE1ldGVyU2hhZG93RWxlbWVu
dDo6bWV0ZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gY29uc3RfY2FzdDxN
ZXRlclNoYWRvd0VsZW1lbnQqPih0aGlzKS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7Ci0gICAgQVNT
RVJUKCFub2RlIHx8IG1ldGVyVGFnID09IHRvRWxlbWVudChub2RlKS0+dGFnUU5hbWUoKSk7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxNZXRlckVsZW1lbnQqPihub2RlKTsKKyAgICBFbGVt
ZW50KiBlbGVtZW50ID0gc2hhZG93SG9zdCgpOworICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVt
ZW50LT5oYXNUYWdOYW1lKG1ldGVyVGFnKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxN
ZXRlckVsZW1lbnQqPihlbGVtZW50KTsKIH0KIAogYm9vbCBNZXRlclNoYWRvd0VsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cAppbmRleCA3ODA4MTUyMTJiNDQ0OGM3NmEwNGQ3NWNlMWQ3YjI4YmJkNTRmZjkxLi44MDBmMjIz
NTFmNmQ4YWI0MDMzOGM3YmIyMTgwMWY4NzkxZjkxODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKQEAgLTQ3LDkgKzQ3
LDkgQEAgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50OjpQcm9ncmVzc1NoYWRvd0VsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQogCiBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBQcm9ncmVzc1NoYWRvd0VsZW1l
bnQ6OnByb2dyZXNzRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IGNvbnN0X2Nh
c3Q8UHJvZ3Jlc3NTaGFkb3dFbGVtZW50Kj4odGhpcyktPnNoYWRvd0FuY2VzdG9yTm9kZSgpOwot
ICAgIEFTU0VSVCghbm9kZSB8fCBwcm9ncmVzc1RhZyA9PSB0b0VsZW1lbnQobm9kZSktPnRhZ1FO
YW1lKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MUHJvZ3Jlc3NFbGVtZW50Kj4obm9k
ZSk7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHNoYWRvd0hvc3QoKTsKKyAgICBBU1NFUlQoIWVs
ZW1lbnQgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShwcm9ncmVzc1RhZykpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MUHJvZ3Jlc3NFbGVtZW50Kj4oZWxlbWVudCk7CiB9CiAKIGJvb2wgUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAKaW5kZXggYmI1OTQ4NjkwNTlkN2QzNTgwNjljZDgxNjE2YWJkM2Qw
NzM1NGU2MC4uY2NjYWQ4MWVmNmQ4N2RiYjJjMjI3ZjlkNjBkMTAxMDE3N2U4ZjgyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBA
IC0xMTMsNyArMTEzLDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJUaHVtYjo6bGF5b3V0KCkKIHsKICAg
ICAvLyBEbyBub3QgY2FzdCBub2RlKCkgdG8gU2xpZGVyVGh1bWJFbGVtZW50LiBUaGlzIHJlbmRl
cmVyIGlzIHVzZWQgZm9yCiAgICAgLy8gVHJhY2tMaW1pdEVsZW1lbnQgdG9vLgotICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0ID0gbm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1
dEVsZW1lbnQoKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IG5vZGUoKS0+c2hhZG93
SG9zdCgpLT50b0lucHV0RWxlbWVudCgpOwogICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGhhc1ZlcnRp
Y2FsQXBwZWFyYW5jZShpbnB1dCk7CiAKICAgICBkb3VibGUgZnJhY3Rpb24gPSAoc2xpZGVyUG9z
aXRpb24oaW5wdXQpICogMTAwKS50b0RvdWJsZSgpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIHByaXZh
dGU6CiAKIHZvaWQgUmVuZGVyU2xpZGVyQ29udGFpbmVyOjpsYXlvdXQoKQogewotICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0ID0gbm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1
dEVsZW1lbnQoKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IG5vZGUoKS0+c2hhZG93
SG9zdCgpLT50b0lucHV0RWxlbWVudCgpOwogICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGhhc1ZlcnRp
Y2FsQXBwZWFyYW5jZShpbnB1dCk7CiAgICAgc3R5bGUoKS0+c2V0Qm94T3JpZW50KGlzVmVydGlj
YWwgPyBWRVJUSUNBTCA6IEhPUklaT05UQUwpOwogICAgIC8vIFNldHMgdGhlIGNvbmNyZXRlIGhl
aWdodCBpZiB0aGUgaGVpZ2h0IG9mIHRoZSA8aW5wdXQ+IGlzIG5vdCBmaXhlZCBvciBhCkBAIC0z
NDMsOCArMzQzLDggQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRldGFjaCgpCiBIVE1MSW5w
dXRFbGVtZW50KiBTbGlkZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgpIGNvbnN0CiB7CiAgICAg
Ly8gT25seSBIVE1MSW5wdXRFbGVtZW50IGNyZWF0ZXMgU2xpZGVyVGh1bWJFbGVtZW50IGluc3Rh
bmNlcyBhcyBpdHMgc2hhZG93IG5vZGVzLgotICAgIC8vIFNvLCBzaGFkb3dBbmNlc3Rvck5vZGUo
KSBtdXN0IGJlIGFuIEhUTUxJbnB1dEVsZW1lbnQuCi0gICAgcmV0dXJuIHNoYWRvd0FuY2VzdG9y
Tm9kZSgpLT50b0lucHV0RWxlbWVudCgpOworICAgIC8vIFNvLCBzaGFkb3dIb3N0KCkgbXVzdCBi
ZSBhbiBIVE1MSW5wdXRFbGVtZW50LgorICAgIHJldHVybiBzaGFkb3dIb3N0KCktPnRvSW5wdXRF
bGVtZW50KCk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHNsaWRlclRodW1iU2hh
ZG93UHNldWRvSWQoKQpAQCAtNDAzLDcgKzQwMyw3IEBAIFJlbmRlck9iamVjdCogVHJhY2tMaW1p
dGVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc2hhZG93QW5jZXN0
b3JOb2RlKCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSBzaGFkb3dIb3N0KCktPnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dCkKICAgICAg
ICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKIApAQCAtNDUzLDcgKzQ1Myw3
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIi
KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlckNv
bnRhaW5lciwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIiKSk7CiAKLSAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgpOwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc2hhZG93SG9zdCgpLT50b0lucHV0RWxlbWVu
dCgpOwogICAgIGlmICghaW5wdXQpCiAgICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwCmluZGV4IGMwNGZiNTVmODE4YzliNjc2YjA4YTE5OTIxMDQ4NmMzZjk2ODUz
NzUuLmUzMDk3YmI1ZTQ4NjE0NmQ2N2UwYjQ3OGM5ODc4ZmFmZjE3OGU3MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcApAQCAtNjMsNyArNjMsNyBAQCBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVtZW50
PiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkbwogCiBQYXNzUmVm
UHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JS
ZW5kZXJlcigpCiB7Ci0gICAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKiBwYXJlbnRSZW5k
ZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKHNoYWRvd0FuY2VzdG9yTm9kZSgp
LT5yZW5kZXJlcigpKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUqIHBhcmVudFJl
bmRlcmVyID0gdG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoc2hhZG93SG9zdCgpLT5yZW5k
ZXJlcigpKTsKICAgICByZXR1cm4gcGFyZW50UmVuZGVyZXItPmNyZWF0ZUlubmVyQmxvY2tTdHls
ZShwYXJlbnRSZW5kZXJlci0+c3R5bGUoKSk7CiB9CiAKQEAgLTg2LDExICs4NiwxMyBAQCB2b2lk
IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCog
ZXZlbnQpCiAgICAgLy8gVGhlbiB3ZSB3b3VsZCBhZGQgb25lIHRvIHRoZSB0ZXh0IGZpZWxkJ3Mg
aW5uZXIgZGl2LCBhbmQgd2Ugd291bGRuJ3QgbmVlZCB0aGlzIHN1YmNsYXNzLgogICAgIC8vIE9y
IHBvc3NpYmx5IHdlIGNvdWxkIGp1c3QgdXNlIGEgbm9ybWFsIGV2ZW50IGxpc3RlbmVyLgogICAg
IGlmIChldmVudC0+aXNCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCgpIHx8IGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLndlYmtpdEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudCkgewotICAg
ICAgICBOb2RlKiBzaGFkb3dBbmNlc3RvciA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpOwotICAgICAg
ICAvLyBBIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCBjYW4gYmUgaXRzIG93biBzaGFkb3cg
YW5jZXN0b3IgaWYgaXRzIGJlZW4gZGV0YWNoZWQsIGJ1dCBrZXB0IGFsaXZlIGJ5IGFuIEVkaXRD
b21tYW5kLgotICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIGFuIHVuZG8vcmVkbyBjYW4gY2F1c2Ug
ZXZlbnRzIHRvIGJlIHNlbnQgdG8gdGhlIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudC4gIAot
ICAgICAgICAvLyBUbyBwcmV2ZW50IGFuIGluZmluaXRlIGxvb3AsIHdlIG11c3QgY2hlY2sgZm9y
IHRoaXMgY2FzZSBiZWZvcmUgc2VuZGluZyB0aGUgZXZlbnQgdXAgdGhlIGNoYWluLgotICAgICAg
ICBpZiAoc2hhZG93QW5jZXN0b3IgJiYgc2hhZG93QW5jZXN0b3IgIT0gdGhpcykKKyAgICAgICAg
RWxlbWVudCogc2hhZG93QW5jZXN0b3IgPSBzaGFkb3dIb3N0KCk7CisgICAgICAgIC8vIEEgVGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50IGNhbiBoYXZlIG5vIGhvc3QgaWYgaXRzIGJlZW4gZGV0
YWNoZWQsCisgICAgICAgIC8vIGJ1dCBrZXB0IGFsaXZlIGJ5IGFuIEVkaXRDb21tYW5kLiBJbiB0
aGlzIGNhc2UsIGFuIHVuZG8vcmVkbyBjYW4KKyAgICAgICAgLy8gY2F1c2UgZXZlbnRzIHRvIGJl
IHNlbnQgdG8gdGhlIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudC4gVG8KKyAgICAgICAgLy8g
cHJldmVudCBhbiBpbmZpbml0ZSBsb29wLCB3ZSBtdXN0IGNoZWNrIGZvciB0aGlzIGNhc2UgYmVm
b3JlIHNlbmRpbmcKKyAgICAgICAgLy8gdGhlIGV2ZW50IHVwIHRoZSBjaGFpbi4KKyAgICAgICAg
aWYgKHNoYWRvd0FuY2VzdG9yKQogICAgICAgICAgICAgc2hhZG93QW5jZXN0b3ItPmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOwogICAgIH0KICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxl
ZCgpKQpAQCAtMTAwLDcgKzEwMiw3IEBAIHZvaWQgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIFJlbmRlck9iamVjdCogVGV4dENv
bnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEs
IFJlbmRlclN0eWxlKikKIHsKICAgICBib29sIG11bHRpTGluZSA9IGZhbHNlOwotICAgIE5vZGUq
IHNoYWRvd0FuY2VzdG9yID0gc2hhZG93QW5jZXN0b3JOb2RlKCk7CisgICAgRWxlbWVudCogc2hh
ZG93QW5jZXN0b3IgPSBzaGFkb3dIb3N0KCk7CiAgICAgaWYgKHNoYWRvd0FuY2VzdG9yICYmIHNo
YWRvd0FuY2VzdG9yLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIEFTU0VSVChzaGFkb3dBbmNlc3Rv
ci0+cmVuZGVyZXIoKS0+aXNUZXh0RmllbGQoKSB8fCBzaGFkb3dBbmNlc3Rvci0+cmVuZGVyZXIo
KS0+aXNUZXh0QXJlYSgpKTsKICAgICAgICAgbXVsdGlMaW5lID0gc2hhZG93QW5jZXN0b3ItPnJl
bmRlcmVyKCktPmlzVGV4dEFyZWEoKTsKQEAgLTExMCw3ICsxMTIsNyBAQCBSZW5kZXJPYmplY3Qq
IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEq
IGFyZW5hLCBSZQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQogewotICAgIFJlbmRlclRleHRDb250
cm9sKiBwYXJlbnRSZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2woc2hhZG93QW5jZXN0b3JO
b2RlKCktPnJlbmRlcmVyKCkpOworICAgIFJlbmRlclRleHRDb250cm9sKiBwYXJlbnRSZW5kZXJl
ciA9IHRvUmVuZGVyVGV4dENvbnRyb2woc2hhZG93SG9zdCgpLT5yZW5kZXJlcigpKTsKICAgICBy
ZXR1cm4gcGFyZW50UmVuZGVyZXItPmNyZWF0ZUlubmVyVGV4dFN0eWxlKHBhcmVudFJlbmRlcmVy
LT5zdHlsZSgpKTsKIH0KIApAQCAtMTMxLDcgKzEzMyw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXN1bHRzSWQsICgiLXdlYmtp
dC1zZWFyY2gtcmVzdWx0cy1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHJlc3VsdHNEZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1k
ZWNvcmF0aW9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWNv
cmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIpKTsKLSAgICBOb2RlKiBob3N0
ID0gc2hhZG93QW5jZXN0b3JOb2RlKCk7CisgICAgRWxlbWVudCogaG9zdCA9IHNoYWRvd0hvc3Qo
KTsKICAgICBpZiAoIWhvc3QpCiAgICAgICAgIHJldHVybiByZXN1bHRzSWQ7CiAgICAgaWYgKEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdC0+dG9JbnB1dEVsZW1lbnQoKSkgewpAQCAtMTQ3
LDcgKzE0OSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogdm9pZCBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAgICAv
LyBPbiBtb3VzZWRvd24sIGJyaW5nIHVwIGEgbWVudSwgaWYgbmVlZGVkCi0gICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5j
ZXN0b3JOb2RlKCkpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAm
JiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9u
KSB7CiAgICAgICAgIGlucHV0LT5mb2N1cygpOwogICAgICAgICBpbnB1dC0+c2VsZWN0KCk7CkBA
IC0xOTUsNyArMTk3LDcgQEAgdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRl
dGFjaCgpCiB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgdmlzaWJs
ZSwgb24gbW91c2V1cCwgY2xlYXIgdGhlIHZhbHVlLCBhbmQgc2V0IHNlbGVjdGlvbgotICAgIFJl
ZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpKTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4g
aW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSkpOwogICAg
IGlmIChpbnB1dC0+ZGlzYWJsZWQoKSB8fCBpbnB1dC0+aXNSZWFkT25seUZvcm1Db250cm9sKCkp
IHsKICAgICAgICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAgICAgIEhU
TUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKQEAgLTI3Niw3ICsyNzgs
NyBAQCB2b2lkIFNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBl
dmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVt
ZW50PiBpbnB1dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JO
b2RlKCkpKTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSkpOwogICAgIGlmIChpbnB1dC0+ZGlzYWJs
ZWQoKSB8fCBpbnB1dC0+aXNSZWFkT25seUZvcm1Db250cm9sKCkpIHsKICAgICAgICAgaWYgKCFl
dmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAgICAgIEhUTUxEaXZFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKQEAgLTM2Miw3ICszNjQsNyBAQCB2b2lkIFNwaW5CdXR0
b25FbGVtZW50OjpzdG9wUmVwZWF0aW5nVGltZXIoKQogCiB2b2lkIFNwaW5CdXR0b25FbGVtZW50
OjpzdGVwKGludCBhbW91bnQpCiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOworICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNo
YWRvd0hvc3QoKSk7CiAgICAgaWYgKGlucHV0LT5kaXNhYmxlZCgpIHx8IGlucHV0LT5pc1JlYWRP
bmx5Rm9ybUNvbnRyb2woKSkKICAgICAgICAgcmV0dXJuOwogICAgIC8vIE9uIE1hYyBPUywgTlNT
dGVwcGVyIHVwZGF0ZXMgdGhlIHZhbHVlIGZvciB0aGUgYnV0dG9uIHVuZGVyIHRoZSBtb3VzZQpA
QCAtNDI3LDcgKzQyOSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIC8vIFRoZSBjYWxsIHRvIGZvY3Vz
KCkgYmVsb3cgZGlzcGF0Y2hlcyBhIGZvY3VzIGV2ZW50LCBhbmQgYW4gZXZlbnQgaGFuZGxlciBp
biB0aGUgcGFnZSBtaWdodAogICAgIC8vIHJlbW92ZSB0aGUgaW5wdXQgZWxlbWVudCBmcm9tIERP
TS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFsaWQgdW50aWwgd2UgZmluaXNoIG91ciB3b3Jr
CiAgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBvcmFyeSByZWZlcmVuY2UuCi0gICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihz
aGFkb3dBbmNlc3Rvck5vZGUoKSkpOworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1
dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKSk7CiAKICAgICBp
ZiAoaW5wdXQtPmRpc2FibGVkKCkgfHwgaW5wdXQtPmlzUmVhZE9ubHlGb3JtQ29udHJvbCgpKSB7
CiAgICAgICAgIGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCkBAIC00ODEsNyArNDgzLDcg
QEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c2V0U3RhdGUoU3BlZWNoSW5w
dXRTdGF0ZSBzdGF0ZSkKIHsKICAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewogICAgICAgICBt
X3N0YXRlID0gc3RhdGU7Ci0gICAgICAgIHNoYWRvd0FuY2VzdG9yTm9kZSgpLT5yZW5kZXJlcigp
LT5yZXBhaW50KCk7CisgICAgICAgIHNoYWRvd0hvc3QoKS0+cmVuZGVyZXIoKS0+cmVwYWludCgp
OwogICAgIH0KIH0KIApAQCAtNTA3LDcgKzUwOSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1
dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0aW9uUmVzdWx0KGludCwgY29uc3QgU3BlZWNoSW5wdXRS
CiAgICAgLy8gVGhlIGNhbGwgdG8gc2V0VmFsdWUoKSBiZWxvdyBkaXNwYXRjaGVzIGFuIGV2ZW50
LCBhbmQgYW4gZXZlbnQgaGFuZGxlciBpbiB0aGUgcGFnZSBtaWdodAogICAgIC8vIHJlbW92ZSB0
aGUgaW5wdXQgZWxlbWVudCBmcm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFsaWQg
dW50aWwgd2UgZmluaXNoIG91ciB3b3JrCiAgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBvcmFy
eSByZWZlcmVuY2UuCi0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkpOworICAgIFJlZlB0
cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4o
c2hhZG93SG9zdCgpKSk7CiAgICAgaWYgKGlucHV0LT5kaXNhYmxlZCgpIHx8IGlucHV0LT5pc1Jl
YWRPbmx5Rm9ybUNvbnRyb2woKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01NjAsNyArNTYyLDcg
QEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3RhcnRTcGVlY2hJbnB1dCgp
CiAgICAgaWYgKG1fc3RhdGUgIT0gSWRsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5w
dXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKTsKICAgICBB
dG9taWNTdHJpbmcgbGFuZ3VhZ2UgPSBpbnB1dC0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCk7
CiAgICAgU3RyaW5nIGdyYW1tYXIgPSBpbnB1dC0+Z2V0QXR0cmlidXRlKHdlYmtpdGdyYW1tYXJB
dHRyKTsKICAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgcHJvYmFibHkgcmVzcGVjdCB0cmFuc2Zv
cm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDU1YTY1NzE3ZDU3MTQ0ZDliMzIyOWFlYzM2YjFhMjZh
OWIwNDI0NmYuLjBiNjMyNDVlNTI4OWY5NDA2OTY0ZDZkNGVhMTdmZTIxYWQ1MTMyZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCkBAIC01MywxMCArNTMsMTAgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlclRl
eHRDb250cm9sSW5uZXJCbG9jazo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYK
IHsKICAgICBMYXlvdXRQb2ludCBjb250ZW50c1BvaW50KHBvaW50KTsKIAotICAgIC8vIE11bHRp
bGluZSB0ZXh0IGNvbnRyb2xzIGhhdmUgdGhlIHNjcm9sbCBvbiBzaGFkb3dBbmNlc3Rvck5vZGUs
IHNvIHdlIG5lZWQgdG8gdGFrZSB0aGF0Ci0gICAgLy8gaW50byBhY2NvdW50IGhlcmUuCisgICAg
Ly8gTXVsdGlsaW5lIHRleHQgY29udHJvbHMgaGF2ZSB0aGUgc2Nyb2xsIG9uIHNoYWRvd0hvc3Qs
IHNvIHdlIG5lZWQgdG8gdGFrZQorICAgIC8vIHRoYXQgaW50byBhY2NvdW50IGhlcmUuCiAgICAg
aWYgKG1fbXVsdGlMaW5lKSB7Ci0gICAgICAgIFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlciA9
IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKS0+cmVuZGVy
ZXIoKSk7CisgICAgICAgIFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlciA9IHRvUmVuZGVyVGV4
dENvbnRyb2wobm9kZSgpLT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCkpOwogICAgICAgICBpZiAo
cmVuZGVyZXItPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICAgICAgY29udGVudHNQb2ludCAr
PSByZW5kZXJlci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153745</attachid>
            <date>2012-07-23 00:46:09 -0700</date>
            <delta_ts>2012-07-23 04:20:02 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-91966-20120723164609.patch</filename>
            <type>text/plain</type>
            <size>18975</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIwMmYyYWU5ODM4ZWQx
ZjE4MmQzNTQ0YmI0MjhlYTYwZjY3NTZmNS4uNDUyYmY4ZTVmZjIwYzQ3NjQzNzFhMGZhMDVmZDI1
NjQwODA5NzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIHNvbWUgaW5z
dGFuY2VzIG9mIHNoYWRvd0FuY2VzdG9yTm9kZSgpIHdpdGggc2hhZG93SG9zdCgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTk2NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNoYWRvd0FuY2VzdG9yTm9k
ZSgpIGlzIGRlcHJlY2F0ZWQuIFdlIHNob3VsZCB1c2Ugc2hhZG93SG9zdCgpLgorICAgICAgICBO
byBuZXcgdGVzdHMuIFRoaXMgZG9lc24ndCBjaGFuZ2UgYW55IGJlaGF2aW9yLgorCisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bGlzdFRyZWVTY29wZXMpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2xpY2thYmxlQ29udHJvbCk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWV0ZXJTaGFkb3dFbGVtZW50OjptZXRlckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1No
YWRvd0VsZW1lbnQ6OnByb2dyZXNzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1i
OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyQ29udGFpbmVyOjpsYXlv
dXQpOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5l
clRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3Bp
bkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U3BpbkJ1dHRvbkVsZW1lbnQ6OnN0ZXApOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNw
ZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzZXRSZWNvZ25pdGlvblJlc3Vs
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3Rh
cnRTcGVlY2hJbnB1dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2s6OnBvc2l0aW9uRm9yUG9pbnQpOgorCiAyMDEyLTA3LTIyICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgTWlzc2luZyAqZXhwbGljaXQqIGtleXdv
cmQgaW4gc3RvcmFnZSBhbmQgd29ya2Vycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
ci5jcHAKaW5kZXggNjZkYzU4NzRiZmI3NDcxNTI4MGVhZThiYjEwNzA1ZjkwN2JmOThjNS4uMjk5
ZTA3NWQ1NzFhMmEwMWEwNjY1ZjE3N2EyNThhODhiYTBjODVmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTU0MCwxMCArNTQwLDEwIEBAIFNlbGVjdG9yQ2hlY2tl
cjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgU2Vs
ZWN0b3JDaGVjCiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgc2FtZSB0cmVlLXNjb3Bl
IGFzIHRoZSBzY29waW5nIGVsZW1lbnQsIHRoZW4gZm9sbG93aW5nIGEgc2hhZG93IGRlc2NlbmRh
bnQgY29tYmluYXRvciB3b3VsZCBlc2NhcGUgdGhhdCBhbmQgdGh1cyB0aGUgc2NvcGUuCiAgICAg
ICAgICAgICBpZiAoY29udGV4dC5zY29wZSAmJiBjb250ZXh0LnNjb3BlLT50cmVlU2NvcGUoKSA9
PSBjb250ZXh0LmVsZW1lbnQtPnRyZWVTY29wZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBT
ZWxlY3RvckZhaWxzQ29tcGxldGVseTsKLSAgICAgICAgICAgIE5vZGUqIHNoYWRvd0hvc3ROb2Rl
ID0gY29udGV4dC5lbGVtZW50LT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKLSAgICAgICAgICAgIGlm
IChzaGFkb3dIb3N0Tm9kZSA9PSBjb250ZXh0LmVsZW1lbnQgfHwgIXNoYWRvd0hvc3ROb2RlLT5p
c0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICBFbGVtZW50KiBzaGFkb3dIb3N0Tm9kZSA9IGNv
bnRleHQuZWxlbWVudC0+c2hhZG93SG9zdCgpOworICAgICAgICAgICAgaWYgKCFzaGFkb3dIb3N0
Tm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7Ci0g
ICAgICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gdG9FbGVtZW50KHNoYWRvd0hvc3ROb2Rl
KTsKKyAgICAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnQgPSBzaGFkb3dIb3N0Tm9kZTsKICAg
ICAgICAgICAgIG5leHRDb250ZXh0LmlzU3ViU2VsZWN0b3IgPSBmYWxzZTsKICAgICAgICAgICAg
IG5leHRDb250ZXh0LmVsZW1lbnRTdHlsZSA9IDA7CiAgICAgICAgICAgICBuZXh0Q29udGV4dC5l
bGVtZW50UGFyZW50U3R5bGUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwMzJl
ZGYxMjZlMDgwN2Q0MTc1ZTJlZGI5Y2U1ZDEyODkzOWZhZjJhLi4zZWM1ZTNjZTk0YjZkY2Q4ZGVm
ZDdhODUwY2ZhZDdmMTQzZGE0YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjY2
LDggKzI2Niw4IEBAIHN0YXRpYyB2b2lkIGxpc3RUcmVlU2NvcGVzKE5vZGUqIG5vZGUsIFZlY3Rv
cjxUcmVlU2NvcGUqLCA1PiYgdHJlZVNjb3BlcykKIHsKICAgICB3aGlsZSAodHJ1ZSkgewogICAg
ICAgICB0cmVlU2NvcGVzLmFwcGVuZChub2RlLT50cmVlU2NvcGUoKSk7Ci0gICAgICAgIE5vZGUq
IGFuY2VzdG9yID0gbm9kZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7Ci0gICAgICAgIGlmIChub2Rl
ID09IGFuY2VzdG9yKQorICAgICAgICBFbGVtZW50KiBhbmNlc3RvciA9IG5vZGUtPnNoYWRvd0hv
c3QoKTsKKyAgICAgICAgaWYgKCFhbmNlc3RvcikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBub2RlID0gYW5jZXN0b3I7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCmluZGV4IGRhZjEyNmNmYjAwNzcyYzRmZDY2NzNjMzJiMjJiZmFlOGU5ZjJk
MWYuLjc0ZmY1ZTZkNzUyNTg1OGJmODZhNDE1NDgwNTQ3MzcyMzhlNGUxODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBz
dGF0aWMgYm9vbCBpc0NsaWNrYWJsZUNvbnRyb2woTm9kZSogbm9kZSkKICAgICBFbGVtZW50KiBl
bGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOwogICAgIGlmIChlbGVtZW50LT5pc0Zvcm1Db250cm9s
RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBFbGVtZW50KiBob3N0ID0gdG9F
bGVtZW50KGVsZW1lbnQtPnNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBFbGVtZW50KiBob3N0
ID0gZWxlbWVudC0+c2hhZG93SG9zdCgpOwogICAgIHJldHVybiBob3N0ICYmIGhvc3QtPmlzRm9y
bUNvbnRyb2xFbGVtZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAppbmRleCBiM2JlM2M0NWMxODg5ODAwODhmNDg0
NjgxNzllYmM4ZTdiMmE3NDEwLi5iMTA5ZWY4ZWI2ZGU3MTIwZjQyNjU5NWI4YWI1NWQ4ZjkyMzk1
ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwCkBAIC02Myw5ICs2Myw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRGV0YWls
c01hcmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAogSFRNTFN1bW1hcnlFbGVt
ZW50KiBEZXRhaWxzTWFya2VyQ29udHJvbDo6c3VtbWFyeUVsZW1lbnQoKQogewotICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKLSAgICBBU1NFUlQoIW5vZGUgfHwg
dG9FbGVtZW50KG5vZGUpLT5oYXNUYWdOYW1lKHN1bW1hcnlUYWcpKTsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SFRNTFN1bW1hcnlFbGVtZW50Kj4obm9kZSk7CisgICAgRWxlbWVudCogZWxlbWVu
dCA9IHNoYWRvd0hvc3QoKTsKKyAgICBBU1NFUlQoIWVsZW1lbnQgfHwgZWxlbWVudC0+aGFzVGFn
TmFtZShzdW1tYXJ5VGFnKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxTdW1tYXJ5RWxl
bWVudCo+KGVsZW1lbnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAppbmRleCAyZDRkODQ0ODEzOGQ4OTYwYjg3ZTE3MzRm
NDE2N2QzOTAyZTg3YThlLi4zMTAxYmQxMjQ1NjhiNDZiOWNmNzE4OGY5YTA3NGNhNWRkODYxMmI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVu
dC5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgTWV0ZXJTaGFkb3dFbGVtZW50OjpNZXRlclNoYWRvd0Vs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBIVE1MTWV0ZXJFbGVtZW50KiBNZXRlclNoYWRv
d0VsZW1lbnQ6Om1ldGVyRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IGNvbnN0
X2Nhc3Q8TWV0ZXJTaGFkb3dFbGVtZW50Kj4odGhpcyktPnNoYWRvd0FuY2VzdG9yTm9kZSgpOwot
ICAgIEFTU0VSVCghbm9kZSB8fCBtZXRlclRhZyA9PSB0b0VsZW1lbnQobm9kZSktPnRhZ1FOYW1l
KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWV0ZXJFbGVtZW50Kj4obm9kZSk7Cisg
ICAgRWxlbWVudCogZWxlbWVudCA9IHNoYWRvd0hvc3QoKTsKKyAgICBBU1NFUlQoIWVsZW1lbnQg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShtZXRlclRhZykpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MTWV0ZXJFbGVtZW50Kj4oZWxlbWVudCk7CiB9CiAKIGJvb2wgTWV0ZXJTaGFkb3dFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggNzgwODE1MjEyYjQ0NDhjNzZhMDRkNzVjZTFkN2IyOGJiZDU0ZmY5MS4u
ODAwZjIyMzUxZjZkOGFiNDAzMzhjN2JiMjE4MDFmODc5MWY5MTgzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCkBAIC00
Nyw5ICs0Nyw5IEBAIFByb2dyZXNzU2hhZG93RWxlbWVudDo6UHJvZ3Jlc3NTaGFkb3dFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKIAogSFRNTFByb2dyZXNzRWxlbWVudCogUHJvZ3Jlc3NTaGFk
b3dFbGVtZW50Ojpwcm9ncmVzc0VsZW1lbnQoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSBj
b25zdF9jYXN0PFByb2dyZXNzU2hhZG93RWxlbWVudCo+KHRoaXMpLT5zaGFkb3dBbmNlc3Rvck5v
ZGUoKTsKLSAgICBBU1NFUlQoIW5vZGUgfHwgcHJvZ3Jlc3NUYWcgPT0gdG9FbGVtZW50KG5vZGUp
LT50YWdRTmFtZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVu
dCo+KG5vZGUpOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzaGFkb3dIb3N0KCk7CisgICAgQVNT
RVJUKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUocHJvZ3Jlc3NUYWcpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVudCo+KGVsZW1lbnQpOwogfQogCiBi
b29sIFByb2dyZXNzU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVu
ZGVyaW5nQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IGJiNTk0ODY5MDU5ZDdkMzU4MDY5Y2Q4MTYx
NmFiZDNkMDczNTRlNjAuLmNjY2FkODFlZjZkODdkYmIyYzIyN2Y5ZDYwZDEwMTAxNzdlOGY4MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyVGh1bWI6OmxheW91dCgp
CiB7CiAgICAgLy8gRG8gbm90IGNhc3Qgbm9kZSgpIHRvIFNsaWRlclRodW1iRWxlbWVudC4gVGhp
cyByZW5kZXJlciBpcyB1c2VkIGZvcgogICAgIC8vIFRyYWNrTGltaXRFbGVtZW50IHRvby4KLSAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IG5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkt
PnRvSW5wdXRFbGVtZW50KCk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBub2RlKCkt
PnNoYWRvd0hvc3QoKS0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBib29sIGlzVmVydGljYWwgPSBo
YXNWZXJ0aWNhbEFwcGVhcmFuY2UoaW5wdXQpOwogCiAgICAgZG91YmxlIGZyYWN0aW9uID0gKHNs
aWRlclBvc2l0aW9uKGlucHV0KSAqIDEwMCkudG9Eb3VibGUoKTsKQEAgLTE0Miw3ICsxNDIsNyBA
QCBwcml2YXRlOgogCiB2b2lkIFJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5b3V0KCkKIHsKLSAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IG5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkt
PnRvSW5wdXRFbGVtZW50KCk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBub2RlKCkt
PnNoYWRvd0hvc3QoKS0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBib29sIGlzVmVydGljYWwgPSBo
YXNWZXJ0aWNhbEFwcGVhcmFuY2UoaW5wdXQpOwogICAgIHN0eWxlKCktPnNldEJveE9yaWVudChp
c1ZlcnRpY2FsID8gVkVSVElDQUwgOiBIT1JJWk9OVEFMKTsKICAgICAvLyBTZXRzIHRoZSBjb25j
cmV0ZSBoZWlnaHQgaWYgdGhlIGhlaWdodCBvZiB0aGUgPGlucHV0PiBpcyBub3QgZml4ZWQgb3Ig
YQpAQCAtMzQzLDggKzM0Myw4IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZXRhY2goKQog
SFRNTElucHV0RWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQoKSBjb25zdAog
ewogICAgIC8vIE9ubHkgSFRNTElucHV0RWxlbWVudCBjcmVhdGVzIFNsaWRlclRodW1iRWxlbWVu
dCBpbnN0YW5jZXMgYXMgaXRzIHNoYWRvdyBub2Rlcy4KLSAgICAvLyBTbywgc2hhZG93QW5jZXN0
b3JOb2RlKCkgbXVzdCBiZSBhbiBIVE1MSW5wdXRFbGVtZW50LgotICAgIHJldHVybiBzaGFkb3dB
bmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKKyAgICAvLyBTbywgc2hhZG93SG9zdCgp
IG11c3QgYmUgYW4gSFRNTElucHV0RWxlbWVudC4KKyAgICByZXR1cm4gc2hhZG93SG9zdCgpLT50
b0lucHV0RWxlbWVudCgpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzbGlkZXJU
aHVtYlNoYWRvd1BzZXVkb0lkKCkKQEAgLTQwMyw3ICs0MDMsNyBAQCBSZW5kZXJPYmplY3QqIFRy
YWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVu
ZGVyU3R5bAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRv
d0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgpOworICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0ID0gc2hhZG93SG9zdCgpLT50b0lucHV0RWxlbWVudCgpOwogICAgIGlmICghaW5wdXQp
CiAgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCk7CiAKQEAgLTQ1Myw3
ICs0NTMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgbWVkaWFTbGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29u
dGFpbmVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBz
bGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIikpOwogCi0gICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1l
bnQoKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0hvc3QoKS0+dG9JbnB1
dEVsZW1lbnQoKTsKICAgICBpZiAoIWlucHV0KQogICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFp
bmVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJv
bElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCBjMDRmYjU1ZjgxOGM5YjY3NmIwOGExOTkyMTA0ODZj
M2Y5Njg1Mzc1Li5lMzA5N2JiNWU0ODYxNDZkNjdlMGI0NzhjOTg3OGZhZmYxNzhlNzA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVy
RWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG8KIAog
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmN1c3RvbVN0
eWxlRm9yUmVuZGVyZXIoKQogewotICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSogcGFy
ZW50UmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShzaGFkb3dBbmNlc3Rv
ck5vZGUoKS0+cmVuZGVyZXIoKSk7CisgICAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKiBw
YXJlbnRSZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKHNoYWRvd0hvc3Qo
KS0+cmVuZGVyZXIoKSk7CiAgICAgcmV0dXJuIHBhcmVudFJlbmRlcmVyLT5jcmVhdGVJbm5lckJs
b2NrU3R5bGUocGFyZW50UmVuZGVyZXItPnN0eWxlKCkpOwogfQogCkBAIC04NiwxMSArODYsMTMg
QEAgdm9pZCBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2ZW50KQogICAgIC8vIFRoZW4gd2Ugd291bGQgYWRkIG9uZSB0byB0aGUgdGV4dCBm
aWVsZCdzIGlubmVyIGRpdiwgYW5kIHdlIHdvdWxkbid0IG5lZWQgdGhpcyBzdWJjbGFzcy4KICAg
ICAvLyBPciBwb3NzaWJseSB3ZSBjb3VsZCBqdXN0IHVzZSBhIG5vcm1hbCBldmVudCBsaXN0ZW5l
ci4KICAgICBpZiAoZXZlbnQtPmlzQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSB8fCBldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnQp
IHsKLSAgICAgICAgTm9kZSogc2hhZG93QW5jZXN0b3IgPSBzaGFkb3dBbmNlc3Rvck5vZGUoKTsK
LSAgICAgICAgLy8gQSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQgY2FuIGJlIGl0cyBvd24g
c2hhZG93IGFuY2VzdG9yIGlmIGl0cyBiZWVuIGRldGFjaGVkLCBidXQga2VwdCBhbGl2ZSBieSBh
biBFZGl0Q29tbWFuZC4KLSAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCBhbiB1bmRvL3JlZG8gY2Fu
IGNhdXNlIGV2ZW50cyB0byBiZSBzZW50IHRvIHRoZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1l
bnQuICAKLSAgICAgICAgLy8gVG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wLCB3ZSBtdXN0IGNo
ZWNrIGZvciB0aGlzIGNhc2UgYmVmb3JlIHNlbmRpbmcgdGhlIGV2ZW50IHVwIHRoZSBjaGFpbi4K
LSAgICAgICAgaWYgKHNoYWRvd0FuY2VzdG9yICYmIHNoYWRvd0FuY2VzdG9yICE9IHRoaXMpCisg
ICAgICAgIEVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yID0gc2hhZG93SG9zdCgpOworICAgICAgICAv
LyBBIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCBjYW4gaGF2ZSBubyBob3N0IGlmIGl0cyBi
ZWVuIGRldGFjaGVkLAorICAgICAgICAvLyBidXQga2VwdCBhbGl2ZSBieSBhbiBFZGl0Q29tbWFu
ZC4gSW4gdGhpcyBjYXNlLCBhbiB1bmRvL3JlZG8gY2FuCisgICAgICAgIC8vIGNhdXNlIGV2ZW50
cyB0byBiZSBzZW50IHRvIHRoZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQuIFRvCisgICAg
ICAgIC8vIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcCwgd2UgbXVzdCBjaGVjayBmb3IgdGhpcyBj
YXNlIGJlZm9yZSBzZW5kaW5nCisgICAgICAgIC8vIHRoZSBldmVudCB1cCB0aGUgY2hhaW4uCisg
ICAgICAgIGlmIChzaGFkb3dBbmNlc3RvcikKICAgICAgICAgICAgIHNoYWRvd0FuY2VzdG9yLT5k
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKICAgICB9CiAgICAgaWYgKCFldmVudC0+ZGVmYXVs
dEhhbmRsZWQoKSkKQEAgLTEwMCw3ICsxMDIsNyBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiBSZW5kZXJPYmplY3Qq
IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEq
IGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAgICAgYm9vbCBtdWx0aUxpbmUgPSBmYWxzZTsKLSAg
ICBOb2RlKiBzaGFkb3dBbmNlc3RvciA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpOworICAgIEVsZW1l
bnQqIHNoYWRvd0FuY2VzdG9yID0gc2hhZG93SG9zdCgpOwogICAgIGlmIChzaGFkb3dBbmNlc3Rv
ciAmJiBzaGFkb3dBbmNlc3Rvci0+cmVuZGVyZXIoKSkgewogICAgICAgICBBU1NFUlQoc2hhZG93
QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkgfHwgc2hhZG93QW5jZXN0b3ItPnJl
bmRlcmVyKCktPmlzVGV4dEFyZWEoKSk7CiAgICAgICAgIG11bHRpTGluZSA9IHNoYWRvd0FuY2Vz
dG9yLT5yZW5kZXJlcigpLT5pc1RleHRBcmVhKCk7CkBAIC0xMTAsNyArMTEyLDcgQEAgUmVuZGVy
T2JqZWN0KiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiBhcmVuYSwgUmUKIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkKIHsKLSAgICBSZW5kZXJU
ZXh0Q29udHJvbCogcGFyZW50UmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sKHNoYWRvd0Fu
Y2VzdG9yTm9kZSgpLT5yZW5kZXJlcigpKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbCogcGFyZW50
UmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sKHNoYWRvd0hvc3QoKS0+cmVuZGVyZXIoKSk7
CiAgICAgcmV0dXJuIHBhcmVudFJlbmRlcmVyLT5jcmVhdGVJbm5lclRleHRTdHlsZShwYXJlbnRS
ZW5kZXJlci0+c3R5bGUoKSk7CiB9CiAKQEAgLTEzMSw3ICsxMzMsNyBAQCBjb25zdCBBdG9taWNT
dHJpbmcmIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzdWx0c0lkLCAo
Ii13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCByZXN1bHRzRGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLXJl
c3VsdHMtZGVjb3JhdGlvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgZGVjb3JhdGlvbklkLCAoIi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24iKSk7Ci0gICAgTm9k
ZSogaG9zdCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpOworICAgIEVsZW1lbnQqIGhvc3QgPSBzaGFk
b3dIb3N0KCk7CiAgICAgaWYgKCFob3N0KQogICAgICAgICByZXR1cm4gcmVzdWx0c0lkOwogICAg
IGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3QtPnRvSW5wdXRFbGVtZW50KCkpIHsK
QEAgLTE0Nyw3ICsxNDksNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHZvaWQgU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7
CiAgICAgLy8gT24gbW91c2Vkb3duLCBicmluZyB1cCBhIG1lbnUsIGlmIG5lZWRlZAotICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNo
YWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOwogICAgIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+aXNNb3VzZUV2
ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVm
dEJ1dHRvbikgewogICAgICAgICBpbnB1dC0+Zm9jdXMoKTsKICAgICAgICAgaW5wdXQtPnNlbGVj
dCgpOwpAQCAtMTk1LDcgKzE5Nyw3IEBAIHZvaWQgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50OjpkZXRhY2goKQogdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBlbGVtZW50IGlz
IHZpc2libGUsIG9uIG1vdXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rpb24K
LSAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVs
ZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkp
KTsKICAgICBpZiAoaW5wdXQtPmRpc2FibGVkKCkgfHwgaW5wdXQtPmlzUmVhZE9ubHlGb3JtQ29u
dHJvbCgpKSB7CiAgICAgICAgIGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAg
ICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CkBAIC0yNzYs
NyArMjc4LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTElu
cHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0Fu
Y2VzdG9yTm9kZSgpKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpKTsKICAgICBpZiAoaW5wdXQt
PmRpc2FibGVkKCkgfHwgaW5wdXQtPmlzUmVhZE9ubHlGb3JtQ29udHJvbCgpKSB7CiAgICAgICAg
IGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAgICAgICAgICAgICBIVE1MRGl2RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CkBAIC0zNjIsNyArMzY0LDcgQEAgdm9pZCBT
cGluQnV0dG9uRWxlbWVudDo6c3RvcFJlcGVhdGluZ1RpbWVyKCkKIAogdm9pZCBTcGluQnV0dG9u
RWxlbWVudDo6c3RlcChpbnQgYW1vdW50KQogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsK
KyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihzaGFkb3dIb3N0KCkpOwogICAgIGlmIChpbnB1dC0+ZGlzYWJsZWQoKSB8fCBpbnB1dC0+
aXNSZWFkT25seUZvcm1Db250cm9sKCkpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBPbiBNYWMg
T1MsIE5TU3RlcHBlciB1cGRhdGVzIHRoZSB2YWx1ZSBmb3IgdGhlIGJ1dHRvbiB1bmRlciB0aGUg
bW91c2UKQEAgLTQyNyw3ICs0MjksNyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAvLyBUaGUgY2FsbCB0
byBmb2N1cygpIGJlbG93IGRpc3BhdGNoZXMgYSBmb2N1cyBldmVudCwgYW5kIGFuIGV2ZW50IGhh
bmRsZXIgaW4gdGhlIHBhZ2UgbWlnaHQKICAgICAvLyByZW1vdmUgdGhlIGlucHV0IGVsZW1lbnQg
ZnJvbSBET00uIFRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIHZhbGlkIHVudGlsIHdlIGZpbmlzaCBv
dXIgd29yawogICAgIC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLgotICAg
IFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpKTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVu
dD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSkpOwog
CiAgICAgaWYgKGlucHV0LT5kaXNhYmxlZCgpIHx8IGlucHV0LT5pc1JlYWRPbmx5Rm9ybUNvbnRy
b2woKSkgewogICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQpAQCAtNDgxLDcg
KzQ4Myw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFN0YXRlKFNw
ZWVjaElucHV0U3RhdGUgc3RhdGUpCiB7CiAgICAgaWYgKG1fc3RhdGUgIT0gc3RhdGUpIHsKICAg
ICAgICAgbV9zdGF0ZSA9IHN0YXRlOwotICAgICAgICBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+cmVu
ZGVyZXIoKS0+cmVwYWludCgpOworICAgICAgICBzaGFkb3dIb3N0KCktPnJlbmRlcmVyKCktPnJl
cGFpbnQoKTsKICAgICB9CiB9CiAKQEAgLTUwNyw3ICs1MDksNyBAQCB2b2lkIElucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50OjpzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQsIGNvbnN0IFNwZWVj
aElucHV0UgogICAgIC8vIFRoZSBjYWxsIHRvIHNldFZhbHVlKCkgYmVsb3cgZGlzcGF0Y2hlcyBh
biBldmVudCwgYW5kIGFuIGV2ZW50IGhhbmRsZXIgaW4gdGhlIHBhZ2UgbWlnaHQKICAgICAvLyBy
ZW1vdmUgdGhlIGlucHV0IGVsZW1lbnQgZnJvbSBET00uIFRvIG1ha2Ugc3VyZSBpdCByZW1haW5z
IHZhbGlkIHVudGlsIHdlIGZpbmlzaCBvdXIgd29yawogICAgIC8vIGhlcmUsIHdlIHRha2UgYSB0
ZW1wb3JhcnkgcmVmZXJlbmNlLgotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpKTsKKyAg
ICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KHNoYWRvd0hvc3QoKSkpOwogICAgIGlmIChpbnB1dC0+ZGlzYWJsZWQoKSB8fCBpbnB1
dC0+aXNSZWFkT25seUZvcm1Db250cm9sKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNTYwLDcg
KzU2Miw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnN0YXJ0U3BlZWNo
SW5wdXQoKQogICAgIGlmIChtX3N0YXRlICE9IElkbGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1l
bnQ+IGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSk7
CiAgICAgQXRvbWljU3RyaW5nIGxhbmd1YWdlID0gaW5wdXQtPmNvbXB1dGVJbmhlcml0ZWRMYW5n
dWFnZSgpOwogICAgIFN0cmluZyBncmFtbWFyID0gaW5wdXQtPmdldEF0dHJpYnV0ZSh3ZWJraXRn
cmFtbWFyQXR0cik7CiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IHJlc3BlY3Qg
dHJhbnNmb3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCA1NWE2NTcxN2Q1NzE0NGQ5YjMyMjlhZWMz
NmIxYTI2YTliMDQyNDZmLi4wYjYzMjQ1ZTUyODlmOTQwNjk2NGQ2ZDRlYTE3ZmUyMWFkNTEzMmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtNTMsMTAgKzUzLDEwIEBAIFZpc2libGVQb3NpdGlvbiBS
ZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0
UG9pbnQmCiB7CiAgICAgTGF5b3V0UG9pbnQgY29udGVudHNQb2ludChwb2ludCk7CiAKLSAgICAv
LyBNdWx0aWxpbmUgdGV4dCBjb250cm9scyBoYXZlIHRoZSBzY3JvbGwgb24gc2hhZG93QW5jZXN0
b3JOb2RlLCBzbyB3ZSBuZWVkIHRvIHRha2UgdGhhdAotICAgIC8vIGludG8gYWNjb3VudCBoZXJl
LgorICAgIC8vIE11bHRpbGluZSB0ZXh0IGNvbnRyb2xzIGhhdmUgdGhlIHNjcm9sbCBvbiBzaGFk
b3dIb3N0LCBzbyB3ZSBuZWVkIHRvIHRha2UKKyAgICAvLyB0aGF0IGludG8gYWNjb3VudCBoZXJl
LgogICAgIGlmIChtX211bHRpTGluZSkgewotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCogcmVu
ZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sKG5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkt
PnJlbmRlcmVyKCkpOworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCogcmVuZGVyZXIgPSB0b1Jl
bmRlclRleHRDb250cm9sKG5vZGUoKS0+c2hhZG93SG9zdCgpLT5yZW5kZXJlcigpKTsKICAgICAg
ICAgaWYgKHJlbmRlcmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAgICAgIGNvbnRlbnRz
UG9pbnQgKz0gcmVuZGVyZXItPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>