<?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>126945</bug_id>
          
          <creation_ts>2014-01-13 16:20:07 -0800</creation_ts>
          <short_desc>[EFL] Do not store reference variables as a pointer in private data structure</short_desc>
          <delta_ts>2014-01-13 17:38:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</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="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>967524</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-13 16:20:07 -0800</bug_when>
    <thetext>Now, we stored some reference variables of WebCore as pointer variable at private data structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967526</commentid>
    <comment_count>1</comment_count>
      <attachid>221085</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-13 16:24:32 -0800</bug_when>
    <thetext>Created attachment 221085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967529</commentid>
    <comment_count>2</comment_count>
      <attachid>221085</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-01-13 16:28:06 -0800</bug_when>
    <thetext>Comment on attachment 221085
Patch

Looks you need to rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967556</commentid>
    <comment_count>3</comment_count>
      <attachid>221091</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-13 16:54:02 -0800</bug_when>
    <thetext>Created attachment 221091
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967563</commentid>
    <comment_count>4</comment_count>
      <attachid>221091</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-01-13 17:07:02 -0800</bug_when>
    <thetext>Comment on attachment 221091
rebased

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967578</commentid>
    <comment_count>5</comment_count>
      <attachid>221091</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-13 17:38:43 -0800</bug_when>
    <thetext>Comment on attachment 221091
rebased

Clearing flags on attachment: 221091

Committed r161933: &lt;http://trac.webkit.org/changeset/161933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967579</commentid>
    <comment_count>6</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-13 17:38:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221085</attachid>
            <date>2014-01-13 16:24:32 -0800</date>
            <delta_ts>2014-01-13 16:53:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126945-20140114092429.patch</filename>
            <type>text/plain</type>
            <size>44076</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZmY0NzNmMjA0
