<?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>71553</bug_id>
          
          <creation_ts>2011-11-04 04:41:29 -0700</creation_ts>
          <short_desc>[EFL] Need to replace api&apos;s object parameter with proper name.</short_desc>
          <delta_ts>2011-11-07 20:44:29 -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>Linux</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>0</everconfirmed>
          <reporter name="KwangHyuk">hyuki.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496147</commentid>
    <comment_count>0</comment_count>
    <who name="KwangHyuk">hyuki.kim</who>
    <bug_when>2011-11-04 04:41:29 -0700</bug_when>
    <thetext>Some parameter&apos;s name on ewk doesn&apos;t seem well defined enough.

For example,

&gt; static void _ewk_view_tiled_smart_add(Evas_Object* ewkTile)
&gt; Ewk_Tile_Unused_Cache* ewk_view_tiled_unused_cache_get(const Evas_Object* ewkTile)
ewkTile must be repalced with ewkView.

&gt; void ewk_tiled_backing_store_updates_process(Evas_Object* ewkTile)
&gt; Eina_Bool ewk_tiled_backing_store_update(Evas_Object* ewkTile, const Eina_Rectangle* update)
ewkTile must be replaced with backingStore.

Gyuyoung or I will fix them if there is no objection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496181</commentid>
    <comment_count>1</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-11-04 06:28:47 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Some parameter&apos;s name on ewk doesn&apos;t seem well defined enough.
&gt; 
&gt; For example,
&gt; 
&gt; &gt; static void _ewk_view_tiled_smart_add(Evas_Object* ewkTile)
&gt; &gt; Ewk_Tile_Unused_Cache* ewk_view_tiled_unused_cache_get(const Evas_Object* ewkTile)
&gt; ewkTile must be repalced with ewkView.
These are only examples and you&apos;re going to replace it in other functions such as ewk_view_tiled_unused_cache_set as well, right? How about the ewk_view_single functions?

&gt; &gt; void ewk_tiled_backing_store_updates_process(Evas_Object* ewkTile)
&gt; &gt; Eina_Bool ewk_tiled_backing_store_update(Evas_Object* ewkTile, const Eina_Rectangle* update)
&gt; ewkTile must be replaced with backingStore.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496924</commentid>
    <comment_count>2</comment_count>
      <attachid>113814</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-06 17:35:10 -0800</bug_when>
    <thetext>Created attachment 113814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496925</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-06 17:37:21 -0800</bug_when>
    <thetext>I fix wrong parameter names with proper&apos;s name. 

 - ewkTile -&gt; ewkView in ewk_view_tiled.cpp
 - ewkSingle -&gt; ewkView in ewk_view_single.cpp
 - ewkTile -&gt; ewkBackingStore in ewk_tiled_backing_store.cpp
 - Change w, h, ctxt with width, height, context.
 - and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496926</commentid>
    <comment_count>4</comment_count>
    <who name="KwangHyuk">hyuki.kim</who>
    <bug_when>2011-11-06 17:41:27 -0800</bug_when>
    <thetext>LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497685</commentid>
    <comment_count>5</comment_count>
      <attachid>113814</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-07 19:33:23 -0800</bug_when>
    <thetext>Comment on attachment 113814
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497705</commentid>
    <comment_count>6</comment_count>
      <attachid>113814</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 20:44:24 -0800</bug_when>
    <thetext>Comment on attachment 113814
Patch

Clearing flags on attachment: 113814

Committed r99518: &lt;http://trac.webkit.org/changeset/99518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497706</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 20:44:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113814</attachid>
            <date>2011-11-06 17:35:10 -0800</date>
            <delta_ts>2011-11-07 20:44:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71553-20111107103510.patch</filename>
            <type>text/plain</type>
            <size>33037</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAxNThjOWQ1NTMw