OGE1YzRjYTQzZjczYzJiYjQwYzljZmEzYjViYWNlZi4uMGI2MzY1ZWU3MGMwNjY0MTMyOWU0Mzhh
ZGY3MDNiZDUzZjhlYmU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE0
LTAxLTEzICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBb
RUZMXSBEbyBub3Qgc3RvcmUgcmVmZXJlbmNlIHZhcmlhYmxlcyBhcyBhIHBvaW50ZXIgaW4gcHJp
dmF0ZSBkYXRhIHN0cnVjdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI2OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIHBhZ2VTZXR0aW5ncywgbWFpbkZyYW1lIGFuZCBzdG9yYWdlU2Vz
c2lvbiB2YXJpYWJsZXMgZnJvbSBFd2tfVmlld19Qcml2YXRlX0RhdGEuCisKKyAgICAgICAgKiBl
d2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAg
KF9ld2tfdmlld19zbWFydF9hZGQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3JlcGFpbnRz
X3Byb2Nlc3MpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAg
IChld2tfdmlld19maXhlZF9sYXlvdXRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfZml4
ZWRfbGF5b3V0X3NpemVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2JnX2NvbG9yX3NldCk6Cisg
ICAgICAgIChld2tfdmlld19zZXR0aW5nX3VzZXJfYWdlbnRfc2V0KToKKyAgICAgICAgKGV3a192
aWV3X3NldHRpbmdfdXNlcl9zdHlsZXNoZWV0X3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0
aW5nX2F1dG9fbG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYXV0
b19zaHJpbmtfaW1hZ2VzX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9z
Y3JpcHRzX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9wbHVnaW5zX3Nl
dCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX3Nl
dCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19z
ZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19zY3JpcHRzX2Nhbl9jbG9zZV93aW5kb3dz
X3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX2FjY2Vzc19jbGlw
Ym9hcmRfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfcmVzaXphYmxlX3RleHRhcmVh
c19zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19wcml2YXRlX2Jyb3dzaW5nX3NldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2FwcGxpY2F0aW9uX2NhY2hlX3NldCk6CisgICAg
ICAgIChld2tfdmlld19zZXR0aW5nX2NhcmV0X2Jyb3dzaW5nX3NldCk6CisgICAgICAgIChld2tf
dmlld19zZXR0aW5nX2VuY29kaW5nX2RlZmF1bHRfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3Nl
dHRpbmdfZW5jb2RpbmdfZGV0ZWN0b3Jfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
ZW5hYmxlX2RldmVsb3Blcl9leHRyYXNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
Zm9udF9taW5pbXVtX3NpemVfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZm9udF9t
aW5pbXVtX2xvZ2ljYWxfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19mb250
X2RlZmF1bHRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19mb250X21vbm9z
cGFjZV9zaXplX3NldCk6CisgICAgICAgIChld2tfdmlld19mb250X2ZhbWlseV9uYW1lX3NldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3NwYXRpYWxfbmF2aWdhdGlvbl9zZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfc2V0dGluZ19sb2NhbF9zdG9yYWdlX3NldCk6CisgICAgICAgIChld2tf
dmlld19zZXR0aW5nX3BhZ2VfY2FjaGVfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
bG9jYWxfc3RvcmFnZV9kYXRhYmFzZV9wYXRoX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0
aW5nX21pbmltdW1fdGltZXJfaW50ZXJ2YWxfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRp
bmdfZW5hYmxlX3dlYmdsX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9o
eXBlcmxpbmtfYXVkaXRpbmdfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxsb3df
dW5pdmVyc2FsX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19zZXQpOgorICAgICAgICAoZXdrX3ZpZXdf
c2V0dGluZ19hbGxvd19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19zZXQpOgorICAgICAgICAo
ZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUpOgorICAgICAgICAoZXdrX3ZpZXdf
cGFpbnQpOgorICAgICAgICAoZXdrX3ZpZXdfcGFpbnRfY29udGVudHMpOgorICAgICAgICAoZXdr
X3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmlld19wYWdlX3JlY3RfZ2V0KToK
KyAgICAgICAgKGV3a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdf
c291cF9zZXNzaW9uX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV94c3Nf
YXVkaXRvcl9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxheV9j
YXB0aW9uc19zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxheV9z
dWJ0aXRsZXNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfc2hvdWxkX2Rpc3BsYXlf
dGV4dF9kZXNjcmlwdGlvbnNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZW5hYmxl
X2Z1bGxzY3JlZW5fc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfdGlsZWRfYmFja2lu
Z19zdG9yZV9lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfYmFja2lu
Z19zdG9yZV9pbnZhbGlkYXRlKToKKyAgICAgICAgKEVXS1ByaXZhdGU6OnN0b3JhZ2VTZXNzaW9u
KToKKwogMjAxNC0wMS0xMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIEJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDQ3
ZjE5YWJjMWEyYTZlNjIwZjIyZWFhMzA5YTI2ZWVlNzUzZjY0MjEuLjVkOTIzMTU5MWJmMjMzOTNl
OTZhMjk4MWE2ZjhmY2M1ZjcwMDkyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApA
QCAtMjU0LDggKzI1NCw2IEBAIHN0YXRpYyBjb25zdCBFZGl0b3JDb21tYW5kIGVkaXRvckNvbW1h
bmRzW10gPSB7CiAgKi8KIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBPd25Q
dHI8V2ViQ29yZTo6UGFnZT4gcGFnZTsKLSAgICBXZWJDb3JlOjpTZXR0aW5ncyogcGFnZVNldHRp
bmdzOwotICAgIFdlYkNvcmU6OkZyYW1lKiBtYWluRnJhbWU7CiAgICAgV2ViQ29yZTo6Vmlld3Bv
cnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHM7CiAgICAgRXdrX0hpc3RvcnkqIGhpc3Rvcnk7
CiAgICAgT3duUHRyPFBhZ2VDbGllbnRFZmw+IHBhZ2VDbGllbnQ7CkBAIC0yNzAsNyArMjY4LDYg
QEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmIEVOQUJMRShOQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgfHwgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKICAgICBPd25Q
dHI8V2ViQ29yZTo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50RWZsPiBuYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQ7CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24qIHN0b3JhZ2VTZXNzaW9uOwogICAgIHN0cnVjdCB7CiAgICAgICAgIEV3a19NZW51IG1lbnU7
CiAgICAgICAgIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogbWVudUNsaWVudDsKQEAgLTcxNiw3
ICs3MTMsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9u
ZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIH0KICNlbmRpZgogCi0gICAg
cHJpdi0+cGFnZVNldHRpbmdzID0gJnByaXYtPnBhZ2UtPnNldHRpbmdzKCk7CisgICAgV2ViQ29y
ZTo6U2V0dGluZ3MmIHBhZ2VTZXR0aW5ncyA9IHByaXYtPnBhZ2UtPnNldHRpbmdzKCk7CiAKICAg
ICBXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzIGxheW91dE1pbGVzdG9uZXMgPSBXZWJDb3JlOjpE
aWRGaXJzdExheW91dCB8IFdlYkNvcmU6OkRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dDsK
ICAgICBwcml2LT5wYWdlLT5hZGRMYXlvdXRNaWxlc3RvbmVzKGxheW91dE1pbGVzdG9uZXMpOwpA
QCAtNzI5LDk5ICs3MjYsOTggQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192
aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT52
aWV3cG9ydEFyZ3VtZW50cy5tYXhab29tID0gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZh
bHVlQXV0bzsKICAgICBwcml2LT52aWV3cG9ydEFyZ3VtZW50cy51c2VyWm9vbSA9IHRydWU7CiAK
LSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVl
KTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKCJp
c28tODg1OS0xIik7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXREZWZhdWx0Rml4ZWRGb250
U2l6ZSgxMik7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXREZWZhdWx0Rm9udFNpemUoMTYp
OwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2VyaWZGb250RmFtaWx5KCJzZXJpZiIpOwot
ICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0Rml4ZWRGb250RmFtaWx5KCJtb25vdHlwZSIpOwot
ICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2Fuc1NlcmlmRm9udEZhbWlseSgic2FucyIpOwot
ICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U3RhbmRhcmRGb250RmFtaWx5KCJzYW5zIik7Ci0g
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZmFsc2Up
OworICAgIHBhZ2VTZXR0aW5ncy5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7Cisg
ICAgcGFnZVNldHRpbmdzLnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKCJpc28tODg1OS0xIik7
CisgICAgcGFnZVNldHRpbmdzLnNldERlZmF1bHRGaXhlZEZvbnRTaXplKDEyKTsKKyAgICBwYWdl
U2V0dGluZ3Muc2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0U2Vy
aWZGb250RmFtaWx5KCJzZXJpZiIpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRGaXhlZEZvbnRGYW1p
bHkoIm1vbm90eXBlIik7CisgICAgcGFnZVNldHRpbmdzLnNldFNhbnNTZXJpZkZvbnRGYW1pbHko
InNhbnMiKTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0U3RhbmRhcmRGb250RmFtaWx5KCJzYW5zIik7
CisgICAgcGFnZVNldHRpbmdzLnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChmYWxzZSk7CiAg
ICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRD
U1NSZWdpb25zRW5hYmxlZCh0cnVlKTsKICNpZiBFTkFCTEUoSUZSQU1FX1NFQU1MRVNTKQogICAg
IFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U2Vh
bWxlc3NJRnJhbWVzRW5hYmxlZCh0cnVlKTsKICNlbmRpZgotICAgIHByaXYtPnBhZ2VTZXR0aW5n
cy0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFBs
dWdpbnNFbmFibGVkKHRydWUpOwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0TG9jYWxTdG9y
YWdlRW5hYmxlZCh0cnVlKTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZCh0cnVlKTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNl
dFVzZXNQYWdlQ2FjaGUodHJ1ZSk7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRVc2VzRW5j
b2RpbmdEZXRlY3RvcihmYWxzZSk7CisgICAgcGFnZVNldHRpbmdzLnNldFNjcmlwdEVuYWJsZWQo
dHJ1ZSk7CisgICAgcGFnZVNldHRpbmdzLnNldFBsdWdpbnNFbmFibGVkKHRydWUpOworICAgIHBh
Z2VTZXR0aW5ncy5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHRydWUpOworICAgIHBhZ2VTZXR0aW5n
cy5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQodHJ1ZSk7CisgICAgcGFnZVNl
dHRpbmdzLnNldFVzZXNQYWdlQ2FjaGUodHJ1ZSk7CisgICAgcGFnZVNldHRpbmdzLnNldFVzZXNF
bmNvZGluZ0RldGVjdG9yKGZhbHNlKTsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHByaXYt
PnBhZ2VTZXR0aW5ncy0+c2V0V2ViQXVkaW9FbmFibGVkKGZhbHNlKTsKKyAgICBwYWdlU2V0dGlu
Z3Muc2V0V2ViQXVkaW9FbmFibGVkKGZhbHNlKTsKICNlbmRpZgotICAgIHByaXYtPnBhZ2VTZXR0
aW5ncy0+c2V0V2ViR0xFbmFibGVkKHRydWUpOwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0
WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7CisgICAgcGFnZVNldHRpbmdzLnNldFdlYkdMRW5hYmxl
ZCh0cnVlKTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7CiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0RnVs
bFNjcmVlbkVuYWJsZWQodHJ1ZSk7CisgICAgcGFnZVNldHRpbmdzLnNldEZ1bGxTY3JlZW5FbmFi
bGVkKHRydWUpOwogI2VuZGlmCi0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRJbnRlcmFjdGl2
ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0SW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQodHJ1ZSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoZmFsc2UpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZChmYWxzZSk7CiAgICAgY2hhciogZGVidWdWaXN1YWxzRW52aXJvbm1lbnQg
PSBnZXRlbnYoIldFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKTsKICAgICBi
b29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCAmJiAhc3RyY21w
KGRlYnVnVmlzdWFsc0Vudmlyb25tZW50LCAiMSIpOwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0U2hvd0RlYnVnQm9yZGVycyhzaG93RGVidWdWaXN1YWxzKTsKLSAgICBwcml2LT5wYWdlU2V0
dGluZ3MtPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93RGVidWdWaXN1YWxzKTsKKyAgICBwYWdl
U2V0dGluZ3Muc2V0U2hvd0RlYnVnQm9yZGVycyhzaG93RGVidWdWaXN1YWxzKTsKKyAgICBwYWdl
U2V0dGluZ3Muc2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dEZWJ1Z1Zpc3VhbHMpOwogI2VuZGlm
CiAKLSAgICB1cmwgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
KTsKKyAgICB1cmwgPSBwYWdlU2V0dGluZ3MudXNlclN0eWxlU2hlZXRMb2NhdGlvbigpOwogICAg
IHByaXYtPnNldHRpbmdzLnVzZXJTdHlsZXNoZWV0ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQodXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgcHJpdi0+c2V0dGluZ3MuZW5jb2RpbmdE
ZWZhdWx0ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChwcml2LT5wYWdlU2V0dGluZ3MtPmRlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcHJpdi0+c2V0dGluZ3MuZW5jb2RpbmdEZWZhdWx0
ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQocGFnZVNldHRpbmdzLmRlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgcHJpdi0+c2V0dGluZ3MuZW5jb2RpbmdDdXN0b20g
PSAwOwogCi0gICAgc3RyaW5nID0gcHJpdi0+cGFnZVNldHRpbmdzLT5sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoKTsKKyAgICBzdHJpbmcgPSBwYWdlU2V0dGluZ3MubG9jYWxTdG9yYWdlRGF0YWJh
c2VQYXRoKCk7CiAgICAgcHJpdi0+c2V0dGluZ3MubG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoID0g
ZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0g
ICAgcHJpdi0+c2V0dGluZ3MuZm9udE1pbmltdW1TaXplID0gcHJpdi0+cGFnZVNldHRpbmdzLT5t
aW5pbXVtRm9udFNpemUoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5mb250TWluaW11bUxvZ2ljYWxT
aXplID0gcHJpdi0+cGFnZVNldHRpbmdzLT5taW5pbXVtTG9naWNhbEZvbnRTaXplKCk7Ci0gICAg
cHJpdi0+c2V0dGluZ3MuZm9udERlZmF1bHRTaXplID0gcHJpdi0+cGFnZVNldHRpbmdzLT5kZWZh
dWx0Rm9udFNpemUoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5mb250TW9ub3NwYWNlU2l6ZSA9IHBy
aXYtPnBhZ2VTZXR0aW5ncy0+ZGVmYXVsdEZpeGVkRm9udFNpemUoKTsKKyAgICBwcml2LT5zZXR0
aW5ncy5mb250TWluaW11bVNpemUgPSBwYWdlU2V0dGluZ3MubWluaW11bUZvbnRTaXplKCk7Cisg
ICAgcHJpdi0+c2V0dGluZ3MuZm9udE1pbmltdW1Mb2dpY2FsU2l6ZSA9IHBhZ2VTZXR0aW5ncy5t
aW5pbXVtTG9naWNhbEZvbnRTaXplKCk7CisgICAgcHJpdi0+c2V0dGluZ3MuZm9udERlZmF1bHRT
aXplID0gcGFnZVNldHRpbmdzLmRlZmF1bHRGb250U2l6ZSgpOworICAgIHByaXYtPnNldHRpbmdz
LmZvbnRNb25vc3BhY2VTaXplID0gcGFnZVNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRTaXplKCk7
CiAKLSAgICBzdHJpbmcgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnN0YW5kYXJkRm9udEZhbWlseSgp
OworICAgIHN0cmluZyA9IHBhZ2VTZXR0aW5ncy5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKICAgICBw
cml2LT5zZXR0aW5ncy5mb250U3RhbmRhcmQgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgc3RyaW5nID0gcHJpdi0+cGFnZVNldHRpbmdz
LT5jdXJzaXZlRm9udEZhbWlseSgpOworICAgIHN0cmluZyA9IHBhZ2VTZXR0aW5ncy5jdXJzaXZl
Rm9udEZhbWlseSgpOwogICAgIHByaXYtPnNldHRpbmdzLmZvbnRDdXJzaXZlID0gZWluYV9zdHJp
bmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHN0cmluZyA9
IHByaXYtPnBhZ2VTZXR0aW5ncy0+Zml4ZWRGb250RmFtaWx5KCk7CisgICAgc3RyaW5nID0gcGFn
ZVNldHRpbmdzLmZpeGVkRm9udEZhbWlseSgpOwogICAgIHByaXYtPnNldHRpbmdzLmZvbnRNb25v
c3BhY2UgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgc3RyaW5nID0gcHJpdi0+cGFnZVNldHRpbmdzLT5mYW50YXN5Rm9udEZhbWlseSgp
OworICAgIHN0cmluZyA9IHBhZ2VTZXR0aW5ncy5mYW50YXN5Rm9udEZhbWlseSgpOwogICAgIHBy
aXYtPnNldHRpbmdzLmZvbnRGYW50YXN5ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHN0cmluZyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2VyaWZGb250RmFtaWx5KCk7CisgICAgc3RyaW5nID0gcGFnZVNldHRpbmdzLnNlcmlmRm9udEZh
bWlseSgpOwogICAgIHByaXYtPnNldHRpbmdzLmZvbnRTZXJpZiA9IGVpbmFfc3RyaW5nc2hhcmVf
YWRkKHN0cmluZy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBzdHJpbmcgPSBwcml2LT5w
YWdlU2V0dGluZ3MtPnNhbnNTZXJpZkZvbnRGYW1pbHkoKTsKKyAgICBzdHJpbmcgPSBwYWdlU2V0
dGluZ3Muc2Fuc1NlcmlmRm9udEZhbWlseSgpOwogICAgIHByaXYtPnNldHRpbmdzLmZvbnRTYW5z
U2VyaWYgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAKLSAgICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHByaXYtPnBhZ2VTZXR0
aW5ncy0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7Ci0gICAgcHJpdi0+c2V0dGluZ3MuYXV0
b1Nocmlua0ltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+c2hyaW5rc1N0YW5kYWxvbmVJbWFn
ZXNUb0ZpdCgpOworICAgIHByaXYtPnNldHRpbmdzLmF1dG9Mb2FkSW1hZ2VzID0gcGFnZVNldHRp
bmdzLmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHByaXYtPnNldHRpbmdzLmF1dG9T
aHJpbmtJbWFnZXMgPSBwYWdlU2V0dGluZ3Muc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCgp
OwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZUF1dG9SZXNpemVXaW5kb3cgPSB0cnVlOwotICAg
IHByaXYtPnNldHRpbmdzLmVuYWJsZURldmVsb3BlckV4dHJhcyA9IHByaXYtPnBhZ2VTZXR0aW5n
cy0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwotICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZVNj
cmlwdHMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmlzU2NyaXB0RW5hYmxlZCgpOwotICAgIHByaXYt
PnNldHRpbmdzLmVuYWJsZVBsdWdpbnMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFyZVBsdWdpbnNF
bmFibGVkKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlRnJhbWVGbGF0dGVuaW5nID0gcHJp
di0+cGFnZVNldHRpbmdzLT5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCk7CisgICAgcHJpdi0+c2V0
dGluZ3MuZW5hYmxlRGV2ZWxvcGVyRXh0cmFzID0gcGFnZVNldHRpbmdzLmRldmVsb3BlckV4dHJh
c0VuYWJsZWQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVTY3JpcHRzID0gcGFnZVNldHRp
bmdzLmlzU2NyaXB0RW5hYmxlZCgpOworICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZVBsdWdpbnMg
PSBwYWdlU2V0dGluZ3MuYXJlUGx1Z2luc0VuYWJsZWQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5l
bmFibGVGcmFtZUZsYXR0ZW5pbmcgPSBwYWdlU2V0dGluZ3MuZnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZCgpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBwcml2LT5zZXR0aW5ncy5lbmFi
bGVGdWxsc2NyZWVuID0gcHJpdi0+cGFnZVNldHRpbmdzLT5mdWxsU2NyZWVuRW5hYmxlZCgpOwor
ICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZUZ1bGxzY3JlZW4gPSBwYWdlU2V0dGluZ3MuZnVsbFNj
cmVlbkVuYWJsZWQoKTsKICNlbmRpZgotICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZVhTU0F1ZGl0
b3IgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnhzc0F1ZGl0b3JFbmFibGVkKCk7Ci0gICAgcHJpdi0+
c2V0dGluZ3MuaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkID0gcHJpdi0+cGFnZVNldHRpbmdzLT5o
eXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5zY3JpcHRzQ2Fu
T3BlbldpbmRvd3MgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5zY3JpcHRzQ2FuQ2xvc2VXaW5k
b3dzID0gcHJpdi0+cGFnZVNldHRpbmdzLT5hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cygpOwor
ICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZVhTU0F1ZGl0b3IgPSBwYWdlU2V0dGluZ3MueHNzQXVk
aXRvckVuYWJsZWQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5oeXBlcmxpbmtBdWRpdGluZ0VuYWJs
ZWQgPSBwYWdlU2V0dGluZ3MuaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKCk7CisgICAgcHJpdi0+
c2V0dGluZ3Muc2NyaXB0c0Nhbk9wZW5XaW5kb3dzID0gcGFnZVNldHRpbmdzLmphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5zY3JpcHRz
Q2FuQ2xvc2VXaW5kb3dzID0gcGFnZVNldHRpbmdzLmFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dz
KCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIHByaXYtPnNldHRpbmdzLnNob3VsZERp
c3BsYXlDYXB0aW9ucyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+c2hvdWxkRGlzcGxheUNhcHRpb25z
KCk7Ci0gICAgcHJpdi0+c2V0dGluZ3Muc2hvdWxkRGlzcGxheVN1YnRpdGxlcyA9IHByaXYtPnBh
Z2VTZXR0aW5ncy0+c2hvdWxkRGlzcGxheVN1YnRpdGxlcygpOwotICAgIHByaXYtPnNldHRpbmdz
LnNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zID0gcHJpdi0+cGFnZVNldHRpbmdzLT5zaG91
bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucygpOworICAgIHByaXYtPnNldHRpbmdzLnNob3VsZERp
c3BsYXlDYXB0aW9ucyA9IHBhZ2VTZXR0aW5ncy5zaG91bGREaXNwbGF5Q2FwdGlvbnMoKTsKKyAg
ICBwcml2LT5zZXR0aW5ncy5zaG91bGREaXNwbGF5U3VidGl0bGVzID0gcGFnZVNldHRpbmdzLnNo
b3VsZERpc3BsYXlTdWJ0aXRsZXMoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5zaG91bGREaXNwbGF5
VGV4dERlc2NyaXB0aW9ucyA9IHBhZ2VTZXR0aW5ncy5zaG91bGREaXNwbGF5VGV4dERlc2NyaXB0
aW9ucygpOwogI2VuZGlmCi0gICAgcHJpdi0+c2V0dGluZ3Muc2NyaXB0c0NhbkFjY2Vzc0NsaXBi
b2FyZCA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgp
ICYmIHByaXYtPnBhZ2VTZXR0aW5ncy0+RE9NUGFzdGVBbGxvd2VkKCk7Ci0gICAgcHJpdi0+c2V0
dGluZ3MucmVzaXphYmxlVGV4dGFyZWFzID0gcHJpdi0+cGFnZVNldHRpbmdzLT50ZXh0QXJlYXNB
cmVSZXNpemFibGUoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5wcml2YXRlQnJvd3NpbmcgPSBwcml2
LT5wYWdlU2V0dGluZ3MtPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKTsKLSAgICBwcml2LT5zZXR0
aW5ncy5jYXJldEJyb3dzaW5nID0gcHJpdi0+cGFnZVNldHRpbmdzLT5jYXJldEJyb3dzaW5nRW5h
YmxlZCgpOwotICAgIHByaXYtPnNldHRpbmdzLnNwYXRpYWxOYXZpZ2F0aW9uID0gcHJpdi0+cGFn
ZVNldHRpbmdzLT5zcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKTsKLSAgICBwcml2LT5zZXR0aW5n
cy5sb2NhbFN0b3JhZ2UgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmxvY2FsU3RvcmFnZUVuYWJsZWQo
KTsKKyAgICBwcml2LT5zZXR0aW5ncy5zY3JpcHRzQ2FuQWNjZXNzQ2xpcGJvYXJkID0gcGFnZVNl
dHRpbmdzLmphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoKSAmJiBwYWdlU2V0dGluZ3MuRE9N
UGFzdGVBbGxvd2VkKCk7CisgICAgcHJpdi0+c2V0dGluZ3MucmVzaXphYmxlVGV4dGFyZWFzID0g
cGFnZVNldHRpbmdzLnRleHRBcmVhc0FyZVJlc2l6YWJsZSgpOworICAgIHByaXYtPnNldHRpbmdz
LnByaXZhdGVCcm93c2luZyA9IHBhZ2VTZXR0aW5ncy5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7
CisgICAgcHJpdi0+c2V0dGluZ3MuY2FyZXRCcm93c2luZyA9IHBhZ2VTZXR0aW5ncy5jYXJldEJy
b3dzaW5nRW5hYmxlZCgpOworICAgIHByaXYtPnNldHRpbmdzLnNwYXRpYWxOYXZpZ2F0aW9uID0g
cGFnZVNldHRpbmdzLnNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpOworICAgIHByaXYtPnNldHRp
bmdzLmxvY2FsU3RvcmFnZSA9IHBhZ2VTZXR0aW5ncy5sb2NhbFN0b3JhZ2VFbmFibGVkKCk7CiAg
ICAgcHJpdi0+c2V0dGluZ3Mub2ZmbGluZUFwcENhY2hlID0gdHJ1ZTsgLy8gWFhYIG5vIGZ1bmN0
aW9uIHRvIHJlYWQgc2V0dGluZzsgdGhpcyBrZWVwcyB0aGUgb3JpZ2luYWwgc2V0dGluZwotICAg
IHByaXYtPnNldHRpbmdzLnBhZ2VDYWNoZSA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+dXNlc1BhZ2VD
YWNoZSgpOwotICAgIHByaXYtPnNldHRpbmdzLmVuY29kaW5nRGV0ZWN0b3IgPSBwcml2LT5wYWdl
U2V0dGluZ3MtPnVzZXNFbmNvZGluZ0RldGVjdG9yKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3Mud2Vi
R0xFbmFibGVkID0gcHJpdi0+cGFnZVNldHRpbmdzLT53ZWJHTEVuYWJsZWQoKTsKKyAgICBwcml2
LT5zZXR0aW5ncy5wYWdlQ2FjaGUgPSBwYWdlU2V0dGluZ3MudXNlc1BhZ2VDYWNoZSgpOworICAg
IHByaXYtPnNldHRpbmdzLmVuY29kaW5nRGV0ZWN0b3IgPSBwYWdlU2V0dGluZ3MudXNlc0VuY29k
aW5nRGV0ZWN0b3IoKTsKKyAgICBwcml2LT5zZXR0aW5ncy53ZWJHTEVuYWJsZWQgPSBwYWdlU2V0
dGluZ3Mud2ViR0xFbmFibGVkKCk7CiAgICAgcHJpdi0+c2V0dGluZ3MudGFic1RvTGlua3MgPSB0
cnVlOwogCiAgICAgcHJpdi0+c2V0dGluZ3MudXNlckFnZW50ID0gZXdrX3NldHRpbmdzX2RlZmF1
bHRfdXNlcl9hZ2VudF9nZXQoKTsKQEAgLTgzMywxNyArODI5LDEzIEBAIHN0YXRpYyBFd2tfVmll
d19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEpCiAgICAgcHJpdi0+c2V0dGluZ3Muem9vbVJhbmdlLm1heFNjYWxlID0gem9vbU1h
eGltdW07CiAgICAgcHJpdi0+c2V0dGluZ3Muem9vbVJhbmdlLnVzZXJTY2FsYWJsZSA9IHRydWU7
CiAKLSAgICBwcml2LT5zZXR0aW5ncy5kb21UaW1lckludGVydmFsID0gcHJpdi0+cGFnZVNldHRp
bmdzLT5kZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbCgpOworICAgIHByaXYtPnNldHRpbmdzLmRv
bVRpbWVySW50ZXJ2YWwgPSBwYWdlU2V0dGluZ3MuZGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWwo
KTsKIAotICAgIHByaXYtPnNldHRpbmdzLmFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
ID0gcHJpdi0+cGFnZVNldHRpbmdzLT5hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcygp
OwotICAgIHByaXYtPnNldHRpbmdzLmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9IHByaXYt
PnBhZ2VTZXR0aW5ncy0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7Ci0KLSAgICBwcml2
LT5tYWluRnJhbWUgPSAmcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCk7CisgICAgcHJpdi0+c2V0dGlu
Z3MuYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgPSBwYWdlU2V0dGluZ3MuYWxsb3dV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5hbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMgPSBwYWdlU2V0dGluZ3MuYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzKCk7CiAKICAgICBwcml2LT5oaXN0b3J5ID0gZXdrX2hpc3RvcnlfbmV3KHN0YXRpY19j
YXN0PFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCo+KHByaXYtPnBhZ2UtPmJhY2tGb3J3YXJkQ2xp
ZW50KCkpKTsKIAotICAgIHByaXYtPnN0b3JhZ2VTZXNzaW9uID0gJldlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci0KICAgICBwcml2LT5wYWdl
Q2xpZW50ID0gYWRvcHRQdHIobmV3IFBhZ2VDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKSk7CiAK
ICNpZmRlZiBIQVZFX0VDT1JFX1gKQEAgLTk2MiwxNCArOTU0LDE0IEBAIHN0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAoIWV3a19mcmFtZV9pbml0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwg
ZXdrVmlldywgYWRvcHRQdHIoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRF
ZmwqPigmcHJpdi0+bWFpbkZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKSkgeworICAgIGlmICgh
ZXdrX2ZyYW1lX2luaXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCBld2tWaWV3LCBhZG9wdFB0cihz
dGF0aWNfY2FzdDxXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCo+KCZwcml2LT5wYWdlLT5t
YWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKSkpKSkgewogICAgICAgICBFUlIoIkNvdWxkIG5v
dCBpbml0aWFsaXplIG1haW4gZnJtZSBvYmplY3QuIik7CiAgICAgICAgIGV2YXNfb2JqZWN0X2Rl
bChzbWFydERhdGEtPm1haW5fZnJhbWUpOwogICAgICAgICBzbWFydERhdGEtPm1haW5fZnJhbWUg
PSAwOwogCiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgRVdLUHJpdmF0ZTo6c2V0Q29yZUZy
YW1lKHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgcHJpdi0+bWFpbkZyYW1lKTsKKyAgICBFV0tQcml2
YXRlOjpzZXRDb3JlRnJhbWUoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmcHJpdi0+cGFnZS0+bWFp
bkZyYW1lKCkpOwogICAgIHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLnRyZWUoKS5zZXROYW1lKFN0
cmluZygpKTsKICAgICBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS5pbml0KCk7CiAKQEAgLTExNTUs
NiArMTE0Nyw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9zY3JvbGxzX3Byb2Nlc3Mo
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tf
dmlld19zbWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSkKIHsKKyAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOworCiAgICAgaWYg
KHNtYXJ0RGF0YS0+YW5pbWF0ZWRfem9vbS56b29tLmN1cnJlbnQgPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSB7CiAgICAgICAgIEV2YXNfT2JqZWN0KiBjbGlwID0gZXZh
c19vYmplY3RfY2xpcF9nZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlKTsKIApAQCAtMTE4NSwx
MCArMTE3OSwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9yZXBhaW50c19w
cm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCi0gICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUoc21h
cnREYXRhLT5fcHJpdik7CisgICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUo
cHJpdik7CiAKICAgICBzaXplX3QgY291bnQ7Ci0gICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBh
aW50UmVxdWVzdCA9IGV3a192aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291
bnQpOworICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3QgPSBld2tfdmlld19y
ZXBhaW50c19wb3AocHJpdiwgJmNvdW50KTsKICAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcGFp
bnRSZXF1ZXN0RW5kID0gcGFpbnRSZXF1ZXN0ICsgY291bnQ7CiAgICAgZm9yICg7IHBhaW50UmVx
dWVzdCA8IHBhaW50UmVxdWVzdEVuZDsgcGFpbnRSZXF1ZXN0KyspCiAgICAgICAgIGVpbmFfdGls
ZXJfcmVjdF9hZGQodGlsZXIsIHBhaW50UmVxdWVzdCk7CkBAIC0xMjAxLDkgKzExOTUsOCBAQCBz
dGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3
X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YQogICAgIH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQotICAgIFdlYkNvcmU6OkZyYW1lKiBtYWluRnJhbWUgPSBFV0tQcml2YXRlOjpjb3JlRnJh
bWUoc21hcnREYXRhLT5tYWluX2ZyYW1lKTsKLSAgICBpZiAobWFpbkZyYW1lICYmIG1haW5GcmFt
ZS0+dGlsZWRCYWNraW5nU3RvcmUoKSkKLSAgICAgICAgbWFpbkZyYW1lLT50aWxlZEJhY2tpbmdT
dG9yZSgpLT5jb3ZlcldpdGhUaWxlc0lmTmVlZGVkKCk7CisgICAgaWYgKHByaXYtPnBhZ2UtPm1h
aW5GcmFtZSgpLnRpbGVkQmFja2luZ1N0b3JlKCkpCisgICAgICAgIHByaXYtPnBhZ2UtPm1haW5G
cmFtZSgpLnRpbGVkQmFja2luZ1N0b3JlKCktPmNvdmVyV2l0aFRpbGVzSWZOZWVkZWQoKTsKICNl
bmRpZgogCiAgICAgRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQgPSBld2tfcGFpbnRfY29udGV4
dF9mcm9tX2ltYWdlX25ldyhzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUpOwpAQCAtMTI0Myw3ICsx
MjM2LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZShFdmFzX09iamVj
dCogZXdrVmlldykKIAogICAgIHNtYXJ0RGF0YS0+Y2hhbmdlZC5hbnkgPSBmYWxzZTsKIAotICAg
IGlmICghc21hcnREYXRhLT5tYWluX2ZyYW1lIHx8ICFwcml2LT5tYWluRnJhbWUpCisgICAgaWYg
KCFzbWFydERhdGEtPm1haW5fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGV2YXNfb2Jq
ZWN0X2dlb21ldHJ5X2dldChld2tWaWV3LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7CkBAIC0x
MjUyLDcgKzEyNDUsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogICAgICAgICBld2tWaWV3LCB4LCB5LCB3aWR0aCwgaGVpZ2h0
LCBzbWFydERhdGEtPmNoYW5nZWQuc2l6ZSk7CiAKICAgICBpZiAoc21hcnREYXRhLT5jaGFuZ2Vk
LnNpemUgJiYgKCh3aWR0aCAhPSBzbWFydERhdGEtPnZpZXcudykgfHwgKGhlaWdodCAhPSBzbWFy
dERhdGEtPnZpZXcuaCkpKSB7Ci0gICAgICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHBy
aXYtPm1haW5GcmFtZS0+dmlldygpOworICAgICAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcg
PSBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CiAgICAgICAgIGlmICh2aWV3KSB7CiAg
ICAgICAgICAgICB2aWV3LT5yZXNpemUod2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICB2aWV3
LT5mb3JjZUxheW91dCgpOwpAQCAtMTI4OCw4ICsxMjgxLDcgQEAgc3RhdGljIHZvaWQgX2V3a192
aWV3X3NtYXJ0X2NhbGN1bGF0ZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICAgICAgRVJSKCJm
YWlsZWQgdG8gcHJvY2VzcyByZXBhaW50cy4iKTsKIAogICAgIGlmIChzbWFydERhdGEtPmNoYW5n
ZWQuZnJhbWVfcmVjdCkgewotICAgICAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2
LT5tYWluRnJhbWUtPnZpZXcoKTsKLSAgICAgICAgdmlldy0+ZnJhbWVSZWN0c0NoYW5nZWQoKTsg
LyogZm9yY2UgdHJlZSB0byBnZXQgcG9zaXRpb24gZnJvbSByb290ICovCisgICAgICAgIHByaXYt
PnBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKS0+ZnJhbWVSZWN0c0NoYW5nZWQoKTsKICAgICAgICAg
c21hcnREYXRhLT5jaGFuZ2VkLmZyYW1lX3JlY3QgPSBmYWxzZTsKICAgICB9CiB9CkBAIC0xNjEx
LDcgKzE2MDMsNyBAQCB2b2lkIGV3a192aWV3X2ZpeGVkX2xheW91dF9zaXplX3NldChFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19Db29yZCB3aWR0aCwgRXZhcwogICAgIEVXS19WSUVXX1NEX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKIAotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmll
dyA9IHByaXYtPm1haW5GcmFtZS0+dmlldygpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmll
dyA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTYzOSw3ICsxNjMxLDcgQEAgdm9pZCBld2tfdmlld19maXhlZF9s
YXlvdXRfc2l6ZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQqIHdp
ZHQKICAgICAgICAgKmhlaWdodCA9IDA7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYpOwotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPm1haW5G
cmFtZS0+dmlldygpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPnBhZ2Ut
Pm1haW5GcmFtZSgpLnZpZXcoKTsKICAgICBpZiAodmlldy0+dXNlRml4ZWRMYXlvdXQoKSkgewog
ICAgICAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUgPSB2aWV3LT5maXhlZExheW91dFNpemUoKTsK
ICAgICAgICAgaWYgKHdpZHRoKQpAQCAtMTc0NCw3ICsxNzM2LDcgQEAgdm9pZCBld2tfdmlld19i
Z19jb2xvcl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGludCByZWQsIGludCBncmVlbiwgaW50
IGJsdWUsIGkKIAogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2FscGhhX3NldChzbWFydERhdGEtPmJh
Y2tpbmdfc3RvcmUsIGFscGhhIDwgMjU1KTsKIAotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmll
dyA9IHNtYXJ0RGF0YS0+X3ByaXYtPm1haW5GcmFtZS0+dmlldygpOworICAgIFdlYkNvcmU6OkZy
YW1lVmlldyogdmlldyA9IHNtYXJ0RGF0YS0+X3ByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLnZpZXco
KTsKICAgICBpZiAodmlldykgewogICAgICAgICBXZWJDb3JlOjpDb2xvciBjb2xvcjsKIApAQCAt
MjMxNCw3ICsyMzA2LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfdXNlcl9hZ2VudF9z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHVzZXIKICAgICBFV0tfVklFV19T
RF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVX
X1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBpZiAoZWlu
YV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5ncy51c2VyQWdlbnQsIHVzZXJBZ2Vu
dCkpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmwmIGNsaWVudCA9IHN0
YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsJj4ocHJpdi0+bWFpbkZyYW1l
LT5sb2FkZXIoKS5jbGllbnQoKSk7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsJiBjbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCY+
KHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpKTsKICAgICAgICAgY2xp
ZW50LnNldEN1c3RvbVVzZXJBZ2VudChTdHJpbmc6OmZyb21VVEY4KHVzZXJBZ2VudCkpOwogICAg
IH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIzMzMsNyArMjMyNSw3IEBAIEVpbmFfQm9vbCBld2tf
dmlld19zZXR0aW5nX3VzZXJfc3R5bGVzaGVldF9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IGNoYXIqCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogICAgIGlmIChlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRp
bmdzLnVzZXJTdHlsZXNoZWV0LCB1cmkpKSB7CiAgICAgICAgIFdlYkNvcmU6OlVSTCBrdXJsKFdl
YkNvcmU6OlVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpOwotICAgICAgICBwcml2LT5wYWdl
U2V0dGluZ3MtPnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oa3VybCk7CisgICAgICAgIHByaXYt
PnBhZ2UtPnNldHRpbmdzKCkuc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihrdXJsKTsKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMzUxLDcgKzIzNDMsNyBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
RWluYV9Cb29sCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogICAgIGF1dG9tYXRpYyA9ICEhYXV0b21hdGljOwogICAgIGlmIChwcml2LT5z
ZXR0aW5ncy5hdXRvTG9hZEltYWdlcyAhPSBhdXRvbWF0aWMpIHsKLSAgICAgICAgcHJpdi0+cGFn
ZVNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYXV0b21hdGljKTsKKyAgICAg
ICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYXV0
b21hdGljKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3MuYXV0b0xvYWRJbWFnZXMgPSBhdXRvbWF0
aWM7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjM3MCw3ICsyMzYyLDcgQEAgRWluYV9C
b29sIGV3a192aWV3X3NldHRpbmdfYXV0b19zaHJpbmtfaW1hZ2VzX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgRWluYV9Cb28KICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnRE
YXRhLCBwcml2LCBmYWxzZSk7CiAgICAgYXV0b21hdGljID0gISFhdXRvbWF0aWM7CiAgICAgaWYg
KHByaXYtPnNldHRpbmdzLmF1dG9TaHJpbmtJbWFnZXMgIT0gYXV0b21hdGljKSB7Ci0gICAgICAg
IHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChhdXRv
bWF0aWMpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFNocmlua3NTdGFuZGFs
b25lSW1hZ2VzVG9GaXQoYXV0b21hdGljKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3MuYXV0b1No
cmlua0ltYWdlcyA9IGF1dG9tYXRpYzsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNDA0
LDcgKzIzOTYsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfc2NyaXB0c19z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbgogICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVu
YWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuZW5hYmxlU2NyaXB0cyAhPSBlbmFibGUpIHsK
LSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRTY3JpcHRFbmFibGVkKGVuYWJsZSk7Cisg
ICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0U2NyaXB0RW5hYmxlZChlbmFibGUpOwog
ICAgICAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVTY3JpcHRzID0gZW5hYmxlOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTI0MjMsNyArMjQxNSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19z
ZXR0aW5nX2VuYWJsZV9wbHVnaW5zX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29s
IGVuCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFs
c2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5lbmFi
bGVQbHVnaW5zICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFBs
dWdpbnNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0
UGx1Z2luc0VuYWJsZWQoZW5hYmxlKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlUGx1
Z2lucyA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNDQyLDcgKzI0MzQs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnJhbWVfZmxhdHRlbmluZ19z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAg
ICBpZiAocHJpdi0+c2V0dGluZ3MuZW5hYmxlRnJhbWVGbGF0dGVuaW5nICE9IGVuYWJsZSkgewot
ICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5h
YmxlKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZUZyYW1lRmxhdHRl
bmluZyA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNDYxLDcgKzI0NTMs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nf
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBhbGxvdyA9ICEhYWxsb3c7CiAgICAg
aWYgKHByaXYtPnNldHRpbmdzLnNjcmlwdHNDYW5PcGVuV2luZG93cyAhPSBhbGxvdykgewotICAg
ICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkoYWxsb3cpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldEphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYWxsb3cpOwogICAgICAgICBwcml2LT5z
ZXR0aW5ncy5zY3JpcHRzQ2FuT3BlbldpbmRvd3MgPSBhbGxvdzsKICAgICB9CiAgICAgcmV0dXJu
IHRydWU7CkBAIC0yNDgwLDcgKzI0NzIsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19z
Y3JpcHRzX2Nhbl9jbG9zZV93aW5kb3dzX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRQogICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAg
ICBhbGxvdyA9ICEhYWxsb3c7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLnNjcmlwdHNDYW5DbG9z
ZVdpbmRvd3MgIT0gYWxsb3cpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxv
d1NjcmlwdHNUb0Nsb3NlV2luZG93cyhhbGxvdyk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRp
bmdzKCkuc2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoYWxsb3cpOwogICAgICAgICBwcml2
LT5zZXR0aW5ncy5zY3JpcHRzQ2FuQ2xvc2VXaW5kb3dzID0gYWxsb3c7CiAgICAgfQogICAgIHJl
dHVybiB0cnVlOwpAQCAtMjQ5OSw4ICsyNDkxLDggQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRp
bmdfc2NyaXB0c19jYW5fYWNjZXNzX2NsaXBib2FyZF9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcK
ICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7
CiAgICAgYWxsb3cgPSAhIWFsbG93OwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5zY3JpcHRzQ2Fu
QWNjZXNzQ2xpcGJvYXJkICE9IGFsbG93KSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChhbGxvdyk7Ci0gICAgICAgIHByaXYtPnBh
Z2VTZXR0aW5ncy0+c2V0RE9NUGFzdGVBbGxvd2VkKGFsbG93KTsKKyAgICAgICAgcHJpdi0+cGFn
ZS0+c2V0dGluZ3MoKS5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGFsbG93KTsKKyAg
ICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRET01QYXN0ZUFsbG93ZWQoYWxsb3cpOwog
ICAgICAgICBwcml2LT5zZXR0aW5ncy5zY3JpcHRzQ2FuQWNjZXNzQ2xpcGJvYXJkID0gYWxsb3c7
CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjUxOSw3ICsyNTExLDcgQEAgRWluYV9Cb29s
IGV3a192aWV3X3NldHRpbmdfcmVzaXphYmxlX3RleHRhcmVhc19zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEVpbmFfQm8KICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCBmYWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNl
dHRpbmdzLnJlc2l6YWJsZVRleHRhcmVhcyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFn
ZVNldHRpbmdzLT5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoZW5hYmxlKTsKKyAgICAgICAgcHJp
di0+cGFnZS0+c2V0dGluZ3MoKS5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoZW5hYmxlKTsKICAg
ICAgICAgcHJpdi0+c2V0dGluZ3MucmVzaXphYmxlVGV4dGFyZWFzID0gZW5hYmxlOwogICAgIH0K
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1MzgsNyArMjUzMCw3IEBAIEVpbmFfQm9vbCBld2tfdmll
d19zZXR0aW5nX3ByaXZhdGVfYnJvd3Npbmdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5h
X0Jvb2wKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBm
YWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLnBy
aXZhdGVCcm93c2luZyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5z
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNl
dHRpbmdzKCkuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChlbmFibGUpOwogICAgICAgICBwcml2
LT5zZXR0aW5ncy5wcml2YXRlQnJvd3NpbmcgPSBlbmFibGU7CiAgICAgfQogICAgIHJldHVybiB0
cnVlOwpAQCAtMjU1Nyw3ICsyNTQ5LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYXBw
bGljYXRpb25fY2FjaGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wKICAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAg
ZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLm9mZmxpbmVBcHBDYWNo
ZSAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0
dGluZ3MoKS5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5hYmxlKTsKICAg
ICAgICAgcHJpdi0+c2V0dGluZ3Mub2ZmbGluZUFwcENhY2hlID0gZW5hYmxlOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTI1NzYsNyArMjU2OCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19z
ZXR0aW5nX2NhcmV0X2Jyb3dzaW5nX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29s
IGVuCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFs
c2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5jYXJl
dEJyb3dzaW5nICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldENh
cmV0QnJvd3NpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdz
KCkuc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKICAgICAgICAgcHJpdi0+c2V0dGlu
Z3MuY2FyZXRCcm93c2luZyA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0y
NjIyLDcgKzI2MTQsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19kZWZh
dWx0X3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhcgogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIGlmIChlaW5h
X3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdzLmVuY29kaW5nRGVmYXVsdCwgZW5j
b2RpbmcpKQotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRUZXh0RW5jb2Rp
bmdOYW1lKFN0cmluZzo6ZnJvbVVURjgoZW5jb2RpbmcpKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+
c2V0dGluZ3MoKS5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShTdHJpbmc6OmZyb21VVEY4KGVu
Y29kaW5nKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI2MzIsNyArMjYyNCw3IEBAIEVp
bmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2RldGVjdG9yX3NldChFdmFzX09iamVj
dCogZXdrVmlldywgRWluYV9Cb29sCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChw
cml2LT5zZXR0aW5ncy5lbmNvZGluZ0RldGVjdG9yICE9IGVuYWJsZSkgewotICAgICAgICBwcml2
LT5wYWdlU2V0dGluZ3MtPnNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGVuYWJsZSk7CisgICAgICAg
IHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0VXNlc0VuY29kaW5nRGV0ZWN0b3IoZW5hYmxlKTsK
ICAgICAgICAgcHJpdi0+c2V0dGluZ3MuZW5jb2RpbmdEZXRlY3RvciA9IGVuYWJsZTsKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjU4LDcgKzI2NTAsNyBAQCBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfc2V0dGluZ19lbmFibGVfZGV2ZWxvcGVyX2V4dHJhc19zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEVpbgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYs
IGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3Mu
ZW5hYmxlRGV2ZWxvcGVyRXh0cmFzICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0
dGluZ3MtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgcHJpdi0+
cGFnZS0+c2V0dGluZ3MoKS5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJsZSk7CiAgICAg
ICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZURldmVsb3BlckV4dHJhcyA9IGVuYWJsZTsKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjc2LDcgKzI2NjgsNyBAQCBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfc2V0dGluZ19mb250X21pbmltdW1fc2l6ZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGlu
dCBzaXplKQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5mb250TWluaW11bVNpemUgIT0gc2l6
ZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldE1pbmltdW1Gb250U2l6ZShzaXpl
KTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRNaW5pbXVtRm9udFNpemUoc2l6
ZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmZvbnRNaW5pbXVtU2l6ZSA9IHNpemU7CiAgICAg
fQogICAgIHJldHVybiB0cnVlOwpAQCAtMjY5NCw3ICsyNjg2LDcgQEAgRWluYV9Cb29sIGV3a192
aWV3X3NldHRpbmdfZm9udF9taW5pbXVtX2xvZ2ljYWxfc2l6ZV9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGkKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0
YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHBy
aXYsIGZhbHNlKTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuZm9udE1pbmltdW1Mb2dpY2FsU2l6
ZSAhPSBzaXplKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0TWluaW11bUxvZ2lj
YWxGb250U2l6ZShzaXplKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRNaW5p
bXVtTG9naWNhbEZvbnRTaXplKHNpemUpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy5mb250TWlu
aW11bUxvZ2ljYWxTaXplID0gc2l6ZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNzEy
LDcgKzI3MDQsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19mb250X2RlZmF1bHRfc2l6
ZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGludCBzaXplKQogICAgIEVXS19WSUVXX1NEX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJ
Vl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIGlmIChwcml2LT5z
ZXR0aW5ncy5mb250RGVmYXVsdFNpemUgIT0gc2l6ZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0
dGluZ3MtPnNldERlZmF1bHRGb250U2l6ZShzaXplKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0
dGluZ3MoKS5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdz
LmZvbnREZWZhdWx0U2l6ZSA9IHNpemU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjcz
MCw3ICsyNzIyLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZm9udF9tb25vc3BhY2Vf
c2l6ZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGludCBzaXoKICAgICBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBpZiAocHJpdi0+
c2V0dGluZ3MuZm9udE1vbm9zcGFjZVNpemUgIT0gc2l6ZSkgewotICAgICAgICBwcml2LT5wYWdl
U2V0dGluZ3MtPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKHNpemUpOworICAgICAgICBwcml2LT5w
YWdlLT5zZXR0aW5ncygpLnNldERlZmF1bHRGaXhlZEZvbnRTaXplKHNpemUpOwogICAgICAgICBw
cml2LT5zZXR0aW5ncy5mb250TW9ub3NwYWNlU2l6ZSA9IHNpemU7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwpAQCAtMjc2NiwyNyArMjc1OCwyNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZm9udF9m
YW1pbHlfbmFtZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19Gb250X0ZhbWlseSBmbwog
ICAgIHN3aXRjaCAoZm9udEZhbWlseSkgewogICAgIGNhc2UgRVdLX0ZPTlRfRkFNSUxZX1NUQU5E
QVJEOgogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdzLmZv
bnRTdGFuZGFyZCwgbmFtZSk7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U3RhbmRh
cmRGb250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZSkpOworICAgICAgICBwcml2
LT5wYWdlLT5zZXR0aW5ncygpLnNldFN0YW5kYXJkRm9udEZhbWlseShBdG9taWNTdHJpbmc6OmZy
b21VVEY4KG5hbWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFV0tfRk9OVF9GQU1JTFlf
Q1VSU0lWRToKICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5n
cy5mb250Q3Vyc2l2ZSwgbmFtZSk7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0Q3Vy
c2l2ZUZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpmcm9tVVRGOChuYW1lKSk7CisgICAgICAgIHBy
aXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0Q3Vyc2l2ZUZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpm
cm9tVVRGOChuYW1lKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRVdLX0ZPTlRfRkFNSUxZ
X0ZBTlRBU1k6CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmcHJpdi0+c2V0dGlu
Z3MuZm9udEZhbnRhc3ksIG5hbWUpOwotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEZh
bnRhc3lGb250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZSkpOworICAgICAgICBw
cml2LT5wYWdlLT5zZXR0aW5ncygpLnNldEZhbnRhc3lGb250RmFtaWx5KEF0b21pY1N0cmluZzo6
ZnJvbVVURjgobmFtZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVXS19GT05UX0ZBTUlM
WV9NT05PU1BBQ0U6CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmcHJpdi0+c2V0
dGluZ3MuZm9udE1vbm9zcGFjZSwgbmFtZSk7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0Rml4ZWRGb250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZSkpOworICAgICAg
ICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldEZpeGVkRm9udEZhbWlseShBdG9taWNTdHJpbmc6
OmZyb21VVEY4KG5hbWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFV0tfRk9OVF9GQU1J
TFlfU0VSSUY6CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmcHJpdi0+c2V0dGlu
Z3MuZm9udFNlcmlmLCBuYW1lKTsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRTZXJp
ZkZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpmcm9tVVRGOChuYW1lKSk7CisgICAgICAgIHByaXYt
PnBhZ2UtPnNldHRpbmdzKCkuc2V0U2VyaWZGb250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVU
RjgobmFtZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVXS19GT05UX0ZBTUlMWV9TQU5T
X1NFUklGOgogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdz
LmZvbnRTYW5zU2VyaWYsIG5hbWUpOwotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFNh
bnNTZXJpZkZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpmcm9tVVRGOChuYW1lKSk7CisgICAgICAg
IHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0U2Fuc1NlcmlmRm9udEZhbWlseShBdG9taWNTdHJp
bmc6OmZyb21VVEY4KG5hbWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjgwOCw3ICsyODAwLDcgQEAgRWluYV9Cb29sIGV3a192aWV3
X3NldHRpbmdfc3BhdGlhbF9uYXZpZ2F0aW9uX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWlu
YV9Cb28KICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBm
YWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLnNw
YXRpYWxOYXZpZ2F0aW9uICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3Mt
PnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChlbmFibGUpOworICAgICAgICBwcml2LT5wYWdl
LT5zZXR0aW5ncygpLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChlbmFibGUpOwogICAgICAg
ICBwcml2LT5zZXR0aW5ncy5zcGF0aWFsTmF2aWdhdGlvbiA9IGVuYWJsZTsKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CkBAIC0yODI3LDcgKzI4MTksNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0
dGluZ19sb2NhbF9zdG9yYWdlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVu
YQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNl
KTsKICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MubG9jYWxT
dG9yYWdlICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldExvY2Fs
U3RvcmFnZUVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5z
ZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmxv
Y2FsU3RvcmFnZSA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yODQ2LDcg
KzI4MzgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19wYWdlX2NhY2hlX3NldChFdmFz
X09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWJsZQogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVuYWJs
ZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MucGFnZUNhY2hlICE9IGVuYWJsZSkgewotICAgICAg
ICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlKTsKKyAgICAgICAg
cHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRVc2VzUGFnZUNhY2hlKGVuYWJsZSk7CiAgICAgICAg
IHByaXYtPnNldHRpbmdzLnBhZ2VDYWNoZSA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0yODY0LDcgKzI4NTYsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19sb2Nh
bF9zdG9yYWdlX2RhdGFiYXNlX3BhdGhfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LAogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAg
RVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAg
IGlmIChlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdzLmxvY2FsU3RvcmFn
ZURhdGFiYXNlUGF0aCwgcGF0aCkpCi0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0TG9j
YWxTdG9yYWdlRGF0YWJhc2VQYXRoKFN0cmluZzo6ZnJvbVVURjgocGF0aCkpOworICAgICAgICBw
cml2LT5wYWdlLT5zZXR0aW5ncygpLnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChTdHJpbmc6
OmZyb21VVEY4KHBhdGgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjg3Myw3ICsyODY1
LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfbWluaW11bV90aW1lcl9pbnRlcnZhbF9z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGRvdWIKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVU
VVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBpZiAoZmFicyhwcml2LT5zZXR0
aW5ncy5kb21UaW1lckludGVydmFsIC0gaW50ZXJ2YWwpID49IHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6ZXBzaWxvbigpKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0TWlu
RE9NVGltZXJJbnRlcnZhbChpbnRlcnZhbCk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdz
KCkuc2V0TWluRE9NVGltZXJJbnRlcnZhbChpbnRlcnZhbCk7CiAgICAgICAgIHByaXYtPnNldHRp
bmdzLmRvbVRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbDsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7
CkBAIC0yODk5LDcgKzI4OTEsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVf
d2ViZ2xfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZW5hYgogICAgIEVXS19W
SUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFi
bGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3Mud2ViR0xFbmFibGVkICE9IGVu
YWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFdlYkdMRW5hYmxlZChlbmFi
bGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFdlYkdMRW5hYmxlZChlbmFi
bGUpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy53ZWJHTEVuYWJsZWQgPSBlbmFibGU7CiAgICAg
fQogICAgIHJldHVybiB0cnVlOwpAQCAtMjkzNCw3ICsyOTI2LDcgQEAgRWluYV9Cb29sIGV3a192
aWV3X3NldHRpbmdfZW5hYmxlX2h5cGVybGlua19hdWRpdGluZ19zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEUKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
LCBmYWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdz
Lmh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFn
ZVNldHRpbmdzLT5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAg
cHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZW5hYmxl
KTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3MuaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkID0gZW5h
YmxlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI5NDYsNyArMjkzOCw3IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19zZXR0aW5nX2FsbG93X3VuaXZlcnNhbF9hY2Nlc3NfZnJvbV9maWxlX3Vy
bHNfc2V0KEV2YXNfT2JqZWN0CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2
LT5zZXR0aW5ncy5hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyAhPSBlbmFibGUpIHsK
LSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMcyhlbmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRp
bmdzLmFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzID0gZW5hYmxlOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTI5NjUsNyArMjk1Nyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19z
ZXR0aW5nX2FsbG93X2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzX3NldChFdmFzX09iamVjdCog
ZXdrCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFs
c2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5hbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgIT0gZW5hYmxlKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncy0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGVuYWJsZSk7CisgICAgICAg
IHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGVu
YWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cyA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0zMDQ2LDcgKzMwMzgsNyBA
QCB2b2lkIGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKEV3a19WaWV3X1ByaXZh
dGVfRGF0YSogcHJpdikKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihwcml2KTsK
IAotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPm1haW5GcmFtZS0+dmlldygp
OworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKTsKICAgICBpZiAoIXZpZXcpIHsKICAgICAgICAgRVJSKCJubyBtYWluIGZyYW1lIHZp
ZXciKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzA2OSw3ICszMDYxLDcgQEAgRWluYV9Cb29sIGV3
a192aWV3X3BhaW50KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgY2Fpcm9fdCogY3IsIGNv
bnN0IEVpbmFfUmUKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY3IsIGZhbHNl
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoYXJlYSwgZmFsc2UpOwogCi0g
ICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gcHJpdi0+bWFpbkZyYW1lLT52aWV3KCk7Cisg
ICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCkudmll
dygpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCBmYWxzZSk7CiAK
ICAgICB2aWV3LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7CkBAIC0z
MTI1LDcgKzMxMTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcGFpbnQoRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBwcml2LCBFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dAogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChwcml2LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKGNvbnRleHQsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoYXJlYSwgZmFsc2UpOwotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHBy
aXYtPm1haW5GcmFtZS0+dmlldygpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHBy
aXYtPnBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwodmlldywgZmFsc2UpOwogCiAgICAgZXdrX3BhaW50X2NvbnRleHRfc2F2ZShjb250
ZXh0KTsKQEAgLTMxNjgsNyArMzE2MCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19wYWludF9jb250
ZW50cyhFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19QYWludF9Db250ZXh0CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHByaXYsIGZhbHNlKTsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29udGV4dCwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChhcmVhLCBmYWxzZSk7Ci0gICAgV2ViQ29yZTo6RnJhbWVWaWV3
KiB2aWV3ID0gcHJpdi0+bWFpbkZyYW1lLT52aWV3KCk7CisgICAgV2ViQ29yZTo6RnJhbWVWaWV3
KiB2aWV3ID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCBmYWxzZSk7CiAKICAgICB2aWV3LT51cGRhdGVMYXlv
dXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7CkBAIC00MzEwLDEwICs0MzAyLDEwIEBAIEVp
bmFfQm9vbCBld2tfdmlld19qc19vYmplY3RfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tf
SlNfT2JqZWN0KiBvYmplY3QsIGNvCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBXZWJDb3JlOjpKU0RPTVdpbmRvdyogd2lu
ZG93ID0gdG9KU0RPTVdpbmRvdyhwcml2LT5tYWluRnJhbWUsIFdlYkNvcmU6Om1haW5UaHJlYWRO
b3JtYWxXb3JsZCgpKTsKKyAgICBXZWJDb3JlOjpKU0RPTVdpbmRvdyogd2luZG93ID0gdG9KU0RP
TVdpbmRvdygmcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCksIFdlYkNvcmU6Om1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHdpbmRvdy0+Z2xvYmFsRXhl
YygpKTsKICAgICBKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0KiByb290OwotICAgIHJvb3QgPSBw
cml2LT5tYWluRnJhbWUtPnNjcmlwdCgpLmJpbmRpbmdSb290T2JqZWN0KCk7CisgICAgcm9vdCA9
IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmJpbmRpbmdSb290T2JqZWN0KCk7CiAK
ICAgICBpZiAoIXdpbmRvdykgewogICAgICAgICBFUlIoIldhcm5pbmc6IGNvdWxkbid0IGdldCB3
aW5kb3cgb2JqZWN0Iik7CkBAIC00MzY5LDggKzQzNjEsNyBAQCBXZWJDb3JlOjpGbG9hdFJlY3Qg
ZXdrX3ZpZXdfcGFnZV9yZWN0X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgV2ViQ29yZTo6Rmxv
YXRSZWN0KC0xLjAsIC0xLjAsIC0xLjAsIC0xLjApKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBXZWJDb3JlOjpGbG9hdFJlY3QoLTEuMCwgLTEuMCwg
LTEuMCwgLTEuMCkpOwogCi0gICAgV2ViQ29yZTo6RnJhbWUmIG1haW5fZnJhbWUgPSBwcml2LT5w
YWdlLT5tYWluRnJhbWUoKTsKLSAgICByZXR1cm4gbWFpbl9mcmFtZS52aWV3KCktPmZyYW1lUmVj
dCgpOworICAgIHJldHVybiBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3KCktPmZyYW1lUmVj
dCgpOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTQ1NDYsNyArNDUzNyw3IEBA
IFNvdXBTZXNzaW9uKiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21h
cnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBw
cml2LCAwKTsKLSAgICByZXR1cm4gcHJpdi0+c3RvcmFnZVNlc3Npb24tPnNvdXBTZXNzaW9uKCk7
CisgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKCkuc291cFNlc3Npb24oKTsKIH0KIAogdm9pZCBld2tfdmlld19zb3VwX3Nlc3Np
b25fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBTb3VwU2Vzc2lvbiogc2Vzc2lvbikKQEAgLTQ1
NTgsNyArNDU0OSw3IEBAIHZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09iamVj
dCogZXdrVmlldywgU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAgICAgICAgICAiYSBTb3VwU2Vz
c2lvblN5bmMgd2FzIHByb3ZpZGVkLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHBy
aXYtPnN0b3JhZ2VTZXNzaW9uLT5zZXRTb3VwU2Vzc2lvbihzZXNzaW9uKTsKKyAgICBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLnNldFNvdXBT
ZXNzaW9uKHNlc3Npb24pOwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVf
eHNzX2F1ZGl0b3JfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpAQCAtNDU3NCw3ICs0
NTY1LDcgQEAgdm9pZCBld2tfdmlld19zZXR0aW5nX2VuYWJsZV94c3NfYXVkaXRvcl9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmEKICAgICBFV0tfVklFV19QUklWX0dFVChz
bWFydERhdGEsIHByaXYpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5z
ZXR0aW5ncy5lbmFibGVYU1NBdWRpdG9yICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdl
U2V0dGluZ3MtPnNldFhTU0F1ZGl0b3JFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBh
Z2UtPnNldHRpbmdzKCkuc2V0WFNTQXVkaXRvckVuYWJsZWQoZW5hYmxlKTsKICAgICAgICAgcHJp
di0+c2V0dGluZ3MuZW5hYmxlWFNTQXVkaXRvciA9IGVuYWJsZTsKICAgICB9CiB9CkBAIC00NjEw
LDcgKzQ2MDEsNyBAQCB2b2lkIGV3a192aWV3X3NldHRpbmdfc2hvdWxkX2Rpc3BsYXlfY2FwdGlv
bnNfc2V0KEV2YXNfT2JqZWN0ICpld2tWaWV3LCBFaW5hX0JvbwogICAgIEVXS19WSUVXX1BSSVZf
R0VUKHNtYXJ0RGF0YSwgcHJpdik7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHBy
aXYtPnNldHRpbmdzLnNob3VsZERpc3BsYXlDYXB0aW9ucyAhPSBlbmFibGUpIHsKLSAgICAgICAg
cHJpdi0+cGFnZVNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoZW5hYmxlKTsKKyAg
ICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoZW5h
YmxlKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3Muc2hvdWxkRGlzcGxheUNhcHRpb25zID0gZW5h
YmxlOwogICAgIH0KICNlbHNlCkBAIC00NjI2LDcgKzQ2MTcsNyBAQCB2b2lkIGV3a192aWV3X3Nl
dHRpbmdfc2hvdWxkX2Rpc3BsYXlfc3VidGl0bGVzX3NldChFdmFzX09iamVjdCAqZXdrVmlldywg
RWluYV9CbwogICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJpdik7CiAgICAgZW5h
YmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLnNob3VsZERpc3BsYXlTdWJ0
aXRsZXMgIT0gZW5hYmxlKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2hvdWxk
RGlzcGxheVN1YnRpdGxlcyhlbmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygp
LnNldFNob3VsZERpc3BsYXlTdWJ0aXRsZXMoZW5hYmxlKTsKICAgICAgICAgcHJpdi0+c2V0dGlu
Z3Muc2hvdWxkRGlzcGxheVN1YnRpdGxlcyA9IGVuYWJsZTsKICAgICB9CiAjZWxzZQpAQCAtNDY1
NCw3ICs0NjQ1LDcgQEAgdm9pZCBld2tfdmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRf
ZGVzY3JpcHRpb25zX3NldChFdmFzX09iamVjdCAqZXdrVmlldywKICAgICBFV0tfVklFV19QUklW
X0dFVChzbWFydERhdGEsIHByaXYpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChw
cml2LT5zZXR0aW5ncy5zaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyAhPSBlbmFibGUpIHsK
LSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5VGV4dERlc2NyaXB0
aW9ucyhlbmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFNob3VsZERp
c3BsYXlUZXh0RGVzY3JpcHRpb25zKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLnNo
b3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zID0gZW5hYmxlOwogICAgIH0KICNlbHNlCkBAIC00
ODczLDcgKzQ4NjQsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnVsbHNj
cmVlbl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbAogICAgIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAh
IWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuZW5hYmxlRnVsbHNjcmVlbiAhPSBlbmFi
bGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChl
bmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldEZ1bGxTY3JlZW5FbmFi
bGVkKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZUZ1bGxzY3JlZW4gPSBl
bmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtNDkzMyw3ICs0OTI0LDcgQEAgRWlu
YV9Cb29sIGV3a192aWV3X3NldHRpbmdfdGlsZWRfYmFja2luZ19zdG9yZV9lbmFibGVkX3NldChF
dmFzX09iamVjdCogZXdrVmlldywKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1Zp
ZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihz
bWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0VGls
ZWRCYWNraW5nU3RvcmVFbmFibGVkKGVuYWJsZSk7CisgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3Mo
KS5zZXRUaWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKQEAgLTQ5NDksNyArNDk0MCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5n
X3RpbGVkX2JhY2tpbmdfc3RvcmVfZW5hYmxlZF9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsK
ICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7
CiAKLSAgICByZXR1cm4gcHJpdi0+cGFnZVNldHRpbmdzLT50aWxlZEJhY2tpbmdTdG9yZUVuYWJs
ZWQoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS50aWxlZEJhY2tpbmdTdG9y
ZUVuYWJsZWQoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIHJldHVy
biBmYWxzZTsKQEAgLTQ5NzEsOCArNDk2Miw4IEBAIHZvaWQgZXdrX3ZpZXdfdGlsZWRfYmFja2lu
Z19zdG9yZV9pbnZhbGlkYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlCiAg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogICAgIEVX
S19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOwogCi0gICAgaWYgKHBy
aXYtPm1haW5GcmFtZS0+dGlsZWRCYWNraW5nU3RvcmUoKSkKLSAgICAgICAgcHJpdi0+bWFpbkZy
YW1lLT50aWxlZEJhY2tpbmdTdG9yZSgpLT5pbnZhbGlkYXRlKGFyZWEpOworICAgIGlmIChwcml2
LT5wYWdlLT5tYWluRnJhbWUoKS50aWxlZEJhY2tpbmdTdG9yZSgpKQorICAgICAgICBwcml2LT5w
YWdlLT5tYWluRnJhbWUoKS50aWxlZEJhY2tpbmdTdG9yZSgpLT5pbnZhbGlkYXRlKGFyZWEpOwog
fQogI2VuZGlmCiAKQEAgLTQ5OTYsNyArNDk4Nyw3IEBAIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiogc3RvcmFnZVNlc3Npb24oY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwotICAgIHJl
dHVybiBwcml2LT5zdG9yYWdlU2Vzc2lvbjsKKyAgICByZXR1cm4gJldlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEVXS1ByaXZhdGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221091</attachid>
            <date>2014-01-13 16:54:02 -0800</date>
            <delta_ts>2014-01-13 17:38:43 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug-126945-20140114095359.patch</filename>
            <type>text/plain</type>
            <size>44286</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggOTE5YTg5Zjhm