MDc3Y2JlM2E4YTg1NmMwODg4Y2Y4OTUzODlkOTY2Li4zYTg1ZTg3MjYyYTIyYTk1OTllYTM0MWVj
ZjNjNjM0ZDlkNmVkZmI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEt
MTEtMDYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBbRUZMXSBOZWVkIHRvIHJlcGxhY2UgYXBpJ3Mgb2JqZWN0IHBhcmFtZXRlciB3aXRoIHByb3Bl
ciBuYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzE1NTMKKworICAgICAgICBGaXggd3JvbmcgcGFyYW1ldGVyIG5hbWVzIGluIHRpbGVkIGJhY2tp
bmcgc3RvcmUgZnVuY3Rpb25zIGFuZCBld2tfdmlld194eHggZmlsZXMuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmUuY3BwOgorICAgICAgICAqIGV3ay9ld2tfdmlld19zaW5nbGUuY3BwOgorICAgICAg
ICAqIGV3ay9ld2tfdmlld190aWxlZC5jcHA6CisKIDIwMTEtMTEtMDQgIFJhcGhhZWwgS3VibyBk
YSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgW0VGTF0gRFJUOiBGaXgg
dGhlIG9yZGVyIG9mIHRoZSBpdGVtcyBpbiB0aGUgZHVtcGVkIGhpc3RvcnkgbGlzdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCmluZGV4
IGJkZjAxYWViNmI0ZmM0ZDgyNmMzNjNmMTMzNTZhNzBkZDBiZTRmOGMuLjRlYzY1OGFhYjZmNjE3
MDRkYjYzODUyY2VjMWZhYjEzZTgwN2ZjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcApAQCAtOTgsOSArOTgsOSBAQCBzdHJ1Y3Qg
X0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgICAgICBFaW5hX0Jvb2wgc3VzcGVu
ZCA6IDE7CiAgICAgfSByZW5kZXI7CiAgICAgc3RydWN0IHsKLSAgICAgICAgdm9pZCogKCpwcmVD
YWxsYmFjaykodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1RpbGUpOworICAgICAgICB2b2lk
KiAoKnByZUNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
KTsKICAgICAgICAgdm9pZCogcHJlRGF0YTsKLSAgICAgICAgdm9pZCogKCpwb3N0Q2FsbGJhY2sp
KHZvaWQqIGRhdGEsIHZvaWQqIHByZURhdGEsIEV2YXNfT2JqZWN0KiBld2tUaWxlKTsKKyAgICAg
ICAgdm9pZCogKCpwb3N0Q2FsbGJhY2spKHZvaWQqIGRhdGEsIHZvaWQqIHByZURhdGEsIEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUpOwogICAgICAgICB2b2lkKiBwb3N0RGF0YTsKICAgICB9
IHByb2Nlc3M7CiAgICAgc3RydWN0IHsKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fYWRk
KEV3a19UaWxlZAogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07CiAgICAg
RXZhc19Db29yZCB4LCB5LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAKLSAgICBEQkcoImV3a1Rp
bGUlcCIsIHByaXYtPnNlbGYpOworICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAiLCBwcml2LT5z
ZWxmKTsKIAogICAgIGl0ZW0gPSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9J
dGVtKj4obWFsbG9jKHNpemVvZigqaXRlbSkpKTsKICAgICBpZiAoIWl0ZW0pCkBAIC02MzIsOSAr
NjMyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tb2Rl
bF9tYXRyaXhfY3JlYXRlKEV3a19UaWxlZF9CYWNraW4KICAgICBwcml2LT5tb2RlbC5tYXRyaXgg
PSBld2tfdGlsZV9tYXRyaXhfbmV3KHRpbGVVbnVzZWRDYWNoZSwgcHJpdi0+bW9kZWwuY3VycmVu
dC5jb2x1bW5zLCBwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MsIHByaXYtPmNvbG9yU3BhY2UsIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXIsIHByaXYpOwogfQogCi1zdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfbWVtYmVyX2RlbChFdmFzX09iamVjdCogZXdr
VGlsZSwgRXZhc19PYmplY3QqIG1lbWJlcikKK3N0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zbWFydF9tZW1iZXJfZGVsKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2
YXNfT2JqZWN0KiBtZW1iZXIpCiB7Ci0gICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGls
ZSwgcHJpdik7CisgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBw
cml2KTsKICAgICBpZiAoIXByaXYtPmNvbnRlbnRzQ2xpcHBlcikKICAgICAgICAgcmV0dXJuOwog
ICAgIGV2YXNfb2JqZWN0X2NsaXBfdW5zZXQobWVtYmVyKTsKQEAgLTY0MiwxMyArNjQyLDEzIEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9tZW1iZXJfZGVsKEV2
YXNfT2JqZWN0KiBld2tUaWxlLCBFdmFzCiAgICAgICAgIGV2YXNfb2JqZWN0X2hpZGUocHJpdi0+
Y29udGVudHNDbGlwcGVyKTsKIH0KIAotc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3NtYXJ0X21lbWJlcl9hZGQoRXZhc19PYmplY3QqIGV3a1RpbGUsIEV2YXNfT2JqZWN0KiBt
ZW1iZXIpCitzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfbWVtYmVy
X2FkZChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX09iamVjdCogbWVtYmVyKQog
ewotICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYpOworICAgIFBSSVZf
REFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgaWYgKCFwcml2
LT5jb250ZW50c0NsaXBwZXIpCiAgICAgICAgIHJldHVybjsKICAgICBldmFzX29iamVjdF9jbGlw
X3NldChtZW1iZXIsIHByaXYtPmNvbnRlbnRzQ2xpcHBlcik7Ci0gICAgaWYgKGV2YXNfb2JqZWN0
X3Zpc2libGVfZ2V0KGV3a1RpbGUpKQorICAgIGlmIChldmFzX29iamVjdF92aXNpYmxlX2dldChl
d2tCYWNraW5nU3RvcmUpKQogICAgICAgICBldmFzX29iamVjdF9zaG93KHByaXYtPmNvbnRlbnRz
Q2xpcHBlcik7CiB9CiAKQEAgLTY4NywxNyArNjg3LDE3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwgaW50IHR5cGUsIHZvaWQq
IGV2CiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Nt
YXJ0X2FkZChFdmFzX09iamVjdCogZXdrVGlsZSkKK3N0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHsKICAg
ICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2OwogCi0gICAgREJHKCJld2tUaWxl
PSVwIiwgZXdrVGlsZSk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmU9JXAiLCBld2tCYWNraW5n
U3RvcmUpOwogCiAgICAgcHJpdiA9IHN0YXRpY19jYXN0PEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0RhdGEqPihjYWxsb2MoMSwgc2l6ZW9mKCpwcml2KSkpOwogICAgIGlmICghcHJpdikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgcHJpdi0+c2VsZiA9IGV3a1RpbGU7CisgICAgcHJpdi0+c2VsZiA9
IGV3a0JhY2tpbmdTdG9yZTsKICAgICBwcml2LT52aWV3LnRpbGUuem9vbSA9IDEuMDsKICAgICBw
cml2LT52aWV3LnRpbGUud2lkdGggPSBERUZBVUxUX1RJTEVfVzsKICAgICBwcml2LT52aWV3LnRp
bGUuaGVpZ2h0ID0gREVGQVVMVF9USUxFX0g7CkBAIC03MTksMTcgKzcxOSwxNyBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tU
aWxlKQogICAgIHByaXYtPnJlbmRlci5zdXNwZW5kID0gZmFsc2U7CiAgICAgcHJpdi0+Y29sb3JT
cGFjZSA9IEVWQVNfQ09MT1JTUEFDRV9BUkdCODg4ODsgLy8gVE9ETzogZGV0ZWN0IGl0LgogCi0g
ICAgZXZhc19vYmplY3Rfc21hcnRfZGF0YV9zZXQoZXdrVGlsZSwgcHJpdik7Ci0gICAgX3BhcmVu
dF9zYy5hZGQoZXdrVGlsZSk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfZGF0YV9zZXQoZXdrQmFj
a2luZ1N0b3JlLCBwcml2KTsKKyAgICBfcGFyZW50X3NjLmFkZChld2tCYWNraW5nU3RvcmUpOwog
CiAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyID0gZXZhc19vYmplY3RfcmVjdGFuZ2xlX2FkZCgK
LSAgICAgICAgZXZhc19vYmplY3RfZXZhc19nZXQoZXdrVGlsZSkpOworICAgICAgICBldmFzX29i
amVjdF9ldmFzX2dldChld2tCYWNraW5nU3RvcmUpKTsKICAgICBldmFzX29iamVjdF9tb3ZlKHBy
aXYtPmNvbnRlbnRzQ2xpcHBlciwgMCwgMCk7CiAgICAgZXZhc19vYmplY3RfcmVzaXplKHByaXYt
PmNvbnRlbnRzQ2xpcHBlciwKICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+bW9kZWwud2lk
dGgsIHByaXYtPm1vZGVsLmhlaWdodCk7CiAgICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KHByaXYt
PmNvbnRlbnRzQ2xpcHBlciwgMjU1LCAyNTUsIDI1NSwgMjU1KTsKICAgICBldmFzX29iamVjdF9z
aG93KHByaXYtPmNvbnRlbnRzQ2xpcHBlcik7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfbWVtYmVy
X2FkZChwcml2LT5jb250ZW50c0NsaXBwZXIsIGV3a1RpbGUpOworICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X21lbWJlcl9hZGQocHJpdi0+Y29udGVudHNDbGlwcGVyLCBld2tCYWNraW5nU3RvcmUpOwog
CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21vZGVsX21hdHJpeF9jcmVhdGUocHJpdiwg
MCk7CiAgICAgZXZhc19vYmplY3RfbW92ZShwcml2LT5iYXNlLmNsaXBwZXIsIDAsIDApOwpAQCAt
NzQyLDEwICs3NDIsMTAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Nt
YXJ0X2FkZChFdmFzX09iamVjdCogZXdrVGlsZSkKICNlbmRpZgogfQogCi1zdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfZGVsKEV2YXNfT2JqZWN0KiBld2tUaWxlKQor
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2RlbChFdmFzX09iamVj
dCogZXdrQmFja2luZ1N0b3JlKQogewotICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a1Rp
bGUsIHByaXYpOwotICAgIERCRygiZXdrVGlsZSVwIiwgZXdrVGlsZSk7CisgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKKyAgICBEQkcoImV3a0JhY2tp
bmdTdG9yZSVwIiwgZXdrQmFja2luZ1N0b3JlKTsKICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IHRpbGVVbnVzZWRDYWNoZTsKIAogICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJp
eF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CkBAIC03NjcsNyArNzY3LDcg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2RlbChFdmFzX09i
amVjdCogZXdrVGlsZSkKICAgICBldmFzX29iamVjdF9zbWFydF9tZW1iZXJfZGVsKHByaXYtPmNv
bnRlbnRzQ2xpcHBlcik7CiAgICAgZXZhc19vYmplY3RfZGVsKHByaXYtPmNvbnRlbnRzQ2xpcHBl
cik7CiAKLSAgICBfcGFyZW50X3NjLmRlbChld2tUaWxlKTsKKyAgICBfcGFyZW50X3NjLmRlbChl
d2tCYWNraW5nU3RvcmUpOwogCiAjaWZkZWYgREVCVUdfTUVNX0xFQUtTCiAgICAgcHJpbnRmKCJc
bklNUE9SVEFOVDogVElMRUQgQkFDS0lORyBTVE9SRSBERUxFVEVEIChtYXkgYmUgcmVhbCBsZWFr
cylcbiIpOwpAQCAtNzc1LDExICs3NzUsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X2RlbChFdmFzX09iamVjdCogZXdrVGlsZSkKICNlbmRpZgogfQogCi1z
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfbW92ZShFdmFzX09iamVj
dCogZXdrVGlsZSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCitzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0
b3JlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKIHsKLSAgICBEQkcoImV3a1RpbGUlcCwg
bmV3IHBvczogJWR4JWQiLCBld2tUaWxlLCB4LCB5KTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9y
ZSVwLCBuZXcgcG9zOiAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKLSAgICBQUklW
X0RBVEFfR0VUX09SX1JFVFVSTihld2tUaWxlLCBwcml2KTsKKyAgICBQUklWX0RBVEFfR0VUX09S
X1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwogCiAgICAgaWYgKHByaXYtPmNoYW5nZWQu
cG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTc5MSwxMSArNzkxLDExIEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9tb3ZlKEV2YXNfT2JqZWN0KiBld2tU
aWxlLCBFdmFzX0Nvb3JkCiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJp
dik7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9yZXNp
emUoRXZhc19PYmplY3QqIGV3a1RpbGUsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVp
Z2h0KQorc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X3Jlc2l6ZShF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3Jk
IGhlaWdodCkKIHsKLSAgICBEQkcoImV3a1RpbGUlcCwgbmV3IHNpemU6ICVkeCVkIiwgZXdrVGls
ZSwgd2lkdGgsIGhlaWdodCk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCwgbmV3IHNpemU6
ICVkeCVkIiwgZXdrQmFja2luZ1N0b3JlLCB3aWR0aCwgaGVpZ2h0KTsKIAotICAgIFBSSVZfREFU
QV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYpOworICAgIFBSSVZfREFUQV9HRVRfT1JfUkVU
VVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAKICAgICBpZiAocHJpdi0+Y2hhbmdlZC5zaXpl
KQogICAgICAgICByZXR1cm47CkBAIC04MTAsMTIgKzgxMCwxMiBAQCBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBld2tUaWxlLCBF
dmFzX0Nvbwogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5k
ZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB3aWR0
aCwgRXZhc19Db29yZCBoZWlnaHQsIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCBFdmFzX0Nvb3JkIHRp
bGVIZWlnaHQpCiB7CiAgICAgbG9uZyBjb2x1bW5zLCByb3dzLCBvbGRSb3dzLCBvbGRDb2xzOwot
ICAgIElORigiZXdrVGlsZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBwcml2LT5zZWxmLCB3aWR0aCwg
aGVpZ2h0KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBw
cml2LT5zZWxmLCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGNvbHVtbnMgPSAxICsgc3RhdGljX2Nh
c3Q8aW50PihjZWlsKHdpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpKTsKICAg
ICByb3dzID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbChoZWlnaHQgLyBzdGF0aWNfY2FzdDxm
bG9hdD4odGlsZUhlaWdodCkpKTsKIAotICAgIElORigiZXdrVGlsZSVwIG5ldyBncmlkIHNpemUg
Y29sczogJWxkLCByb3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCisgICAgSU5GKCJld2tCYWNraW5n
U3RvcmUlcCBuZXcgZ3JpZCBzaXplIGNvbHM6ICVsZCwgcm93czogJWxkLCB3YXMgJWxkLCAlbGQi
LAogICAgICAgICBwcml2LT5zZWxmLCBjb2x1bW5zLCByb3dzLCBwcml2LT52aWV3LmNvbHMsIHBy
aXYtPnZpZXcucm93cyk7CiAKICAgICBpZiAocHJpdi0+dmlldy5jb2xzID09IGNvbHVtbnMgJiYg
cHJpdi0+dmlldy5yb3dzID09IHJvd3MpCkBAIC0xMTg4LDcgKzExODgsNyBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldF9mb3JjZShF
d2tfVGlsZWRfQmFjawogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwogICAg
IGludCBzdGVwWSwgc3RlcFg7CiAKLSAgICBJTkYoImV3a1RpbGUlcCwgb2Zmc2V0OiAlKzRkLCAl
KzRkICglKzRkLCAlKzRkKSIsCisgICAgSU5GKCJld2tCYWNraW5nU3RvcmUlcCwgb2Zmc2V0OiAl
KzRkLCAlKzRkICglKzRkLCAlKzRkKSIsCiAgICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVs
dGFZLCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOwog
CiAgICAgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRoOwpAQCAtMTIyMCw3ICsxMjIw
LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZV9vZmZzZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwg
dGlsZUhlaWdodDsKICAgICBpbnQgc3RlcFksIHN0ZXBYOwogCi0gICAgSU5GKCJld2tUaWxlJXAs
IG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAorICAgIElORigiZXdrQmFja2luZ1N0
b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAogICAgICAgICBwcml2LT5z
ZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci55KTsKIAogICAgIGlmICghZGVsdGFYICYmICFkZWx0YVkpCkBAIC0xMjk1LDE0
ICsxMjk1LDE0IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maWxsX3Jl
bmRlcmVycyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgfQogfQogCi1zdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlKEV2YXNfT2JqZWN0
KiBld2tUaWxlKQorc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2Nh
bGN1bGF0ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogewogICAgIEV2YXNfQ29vcmQg
eCwgeSwgd2lkdGgsIGhlaWdodDsKIAotICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChld2tU
aWxlLCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgREJHKCJld2tUaWxlJXAgYXQgJWQs
JWQgKyAlZHglZCIsIGV3a1RpbGUsIHgsIHksIHdpZHRoLCBoZWlnaHQpOworICAgIGV2YXNfb2Jq
ZWN0X2dlb21ldHJ5X2dldChld2tCYWNraW5nU3RvcmUsICZ4LCAmeSwgJndpZHRoLCAmaGVpZ2h0
KTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwIGF0ICVkLCVkICsgJWR4JWQiLCBld2tCYWNr
aW5nU3RvcmUsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwogCi0gICAgUFJJVl9EQVRBX0dFVF9PUl9S
RVRVUk4oZXdrVGlsZSwgcHJpdik7CisgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFj
a2luZ1N0b3JlLCBwcml2KTsKIAogICAgIHByaXYtPmNoYW5nZWQuYW55ID0gZmFsc2U7CiAKQEAg
LTE0MDQsMjMgKzE0MDQsMjMgQEAgRXZhc19PYmplY3QqIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2FkZChFdmFzKiBjYW52YXMpCiAgICAgcmV0dXJuIGV2YXNfb2JqZWN0X3NtYXJ0X2FkZChjYW52
YXMsIHNtYXJ0KTsKIH0KIAotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jf
c2V0KEV2YXNfT2JqZWN0KiBld2tUaWxlLCBFaW5hX0Jvb2wgKCpjYWxsYmFjaykodm9pZCogZGF0
YSwgRXdrX1RpbGUqIHRpbGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKSwgY29uc3Qgdm9p
ZCogZGF0YSkKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyX2NiX3NldChFdmFz
X09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFaW5hX0Jvb2wgKCpjYWxsYmFjaykodm9pZCogZGF0
YSwgRXdrX1RpbGUqIHRpbGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKSwgY29uc3Qgdm9p
ZCogZGF0YSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjYWxsYmFjayk7Ci0g
ICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdik7CisgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKICAgICBwcml2LT5yZW5kZXIu
Y2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBwcml2LT5yZW5kZXIuZGF0YSA9ICh2b2lkKilkYXRh
OwogfQogCi1Fd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Rp
bGVfdW51c2VkX2NhY2hlX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVGlsZSkKK0V3a19UaWxl
X1VudXNlZF9DYWNoZSogZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiB7Ci0gICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdiwgMCk7CisgICAgUFJJVl9EQVRBX0dFVF9PUl9S
RVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCAwKTsKICAgICByZXR1cm4gZXdrX3RpbGVfbWF0
cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKIH0KIAotdm9pZCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoRXZhc19PYmplY3QqIGV3
a1RpbGUsIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlKQordm9pZCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoRXZhc19PYmplY3QqIGV3
a0JhY2tpbmdTdG9yZSwgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiB7
Ci0gICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdik7CisgICAgUFJJVl9E
QVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKIAogICAgIGlmIChld2tf
dGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpID09IHRpbGVV
bnVzZWRDYWNoZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ0MywyMiArMTQ0MywyMiBAQCBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRf
c2V0X2ludGVybmFsKEV3a19UaQogICAgIHJldHVybiB0cnVlOwogfQogCi1FaW5hX0Jvb2wgZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFzX09iamVjdCog
ZXdrVGlsZSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCitFaW5hX0Jvb2wgZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFzX09iamVjdCogZXdrQmFj
a2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKIHsKLSAgICBEQkcoImV3a1Rp
bGUlcCwgeD0lZCwgeT0lZCIsIGV3a1RpbGUsIHgsIHkpOworICAgIERCRygiZXdrQmFja2luZ1N0
b3JlJXAsIHg9JWQsIHk9JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOwogCi0gICAgUFJJVl9E
QVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdiwgZmFsc2UpOworICAgIFBSSVZfREFUQV9H
RVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2UpOwogICAgIGlmICh4ID09
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICYmIHkgPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKHByaXYsIHgsIHkpOwogfQogCi1F
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZChF
dmFzX09iamVjdCogZXdrVGlsZSwgRXZhc19Db29yZCBkZWx0YVgsIEV2YXNfQ29vcmQgZGVsdGFZ
KQorRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9h
ZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19Db29yZCBkZWx0YVgsIEV2YXNf
Q29vcmQgZGVsdGFZKQogewotICAgIERCRygiZXdrVGlsZSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0l
ZCIsIGV3a1RpbGUsIGRlbHRhWCwgZGVsdGFZKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVw
LCBkZWx0YVg9JWQsIGRlbHRhWT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFYLCBkZWx0YVkp
OwogCi0gICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdiwgZmFsc2UpOwor
ICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2Up
OwogICAgIGlmICghZGVsdGFYICYmICFkZWx0YVkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBA
IC0xNTY0LDE5ICsxNTY0LDE5IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldChF
dmFzX09iamVjdCogZXdrVGlsZSwgZmxvYXQqIHpvb20sIEV2YXNfQ29vcmQgY3VycmVudFgsIEV2
YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9mZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNl
dFkpCitFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXQoRXZhc19PYmpl
Y3QqIGV3a0JhY2tpbmdTdG9yZSwgZmxvYXQqIHpvb20sIEV2YXNfQ29vcmQgY3VycmVudFgsIEV2
YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9mZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNl
dFkpCiB7Ci0gICAgREJHKCJld2tUaWxlJXAsIHpvb209JWYiLCBld2tUaWxlLCAqem9vbSk7Cisg
ICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgKnpv
b20pOwogCi0gICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdiwgZmFsc2Up
OworICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFs
c2UpOwogCiAgICAgcmV0dXJuIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRl
cm5hbChwcml2LCB6b29tLCBjdXJyZW50WCwgY3VycmVudFksIG9mZnNldFgsIG9mZnNldFkpOwog
fQogCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFz
X09iamVjdCogZXdrVGlsZSwgZmxvYXQgem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZhc19D
b29yZCBjdXJyZW50WSkKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dl
YWtfc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIGZsb2F0IHpvb20sIEV2YXNfQ29v
cmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFkpCiB7Ci0gICAgREJHKCJld2tUaWxlJXAs
IHpvb209JWYiLCBld2tUaWxlLCB6b29tKTsKLSAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tUaWxlLCBwcml2LCBmYWxzZSk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCwgem9vbT0l
ZiIsIGV3a0JhY2tpbmdTdG9yZSwgem9vbSk7CisgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4o
ZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT52aWV3LndpZHRo
IHx8ICFwcml2LT52aWV3LmhlaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEVpbmFf
SW5saXN0KiogaXRlcmF0b3IsICoqIGl0ZXJhdG9yRW5kOwpAQCAtMTYxNiw3ICsxNjE2LDcgQEAg
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmpl
Y3QqIGV3a1RpbGUsIGZsb2F0IHpvb20KIAogICAgIGlmIChyZUNhbGN1bGF0ZSkgewogICAgICAg
ICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWlnaHQ7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5
X2dldChld2tUaWxlLCAwLCAwLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICBldmFzX29iamVj
dF9nZW9tZXRyeV9nZXQoZXdrQmFja2luZ1N0b3JlLCAwLCAwLCAmd2lkdGgsICZoZWlnaHQpOwog
ICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3JlbmRlcmVycyhwcml2LCB3
aWR0aCwgaGVpZ2h0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOwogICAgICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMocHJpdik7CiAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3MocHJpdik7CkBAIC0xNjQ3LDkgKzE2NDcsOSBA
QCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFzX09i
amVjdCogZXdrVGlsZSwgZmxvYXQgem9vbQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGV3
a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0KiBld2tUaWxlLCBF
dmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCkKK3ZvaWQgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfZml4X29mZnNldHMoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19D
b29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQpCiB7Ci0gICAgUFJJVl9EQVRBX0dFVF9PUl9S
RVRVUk4oZXdrVGlsZSwgcHJpdik7CisgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFj
a2luZ1N0b3JlLCBwcml2KTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yLCAqKml0ZXJhdG9y
RW5kOwogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07CiAgICAgRXZhc19D
b29yZCBuZXdYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7CkBAIC0xNzEwLDkgKzE3MTAsOSBA
QCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0KiBl
d2tUaWxlLCBFdmFzX0Nvb3JkIHdpZHRoLAogICAgIH0KIH0KIAotdm9pZCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFdmFzX09iamVjdCogZXdrVGls
ZSwgRWluYV9Cb29sIHNtb290aFNjYWxlKQordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBF
aW5hX0Jvb2wgc21vb3RoU2NhbGUpCiB7Ci0gICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdr
VGlsZSwgcHJpdik7CisgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3Jl
LCBwcml2KTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yLCAqKml0ZXJhdG9yRW5kOwogCiAg
ICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwpAQCAtMTcyOCw5ICsxNzI4LDkgQEAgdm9p
ZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFdmFz
X09iamVjdCogZXdrVGlsZSwgRWkKICAgICB9CiB9CiAKLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV91cGRhdGUoRXZhc19PYmplY3QqIGV3a1RpbGUsIGNvbnN0IEVpbmFfUmVjdGFu
Z2xlKiB1cGRhdGUpCitFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlKEV2
YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUp
CiB7Ci0gICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdiwgZmFsc2UpOwor
ICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2Up
OwogCiAgICAgaWYgKHByaXYtPnJlbmRlci5kaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTczOSwzNiArMTczOSwzNiBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdXBkYXRlKEV2YXNfT2JqZWN0KiBld2tUaWxlLCBjb25zdCBFaW5hX1JlY3RhbgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnZpZXcudGlsZS56b29tKTsKIH0KIAot
dm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3NfcHJlX3NldChFdmFz
X09iamVjdCogZXdrVGlsZSwgdm9pZCogKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXZhc19PYmpl
Y3QgKmV3a1RpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQordm9pZCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV91cGRhdGVzX3Byb2Nlc3NfcHJlX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
LCB2b2lkKiAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCAqZXdrQmFja2luZ1N0
b3JlKSwgY29uc3Qgdm9pZCogZGF0YSkKIHsKLSAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tUaWxlLCBwcml2KTsKKyAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3Rv
cmUsIHByaXYpOwogICAgIHByaXYtPnByb2Nlc3MucHJlQ2FsbGJhY2sgPSBjYWxsYmFjazsKICAg
ICBwcml2LT5wcm9jZXNzLnByZURhdGEgPSAodm9pZCopZGF0YTsKIH0KIAotdm9pZCBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3NfcG9zdF9zZXQoRXZhc19PYmplY3QqIGV3
a1RpbGUsIHZvaWQqICgqY2FsbGJhY2spKHZvaWQqIGRhdGEsIHZvaWQqIHByZURhdGEsIEV2YXNf
T2JqZWN0ICpld2tUaWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKK3ZvaWQgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzX3Bvc3Rfc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5n
U3RvcmUsIHZvaWQqICgqY2FsbGJhY2spKHZvaWQqIGRhdGEsIHZvaWQqIHByZURhdGEsIEV2YXNf
T2JqZWN0ICpld2tCYWNraW5nU3RvcmUpLCBjb25zdCB2b2lkKiBkYXRhKQogewotICAgIFBSSVZf
REFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYpOworICAgIFBSSVZfREFUQV9HRVRfT1Jf
UkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgcHJpdi0+cHJvY2Vzcy5wb3N0Q2Fs
bGJhY2sgPSBjYWxsYmFjazsKICAgICBwcml2LT5wcm9jZXNzLnBvc3REYXRhID0gKHZvaWQqKWRh
dGE7CiB9CiAKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzKEV2
YXNfT2JqZWN0KiBld2tUaWxlKQordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVz
X3Byb2Nlc3MoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHsKLSAgICBQUklWX0RBVEFf
R0VUX09SX1JFVFVSTihld2tUaWxlLCBwcml2KTsKKyAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVS
Tihld2tCYWNraW5nU3RvcmUsIHByaXYpOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV91
cGRhdGVzX3Byb2Nlc3MocHJpdik7CiB9CiAKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dXBkYXRlc19jbGVhcihFdmFzX09iamVjdCogZXdrVGlsZSkKK3ZvaWQgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdXBkYXRlc19jbGVhcihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogewot
ICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYpOworICAgIFBSSVZfREFU
QV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAKICAgICBld2tfdGlsZV9t
YXRyaXhfdXBkYXRlc19jbGVhcihwcml2LT5tb2RlbC5tYXRyaXgpOwogfQogCi12b2lkIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX2NvbnRlbnRzX3Jlc2l6ZShFdmFzX09iamVjdCogZXdrVGlsZSwg
RXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQpCit2b2lkIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2NvbnRlbnRzX3Jlc2l6ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBF
dmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCkKIHsKLSAgICBQUklWX0RBVEFfR0VU
X09SX1JFVFVSTihld2tUaWxlLCBwcml2KTsKKyAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tCYWNraW5nU3RvcmUsIHByaXYpOwogCiAgICAgaWYgKHdpZHRoID09IHByaXYtPm1vZGVsLndp
ZHRoICYmIGhlaWdodCA9PSBwcml2LT5tb2RlbC5oZWlnaHQpCiAgICAgICAgIHJldHVybjsKQEAg
LTE3ODEsMTcgKzE3ODEsMTcgQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9jb250ZW50
c19yZXNpemUoRXZhc19PYmplY3QqIGV3a1RpbGUsIEV2YXNfQ29vcmQgd2kKICAgICBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfY2hhbmdlZChwcml2KTsKIH0KIAotdm9pZCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9kaXNhYmxlZF91cGRhdGVfc2V0KEV2YXNfT2JqZWN0KiBld2tUaWxlLCBFaW5h
X0Jvb2wgdmFsdWUpCit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Rpc2FibGVkX3VwZGF0
ZV9zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRWluYV9Cb29sIHZhbHVlKQogewot
ICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYpOworICAgIFBSSVZfREFU
QV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAKICAgICBpZiAodmFsdWUg
IT0gcHJpdi0+cmVuZGVyLmRpc2FibGVkKQogICAgICAgICBwcml2LT5yZW5kZXIuZGlzYWJsZWQg
PSB2YWx1ZTsKIH0KIAotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaChFdmFzX09i
amVjdCogZXdrVGlsZSkKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHsKLSAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tUaWxlLCBwcml2KTsKKyAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3Rv
cmUsIHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlID0g
MDsKIAogICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKQEAgLTE4MjQsOSArMTgyNCw5
IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3QqIGV3a1Rp
bGUpCiAjZW5kaWYKIH0KIAotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9y
ZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tUaWxlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29v
cmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQsIGZsb2F0IHpvb20pCitF
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNf
Q29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0LCBmbG9hdCB6b29tKQogewotICAgIFBSSVZf
REFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYsIGZhbHNlKTsKKyAgICBQUklWX0RBVEFf
R0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKICAgICBFaW5hX1Rp
bGVfR3JpZF9TbGljZXIgc2xpY2VyOwogICAgIGNvbnN0IEVpbmFfVGlsZV9HcmlkX0luZm8qIGlu
Zm87CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CkBAIC0xODU2LDkgKzE4
NTYsOSBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdp
b24oRXZhc19PYmplY3QqIGV3a1RpbGUsIEV2YXNfQwogICAgIHJldHVybiB0cnVlOwogfQogCi1F
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWxhdGl2ZV9yYWRp
dXMoRXZhc19PYmplY3QqIGV3a1RpbGUsIHVuc2lnbmVkIGludCBuLCBmbG9hdCB6b29tKQorRWlu
YV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVz
KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIHVuc2lnbmVkIGludCBuLCBmbG9hdCB6b29t
KQogewotICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYsIGZhbHNlKTsK
KyAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNl
KTsKICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0Um93LCBlbmRSb3csIHN0YXJ0Q29sLCBlbmRDb2ws
IGksIGosIHdpZHRoLCBoZWlnaHQ7CiAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51
c2VkQ2FjaGU7CiAKQEAgLTE4OTQsOSArMTg5NCw5IEBAIHN0YXJ0X3Byb2Nlc3Npbmc6CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRl
cl9jYW5jZWwoRXZhc19PYmplY3QqIGV3a1RpbGUpCit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ByZV9yZW5kZXJfY2FuY2VsKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiB7Ci0g
ICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdik7CisgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKICAgICBFd2tfVGlsZV9VbnVz
ZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKIAogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIocHJpdik7CkBAIC0xOTA1LDE1ICsxOTA1LDE1IEBA
IHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9jYW5jZWwoRXZhc19PYmpl
Y3QqIGV3a1RpbGUpCiAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3VubG9ja19hcmVhKHRpbGVV
bnVzZWRDYWNoZSk7CiB9CiAKLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9kaXNh
YmxlX3JlbmRlcihFdmFzX09iamVjdCogZXdrVGlsZSkKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9kaXNhYmxlX3JlbmRlcihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQog
ewotICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a1RpbGUsIHByaXYsIGZhbHNlKTsKKyAg
ICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsK
ICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2Rpc2FibGVfcmVuZGVyKHByaXYp
OwogfQogCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZW5hYmxlX3JlbmRlcihF
dmFzX09iamVjdCogZXdrVGlsZSkKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9l
bmFibGVfcmVuZGVyKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiB7Ci0gICAgUFJJVl9E
QVRBX0dFVF9PUl9SRVRVUk4oZXdrVGlsZSwgcHJpdiwgZmFsc2UpOworICAgIFBSSVZfREFUQV9H
RVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2UpOwogICAgIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9jaGFuZ2VkKHByaXYpOwogICAgIHJldHVybiBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfZW5hYmxlX3JlbmRlcihwcml2KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3X3NpbmdsZS5jcHAKaW5kZXggN2U3MTQ2NDhmYjhkNjU0ZDBhMWY0ZjU5MmVhN2Y1
ZjVhYWMyYzhmOC4uZmI3NDQ4NjJkODgwNTQxMDQzNGI1ZjE3NGIwMmU3ZjFiMjQ1MWY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKQEAgLTM3LDEzICszNywx
MyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2luZ2xlX29uX2RlbCh2b2lkKiBkYXRhLCBFdmFz
KiBldmVudFR5cGUsIEV2YXNfT2JqZWN0KiBjYQogICAgIGV2YXNfb2JqZWN0X2RlbChjbGlwKTsK
IH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NpbmdsZV9zbWFydF9hZGQoRXZhc19PYmplY3Qq
IGV3a1NpbmdsZSkKK3N0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5nbGVfc21hcnRfYWRkKEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YTsK
IAotICAgIF9wYXJlbnRfc2Muc2MuYWRkKGV3a1NpbmdsZSk7CisgICAgX3BhcmVudF9zYy5zYy5h
ZGQoZXdrVmlldyk7CiAKLSAgICBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFy
dF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrU2luZ2xlKSk7CisgICAgc21h
cnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3Nt
YXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsKICAgICBpZiAoIXNtYXJ0RGF0YSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC02MywxMCArNjMsMTAgQEAgc3RhdGljIEV2YXNfT2JqZWN0KiBfZXdrX3ZpZXdf
c2luZ2xlX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKEV3a19WaWV3X1NtYXJ0X0RhdGEKICAgICBy
ZXR1cm4gYnM7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19zaW5nbGVfc21hcnRfcmVzaXpl
KEV2YXNfT2JqZWN0KiBld2tTaW5nbGUsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVp
Z2h0KQorc3RhdGljIHZvaWQgX2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXNpemUoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0KQogewotICAg
IEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1Nt
YXJ0X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tTaW5nbGUpKTsKLSAgICBf
cGFyZW50X3NjLnNjLnJlc2l6ZShld2tTaW5nbGUsIHdpZHRoLCBoZWlnaHQpOworICAgIEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0Rh
dGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7CisgICAgX3BhcmVudF9z
Yy5zYy5yZXNpemUoZXdrVmlldywgd2lkdGgsIGhlaWdodCk7CiAKICAgICBpZiAoIXNtYXJ0RGF0
YSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzU5LDM4ICszNTksMzggQEAgc3RhdGljIEVpbmFfQm9v
bCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3Njcm9sbHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9E
YXRhKiBzbWEKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3JlcGFp
bnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewotICAgIEV3a19W
aWV3X1BhaW50X0NvbnRleHQqIGN0eHQ7CisgICAgRXdrX1ZpZXdfUGFpbnRfQ29udGV4dCogY29u
dGV4dDsKICAgICBFdmFzX0Nvb3JkIG93LCBvaDsKICAgICB2b2lkKiBwaXhlbHM7Ci0gICAgRWlu
YV9SZWN0YW5nbGUqIHI7CisgICAgRWluYV9SZWN0YW5nbGUqIHJlY3Q7CiAgICAgY29uc3QgRWlu
YV9SZWN0YW5nbGUqIHByOwogICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwcl9lbmQ7CiAgICAg
RWluYV9UaWxlciogdGlsZXI7Ci0gICAgRWluYV9JdGVyYXRvciogaXRyOworICAgIEVpbmFfSXRl
cmF0b3IqIGl0ZXJhdG9yOwogICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKICAgICBjYWlyb19z
dXJmYWNlX3QqIHN1cmZhY2U7CiAgICAgY2Fpcm9fZm9ybWF0X3QgZm9ybWF0OwogICAgIGNhaXJv
X3QqIGNhaXJvOwogICAgIHNpemVfdCBjb3VudDsKLSAgICBFaW5hX0Jvb2wgcmV0ID0gdHJ1ZTsK
KyAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1ZTsKIAogICAgIGlmIChzbWFydERhdGEtPmFuaW1h
dGVkX3pvb20uem9vbS5jdXJyZW50IDwgMC4wMDAwMSkgewogICAgICAgICBFdmFzX09iamVjdCog
Y2xpcCA9IGV2YXNfb2JqZWN0X2NsaXBfZ2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSk7Ci0g
ICAgICAgIEV2YXNfQ29vcmQgdywgaCwgY3csIGNoOworICAgICAgICBFdmFzX0Nvb3JkIHdpZHRo
LCBoZWlnaHQsIGNlbnRlcldpZHRoLCBjZW50ZXJIZWlnaHQ7CiAgICAgICAgIC8vIHJlc2V0IGVm
ZmVjdHMgb2Ygem9vbV93ZWFrX3NldCgpCiAgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxf
c2V0CiAgICAgICAgICAgICAoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCAwLCAwLCBzbWFydERh
dGEtPnZpZXcudywgc21hcnREYXRhLT52aWV3LmgpOwogICAgICAgICBldmFzX29iamVjdF9tb3Zl
KGNsaXAsIHNtYXJ0RGF0YS0+dmlldy54LCBzbWFydERhdGEtPnZpZXcueSk7CiAKLSAgICAgICAg
dyA9IHNtYXJ0RGF0YS0+dmlldy53OwotICAgICAgICBoID0gc21hcnREYXRhLT52aWV3Lmg7Cisg
ICAgICAgIHdpZHRoID0gc21hcnREYXRhLT52aWV3Lnc7CisgICAgICAgIGhlaWdodCA9IHNtYXJ0
RGF0YS0+dmlldy5oOwogCi0gICAgICAgIGV3a19mcmFtZV9jb250ZW50c19zaXplX2dldChzbWFy
dERhdGEtPm1haW5fZnJhbWUsICZjdywgJmNoKTsKLSAgICAgICAgaWYgKHcgPiBjdykKLSAgICAg
ICAgICAgIHcgPSBjdzsKLSAgICAgICAgaWYgKGggPiBjaCkKLSAgICAgICAgICAgIGggPSBjaDsK
LSAgICAgICAgZXZhc19vYmplY3RfcmVzaXplKGNsaXAsIHcsIGgpOworICAgICAgICBld2tfZnJh
bWVfY29udGVudHNfc2l6ZV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmY2VudGVyV2lkdGgs
ICZjZW50ZXJIZWlnaHQpOworICAgICAgICBpZiAod2lkdGggPiBjZW50ZXJXaWR0aCkKKyAgICAg
ICAgICAgIHdpZHRoID0gY2VudGVyV2lkdGg7CisgICAgICAgIGlmIChoZWlnaHQgPiBjZW50ZXJI
ZWlnaHQpCisgICAgICAgICAgICBoZWlnaHQgPSBjZW50ZXJIZWlnaHQ7CisgICAgICAgIGV2YXNf
b2JqZWN0X3Jlc2l6ZShjbGlwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICB9CiAKICAgICBwaXhlbHMg
PSBldmFzX29iamVjdF9pbWFnZV9kYXRhX2dldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIDEp
OwpAQCAtNDAzLDcgKzQwMyw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NpbmdsZV9z
bWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAgICAgaWYgKHN0
YXR1cyAhPSBDQUlST19TVEFUVVNfU1VDQ0VTUykgewogICAgICAgICBFUlIoImNvdWxkIG5vdCBj
cmVhdGUgc3VyZmFjZSBmcm9tIGRhdGEgJWR4JWQ6ICVzIiwKICAgICAgICAgICAgIG93LCBvaCwg
Y2Fpcm9fc3RhdHVzX3RvX3N0cmluZyhzdGF0dXMpKTsKLSAgICAgICAgcmV0ID0gZmFsc2U7Cisg
ICAgICAgIHJlc3VsdCA9IGZhbHNlOwogICAgICAgICBnb3RvIGVycm9yX2NhaXJvX3N1cmZhY2U7
CiAgICAgfQogICAgIGNhaXJvID0gY2Fpcm9fY3JlYXRlKHN1cmZhY2UpOwpAQCAtNDExLDIxICs0
MTEsMjEgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3JlcGFpbnRz
X3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KICAgICBpZiAoc3RhdHVzICE9IENBSVJP
X1NUQVRVU19TVUNDRVNTKSB7CiAgICAgICAgIEVSUigiY291bGQgbm90IGNyZWF0ZSBjYWlybyBm
cm9tIHN1cmZhY2UgJWR4JWQ6ICVzIiwKICAgICAgICAgICAgIG93LCBvaCwgY2Fpcm9fc3RhdHVz
X3RvX3N0cmluZyhzdGF0dXMpKTsKLSAgICAgICAgcmV0ID0gZmFsc2U7CisgICAgICAgIHJlc3Vs
dCA9IGZhbHNlOwogICAgICAgICBnb3RvIGVycm9yX2NhaXJvOwogICAgIH0KIAotICAgIGN0eHQg
PSBld2tfdmlld19wYWludF9jb250ZXh0X25ldyhzbWFydERhdGEtPl9wcml2LCBjYWlybyk7Ci0g
ICAgaWYgKCFjdHh0KSB7CisgICAgY29udGV4dCA9IGV3a192aWV3X3BhaW50X2NvbnRleHRfbmV3
KHNtYXJ0RGF0YS0+X3ByaXYsIGNhaXJvKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKICAgICAgICAg
RVJSKCJjb3VsZCBub3QgY3JlYXRlIHBhaW50IGNvbnRleHQiKTsKLSAgICAgICAgcmV0ID0gZmFs
c2U7CisgICAgICAgIHJlc3VsdCA9IGZhbHNlOwogICAgICAgICBnb3RvIGVycm9yX3BhaW50X2Nv
bnRleHQ7CiAgICAgfQogCiAgICAgdGlsZXIgPSBlaW5hX3RpbGVyX25ldyhvdywgb2gpOwogICAg
IGlmICghdGlsZXIpIHsKICAgICAgICAgRVJSKCJjb3VsZCBub3QgY3JlYXRlIHRpbGVyICVkeCVk
Iiwgb3csIG9oKTsKLSAgICAgICAgcmV0ID0gZmFsc2U7CisgICAgICAgIHJlc3VsdCA9IGZhbHNl
OwogICAgICAgICBnb3RvIGVycm9yX3RpbGVyOwogICAgIH0KIApAQCAtNDM2LDQwICs0MzYsNDAg
QEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3JlcGFpbnRzX3Byb2Nl
c3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KICAgICBmb3IgKDsgcHIgPCBwcl9lbmQ7IHByKysp
CiAgICAgICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHByKTsKIAotICAgIGl0ciA9IGVp
bmFfdGlsZXJfaXRlcmF0b3JfbmV3KHRpbGVyKTsKLSAgICBpZiAoIWl0cikgeworICAgIGl0ZXJh
dG9yID0gZWluYV90aWxlcl9pdGVyYXRvcl9uZXcodGlsZXIpOworICAgIGlmICghaXRlcmF0b3Ip
IHsKICAgICAgICAgRVJSKCJjb3VsZCBub3QgZ2V0IGl0ZXJhdG9yIGZvciB0aWxlciIpOwotICAg
ICAgICByZXQgPSBmYWxzZTsKKyAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgIGdvdG8g
ZXJyb3JfaXRlcmF0b3I7CiAgICAgfQogCiAgICAgaW50IHN4LCBzeTsKICAgICBld2tfZnJhbWVf
c2Nyb2xsX3Bvc19nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmc3gsICZzeSk7CiAKLSAgICBF
SU5BX0lURVJBVE9SX0ZPUkVBQ0goaXRyLCByKSB7CisgICAgRUlOQV9JVEVSQVRPUl9GT1JFQUNI
KGl0ZXJhdG9yLCByZWN0KSB7CiAgICAgICAgIEVpbmFfUmVjdGFuZ2xlIHNjcm9sbGVkX3JlY3Qg
PSB7Ci0gICAgICAgICAgICByLT54ICsgc3gsIHItPnkgKyBzeSwKLSAgICAgICAgICAgIHItPncs
IHItPmgKKyAgICAgICAgICAgIHJlY3QtPnggKyBzeCwgcmVjdC0+eSArIHN5LAorICAgICAgICAg
ICAgcmVjdC0+dywgcmVjdC0+aAogICAgICAgICB9OwogCi0gICAgICAgIGV3a192aWV3X3BhaW50
X2NvbnRleHRfc2F2ZShjdHh0KTsKKyAgICAgICAgZXdrX3ZpZXdfcGFpbnRfY29udGV4dF9zYXZl
KGNvbnRleHQpOwogCiAgICAgICAgIGlmICgoc3gpIHx8IChzeSkpCi0gICAgICAgICAgICBld2tf
dmlld19wYWludF9jb250ZXh0X3RyYW5zbGF0ZShjdHh0LCAtc3gsIC1zeSk7CisgICAgICAgICAg
ICBld2tfdmlld19wYWludF9jb250ZXh0X3RyYW5zbGF0ZShjb250ZXh0LCAtc3gsIC1zeSk7CiAK
LSAgICAgICAgZXdrX3ZpZXdfcGFpbnRfY29udGV4dF9jbGlwKGN0eHQsICZzY3JvbGxlZF9yZWN0
KTsKLSAgICAgICAgZXdrX3ZpZXdfcGFpbnRfY29udGV4dF9wYWludF9jb250ZW50cyhjdHh0LCAm
c2Nyb2xsZWRfcmVjdCk7CisgICAgICAgIGV3a192aWV3X3BhaW50X2NvbnRleHRfY2xpcChjb250
ZXh0LCAmc2Nyb2xsZWRfcmVjdCk7CisgICAgICAgIGV3a192aWV3X3BhaW50X2NvbnRleHRfcGFp
bnRfY29udGVudHMoY29udGV4dCwgJnNjcm9sbGVkX3JlY3QpOwogCi0gICAgICAgIGV3a192aWV3
X3BhaW50X2NvbnRleHRfcmVzdG9yZShjdHh0KTsKKyAgICAgICAgZXdrX3ZpZXdfcGFpbnRfY29u
dGV4dF9yZXN0b3JlKGNvbnRleHQpOwogICAgICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3Vw
ZGF0ZV9hZGQKLSAgICAgICAgICAgIChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIHItPngsIHIt
PnksIHItPncsIHItPmgpOworICAgICAgICAgICAgKHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwg
cmVjdC0+eCwgcmVjdC0+eSwgcmVjdC0+dywgcmVjdC0+aCk7CiAgICAgfQotICAgIGVpbmFfaXRl
cmF0b3JfZnJlZShpdHIpOworICAgIGVpbmFfaXRlcmF0b3JfZnJlZShpdGVyYXRvcik7CiAKIGVy
cm9yX2l0ZXJhdG9yOgogICAgIGVpbmFfdGlsZXJfZnJlZSh0aWxlcik7CiBlcnJvcl90aWxlcjoK
LSAgICBld2tfdmlld19wYWludF9jb250ZXh0X2ZyZWUoY3R4dCk7CisgICAgZXdrX3ZpZXdfcGFp
bnRfY29udGV4dF9mcmVlKGNvbnRleHQpOwogZXJyb3JfcGFpbnRfY29udGV4dDoKICAgICBjYWly
b19kZXN0cm95KGNhaXJvKTsKIGVycm9yX2NhaXJvOgpAQCAtNDc3LDcgKzQ3Nyw3IEBAIGVycm9y
X2NhaXJvOgogZXJyb3JfY2Fpcm9fc3VyZmFjZToKICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRh
X3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIHBpeGVscyk7IC8qIGRlYyByZWZjb3VudCAq
LwogCi0gICAgcmV0dXJuIHJldDsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgRWlu
YV9Cb29sIF9ld2tfdmlld19zaW5nbGVfc21hcnRfem9vbV93ZWFrX3NldChFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEsIGZsb2F0IHpvb20sIEV2YXNfQ29vcmQgY2VudGVyWCwgRXZhc19D
b29yZCBjZW50ZXJZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
X3RpbGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKaW5k
ZXggZWUzMjc3ZmU4ODg0ODc5YjE2NWFlOWE0ZjI4MWE2NzZiNTk5ODU2My4uN2RlZDg4NThkMjUz
YmJiM2JhODY3MTljNjc4NDE0ZGU0ZmI4YjVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfdGlsZWQuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192
aWV3X3RpbGVkX3JlbmRlcl9jYih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWlu
CiAgICAgcmV0dXJuIGV3a192aWV3X3BhaW50X2NvbnRlbnRzKHByaXYsIHRpbGUtPmNhaXJvLCAm
cmVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNz
X3ByZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogZXdrVGlsZSkKK3N0YXRpYyB2b2lkKiBfZXdr
X3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCog
ZXdrVmlldykKIHsKICAgICBFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYgPSBzdGF0aWNfY2Fz
dDxFd2tfVmlld19Qcml2YXRlX0RhdGEqPihkYXRhKTsKICAgICBld2tfdmlld19sYXlvdXRfaWZf
bmVlZGVkX3JlY3Vyc2l2ZShwcml2KTsKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIEV2YXNfT2Jq
ZWN0KiBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQoRXdrX1ZpZXdfU21h
cnRfRGF0YSoKIH0KIAogc3RhdGljIHZvaWQKLV9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXpl
X2NoYW5nZWRfY2Iodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1RpbGUsIHZvaWQqIGV2ZW50
SW5mbykKK19ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2Iodm9pZCogZGF0
YSwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKIHsKICAgICBFdmFzX0Nv
b3JkKiBzaXplID0gc3RhdGljX2Nhc3Q8RXZhc19Db29yZCo+KGV2ZW50SW5mbyk7CiAgICAgRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRf
RGF0YSo+KGRhdGEpOwpAQCAtNjUsMTMgKzY1LDEzIEBAIF9ld2tfdmlld190aWxlZF9jb250ZW50
c19zaXplX2NoYW5nZWRfY2Iodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1RpbGUsIHZvaWQq
CiAgICAgICAgIChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIHNpemVbMF0sIHNpemVbMV0pOwog
fQogCi1zdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBl
d2tUaWxlKQorc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZChFdmFzX09iamVj
dCogZXdrVmlldykKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZDsKIAotICAgIF9wYXJl
bnRfc2Muc2MuYWRkKGV3a1RpbGUpOworICAgIF9wYXJlbnRfc2Muc2MuYWRkKGV3a1ZpZXcpOwog
Ci0gICAgc2QgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rf
c21hcnRfZGF0YV9nZXQoZXdrVGlsZSkpOworICAgIHNkID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdf
U21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsKICAgICBp
ZiAoIXNkKQogICAgICAgICByZXR1cm47CiAKQEAgLTE2OCwyMiArMTY4LDIyIEBAIHN0YXRpYyBF
aW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2NvbnRlbnRzX3Jlc2l6ZShFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFyCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0
X3pvb21fc2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgZmxvYXQgem9vbSwgRXZh
c19Db29yZCBjZW50ZXJYLCBFdmFzX0Nvb3JkIGNlbnRlclkpCiB7Ci0gICAgRXZhc19Db29yZCB4
LCB5LCB3LCBoOwotICAgIEVpbmFfQm9vbCByOwotICAgIHIgPSBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsCisgICAgRXZhc19Db29yZCB4
LCB5LCB3aWR0aCwgaGVpZ2h0OworICAgIEVpbmFfQm9vbCByZXN1bHQ7CisgICAgcmVzdWx0ID0g
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3Jl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmem9vbSwgY2VudGVy
WCwgY2VudGVyWSwgJngsICZ5KTsKLSAgICBpZiAoIXIpCi0gICAgICAgIHJldHVybiByOworICAg
IGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2Rpc2FibGVkX3VwZGF0ZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCB0
cnVlKTsKLSAgICByID0gX3BhcmVudF9zYy56b29tX3NldChzbWFydERhdGEsIHpvb20sIGNlbnRl
clgsIGNlbnRlclkpOworICAgIHJlc3VsdCA9IF9wYXJlbnRfc2Muem9vbV9zZXQoc21hcnREYXRh
LCB6b29tLCBjZW50ZXJYLCBjZW50ZXJZKTsKICAgICBld2tfZnJhbWVfc2Nyb2xsX3NldChzbWFy
dERhdGEtPm1haW5fZnJhbWUsIC14LCAteSk7Ci0gICAgZXdrX2ZyYW1lX3Njcm9sbF9zaXplX2dl
dChzbWFydERhdGEtPm1haW5fZnJhbWUsICZ3LCAmaCk7Ci0gICAgZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfZml4X29mZnNldHMoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCB3LCBoKTsKKyAgICBl
d2tfZnJhbWVfc2Nyb2xsX3NpemVfZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgJndpZHRoLCAm
aGVpZ2h0KTsKKyAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0cyhzbWFydERh
dGEtPmJhY2tpbmdfc3RvcmUsIHdpZHRoLCBoZWlnaHQpOwogICAgIGV3a192aWV3X3Njcm9sbHNf
cHJvY2VzcyhzbWFydERhdGEpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGN1bGF0ZShzbWFy
dERhdGEtPmJhY2tpbmdfc3RvcmUpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGN1bGF0ZShz
bWFydERhdGEtPnNlbGYpOwogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Rpc2FibGVkX3Vw
ZGF0ZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBmYWxzZSk7Ci0gICAgcmV0dXJuIHI7
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfdGls
ZWRfc21hcnRfem9vbV93ZWFrX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGZs
b2F0IHpvb20sIEV2YXNfQ29vcmQgY2VudGVyWCwgRXZhc19Db29yZCBjZW50ZXJZKQpAQCAtMjcz
LDE2ICsyNzMsMTYgQEAgRXZhc19PYmplY3QqIGV3a192aWV3X3RpbGVkX2FkZChFdmFzKiBjYW52
YXMpCiAgICAgcmV0dXJuIGV2YXNfb2JqZWN0X3NtYXJ0X2FkZChjYW52YXMsIF9ld2tfdmlld190
aWxlZF9zbWFydF9jbGFzc19uZXcoKSk7CiB9CiAKLUV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdr
X3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVGlsZSkK
K0V3a19UaWxlX1VudXNlZF9DYWNoZSogZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX2dldChj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBz
ZCA9IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1RpbGUpOworICAgIEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNkID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLCAwKTsKICAgICByZXR1cm4gZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNkLT5iYWNraW5nX3N0b3JlKTsKIH0K
IAotdm9pZCBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfc2V0KEV2YXNfT2JqZWN0KiBld2tU
aWxlLCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGNhY2hlKQordm9pZCBld2tfdmlld190aWxlZF91
bnVzZWRfY2FjaGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfVGlsZV9VbnVzZWRfQ2Fj
aGUqIGNhY2hlKQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gZXdrX3ZpZXdfc21h
cnRfZGF0YV9nZXQoZXdrVGlsZSk7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBld2tf
dmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTihzZCk7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVf
c2V0KHNkLT5iYWNraW5nX3N0b3JlLCBjYWNoZSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>