MGJiNGMyNjA5ZjRjYWI5Y2RhZDNmOGMxZTkwM2MxYy4uNTBjNGNmN2IzNzQ4OWM4YmQzZWQ2YmM4
NjRkYTQ4NWZmYTgxYWFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE0
LTAxLTEzICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBb
RUZMXSBEbyBub3Qgc3RvcmUgcmVmZXJlbmNlIHZhcmlhYmxlcyBhcyBhIHBvaW50ZXIgaW4gcHJp
dmF0ZSBkYXRhIHN0cnVjdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI2OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIHBhZ2VTZXR0aW5ncywgbWFpbkZyYW1lIGFuZCBzdG9yYWdlU2Vz
c2lvbiB2YXJpYWJsZXMgZnJvbSBFd2tfVmlld19Qcml2YXRlX0RhdGEuCisKKyAgICAgICAgKiBl
d2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAg
KF9ld2tfdmlld19zbWFydF9hZGQpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3JlcGFpbnRz
X3Byb2Nlc3MpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAg
IChld2tfdmlld19maXhlZF9sYXlvdXRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfZml4
ZWRfbGF5b3V0X3NpemVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2JnX2NvbG9yX3NldCk6Cisg
ICAgICAgIChld2tfdmlld19zZXR0aW5nX3VzZXJfYWdlbnRfc2V0KToKKyAgICAgICAgKGV3a192
aWV3X3NldHRpbmdfdXNlcl9zdHlsZXNoZWV0X3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0
aW5nX2F1dG9fbG9hZF9pbWFnZXNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYXV0
b19zaHJpbmtfaW1hZ2VzX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9z
Y3JpcHRzX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9wbHVnaW5zX3Nl
dCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX3Nl
dCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19z
ZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19zY3JpcHRzX2Nhbl9jbG9zZV93aW5kb3dz
X3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX2FjY2Vzc19jbGlw
Ym9hcmRfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfcmVzaXphYmxlX3RleHRhcmVh
c19zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19wcml2YXRlX2Jyb3dzaW5nX3NldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2FwcGxpY2F0aW9uX2NhY2hlX3NldCk6CisgICAg
ICAgIChld2tfdmlld19zZXR0aW5nX2NhcmV0X2Jyb3dzaW5nX3NldCk6CisgICAgICAgIChld2tf
dmlld19zZXR0aW5nX2VuY29kaW5nX2RlZmF1bHRfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3Nl
dHRpbmdfZW5jb2RpbmdfZGV0ZWN0b3Jfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
ZW5hYmxlX2RldmVsb3Blcl9leHRyYXNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
Zm9udF9taW5pbXVtX3NpemVfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZm9udF9t
aW5pbXVtX2xvZ2ljYWxfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19mb250
X2RlZmF1bHRfc2l6ZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19mb250X21vbm9z
cGFjZV9zaXplX3NldCk6CisgICAgICAgIChld2tfdmlld19mb250X2ZhbWlseV9uYW1lX3NldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3NwYXRpYWxfbmF2aWdhdGlvbl9zZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfc2V0dGluZ19sb2NhbF9zdG9yYWdlX3NldCk6CisgICAgICAgIChld2tf
dmlld19zZXR0aW5nX3BhZ2VfY2FjaGVfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdf
bG9jYWxfc3RvcmFnZV9kYXRhYmFzZV9wYXRoX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0
aW5nX21pbmltdW1fdGltZXJfaW50ZXJ2YWxfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRp
bmdfZW5hYmxlX3dlYmdsX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV9o
eXBlcmxpbmtfYXVkaXRpbmdfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxsb3df
dW5pdmVyc2FsX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19zZXQpOgorICAgICAgICAoZXdrX3ZpZXdf
c2V0dGluZ19hbGxvd19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19zZXQpOgorICAgICAgICAo
ZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUpOgorICAgICAgICAoZXdrX3ZpZXdf
cGFpbnQpOgorICAgICAgICAoZXdrX3ZpZXdfcGFpbnRfY29udGVudHMpOgorICAgICAgICAoZXdr
X3ZpZXdfanNfb2JqZWN0X2FkZCk6CisgICAgICAgIChld2tfdmlld19wYWdlX3JlY3RfZ2V0KToK
KyAgICAgICAgKGV3a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdf
c291cF9zZXNzaW9uX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuYWJsZV94c3Nf
YXVkaXRvcl9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxheV9j
YXB0aW9uc19zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxheV9z
dWJ0aXRsZXNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfc2hvdWxkX2Rpc3BsYXlf
dGV4dF9kZXNjcmlwdGlvbnNfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZW5hYmxl
X2Z1bGxzY3JlZW5fc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfdGlsZWRfYmFja2lu
Z19zdG9yZV9lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfZW5hYmxlZF9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfYmFja2lu
Z19zdG9yZV9pbnZhbGlkYXRlKToKKyAgICAgICAgKEVXS1ByaXZhdGU6OnN0b3JhZ2VTZXNzaW9u
KToKKwogMjAxNC0wMS0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBTb3VwTmV0d29ya1Nlc3Npb24gY2xhc3MgdG8gd3Jh
cCBhIFNvdXBTZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0NzAzZmZj
ZTBlYjI5YWQ2MWRjYjU0OTg0MmM4MTVkYTdmOTJhMzk0Li44ZDRiMzg1MTY3MmZiZmZhZWJjNGQw
NDdmNzEzNWJhODViZmIxOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI1
NSw4ICsyNTUsNiBAQCBzdGF0aWMgY29uc3QgRWRpdG9yQ29tbWFuZCBlZGl0b3JDb21tYW5kc1td
ID0gewogICovCiBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgT3duUHRyPFdl
YkNvcmU6OlBhZ2U+IHBhZ2U7Ci0gICAgV2ViQ29yZTo6U2V0dGluZ3MqIHBhZ2VTZXR0aW5nczsK
LSAgICBXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lOwogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwogICAgIEV3a19IaXN0b3J5KiBoaXN0b3J5OwogICAg
IE93blB0cjxQYWdlQ2xpZW50RWZsPiBwYWdlQ2xpZW50OwpAQCAtMjcxLDcgKzI2OSw2IEBAIHN0
cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpIHx8IEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCiAgICAgT3duUHRyPFdl
YkNvcmU6Ok5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbD4gbmF2aWdhdG9yQ29udGVudFV0
aWxzQ2xpZW50OwogI2VuZGlmCi0gICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBz
dG9yYWdlU2Vzc2lvbjsKICAgICBzdHJ1Y3QgewogICAgICAgICBFd2tfTWVudSBtZW51OwogICAg
ICAgICBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIG1lbnVDbGllbnQ7CkBAIC03MTcsNyArNzE0
LDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICB9CiAjZW5kaWYKIAotICAgIHByaXYt
PnBhZ2VTZXR0aW5ncyA9ICZwcml2LT5wYWdlLT5zZXR0aW5ncygpOworICAgIFdlYkNvcmU6OlNl
dHRpbmdzJiBwYWdlU2V0dGluZ3MgPSBwcml2LT5wYWdlLT5zZXR0aW5ncygpOwogCiAgICAgV2Vi
Q29yZTo6TGF5b3V0TWlsZXN0b25lcyBsYXlvdXRNaWxlc3RvbmVzID0gV2ViQ29yZTo6RGlkRmly
c3RMYXlvdXQgfCBXZWJDb3JlOjpEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CiAgICAg
cHJpdi0+cGFnZS0+YWRkTGF5b3V0TWlsZXN0b25lcyhsYXlvdXRNaWxlc3RvbmVzKTsKQEAgLTcz
MCw5OSArNzI3LDk4IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19w
cml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgcHJpdi0+dmlld3Bv
cnRBcmd1bWVudHMubWF4Wm9vbSA9IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1
dG87CiAgICAgcHJpdi0+dmlld3BvcnRBcmd1bWVudHMudXNlclpvb20gPSB0cnVlOwogCi0gICAg
cHJpdi0+cGFnZVNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7Ci0g
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4
NTktMSIpOwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUo
MTIpOwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKLSAg
ICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgic2VyaWYiKTsKLSAgICBw
cml2LT5wYWdlU2V0dGluZ3MtPnNldEZpeGVkRm9udEZhbWlseSgibW9ub3R5cGUiKTsKLSAgICBw
cml2LT5wYWdlU2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoInNhbnMiKTsKLSAgICBw
cml2LT5wYWdlU2V0dGluZ3MtPnNldFN0YW5kYXJkRm9udEZhbWlseSgic2FucyIpOwotICAgIHBy
aXYtPnBhZ2VTZXR0aW5ncy0+c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGZhbHNlKTsKKyAg
ICBwYWdlU2V0dGluZ3Muc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHBh
Z2VTZXR0aW5ncy5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4NTktMSIpOworICAg
IHBhZ2VTZXR0aW5ncy5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZSgxMik7CisgICAgcGFnZVNldHRp
bmdzLnNldERlZmF1bHRGb250U2l6ZSgxNik7CisgICAgcGFnZVNldHRpbmdzLnNldFNlcmlmRm9u
dEZhbWlseSgic2VyaWYiKTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0Rml4ZWRGb250RmFtaWx5KCJt
b25vdHlwZSIpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRTYW5zU2VyaWZGb250RmFtaWx5KCJzYW5z
Iik7CisgICAgcGFnZVNldHRpbmdzLnNldFN0YW5kYXJkRm9udEZhbWlseSgic2FucyIpOworICAg
IHBhZ2VTZXR0aW5ncy5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZmFsc2UpOwogICAgIFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTUmVn
aW9uc0VuYWJsZWQodHJ1ZSk7CiAjaWYgRU5BQkxFKElGUkFNRV9TRUFNTEVTUykKICAgICBXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNlYW1sZXNz
SUZyYW1lc0VuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNl
dFNjcmlwdEVuYWJsZWQodHJ1ZSk7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRQbHVnaW5z
RW5hYmxlZCh0cnVlKTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVu
YWJsZWQodHJ1ZSk7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZUVuYWJsZWQodHJ1ZSk7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRVc2Vz
UGFnZUNhY2hlKHRydWUpOwotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0VXNlc0VuY29kaW5n
RGV0ZWN0b3IoZmFsc2UpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRTY3JpcHRFbmFibGVkKHRydWUp
OworICAgIHBhZ2VTZXR0aW5ncy5zZXRQbHVnaW5zRW5hYmxlZCh0cnVlKTsKKyAgICBwYWdlU2V0
dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZCh0cnVlKTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKHRydWUpOworICAgIHBhZ2VTZXR0aW5n
cy5zZXRVc2VzUGFnZUNhY2hlKHRydWUpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRVc2VzRW5jb2Rp
bmdEZXRlY3RvcihmYWxzZSk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBwcml2LT5wYWdl
U2V0dGluZ3MtPnNldFdlYkF1ZGlvRW5hYmxlZChmYWxzZSk7CisgICAgcGFnZVNldHRpbmdzLnNl
dFdlYkF1ZGlvRW5hYmxlZChmYWxzZSk7CiAjZW5kaWYKLSAgICBwcml2LT5wYWdlU2V0dGluZ3Mt
PnNldFdlYkdMRW5hYmxlZCh0cnVlKTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFhTU0F1
ZGl0b3JFbmFibGVkKHRydWUpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRXZWJHTEVuYWJsZWQodHJ1
ZSk7CisgICAgcGFnZVNldHRpbmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOwogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEZ1bGxTY3Jl
ZW5FbmFibGVkKHRydWUpOworICAgIHBhZ2VTZXR0aW5ncy5zZXRGdWxsU2NyZWVuRW5hYmxlZCh0
cnVlKTsKICNlbmRpZgotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0SW50ZXJhY3RpdmVGb3Jt
VmFsaWRhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgcGFnZVNldHRpbmdzLnNldEludGVyYWN0aXZl
Rm9ybVZhbGlkYXRpb25FbmFibGVkKHRydWUpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKGZhbHNlKTsKKyAgICBwYWdlU2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoZmFsc2UpOwogICAgIGNoYXIqIGRlYnVnVmlzdWFsc0Vudmlyb25tZW50ID0gZ2V0
ZW52KCJXRUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIik7CiAgICAgYm9vbCBz
aG93RGVidWdWaXN1YWxzID0gZGVidWdWaXN1YWxzRW52aXJvbm1lbnQgJiYgIXN0cmNtcChkZWJ1
Z1Zpc3VhbHNFbnZpcm9ubWVudCwgIjEiKTsKLSAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFNo
b3dEZWJ1Z0JvcmRlcnMoc2hvd0RlYnVnVmlzdWFscyk7Ci0gICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXRTaG93UmVwYWludENvdW50ZXIoc2hvd0RlYnVnVmlzdWFscyk7CisgICAgcGFnZVNldHRp
bmdzLnNldFNob3dEZWJ1Z0JvcmRlcnMoc2hvd0RlYnVnVmlzdWFscyk7CisgICAgcGFnZVNldHRp
bmdzLnNldFNob3dSZXBhaW50Q291bnRlcihzaG93RGVidWdWaXN1YWxzKTsKICNlbmRpZgogCi0g
ICAgdXJsID0gcHJpdi0+cGFnZVNldHRpbmdzLT51c2VyU3R5bGVTaGVldExvY2F0aW9uKCk7Cisg
ICAgdXJsID0gcGFnZVNldHRpbmdzLnVzZXJTdHlsZVNoZWV0TG9jYXRpb24oKTsKICAgICBwcml2
LT5zZXR0aW5ncy51c2VyU3R5bGVzaGVldCA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHVybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIHByaXYtPnNldHRpbmdzLmVuY29kaW5nRGVmYXVs
dCA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocHJpdi0+cGFnZVNldHRpbmdzLT5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgp
LnV0ZjgoKS5kYXRhKCkpOworICAgIHByaXYtPnNldHRpbmdzLmVuY29kaW5nRGVmYXVsdCA9IGVp
bmFfc3RyaW5nc2hhcmVfYWRkKHBhZ2VTZXR0aW5ncy5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgp
LnV0ZjgoKS5kYXRhKCkpOwogICAgIHByaXYtPnNldHRpbmdzLmVuY29kaW5nQ3VzdG9tID0gMDsK
IAotICAgIHN0cmluZyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+bG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoKCk7CisgICAgc3RyaW5nID0gcGFnZVNldHRpbmdzLmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aCgpOwogICAgIHByaXYtPnNldHRpbmdzLmxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9IGVpbmFf
c3RyaW5nc2hhcmVfYWRkKHN0cmluZy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIHBy
aXYtPnNldHRpbmdzLmZvbnRNaW5pbXVtU2l6ZSA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+bWluaW11
bUZvbnRTaXplKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3MuZm9udE1pbmltdW1Mb2dpY2FsU2l6ZSA9
IHByaXYtPnBhZ2VTZXR0aW5ncy0+bWluaW11bUxvZ2ljYWxGb250U2l6ZSgpOwotICAgIHByaXYt
PnNldHRpbmdzLmZvbnREZWZhdWx0U2l6ZSA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZGVmYXVsdEZv
bnRTaXplKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3MuZm9udE1vbm9zcGFjZVNpemUgPSBwcml2LT5w
YWdlU2V0dGluZ3MtPmRlZmF1bHRGaXhlZEZvbnRTaXplKCk7CisgICAgcHJpdi0+c2V0dGluZ3Mu
Zm9udE1pbmltdW1TaXplID0gcGFnZVNldHRpbmdzLm1pbmltdW1Gb250U2l6ZSgpOworICAgIHBy
aXYtPnNldHRpbmdzLmZvbnRNaW5pbXVtTG9naWNhbFNpemUgPSBwYWdlU2V0dGluZ3MubWluaW11
bUxvZ2ljYWxGb250U2l6ZSgpOworICAgIHByaXYtPnNldHRpbmdzLmZvbnREZWZhdWx0U2l6ZSA9
IHBhZ2VTZXR0aW5ncy5kZWZhdWx0Rm9udFNpemUoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5mb250
TW9ub3NwYWNlU2l6ZSA9IHBhZ2VTZXR0aW5ncy5kZWZhdWx0Rml4ZWRGb250U2l6ZSgpOwogCi0g
ICAgc3RyaW5nID0gcHJpdi0+cGFnZVNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKKyAg
ICBzdHJpbmcgPSBwYWdlU2V0dGluZ3Muc3RhbmRhcmRGb250RmFtaWx5KCk7CiAgICAgcHJpdi0+
c2V0dGluZ3MuZm9udFN0YW5kYXJkID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHN0cmluZyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+Y3Vy
c2l2ZUZvbnRGYW1pbHkoKTsKKyAgICBzdHJpbmcgPSBwYWdlU2V0dGluZ3MuY3Vyc2l2ZUZvbnRG
YW1pbHkoKTsKICAgICBwcml2LT5zZXR0aW5ncy5mb250Q3Vyc2l2ZSA9IGVpbmFfc3RyaW5nc2hh
cmVfYWRkKHN0cmluZy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBzdHJpbmcgPSBwcml2
LT5wYWdlU2V0dGluZ3MtPmZpeGVkRm9udEZhbWlseSgpOworICAgIHN0cmluZyA9IHBhZ2VTZXR0
aW5ncy5maXhlZEZvbnRGYW1pbHkoKTsKICAgICBwcml2LT5zZXR0aW5ncy5mb250TW9ub3NwYWNl
ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwot
ICAgIHN0cmluZyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZmFudGFzeUZvbnRGYW1pbHkoKTsKKyAg
ICBzdHJpbmcgPSBwYWdlU2V0dGluZ3MuZmFudGFzeUZvbnRGYW1pbHkoKTsKICAgICBwcml2LT5z
ZXR0aW5ncy5mb250RmFudGFzeSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHN0cmluZy5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICBzdHJpbmcgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnNlcmlm
Rm9udEZhbWlseSgpOworICAgIHN0cmluZyA9IHBhZ2VTZXR0aW5ncy5zZXJpZkZvbnRGYW1pbHko
KTsKICAgICBwcml2LT5zZXR0aW5ncy5mb250U2VyaWYgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChz
dHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgc3RyaW5nID0gcHJpdi0+cGFnZVNl
dHRpbmdzLT5zYW5zU2VyaWZGb250RmFtaWx5KCk7CisgICAgc3RyaW5nID0gcGFnZVNldHRpbmdz
LnNhbnNTZXJpZkZvbnRGYW1pbHkoKTsKICAgICBwcml2LT5zZXR0aW5ncy5mb250U2Fuc1Nlcmlm
ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
Ci0gICAgcHJpdi0+c2V0dGluZ3MuYXV0b0xvYWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3Mt
PmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOwotICAgIHByaXYtPnNldHRpbmdzLmF1dG9TaHJp
bmtJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9G
aXQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHBhZ2VTZXR0aW5ncy5s
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5hdXRvU2hyaW5r
SW1hZ2VzID0gcGFnZVNldHRpbmdzLnNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoKTsKICAg
ICBwcml2LT5zZXR0aW5ncy5lbmFibGVBdXRvUmVzaXplV2luZG93ID0gdHJ1ZTsKLSAgICBwcml2
LT5zZXR0aW5ncy5lbmFibGVEZXZlbG9wZXJFeHRyYXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVTY3JpcHRz
ID0gcHJpdi0+cGFnZVNldHRpbmdzLT5pc1NjcmlwdEVuYWJsZWQoKTsKLSAgICBwcml2LT5zZXR0
aW5ncy5lbmFibGVQbHVnaW5zID0gcHJpdi0+cGFnZVNldHRpbmdzLT5hcmVQbHVnaW5zRW5hYmxl
ZCgpOwotICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZUZyYW1lRmxhdHRlbmluZyA9IHByaXYtPnBh
Z2VTZXR0aW5ncy0+ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpOworICAgIHByaXYtPnNldHRpbmdz
LmVuYWJsZURldmVsb3BlckV4dHJhcyA9IHBhZ2VTZXR0aW5ncy5kZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKCk7CisgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlU2NyaXB0cyA9IHBhZ2VTZXR0aW5ncy5p
c1NjcmlwdEVuYWJsZWQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVQbHVnaW5zID0gcGFn
ZVNldHRpbmdzLmFyZVBsdWdpbnNFbmFibGVkKCk7CisgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxl
RnJhbWVGbGF0dGVuaW5nID0gcGFnZVNldHRpbmdzLmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKTsK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlRnVs
bHNjcmVlbiA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKKyAgICBw
cml2LT5zZXR0aW5ncy5lbmFibGVGdWxsc2NyZWVuID0gcGFnZVNldHRpbmdzLmZ1bGxTY3JlZW5F
bmFibGVkKCk7CiAjZW5kaWYKLSAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVYU1NBdWRpdG9yID0g
cHJpdi0+cGFnZVNldHRpbmdzLT54c3NBdWRpdG9yRW5hYmxlZCgpOwotICAgIHByaXYtPnNldHRp
bmdzLmh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+aHlwZXJs
aW5rQXVkaXRpbmdFbmFibGVkKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3Muc2NyaXB0c0Nhbk9wZW5X
aW5kb3dzID0gcHJpdi0+cGFnZVNldHRpbmdzLT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KCk7Ci0gICAgcHJpdi0+c2V0dGluZ3Muc2NyaXB0c0NhbkNsb3NlV2luZG93cyA9
IHByaXYtPnBhZ2VTZXR0aW5ncy0+YWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoKTsKKyAgICBw
cml2LT5zZXR0aW5ncy5lbmFibGVYU1NBdWRpdG9yID0gcGFnZVNldHRpbmdzLnhzc0F1ZGl0b3JF
bmFibGVkKCk7CisgICAgcHJpdi0+c2V0dGluZ3MuaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkID0g
cGFnZVNldHRpbmdzLmh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCgpOworICAgIHByaXYtPnNldHRp
bmdzLnNjcmlwdHNDYW5PcGVuV2luZG93cyA9IHBhZ2VTZXR0aW5ncy5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7CisgICAgcHJpdi0+c2V0dGluZ3Muc2NyaXB0c0NhbkNs
b3NlV2luZG93cyA9IHBhZ2VTZXR0aW5ncy5hbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cygpOwog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBwcml2LT5zZXR0aW5ncy5zaG91bGREaXNwbGF5
Q2FwdGlvbnMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnNob3VsZERpc3BsYXlDYXB0aW9ucygpOwot
ICAgIHByaXYtPnNldHRpbmdzLnNob3VsZERpc3BsYXlTdWJ0aXRsZXMgPSBwcml2LT5wYWdlU2V0
dGluZ3MtPnNob3VsZERpc3BsYXlTdWJ0aXRsZXMoKTsKLSAgICBwcml2LT5zZXR0aW5ncy5zaG91
bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+c2hvdWxkRGlz
cGxheVRleHREZXNjcmlwdGlvbnMoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5zaG91bGREaXNwbGF5
Q2FwdGlvbnMgPSBwYWdlU2V0dGluZ3Muc2hvdWxkRGlzcGxheUNhcHRpb25zKCk7CisgICAgcHJp
di0+c2V0dGluZ3Muc2hvdWxkRGlzcGxheVN1YnRpdGxlcyA9IHBhZ2VTZXR0aW5ncy5zaG91bGRE
aXNwbGF5U3VidGl0bGVzKCk7CisgICAgcHJpdi0+c2V0dGluZ3Muc2hvdWxkRGlzcGxheVRleHRE
ZXNjcmlwdGlvbnMgPSBwYWdlU2V0dGluZ3Muc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMo
KTsKICNlbmRpZgotICAgIHByaXYtPnNldHRpbmdzLnNjcmlwdHNDYW5BY2Nlc3NDbGlwYm9hcmQg
PSBwcml2LT5wYWdlU2V0dGluZ3MtPmphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoKSAmJiBw
cml2LT5wYWdlU2V0dGluZ3MtPkRPTVBhc3RlQWxsb3dlZCgpOwotICAgIHByaXYtPnNldHRpbmdz
LnJlc2l6YWJsZVRleHRhcmVhcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+dGV4dEFyZWFzQXJlUmVz
aXphYmxlKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3MucHJpdmF0ZUJyb3dzaW5nID0gcHJpdi0+cGFn
ZVNldHRpbmdzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3Mu
Y2FyZXRCcm93c2luZyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+Y2FyZXRCcm93c2luZ0VuYWJsZWQo
KTsKLSAgICBwcml2LT5zZXR0aW5ncy5zcGF0aWFsTmF2aWdhdGlvbiA9IHByaXYtPnBhZ2VTZXR0
aW5ncy0+c3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCk7Ci0gICAgcHJpdi0+c2V0dGluZ3MubG9j
YWxTdG9yYWdlID0gcHJpdi0+cGFnZVNldHRpbmdzLT5sb2NhbFN0b3JhZ2VFbmFibGVkKCk7Cisg
ICAgcHJpdi0+c2V0dGluZ3Muc2NyaXB0c0NhbkFjY2Vzc0NsaXBib2FyZCA9IHBhZ2VTZXR0aW5n
cy5qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKCkgJiYgcGFnZVNldHRpbmdzLkRPTVBhc3Rl
QWxsb3dlZCgpOworICAgIHByaXYtPnNldHRpbmdzLnJlc2l6YWJsZVRleHRhcmVhcyA9IHBhZ2VT
ZXR0aW5ncy50ZXh0QXJlYXNBcmVSZXNpemFibGUoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5wcml2
YXRlQnJvd3NpbmcgPSBwYWdlU2V0dGluZ3MucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOworICAg
IHByaXYtPnNldHRpbmdzLmNhcmV0QnJvd3NpbmcgPSBwYWdlU2V0dGluZ3MuY2FyZXRCcm93c2lu
Z0VuYWJsZWQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5zcGF0aWFsTmF2aWdhdGlvbiA9IHBhZ2VT
ZXR0aW5ncy5zcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5s
b2NhbFN0b3JhZ2UgPSBwYWdlU2V0dGluZ3MubG9jYWxTdG9yYWdlRW5hYmxlZCgpOwogICAgIHBy
aXYtPnNldHRpbmdzLm9mZmxpbmVBcHBDYWNoZSA9IHRydWU7IC8vIFhYWCBubyBmdW5jdGlvbiB0
byByZWFkIHNldHRpbmc7IHRoaXMga2VlcHMgdGhlIG9yaWdpbmFsIHNldHRpbmcKLSAgICBwcml2
LT5zZXR0aW5ncy5wYWdlQ2FjaGUgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnVzZXNQYWdlQ2FjaGUo
KTsKLSAgICBwcml2LT5zZXR0aW5ncy5lbmNvZGluZ0RldGVjdG9yID0gcHJpdi0+cGFnZVNldHRp
bmdzLT51c2VzRW5jb2RpbmdEZXRlY3RvcigpOwotICAgIHByaXYtPnNldHRpbmdzLndlYkdMRW5h
YmxlZCA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+d2ViR0xFbmFibGVkKCk7CisgICAgcHJpdi0+c2V0
dGluZ3MucGFnZUNhY2hlID0gcGFnZVNldHRpbmdzLnVzZXNQYWdlQ2FjaGUoKTsKKyAgICBwcml2
LT5zZXR0aW5ncy5lbmNvZGluZ0RldGVjdG9yID0gcGFnZVNldHRpbmdzLnVzZXNFbmNvZGluZ0Rl
dGVjdG9yKCk7CisgICAgcHJpdi0+c2V0dGluZ3Mud2ViR0xFbmFibGVkID0gcGFnZVNldHRpbmdz
LndlYkdMRW5hYmxlZCgpOwogICAgIHByaXYtPnNldHRpbmdzLnRhYnNUb0xpbmtzID0gdHJ1ZTsK
IAogICAgIHByaXYtPnNldHRpbmdzLnVzZXJBZ2VudCA9IGV3a19zZXR0aW5nc19kZWZhdWx0X3Vz
ZXJfYWdlbnRfZ2V0KCk7CkBAIC04MzQsMTcgKzgzMCwxMyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKQogICAgIHByaXYtPnNldHRpbmdzLnpvb21SYW5nZS5tYXhTY2FsZSA9IHpvb21NYXhpbXVt
OwogICAgIHByaXYtPnNldHRpbmdzLnpvb21SYW5nZS51c2VyU2NhbGFibGUgPSB0cnVlOwogCi0g
ICAgcHJpdi0+c2V0dGluZ3MuZG9tVGltZXJJbnRlcnZhbCA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+
ZGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWwoKTsKKyAgICBwcml2LT5zZXR0aW5ncy5kb21UaW1l
ckludGVydmFsID0gcGFnZVNldHRpbmdzLmRlZmF1bHRNaW5ET01UaW1lckludGVydmFsKCk7CiAK
LSAgICBwcml2LT5zZXR0aW5ncy5hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IHBy
aXYtPnBhZ2VTZXR0aW5ncy0+YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKLSAg
ICBwcml2LT5zZXR0aW5ncy5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgPSBwcml2LT5wYWdl
U2V0dGluZ3MtPmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcygpOwotCi0gICAgcHJpdi0+bWFp
bkZyYW1lID0gJnByaXYtPnBhZ2UtPm1haW5GcmFtZSgpOworICAgIHByaXYtPnNldHRpbmdzLmFs
bG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzID0gcGFnZVNldHRpbmdzLmFsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzKCk7CisgICAgcHJpdi0+c2V0dGluZ3MuYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzID0gcGFnZVNldHRpbmdzLmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cygpOwogCiAgICAgcHJpdi0+aGlzdG9yeSA9IGV3a19oaXN0b3J5X25ldyhzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QqPihwcml2LT5wYWdlLT5iYWNrRm9yd2FyZENsaWVudCgp
KSk7CiAKLSAgICBwcml2LT5zdG9yYWdlU2Vzc2lvbiA9ICZXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwotCiAgICAgcHJpdi0+cGFnZUNsaWVu
dCA9IGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZikpOwogCiAjaWZk
ZWYgSEFWRV9FQ09SRV9YCkBAIC05NjMsMTQgKzk1NSwxNCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKCFld2tfZnJhbWVfaW5pdChzbWFydERhdGEtPm1haW5fZnJhbWUsIGV3a1Zp
ZXcsIGFkb3B0UHRyKHN0YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsKj4o
JnByaXYtPm1haW5GcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpKSkpIHsKKyAgICBpZiAoIWV3a19m
cmFtZV9pbml0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgZXdrVmlldywgYWRvcHRQdHIoc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmwqPigmcHJpdi0+cGFnZS0+bWFpbkZy
YW1lKCkubG9hZGVyKCkuY2xpZW50KCkpKSkpIHsKICAgICAgICAgRVJSKCJDb3VsZCBub3QgaW5p
dGlhbGl6ZSBtYWluIGZybWUgb2JqZWN0LiIpOwogICAgICAgICBldmFzX29iamVjdF9kZWwoc21h
cnREYXRhLT5tYWluX2ZyYW1lKTsKICAgICAgICAgc21hcnREYXRhLT5tYWluX2ZyYW1lID0gMDsK
IAogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEVXS1ByaXZhdGU6OnNldENvcmVGcmFtZShz
bWFydERhdGEtPm1haW5fZnJhbWUsIHByaXYtPm1haW5GcmFtZSk7CisgICAgRVdLUHJpdmF0ZTo6
c2V0Q29yZUZyYW1lKHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgJnByaXYtPnBhZ2UtPm1haW5GcmFt
ZSgpKTsKICAgICBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS50cmVlKCkuc2V0TmFtZShTdHJpbmco
KSk7CiAgICAgcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCkuaW5pdCgpOwogCkBAIC0xMTU2LDYgKzEx
NDgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfc2Nyb2xsc19wcm9jZXNzKEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdf
c21hcnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7
CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKwogICAgIGlmIChzbWFy
dERhdGEtPmFuaW1hdGVkX3pvb20uem9vbS5jdXJyZW50IDwgc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46OmVwc2lsb24oKSkgewogICAgICAgICBFdmFzX09iamVjdCogY2xpcCA9IGV2YXNfb2Jq
ZWN0X2NsaXBfZ2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSk7CiAKQEAgLTExODYsMTAgKzEx
ODAsMTAgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcmVwYWludHNfcHJvY2Vz
cyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHNtYXJ0RGF0
YS0+X3ByaXYpOworICAgIGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHByaXYp
OwogCiAgICAgc2l6ZV90IGNvdW50OwotICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJl
cXVlc3QgPSBld2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJpdiwgJmNvdW50KTsK
KyAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0ID0gZXdrX3ZpZXdfcmVwYWlu
dHNfcG9wKHByaXYsICZjb3VudCk7CiAgICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVx
dWVzdEVuZCA9IHBhaW50UmVxdWVzdCArIGNvdW50OwogICAgIGZvciAoOyBwYWludFJlcXVlc3Qg
PCBwYWludFJlcXVlc3RFbmQ7IHBhaW50UmVxdWVzdCsrKQogICAgICAgICBlaW5hX3RpbGVyX3Jl
Y3RfYWRkKHRpbGVyLCBwYWludFJlcXVlc3QpOwpAQCAtMTIwMiw5ICsxMTk2LDggQEAgc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEKICAgICB9CiAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
LSAgICBXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKHNt
YXJ0RGF0YS0+bWFpbl9mcmFtZSk7Ci0gICAgaWYgKG1haW5GcmFtZSAmJiBtYWluRnJhbWUtPnRp
bGVkQmFja2luZ1N0b3JlKCkpCi0gICAgICAgIG1haW5GcmFtZS0+dGlsZWRCYWNraW5nU3RvcmUo
KS0+Y292ZXJXaXRoVGlsZXNJZk5lZWRlZCgpOworICAgIGlmIChwcml2LT5wYWdlLT5tYWluRnJh
bWUoKS50aWxlZEJhY2tpbmdTdG9yZSgpKQorICAgICAgICBwcml2LT5wYWdlLT5tYWluRnJhbWUo
KS50aWxlZEJhY2tpbmdTdG9yZSgpLT5jb3ZlcldpdGhUaWxlc0lmTmVlZGVkKCk7CiAjZW5kaWYK
IAogICAgIEV3a19QYWludF9Db250ZXh0KiBjb250ZXh0ID0gZXdrX3BhaW50X2NvbnRleHRfZnJv
bV9pbWFnZV9uZXcoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlKTsKQEAgLTEyNDQsNyArMTIzNyw3
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3
a1ZpZXcpCiAKICAgICBzbWFydERhdGEtPmNoYW5nZWQuYW55ID0gZmFsc2U7CiAKLSAgICBpZiAo
IXNtYXJ0RGF0YS0+bWFpbl9mcmFtZSB8fCAhcHJpdi0+bWFpbkZyYW1lKQorICAgIGlmICghc21h
cnREYXRhLT5tYWluX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBldmFzX29iamVjdF9n
ZW9tZXRyeV9nZXQoZXdrVmlldywgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwpAQCAtMTI1Myw3
ICsxMjQ2LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZShFdmFzX09i
amVjdCogZXdrVmlldykKICAgICAgICAgZXdrVmlldywgeCwgeSwgd2lkdGgsIGhlaWdodCwgc21h
cnREYXRhLT5jaGFuZ2VkLnNpemUpOwogCiAgICAgaWYgKHNtYXJ0RGF0YS0+Y2hhbmdlZC5zaXpl
ICYmICgod2lkdGggIT0gc21hcnREYXRhLT52aWV3LncpIHx8IChoZWlnaHQgIT0gc21hcnREYXRh
LT52aWV3LmgpKSkgewotICAgICAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5t
YWluRnJhbWUtPnZpZXcoKTsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gcHJp
di0+cGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgICAgICBpZiAodmlldykgewogICAgICAg
ICAgICAgdmlldy0+cmVzaXplKHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgdmlldy0+Zm9y
Y2VMYXlvdXQoKTsKQEAgLTEyODksOCArMTI4Miw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19z
bWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgICAgIEVSUigiZmFpbGVk
IHRvIHByb2Nlc3MgcmVwYWludHMuIik7CiAKICAgICBpZiAoc21hcnREYXRhLT5jaGFuZ2VkLmZy
YW1lX3JlY3QpIHsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gcHJpdi0+bWFp
bkZyYW1lLT52aWV3KCk7Ci0gICAgICAgIHZpZXctPmZyYW1lUmVjdHNDaGFuZ2VkKCk7IC8qIGZv
cmNlIHRyZWUgdG8gZ2V0IHBvc2l0aW9uIGZyb20gcm9vdCAqLworICAgICAgICBwcml2LT5wYWdl
LT5tYWluRnJhbWUoKS52aWV3KCktPmZyYW1lUmVjdHNDaGFuZ2VkKCk7CiAgICAgICAgIHNtYXJ0
RGF0YS0+Y2hhbmdlZC5mcmFtZV9yZWN0ID0gZmFsc2U7CiAgICAgfQogfQpAQCAtMTYxMiw3ICsx
NjA0LDcgQEAgdm9pZCBld2tfdmlld19maXhlZF9sYXlvdXRfc2l6ZV9zZXQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXMKICAgICBFV0tfVklFV19TRF9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdik7CiAKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBw
cml2LT5tYWluRnJhbWUtPnZpZXcoKTsKKyAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBw
cml2LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTE2NDAsNyArMTYzMiw3IEBAIHZvaWQgZXdrX3ZpZXdfZml4ZWRfbGF5b3V0
X3NpemVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkKiB3aWR0CiAg
ICAgICAgICpoZWlnaHQgPSAwOwogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgc21hcnREYXRhKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2KTsKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5tYWluRnJhbWUt
PnZpZXcoKTsKKyAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5wYWdlLT5tYWlu
RnJhbWUoKS52aWV3KCk7CiAgICAgaWYgKHZpZXctPnVzZUZpeGVkTGF5b3V0KCkpIHsKICAgICAg
ICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplID0gdmlldy0+Zml4ZWRMYXlvdXRTaXplKCk7CiAgICAg
ICAgIGlmICh3aWR0aCkKQEAgLTE3NDUsNyArMTczNyw3IEBAIHZvaWQgZXdrX3ZpZXdfYmdfY29s
b3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBpbnQgcmVkLCBpbnQgZ3JlZW4sIGludCBibHVl
LCBpCiAKICAgICBldmFzX29iamVjdF9pbWFnZV9hbHBoYV9zZXQoc21hcnREYXRhLT5iYWNraW5n
X3N0b3JlLCBhbHBoYSA8IDI1NSk7CiAKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBz
bWFydERhdGEtPl9wcml2LT5tYWluRnJhbWUtPnZpZXcoKTsKKyAgICBXZWJDb3JlOjpGcmFtZVZp
ZXcqIHZpZXcgPSBzbWFydERhdGEtPl9wcml2LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CiAg
ICAgaWYgKHZpZXcpIHsKICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3I7CiAKQEAgLTIzMTUs
NyArMjMwNyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3VzZXJfYWdlbnRfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB1c2VyCiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKGVpbmFfc3Ry
aW5nc2hhcmVfcmVwbGFjZSgmcHJpdi0+c2V0dGluZ3MudXNlckFnZW50LCB1c2VyQWdlbnQpKSB7
Ci0gICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsJiBjbGllbnQgPSBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCY+KHByaXYtPm1haW5GcmFtZS0+bG9h
ZGVyKCkuY2xpZW50KCkpOworICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCYg
Y2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmwmPihwcml2
LT5wYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKSk7CiAgICAgICAgIGNsaWVudC5z
ZXRDdXN0b21Vc2VyQWdlbnQoU3RyaW5nOjpmcm9tVVRGOCh1c2VyQWdlbnQpKTsKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0yMzM0LDcgKzIzMjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ191c2VyX3N0eWxlc2hlZXRfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBj
aGFyKgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKTsKICAgICBpZiAoZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5ncy51
c2VyU3R5bGVzaGVldCwgdXJpKSkgewogICAgICAgICBXZWJDb3JlOjpVUkwga3VybChXZWJDb3Jl
OjpVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKTsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRp
bmdzLT5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGt1cmwpOworICAgICAgICBwcml2LT5wYWdl
LT5zZXR0aW5ncygpLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oa3VybCk7CiAgICAgfQogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtMjM1Miw3ICsyMzQ0LDcgQEAgRWluYV9Cb29sIGV3a192aWV3
X3NldHRpbmdfYXV0b19sb2FkX2ltYWdlc19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFf
Qm9vbAogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKTsKICAgICBhdXRvbWF0aWMgPSAhIWF1dG9tYXRpYzsKICAgICBpZiAocHJpdi0+c2V0dGlu
Z3MuYXV0b0xvYWRJbWFnZXMgIT0gYXV0b21hdGljKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0
aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGF1dG9tYXRpYyk7CisgICAgICAgIHBy
aXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGF1dG9tYXRp
Yyk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmF1dG9Mb2FkSW1hZ2VzID0gYXV0b21hdGljOwog
ICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIzNzEsNyArMjM2Myw3IEBAIEVpbmFfQm9vbCBl
d2tfdmlld19zZXR0aW5nX2F1dG9fc2hyaW5rX2ltYWdlc19zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEVpbmFfQm9vCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwg
cHJpdiwgZmFsc2UpOwogICAgIGF1dG9tYXRpYyA9ICEhYXV0b21hdGljOwogICAgIGlmIChwcml2
LT5zZXR0aW5ncy5hdXRvU2hyaW5rSW1hZ2VzICE9IGF1dG9tYXRpYykgewotICAgICAgICBwcml2
LT5wYWdlU2V0dGluZ3MtPnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoYXV0b21hdGlj
KTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRTaHJpbmtzU3RhbmRhbG9uZUlt
YWdlc1RvRml0KGF1dG9tYXRpYyk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmF1dG9TaHJpbmtJ
bWFnZXMgPSBhdXRvbWF0aWM7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjQwNSw3ICsy
Mzk3LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX3NjcmlwdHNfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZW4KICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7
CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLmVuYWJsZVNjcmlwdHMgIT0gZW5hYmxlKSB7Ci0gICAg
ICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChlbmFibGUpOworICAgICAg
ICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFNjcmlwdEVuYWJsZWQoZW5hYmxlKTsKICAgICAg
ICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlU2NyaXB0cyA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0
dXJuIHRydWU7CkBAIC0yNDI0LDcgKzI0MTYsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGlu
Z19lbmFibGVfcGx1Z2luc19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbgog
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsK
ICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuZW5hYmxlUGx1
Z2lucyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRQbHVnaW5z
RW5hYmxlZChlbmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdp
bnNFbmFibGVkKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZVBsdWdpbnMg
PSBlbmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjQ0Myw3ICsyNDM1LDcgQEAg
RWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmdfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFaW4KICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYg
KHByaXYtPnNldHRpbmdzLmVuYWJsZUZyYW1lRmxhdHRlbmluZyAhPSBlbmFibGUpIHsKLSAgICAg
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZSk7
CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZChlbmFibGUpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVGcmFtZUZsYXR0ZW5pbmcg
PSBlbmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjQ2Miw3ICsyNDU0LDcgQEAg
RWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChF
dmFzX09iamVjdCogZXdrVmlldywgRWkKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgYWxsb3cgPSAhIWFsbG93OwogICAgIGlmIChw
cml2LT5zZXR0aW5ncy5zY3JpcHRzQ2FuT3BlbldpbmRvd3MgIT0gYWxsb3cpIHsKLSAgICAgICAg
cHJpdi0+cGFnZVNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5KGFsbG93KTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGFsbG93KTsKICAgICAgICAgcHJpdi0+c2V0dGlu
Z3Muc2NyaXB0c0Nhbk9wZW5XaW5kb3dzID0gYWxsb3c7CiAgICAgfQogICAgIHJldHVybiB0cnVl
OwpAQCAtMjQ4MSw3ICsyNDczLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfc2NyaXB0
c19jYW5fY2xvc2Vfd2luZG93c19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEUKICAgICBFV0tf
VklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgYWxs
b3cgPSAhIWFsbG93OwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5zY3JpcHRzQ2FuQ2xvc2VXaW5k
b3dzICE9IGFsbG93KSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0QWxsb3dTY3Jp
cHRzVG9DbG9zZVdpbmRvd3MoYWxsb3cpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygp
LnNldEFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKGFsbG93KTsKICAgICAgICAgcHJpdi0+c2V0
dGluZ3Muc2NyaXB0c0NhbkNsb3NlV2luZG93cyA9IGFsbG93OwogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTI1MDAsOCArMjQ5Miw4IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3Nj
cmlwdHNfY2FuX2FjY2Vzc19jbGlwYm9hcmRfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3CiAgICAg
RVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAg
IGFsbG93ID0gISFhbGxvdzsKICAgICBpZiAocHJpdi0+c2V0dGluZ3Muc2NyaXB0c0NhbkFjY2Vz
c0NsaXBib2FyZCAhPSBhbGxvdykgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYWxsb3cpOwotICAgICAgICBwcml2LT5wYWdlU2V0
dGluZ3MtPnNldERPTVBhc3RlQWxsb3dlZChhbGxvdyk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNl
dHRpbmdzKCkuc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChhbGxvdyk7CisgICAgICAg
IHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0RE9NUGFzdGVBbGxvd2VkKGFsbG93KTsKICAgICAg
ICAgcHJpdi0+c2V0dGluZ3Muc2NyaXB0c0NhbkFjY2Vzc0NsaXBib2FyZCA9IGFsbG93OwogICAg
IH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1MjAsNyArMjUxMiw3IEBAIEVpbmFfQm9vbCBld2tf
dmlld19zZXR0aW5nX3Jlc2l6YWJsZV90ZXh0YXJlYXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFaW5hX0JvCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5n
cy5yZXNpemFibGVUZXh0YXJlYXMgIT0gZW5hYmxlKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0
aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBh
Z2UtPnNldHRpbmdzKCkuc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGVuYWJsZSk7CiAgICAgICAg
IHByaXYtPnNldHRpbmdzLnJlc2l6YWJsZVRleHRhcmVhcyA9IGVuYWJsZTsKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CkBAIC0yNTM5LDcgKzI1MzEsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0
dGluZ19wcml2YXRlX2Jyb3dzaW5nX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29s
CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2Up
OwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5wcml2YXRl
QnJvd3NpbmcgIT0gZW5hYmxlKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5n
cygpLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoZW5hYmxlKTsKICAgICAgICAgcHJpdi0+c2V0
dGluZ3MucHJpdmF0ZUJyb3dzaW5nID0gZW5hYmxlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTI1NTgsNyArMjU1MCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2FwcGxpY2F0
aW9uX2NhY2hlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sCiAgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIGVuYWJs
ZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5vZmZsaW5lQXBwQ2FjaGUgIT0g
ZW5hYmxlKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdz
KCkuc2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGVuYWJsZSk7CiAgICAgICAg
IHByaXYtPnNldHRpbmdzLm9mZmxpbmVBcHBDYWNoZSA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0
dXJuIHRydWU7CkBAIC0yNTc3LDcgKzI1NjksNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGlu
Z19jYXJldF9icm93c2luZ19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbgog
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsK
ICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuY2FyZXRCcm93
c2luZyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRDYXJldEJy
b3dzaW5nRW5hYmxlZChlbmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNl
dENhcmV0QnJvd3NpbmdFbmFibGVkKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLmNh
cmV0QnJvd3NpbmcgPSBlbmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjYyMyw3
ICsyNjE1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfZGVmYXVsdF9z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIKICAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBpZiAoZWluYV9zdHJp
bmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5ncy5lbmNvZGluZ0RlZmF1bHQsIGVuY29kaW5n
KSkKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFt
ZShTdHJpbmc6OmZyb21VVEY4KGVuY29kaW5nKSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRp
bmdzKCkuc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoU3RyaW5nOjpmcm9tVVRGOChlbmNvZGlu
ZykpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yNjMzLDcgKzI2MjUsNyBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19kZXRlY3Rvcl9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEVpbmFfQm9vbAogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+
c2V0dGluZ3MuZW5jb2RpbmdEZXRlY3RvciAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFn
ZVNldHRpbmdzLT5zZXRVc2VzRW5jb2RpbmdEZXRlY3RvcihlbmFibGUpOworICAgICAgICBwcml2
LT5wYWdlLT5zZXR0aW5ncygpLnNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGVuYWJsZSk7CiAgICAg
ICAgIHByaXYtPnNldHRpbmdzLmVuY29kaW5nRGV0ZWN0b3IgPSBlbmFibGU7CiAgICAgfQogICAg
IHJldHVybiB0cnVlOwpAQCAtMjY1OSw3ICsyNjUxLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3Nl
dHRpbmdfZW5hYmxlX2RldmVsb3Blcl9leHRyYXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
aW4KICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxz
ZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLmVuYWJs
ZURldmVsb3BlckV4dHJhcyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2Ut
PnNldHRpbmdzKCkuc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOwogICAgICAgICBw
cml2LT5zZXR0aW5ncy5lbmFibGVEZXZlbG9wZXJFeHRyYXMgPSBlbmFibGU7CiAgICAgfQogICAg
IHJldHVybiB0cnVlOwpAQCAtMjY3Nyw3ICsyNjY5LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3Nl
dHRpbmdfZm9udF9taW5pbXVtX3NpemVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBpbnQgc2l6
ZSkKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFs
c2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuZm9udE1pbmltdW1TaXplICE9IHNpemUpIHsK
LSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRNaW5pbXVtRm9udFNpemUoc2l6ZSk7Cisg
ICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0TWluaW11bUZvbnRTaXplKHNpemUpOwog
ICAgICAgICBwcml2LT5zZXR0aW5ncy5mb250TWluaW11bVNpemUgPSBzaXplOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTI2OTUsNyArMjY4Nyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19z
ZXR0aW5nX2ZvbnRfbWluaW11bV9sb2dpY2FsX3NpemVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZh
bHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBm
YWxzZSk7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLmZvbnRNaW5pbXVtTG9naWNhbFNpemUgIT0g
c2l6ZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldE1pbmltdW1Mb2dpY2FsRm9u
dFNpemUoc2l6ZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0TWluaW11bUxv
Z2ljYWxGb250U2l6ZShzaXplKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3MuZm9udE1pbmltdW1M
b2dpY2FsU2l6ZSA9IHNpemU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjcxMyw3ICsy
NzA1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZm9udF9kZWZhdWx0X3NpemVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBpbnQgc2l6ZSkKICAgICBFV0tfVklFV19TRF9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBpZiAocHJpdi0+c2V0dGlu
Z3MuZm9udERlZmF1bHRTaXplICE9IHNpemUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXREZWZhdWx0Rm9udFNpemUoc2l6ZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdz
KCkuc2V0RGVmYXVsdEZvbnRTaXplKHNpemUpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy5mb250
RGVmYXVsdFNpemUgPSBzaXplOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI3MzEsNyAr
MjcyMyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2ZvbnRfbW9ub3NwYWNlX3NpemVf
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBpbnQgc2l6CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dF
VF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKHByaXYtPnNldHRp
bmdzLmZvbnRNb25vc3BhY2VTaXplICE9IHNpemUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRp
bmdzLT5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZShzaXplKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+
c2V0dGluZ3MoKS5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZShzaXplKTsKICAgICAgICAgcHJpdi0+
c2V0dGluZ3MuZm9udE1vbm9zcGFjZVNpemUgPSBzaXplOwogICAgIH0KICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTI3NjcsMjcgKzI3NTksMjcgQEAgRWluYV9Cb29sIGV3a192aWV3X2ZvbnRfZmFtaWx5
X25hbWVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfRm9udF9GYW1pbHkgZm8KICAgICBz
d2l0Y2ggKGZvbnRGYW1pbHkpIHsKICAgICBjYXNlIEVXS19GT05UX0ZBTUlMWV9TVEFOREFSRDoK
ICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5ncy5mb250U3Rh
bmRhcmQsIG5hbWUpOwotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFN0YW5kYXJkRm9u
dEZhbWlseShBdG9taWNTdHJpbmc6OmZyb21VVEY4KG5hbWUpKTsKKyAgICAgICAgcHJpdi0+cGFn
ZS0+c2V0dGluZ3MoKS5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpmcm9tVVRG
OChuYW1lKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRVdLX0ZPTlRfRkFNSUxZX0NVUlNJ
VkU6CiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmcHJpdi0+c2V0dGluZ3MuZm9u
dEN1cnNpdmUsIG5hbWUpOwotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEN1cnNpdmVG
b250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZSkpOworICAgICAgICBwcml2LT5w
YWdlLT5zZXR0aW5ncygpLnNldEN1cnNpdmVGb250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVU
RjgobmFtZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVXS19GT05UX0ZBTUlMWV9GQU5U
QVNZOgogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdzLmZv
bnRGYW50YXN5LCBuYW1lKTsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRGYW50YXN5
Rm9udEZhbWlseShBdG9taWNTdHJpbmc6OmZyb21VVEY4KG5hbWUpKTsKKyAgICAgICAgcHJpdi0+
cGFnZS0+c2V0dGluZ3MoKS5zZXRGYW50YXN5Rm9udEZhbWlseShBdG9taWNTdHJpbmc6OmZyb21V
VEY4KG5hbWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFV0tfRk9OVF9GQU1JTFlfTU9O
T1NQQUNFOgogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdz
LmZvbnRNb25vc3BhY2UsIG5hbWUpOwotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEZp
eGVkRm9udEZhbWlseShBdG9taWNTdHJpbmc6OmZyb21VVEY4KG5hbWUpKTsKKyAgICAgICAgcHJp
di0+cGFnZS0+c2V0dGluZ3MoKS5zZXRGaXhlZEZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpmcm9t
VVRGOChuYW1lKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRVdLX0ZPTlRfRkFNSUxZX1NF
UklGOgogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJnByaXYtPnNldHRpbmdzLmZv
bnRTZXJpZiwgbmFtZSk7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2VyaWZGb250
RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZSkpOworICAgICAgICBwcml2LT5wYWdl
LT5zZXR0aW5ncygpLnNldFNlcmlmRm9udEZhbWlseShBdG9taWNTdHJpbmc6OmZyb21VVEY4KG5h
bWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFV0tfRk9OVF9GQU1JTFlfU0FOU19TRVJJ
RjoKICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5ncy5mb250
U2Fuc1NlcmlmLCBuYW1lKTsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRTYW5zU2Vy
aWZGb250RmFtaWx5KEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZSkpOworICAgICAgICBwcml2
LT5wYWdlLT5zZXR0aW5ncygpLnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoQXRvbWljU3RyaW5nOjpm
cm9tVVRGOChuYW1lKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTI4MDksNyArMjgwMSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0
aW5nX3NwYXRpYWxfbmF2aWdhdGlvbl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9v
CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2Up
OwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5zcGF0aWFs
TmF2aWdhdGlvbiAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0
dGluZ3MoKS5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZW5hYmxlKTsKICAgICAgICAgcHJp
di0+c2V0dGluZ3Muc3BhdGlhbE5hdmlnYXRpb24gPSBlbmFibGU7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwpAQCAtMjgyOCw3ICsyODIwLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdf
bG9jYWxfc3RvcmFnZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmEKICAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAg
ICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLmxvY2FsU3RvcmFn
ZSAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRMb2NhbFN0b3Jh
Z2VFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0TG9j
YWxTdG9yYWdlRW5hYmxlZChlbmFibGUpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy5sb2NhbFN0
b3JhZ2UgPSBlbmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMjg0Nyw3ICsyODM5
LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfcGFnZV9jYWNoZV9zZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmFibGUKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9S
RVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAg
ICAgaWYgKHByaXYtPnNldHRpbmdzLnBhZ2VDYWNoZSAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJp
di0+cGFnZVNldHRpbmdzLT5zZXRVc2VzUGFnZUNhY2hlKGVuYWJsZSk7CisgICAgICAgIHByaXYt
PnBhZ2UtPnNldHRpbmdzKCkuc2V0VXNlc1BhZ2VDYWNoZShlbmFibGUpOwogICAgICAgICBwcml2
LT5zZXR0aW5ncy5wYWdlQ2FjaGUgPSBlbmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpA
QCAtMjg2NSw3ICsyODU3LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfbG9jYWxfc3Rv
cmFnZV9kYXRhYmFzZV9wYXRoX3NldChFdmFzX09iamVjdCogZXdrVmlldywKICAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19W
SUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBpZiAo
ZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZwcml2LT5zZXR0aW5ncy5sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgsIHBhdGgpKQotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldExvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aChTdHJpbmc6OmZyb21VVEY4KHBhdGgpKTsKKyAgICAgICAgcHJpdi0+
cGFnZS0+c2V0dGluZ3MoKS5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoU3RyaW5nOjpmcm9t
VVRGOChwYXRoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI4NzQsNyArMjg2Niw3IEBA
IEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX21pbmltdW1fdGltZXJfaW50ZXJ2YWxfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBkb3ViCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKGZhYnMocHJpdi0+c2V0dGluZ3Mu
ZG9tVGltZXJJbnRlcnZhbCAtIGludGVydmFsKSA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OmVwc2lsb24oKSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldE1pbkRPTVRp
bWVySW50ZXJ2YWwoaW50ZXJ2YWwpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNl
dE1pbkRPTVRpbWVySW50ZXJ2YWwoaW50ZXJ2YWwpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy5k
b21UaW1lckludGVydmFsID0gaW50ZXJ2YWw7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAt
MjkwMCw3ICsyODkyLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX3dlYmds
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWIKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgZW5hYmxlID0g
ISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLndlYkdMRW5hYmxlZCAhPSBlbmFibGUp
IHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRXZWJHTEVuYWJsZWQoZW5hYmxlKTsK
KyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRXZWJHTEVuYWJsZWQoZW5hYmxlKTsK
ICAgICAgICAgcHJpdi0+c2V0dGluZ3Mud2ViR0xFbmFibGVkID0gZW5hYmxlOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTI5MzUsNyArMjkyNyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19z
ZXR0aW5nX2VuYWJsZV9oeXBlcmxpbmtfYXVkaXRpbmdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFs
c2UpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5oeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWQgIT0gZW5hYmxlKSB7Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0
aW5ncy0+c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYt
PnBhZ2UtPnNldHRpbmdzKCkuc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGVuYWJsZSk7CiAg
ICAgICAgIHByaXYtPnNldHRpbmdzLmh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9IGVuYWJsZTsK
ICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTQ3LDcgKzI5MzksNyBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfc2V0dGluZ19hbGxvd191bml2ZXJzYWxfYWNjZXNzX2Zyb21fZmlsZV91cmxzX3Nl
dChFdmFzX09iamVjdAogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0
dGluZ3MuYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgIT0gZW5hYmxlKSB7Ci0gICAg
ICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THMoZW5hYmxlKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOwogICAgICAgICBwcml2LT5zZXR0aW5ncy5h
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IGVuYWJsZTsKICAgICB9CiAgICAgcmV0
dXJuIHRydWU7CkBAIC0yOTY2LDcgKzI5NTgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGlu
Z19hbGxvd19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19zZXQoRXZhc19PYmplY3QqIGV3awog
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsK
ICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAocHJpdi0+c2V0dGluZ3MuYWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGlu
Z3MtPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUpOworICAgICAgICBwcml2
LT5wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGUp
OwogICAgICAgICBwcml2LT5zZXR0aW5ncy5hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgPSBl
bmFibGU7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMzA0Nyw3ICszMDM5LDcgQEAgdm9p
ZCBld2tfdmlld19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShFd2tfVmlld19Qcml2YXRlX0Rh
dGEqIHByaXYpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocHJpdik7CiAKLSAg
ICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5tYWluRnJhbWUtPnZpZXcoKTsKKyAg
ICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3
KCk7CiAgICAgaWYgKCF2aWV3KSB7CiAgICAgICAgIEVSUigibm8gbWFpbiBmcmFtZSB2aWV3Iik7
CiAgICAgICAgIHJldHVybjsKQEAgLTMwNzAsNyArMzA2Miw3IEBAIEVpbmFfQm9vbCBld2tfdmll
d19wYWludChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIGNhaXJvX3QqIGNyLCBjb25zdCBF
aW5hX1JlCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNyLCBmYWxzZSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGFyZWEsIGZhbHNlKTsKIAotICAgIFdl
YkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPm1haW5GcmFtZS0+dmlldygpOworICAgIFdl
YkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodmlldywgZmFsc2UpOwogCiAgICAg
dmlldy0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwpAQCAtMzEyNiw3
ICszMTE4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3BhaW50KEV3a19WaWV3X1ByaXZhdGVfRGF0
YSogcHJpdiwgRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwocHJpdiwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChjb250ZXh0LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKGFyZWEsIGZhbHNlKTsKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5t
YWluRnJhbWUtPnZpZXcoKTsKKyAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5w
YWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHZpZXcsIGZhbHNlKTsKIAogICAgIGV3a19wYWludF9jb250ZXh0X3NhdmUoY29udGV4dCk7
CkBAIC0zMTY5LDcgKzMxNjEsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcGFpbnRfY29udGVudHMo
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2LCBFd2tfUGFpbnRfQ29udGV4dAogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChwcml2LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGNvbnRleHQsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoYXJlYSwgZmFsc2UpOwotICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmll
dyA9IHByaXYtPm1haW5GcmFtZS0+dmlldygpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmll
dyA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwodmlldywgZmFsc2UpOwogCiAgICAgdmlldy0+dXBkYXRlTGF5b3V0QW5k
U3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwpAQCAtNDMxMSwxMCArNDMwMywxMCBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfanNfb2JqZWN0X2FkZChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0pTX09i
amVjdCogb2JqZWN0LCBjbwogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
c21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgV2ViQ29yZTo6SlNET01XaW5kb3cqIHdpbmRvdyA9
IHRvSlNET01XaW5kb3cocHJpdi0+bWFpbkZyYW1lLCBXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFs
V29ybGQoKSk7CisgICAgV2ViQ29yZTo6SlNET01XaW5kb3cqIHdpbmRvdyA9IHRvSlNET01XaW5k
b3coJnByaXYtPnBhZ2UtPm1haW5GcmFtZSgpLCBXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29y
bGQoKSk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh3aW5kb3ctPmdsb2JhbEV4ZWMoKSk7
CiAgICAgSlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdCogcm9vdDsKLSAgICByb290ID0gcHJpdi0+
bWFpbkZyYW1lLT5zY3JpcHQoKS5iaW5kaW5nUm9vdE9iamVjdCgpOworICAgIHJvb3QgPSBwcml2
LT5wYWdlLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5iaW5kaW5nUm9vdE9iamVjdCgpOwogCiAgICAg
aWYgKCF3aW5kb3cpIHsKICAgICAgICAgRVJSKCJXYXJuaW5nOiBjb3VsZG4ndCBnZXQgd2luZG93
IG9iamVjdCIpOwpAQCAtNDM3MCw4ICs0MzYyLDcgQEAgV2ViQ29yZTo6RmxvYXRSZWN0IGV3a192
aWV3X3BhZ2VfcmVjdF9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJ
RVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIFdlYkNvcmU6OkZsb2F0UmVj
dCgtMS4wLCAtMS4wLCAtMS4wLCAtMS4wKSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdiwgV2ViQ29yZTo6RmxvYXRSZWN0KC0xLjAsIC0xLjAsIC0xLjAs
IC0xLjApKTsKIAotICAgIFdlYkNvcmU6OkZyYW1lJiBtYWluX2ZyYW1lID0gcHJpdi0+cGFnZS0+
bWFpbkZyYW1lKCk7Ci0gICAgcmV0dXJuIG1haW5fZnJhbWUudmlldygpLT5mcmFtZVJlY3QoKTsK
KyAgICByZXR1cm4gcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5mcmFtZVJlY3QoKTsK
IH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC00NTQ3LDcgKzQ1MzgsNyBAQCBTb3Vw
U2Vzc2lvbiogZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdr
VmlldykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0
YSwgMCk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwg
MCk7Ci0gICAgcmV0dXJuIHByaXYtPnN0b3JhZ2VTZXNzaW9uLT5zb3VwTmV0d29ya1Nlc3Npb24o
KS5zb3VwU2Vzc2lvbigpOworICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLnNvdXBOZXR3b3JrU2Vzc2lvbigpLnNvdXBTZXNz
aW9uKCk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgU291cFNlc3Npb24qIHNlc3Npb24pCkBAIC00NTU5LDcgKzQ1NTAsNyBAQCB2b2lk
IGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFNvdXBTZXNz
aW9uKiBzZXNzaW9uKQogICAgICAgICAgICAgImEgU291cFNlc3Npb25TeW5jIHdhcyBwcm92aWRl
ZC4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBwcml2LT5zdG9yYWdlU2Vzc2lvbi0+
c2V0U291cE5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlNvdXBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRl
Rm9yU291cFNlc3Npb24oc2Vzc2lvbikpOworICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuc2V0U291cE5ldHdvcmtTZXNzaW9uKFdlYkNv
cmU6OlNvdXBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlRm9yU291cFNlc3Npb24oc2Vzc2lvbikpOwog
fQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfeHNzX2F1ZGl0b3JfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpAQCAtNDU3NSw3ICs0NTY2LDcgQEAgdm9pZCBld2tf
dmlld19zZXR0aW5nX2VuYWJsZV94c3NfYXVkaXRvcl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IEVpbmFfQm9vbCBlbmEKICAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOwog
ICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5lbmFibGVYU1NB
dWRpdG9yICE9IGVuYWJsZSkgewotICAgICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldFhTU0F1
ZGl0b3JFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIHByaXYtPnBhZ2UtPnNldHRpbmdzKCkuc2V0
WFNTQXVkaXRvckVuYWJsZWQoZW5hYmxlKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxl
WFNTQXVkaXRvciA9IGVuYWJsZTsKICAgICB9CiB9CkBAIC00NjExLDcgKzQ2MDIsNyBAQCB2b2lk
IGV3a192aWV3X3NldHRpbmdfc2hvdWxkX2Rpc3BsYXlfY2FwdGlvbnNfc2V0KEV2YXNfT2JqZWN0
ICpld2tWaWV3LCBFaW5hX0JvbwogICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJp
dik7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAgICAgaWYgKHByaXYtPnNldHRpbmdzLnNob3Vs
ZERpc3BsYXlDYXB0aW9ucyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoZW5hYmxlKTsKKyAgICAgICAgcHJpdi0+cGFnZS0+
c2V0dGluZ3MoKS5zZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoZW5hYmxlKTsKICAgICAgICAgcHJp
di0+c2V0dGluZ3Muc2hvdWxkRGlzcGxheUNhcHRpb25zID0gZW5hYmxlOwogICAgIH0KICNlbHNl
CkBAIC00NjI3LDcgKzQ2MTgsNyBAQCB2b2lkIGV3a192aWV3X3NldHRpbmdfc2hvdWxkX2Rpc3Bs
YXlfc3VidGl0bGVzX3NldChFdmFzX09iamVjdCAqZXdrVmlldywgRWluYV9CbwogICAgIEVXS19W
SUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJpdik7CiAgICAgZW5hYmxlID0gISFlbmFibGU7CiAg
ICAgaWYgKHByaXYtPnNldHRpbmdzLnNob3VsZERpc3BsYXlTdWJ0aXRsZXMgIT0gZW5hYmxlKSB7
Ci0gICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhl
bmFibGUpOworICAgICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFNob3VsZERpc3BsYXlT
dWJ0aXRsZXMoZW5hYmxlKTsKICAgICAgICAgcHJpdi0+c2V0dGluZ3Muc2hvdWxkRGlzcGxheVN1
YnRpdGxlcyA9IGVuYWJsZTsKICAgICB9CiAjZWxzZQpAQCAtNDY1NSw3ICs0NjQ2LDcgQEAgdm9p
ZCBld2tfdmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3NldChF
dmFzX09iamVjdCAqZXdrVmlldywKICAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHBy
aXYpOwogICAgIGVuYWJsZSA9ICEhZW5hYmxlOwogICAgIGlmIChwcml2LT5zZXR0aW5ncy5zaG91
bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJpdi0+cGFn
ZVNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyhlbmFibGUpOworICAg
ICAgICBwcml2LT5wYWdlLT5zZXR0aW5ncygpLnNldFNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRp
b25zKGVuYWJsZSk7CiAgICAgICAgIHByaXYtPnNldHRpbmdzLnNob3VsZERpc3BsYXlUZXh0RGVz
Y3JpcHRpb25zID0gZW5hYmxlOwogICAgIH0KICNlbHNlCkBAIC00ODc0LDcgKzQ4NjUsNyBAQCBF
aW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbl9zZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIEVpbmFfQm9vbAogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihz
bWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBlbmFibGUgPSAhIWVuYWJsZTsKICAgICBpZiAo
cHJpdi0+c2V0dGluZ3MuZW5hYmxlRnVsbHNjcmVlbiAhPSBlbmFibGUpIHsKLSAgICAgICAgcHJp
di0+cGFnZVNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbmFibGUpOworICAgICAgICBw
cml2LT5wYWdlLT5zZXR0aW5ncygpLnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJsZSk7CiAgICAg
ICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZUZ1bGxzY3JlZW4gPSBlbmFibGU7CiAgICAgfQogICAg
IHJldHVybiB0cnVlOwpAQCAtNDkzNCw3ICs0OTI1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3Nl
dHRpbmdfdGlsZWRfYmFja2luZ19zdG9yZV9lbmFibGVkX3NldChFdmFzX09iamVjdCogZXdrVmll
dywKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFs
c2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKTsKIAotICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0VGlsZWRCYWNraW5nU3RvcmVFbmFi
bGVkKGVuYWJsZSk7CisgICAgcHJpdi0+cGFnZS0+c2V0dGluZ3MoKS5zZXRUaWxlZEJhY2tpbmdT
dG9yZUVuYWJsZWQoZW5hYmxlKTsKIAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKQEAgLTQ5NTAs
NyArNDk0MSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfZW5hYmxlZF9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICByZXR1cm4gcHJp
di0+cGFnZVNldHRpbmdzLT50aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoKTsKKyAgICByZXR1cm4g
cHJpdi0+cGFnZS0+c2V0dGluZ3MoKS50aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQoKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ5NzIs
OCArNDk2Myw4IEBAIHZvaWQgZXdrX3ZpZXdfdGlsZWRfYmFja2luZ19zdG9yZV9pbnZhbGlkYXRl
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlCiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYpOwogCi0gICAgaWYgKHByaXYtPm1haW5GcmFtZS0+dGls
ZWRCYWNraW5nU3RvcmUoKSkKLSAgICAgICAgcHJpdi0+bWFpbkZyYW1lLT50aWxlZEJhY2tpbmdT
dG9yZSgpLT5pbnZhbGlkYXRlKGFyZWEpOworICAgIGlmIChwcml2LT5wYWdlLT5tYWluRnJhbWUo
KS50aWxlZEJhY2tpbmdTdG9yZSgpKQorICAgICAgICBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS50
aWxlZEJhY2tpbmdTdG9yZSgpLT5pbnZhbGlkYXRlKGFyZWEpOwogfQogI2VuZGlmCiAKQEAgLTQ5
OTcsNyArNDk4OCw3IEBAIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNl
c3Npb24oY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwotICAgIHJldHVybiBwcml2LT5zdG9yYWdl
U2Vzc2lvbjsKKyAgICByZXR1cm4gJldlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVm
YXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEVXS1ByaXZhdGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>