<?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>88803</bug_id>
          
          <creation_ts>2012-06-11 13:51:38 -0700</creation_ts>
          <short_desc>[EFL] Move cursor related code from WidgetEfl to ewk_view and EflScreenUtilities.</short_desc>
          <delta_ts>2012-06-14 16:10:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>88633</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>cshu</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>646223</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-11 13:51:38 -0700</bug_when>
    <thetext>Because WebProcess can not control cursor,
setCursor should be passed to UIProcess via ChromeClient.

As a second step,
Move and refactor cursor related code from WidgetEfl to ewk_view and EflScreenUtilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646280</commentid>
    <comment_count>1</comment_count>
      <attachid>146916</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-11 14:37:07 -0700</bug_when>
    <thetext>Created attachment 146916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646295</commentid>
    <comment_count>2</comment_count>
      <attachid>146921</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-11 14:56:30 -0700</bug_when>
    <thetext>Created attachment 146921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646404</commentid>
    <comment_count>3</comment_count>
      <attachid>146957</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-11 16:28:55 -0700</bug_when>
    <thetext>Created attachment 146957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647585</commentid>
    <comment_count>4</comment_count>
      <attachid>146957</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-12 18:50:03 -0700</bug_when>
    <thetext>Comment on attachment 146957
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=146957&amp;action=review

Are there test cases covered by this patch ?

&gt; Source/WebCore/platform/efl/EflScreenUtilities.cpp:115
&gt; +    Ecore_X_Window win = ecore_evas_software_x11_window_get(ecoreEvas);

I prefer to use full name for variable. s/win/window/g, s/cur/cursor/g</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647650</commentid>
    <comment_count>5</comment_count>
      <attachid>147223</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-12 21:31:55 -0700</bug_when>
    <thetext>Created attachment 147223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647653</commentid>
    <comment_count>6</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-12 21:33:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 146957 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146957&amp;action=review
&gt; 
&gt; Are there test cases covered by this patch ?
&gt; 
I am not sure whether we can test cursor.

At least DRT/Efl can not test it because we just calls WebCore::paint.

&gt; &gt; Source/WebCore/platform/efl/EflScreenUtilities.cpp:115
&gt; &gt; +    Ecore_X_Window win = ecore_evas_software_x11_window_get(ecoreEvas);
&gt; 
&gt; I prefer to use full name for variable. s/win/window/g, s/cur/cursor/g

OK, I fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647850</commentid>
    <comment_count>7</comment_count>
      <attachid>147223</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-13 03:08:52 -0700</bug_when>
    <thetext>Comment on attachment 147223
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=147223&amp;action=review

From the viewpoint of refactoring, looks fine except for trivial nit.

&gt; Source/WebCore/platform/efl/EflScreenUtilities.cpp:134
&gt; +    const char *engine = ecore_evas_engine_name_get(ecoreEvas);

Style nit : Move &apos;*&apos; to variable side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647858</commentid>
    <comment_count>8</comment_count>
      <attachid>147275</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-13 03:25:09 -0700</bug_when>
    <thetext>Created attachment 147275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647860</commentid>
    <comment_count>9</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-13 03:26:03 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 147223 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147223&amp;action=review
&gt; 
&gt; From the viewpoint of refactoring, looks fine except for trivial nit.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflScreenUtilities.cpp:134
&gt; &gt; +    const char *engine = ecore_evas_engine_name_get(ecoreEvas);
&gt; 
&gt; Style nit : Move &apos;*&apos; to variable side.

Thanks, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648694</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-13 19:22:24 -0700</bug_when>
    <thetext>LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649150</commentid>
    <comment_count>11</comment_count>
      <attachid>147275</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2012-06-14 07:16:45 -0700</bug_when>
    <thetext>Comment on attachment 147275
Patch

r+ based on Gyuyoung&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649541</commentid>
    <comment_count>12</comment_count>
      <attachid>147275</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-14 15:32:11 -0700</bug_when>
    <thetext>Comment on attachment 147275
Patch

thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649593</commentid>
    <comment_count>13</comment_count>
      <attachid>147275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 16:10:02 -0700</bug_when>
    <thetext>Comment on attachment 147275
Patch

Clearing flags on attachment: 147275

Committed r120369: &lt;http://trac.webkit.org/changeset/120369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649594</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 16:10:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146916</attachid>
            <date>2012-06-11 14:37:07 -0700</date>
            <delta_ts>2012-06-11 14:56:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88803-20120612063705.patch</filename>
            <type>text/plain</type>
            <size>15916</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI5Y2U0YzcyNDQ2YWE0
ZGNlNjhkOGQ1YmQ2YzFmNmMzODk1NjU0Yi4uZTc4Zjk1MmQ4NmFiNmMzZGE4MTJlYzUyM2NkYmMx
ODAxMDMxNDdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA2LTExICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGN1
cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3ZpZXcgYW5kIEVmbFNjcmVl
blV0aWxpdGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmVjYXVzZSBXZWJQcm9jZXNzIGNhbiBub3QgY29udHJvbCBjdXJzb3IsCisgICAgICAgIHNl
dEN1cnNvciBzaG91bGQgYmUgcGFzc2VkIHRvIENocm9tZUNsaWVudCBsaWtlIG90aGVyIHBvcnRz
LgorCisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6IE1vdmVkIGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRp
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9XaWRnZXRF
ZmwuY3BwOiBSZW1vdmVzIGN1cnNvciByZWxhdGVkIGNvZGVzLgorICAgICAgICAoV2ViQ29yZTo6
V2lkZ2V0UHJpdmF0ZTo6V2lkZ2V0UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6
On5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRDdXJzb3IpOiBSZWRpcmVj
dCB0byBIb3N0V2luZG93LgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRFdmFzT2JqZWN0
KToKKwogMjAxMi0wNi0xMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlbW92ZSBzdXBwb3J0IGZvciBkaXNjb25uZWN0ZWQvZXhjbHVkZWQgZnJvbSBzZWFyY2ggZnJh
bWVzLCB0aGV5IGFyZSBub3QgdXNlZCBieSBTYWZhcmkgYW55bW9yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmlu
ZGV4IDg5NzAxMGUwY2UzMjExNTVkZWFiYzI2NzJiNTYxYmMxMGU0MzlkMTguLmJmNWI1YmE3OGUw
NTBiZGMxZmUwNmQwZWYwYTYwYzljYzc4OTI2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMi0wNi0xMSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgW0VGTF0gTW92ZSBjdXJzb3IgcmVsYXRlZCBjb2RlIGZyb20gV2lkZ2V0RWZs
IHRvIGV3a192aWV3IGFuZCBFZmxTY3JlZW5VdGlsaXRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODgwMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgV2ViUHJvY2VzcyBjYW4gbm90IGNv
bnRyb2wgY3Vyc29yLAorICAgICAgICBzZXRDdXJzb3Igc2hvdWxkIGJlIHBhc3NlZCB0byBDaHJv
bWVDbGllbnQgbGlrZSBvdGhlciBwb3J0cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnNl
dEN1cnNvcik6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmll
d19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KTogQ2hlY2sgd2hl
dGhlciBlY29yZV94IGNhbiBiZSB1c2VkLgorICAgICAgICAoX2V3a192aWV3X3ByaXZfZGVsKToK
KyAgICAgICAgKF9ld2tfdmlld19zbWFydF9hZGQpOgorICAgICAgICBDaGFuZ2Ugb3JkZXIgb2Yg
aW5pdGlhbGl6YXRpb24gdG8gdXNlIGJhc2Ugc3RydWN0dXJlIGluIF9ld2tfdmlld19wcml2X25l
dy4KKyAgICAgICAgKGV3a192aWV3X2N1cnNvcl9zZXQpOiBNb3ZlZCBmcm9tIFdpZGdldDo6YXBw
bHlDdXJzb3IuCisgICAgICAgICogZXdrL2V3a192aWV3X3ByaXZhdGUuaDogQWRkZWQgY3Vyb3Ny
IHJlbGF0ZWQgc3RydWN0dXJlLgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMDUgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBm
b3IgdGFyZ2V0LWRlbnNpdHlkcGkgaW4gdGhlIHZpZXdwb3J0IG1ldGEgdGFnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1dpZGdldC5oCmluZGV4IGZmYTFjYzA2OGNjZGFmZTNkZTA3N2I0MDQzMTJkNmMyMmY5ZTQz
YmMuLjhmM2VmNTc0YmE5ZGFlNmU3YzkyNzY1MDU0Y2ZiZTViYWZmMjM5MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oCkBAIC0yNzEsMTQgKzI3MSw2IEBAIHByaXZhdGU6CiAKICAgICBJbnRS
ZWN0IG1fZnJhbWU7IC8vIE5vdCB1c2VkIHdoZW4gYSBuYXRpdmUgd2lkZ2V0IGV4aXN0cy4KIAot
I2lmIFBMQVRGT1JNKEVGTCkKLSAgICAvLyBGSVhNRTogUGxlYXNlIHNlZSB0aGUgcHJldmlvdXMg
I2lmIFBMQVRGT1JNKEVGTCkgYmxvY2suCi0gICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzKCkgY29u
c3Q7Ci0KLSAgICB2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3IoKTsKLSAgICB2b2lkIGFwcGx5Q3Vy
c29yKCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oRUZMKQogICAg
IFdpZGdldFByaXZhdGUqIG1fZGF0YTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcAppbmRleCA3ZWE3YjdlNDdhNTk0OGI1
NDc0NDE3ODQ5YWZkMGM1NjA0NzMzN2MxLi45MDZmNGZmODE2ZDMxN2VjYTM5OWM4MzQyOGY1OTFh
NDQ4ZGI0MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2Ny
ZWVuVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2Ny
ZWVuVXRpbGl0aWVzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRl
ICJFZmxTY3JlZW5VdGlsaXRpZXMuaCIKIAogI2lmZGVmIEhBVkVfRUNPUkVfWAorI2luY2x1ZGUg
PEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9YLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0xMDIsNiArMTAzLDIx
IEBAIGludCBnZXRFY29yZUN1cnNvcihjb25zdCBTdHJpbmcmIGN1cnNvclN0cmluZykKIH0KICNl
bmRpZgogCit2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3IoRWNvcmVfRXZhcyogZWNvcmVFdmFzLCBj
b25zdCBjaGFyKiBjdXJzb3JTdHJpbmcpCit7CisjaWZkZWYgSEFWRV9FQ09SRV9YCisgICAgaW50
IHNoYXBlID0gZ2V0RWNvcmVDdXJzb3IoY3Vyc29yU3RyaW5nKTsKKyAgICBpZiAoc2hhcGUgPCBF
Q09SRV9YX0NVUlNPUl9YIHx8IHNoYXBlID4gRUNPUkVfWF9DVVJTT1JfWFRFUk0pIHsKKyAgICAg
ICAgTE9HX0VSUk9SKCJjYW5ub3QgbWFwIGFuIGVxdWl2YWxlbnQgWCBjdXJzb3IgZm9yIgorICAg
ICAgICAgICAgICAgICAgIiBjIHVyc29yIGdyb3VwICVzIiwgY3Vyc29yU3RyaW5nKTsKKyAgICAg
ICAgc2hhcGUgPSBFQ09SRV9YX0NVUlNPUl9MRUZUX1BUUjsKKyAgICB9CisgICAgRWNvcmVfWF9X
aW5kb3cgd2luID0gZWNvcmVfZXZhc19zb2Z0d2FyZV94MTFfd2luZG93X2dldChlY29yZUV2YXMp
OworICAgIEVjb3JlX1hfQ3Vyc29yIGN1ciA9IGVjb3JlX3hfY3Vyc29yX3NoYXBlX2dldChzaGFw
ZSk7CisgICAgZWNvcmVfeF93aW5kb3dfY3Vyc29yX3NldCh3aW4sIGN1cik7CisjZW5kaWYKK30K
KwogaW50IGdldERQSSgpCiB7CiAjaWZkZWYgSEFWRV9FQ09SRV9YCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmgKaW5kZXggMTQ0NWMyMjY2ZWFi
OTY2MjBmYzBkMDNmYzZkNDI3YjkzYzUwNmE0My4uMjM2ODAxNjliNTdmNDc5OTQ1MmQ4NTI2YzA1
YjEyNjQyNzFlZjE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vm
bFNjcmVlblV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxT
Y3JlZW5VdGlsaXRpZXMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDkgKzIzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jaWZkZWYgSEFWRV9FQ09SRV9YCi1pbnQgZ2V0RWNvcmVDdXJzb3Io
Y29uc3QgU3RyaW5nJiBjdXJzb3JTdHJpbmcpOwotI2VuZGlmCit2b2lkIGFwcGx5RmFsbGJhY2tD
dXJzb3IoRWNvcmVfRXZhcyosIGNvbnN0IGNoYXIqKTsKIAogaW50IGdldERQSSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCmluZGV4IDcxNDBkNjlmMjMzZThk
NTk1NDZiYTI0OTRiY2E1YmJjYTFlYWE4OGYuLjEzOGJkZmEzMDE3ZDVlZWIyNGUwMzViZTkzMWRk
YTBkMWQwYzlmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRn
ZXRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3Bw
CkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVy
IEZyZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4KICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDMsMTQgKzQzLDggQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAKICNpbmNsdWRlIDxFY29yZS5oPgotI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KLSNp
bmNsdWRlIDxFZGplLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgogCi0jaWZkZWYgSEFWRV9FQ09SRV9Y
Ci0jaW5jbHVkZSA8RWNvcmVfWC5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgV2lkZ2V0UHJpdmF0ZSB7CkBAIC02MiwxOSArNTYsNyBAQCBwdWJsaWM6CiAgICAgV2lk
Z2V0UHJpdmF0ZSgpCiAgICAgICAgIDogbV9ldmFzKDApCiAgICAgICAgICwgbV9ldmFzT2JqZWN0
KDApCi0gICAgICAgICwgbV9jdXJzb3JPYmplY3QoMCkKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSAg
ICAgICAgLCBtX2lzVXNpbmdFY29yZVgoZmFsc2UpCi0jZW5kaWYKICAgICB7IH0KLQotICAgIC8q
IGN1cnNvciAqLwotICAgIFN0cmluZyBtX2N1cnNvckdyb3VwOwotICAgIEV2YXNfT2JqZWN0KiBt
X2N1cnNvck9iamVjdDsKLQotI2lmZGVmIEhBVkVfRUNPUkVfWAotICAgIGJvb2wgbV9pc1VzaW5n
RWNvcmVYOwotI2VuZGlmCiB9OwogCiBXaWRnZXQ6OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRn
ZXQpCkBAIC05Miw5ICs3NCw2IEBAIFdpZGdldDo6fldpZGdldCgpCiB7CiAgICAgQVNTRVJUKCFw
YXJlbnQoKSk7CiAKLSAgICBpZiAobV9kYXRhLT5tX2N1cnNvck9iamVjdCkKLSAgICAgICAgZXZh
c19vYmplY3RfZGVsKG1fZGF0YS0+bV9jdXJzb3JPYmplY3QpOwotCiAgICAgZGVsZXRlIG1fZGF0
YTsKIH0KIApAQCAtMTMyLDcwICsxMTEsMTIgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wg
Zm9jdXNlZCkKIHsKIH0KIAotdm9pZCBXaWRnZXQ6OmFwcGx5RmFsbGJhY2tDdXJzb3IoKQotewot
I2lmZGVmIEhBVkVfRUNPUkVfWAotICAgIGlmIChtX2RhdGEtPm1faXNVc2luZ0Vjb3JlWCAmJiAh
bV9kYXRhLT5tX2N1cnNvckdyb3VwLmlzTnVsbCgpKSB7Ci0gICAgICAgIGludCBzaGFwZSA9IGdl
dEVjb3JlQ3Vyc29yKG1fZGF0YS0+bV9jdXJzb3JHcm91cCk7Ci0KLSAgICAgICAgaWYgKHNoYXBl
IDwgRUNPUkVfWF9DVVJTT1JfWCB8fCBzaGFwZSA+IEVDT1JFX1hfQ1VSU09SX1hURVJNKSB7Ci0g
ICAgICAgICAgICBMT0dfRVJST1IoImNhbm5vdCBtYXAgYW4gZXF1aXZhbGVudCBYIGN1cnNvciBm
b3IiCi0gICAgICAgICAgICAgICAgICAgICAgIiBjIHVyc29yIGdyb3VwICVzIiwgbV9kYXRhLT5t
X2N1cnNvckdyb3VwLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgc2hhcGUgPSBFQ09SRV9Y
X0NVUlNPUl9MRUZUX1BUUjsKLSAgICAgICAgfQotCi0gICAgICAgIEVjb3JlX1hfV2luZG93IHdp
biA9IGVjb3JlX2V2YXNfc29mdHdhcmVfeDExX3dpbmRvd19nZXQoZWNvcmVFdmFzKCkpOwotICAg
ICAgICBFY29yZV9YX0N1cnNvciBjdXIgPSBlY29yZV94X2N1cnNvcl9zaGFwZV9nZXQoc2hhcGUp
OwotICAgICAgICBlY29yZV94X3dpbmRvd19jdXJzb3Jfc2V0KHdpbiwgY3VyKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSNlbmRpZgotfQotCi12b2lkIFdpZGdldDo6YXBwbHlDdXJzb3IoKQot
ewotICAgIENTdHJpbmcgZmlsZSA9IGVkamVUaGVtZVJlY3Vyc2l2ZSgpLnV0ZjgoKTsKLQotICAg
IG1fZGF0YS0+bV9jdXJzb3JPYmplY3QgPSBlZGplX29iamVjdF9hZGQoZXZhcygpKTsKLSAgICBp
ZiAoIWZpbGUuaXNOdWxsKCkgJiYgIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1fZGF0YS0+bV9jdXJz
b3JPYmplY3QsIGZpbGUuZGF0YSgpLCBtX2RhdGEtPm1fY3Vyc29yR3JvdXAudXRmOCgpLmRhdGEo
KSkpIHsKLSAgICAgICAgZXZhc19vYmplY3RfZGVsKG1fZGF0YS0+bV9jdXJzb3JPYmplY3QpOwot
ICAgICAgICBtX2RhdGEtPm1fY3Vyc29yT2JqZWN0ID0gMDsKLSAgICAgICAgZWNvcmVfZXZhc19v
YmplY3RfY3Vyc29yX3NldChlY29yZUV2YXMoKSwgMCwgMCwgMCwgMCk7Ci0gICAgICAgIGFwcGx5
RmFsbGJhY2tDdXJzb3IoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBFdmFzX0Nvb3JkIHgsIHks
IHcsIGg7Ci0gICAgICAgIGNvbnN0IGNoYXIgKmQ7Ci0KLSAgICAgICAgZWRqZV9vYmplY3Rfc2l6
ZV9taW5fZ2V0KG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsICZ3LCAmaCk7Ci0gICAgICAgIGlmICgo
dyA8PSAwKSB8fCAoaCA8PSAwKSkKLSAgICAgICAgICAgIGVkamVfb2JqZWN0X3NpemVfbWluX2Nh
bGMobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgJncsICZoKTsKLSAgICAgICAgaWYgKCh3IDw9IDAp
IHx8IChoIDw9IDApKQotICAgICAgICAgICAgdyA9IGggPSAxNjsKLSAgICAgICAgZXZhc19vYmpl
Y3RfcmVzaXplKG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsIHcsIGgpOwotCi0gICAgICAgIGQgPSBl
ZGplX29iamVjdF9kYXRhX2dldChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LCAiaG90LngiKTsKLSAg
ICAgICAgeCA9IGQgPyBhdG9pKGQpIDogMDsKLQotICAgICAgICBkID0gZWRqZV9vYmplY3RfZGF0
YV9nZXQobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgImhvdC55Iik7Ci0gICAgICAgIHkgPSBkID8g
YXRvaShkKSA6IDA7Ci0KLSAgICAgICAgZWNvcmVfZXZhc19vYmplY3RfY3Vyc29yX3NldChlY29y
ZUV2YXMoKSwgbV9kYXRhLT5tX2N1cnNvck9iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFVkFTX0xBWUVSX01BWCwgeCwgeSk7Ci0gICAgfQotfQotCiB2b2lkIFdp
ZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogewotICAgIGlmICghZXZhcygp
KQotICAgICAgICAgcmV0dXJuOwotCi0gICAgY29uc3QgY2hhciogZ3JvdXAgPSBjdXJzb3IucGxh
dGZvcm1DdXJzb3IoKTsKLSAgICBpZiAoIWdyb3VwIHx8IFN0cmluZyhncm91cCkgPT0gbV9kYXRh
LT5tX2N1cnNvckdyb3VwKQorICAgIFNjcm9sbFZpZXcqIHZpZXcgPSByb290KCk7CisgICAgaWYg
KCF2aWV3KQogICAgICAgICByZXR1cm47Ci0KLSAgICBtX2RhdGEtPm1fY3Vyc29yR3JvdXAgPSBn
cm91cDsKLQotICAgIGFwcGx5Q3Vyc29yKCk7CisgICAgdmlldy0+aG9zdFdpbmRvdygpLT5zZXRD
dXJzb3IoY3Vyc29yKTsKIH0KIAogdm9pZCBXaWRnZXQ6OnNob3coKQpAQCAtMjUyLDEyICsxNzMs
NiBAQCBFdmFzKiBXaWRnZXQ6OmV2YXMoKSBjb25zdAogICAgIHJldHVybiBtX2RhdGEtPm1fZXZh
czsKIH0KIAotRWNvcmVfRXZhcyogV2lkZ2V0OjplY29yZUV2YXMoKSBjb25zdAotewotICAgIC8v
IEZJWE1FIEVGTDogWFhYIGFzc3VtZSBldmFzIHdhcyBjcmVhdGVkIGJ5IGVjb3JlX2V2YXMKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8RWNvcmVfRXZhcyo+KGV2YXNfZGF0YV9hdHRhY2hfZ2V0KGV2
YXMoKSkpOwotfQotCiB2b2lkIFdpZGdldDo6c2V0RXZhc09iamVjdChFdmFzX09iamVjdCAqb2Jq
ZWN0KQogewogICAgIC8vIEZJWE1FOiBzdHVkeSBwbGF0Zm9ybVdpZGdldCgpIGFuZCB1c2UgaXQK
QEAgLTI2NywyMiArMTgyLDExIEBAIHZvaWQgV2lkZ2V0OjpzZXRFdmFzT2JqZWN0KEV2YXNfT2Jq
ZWN0ICpvYmplY3QpCiAgICAgbV9kYXRhLT5tX2V2YXNPYmplY3QgPSBvYmplY3Q7CiAgICAgaWYg
KCFvYmplY3QpIHsKICAgICAgICAgbV9kYXRhLT5tX2V2YXMgPSAwOwotI2lmZGVmIEhBVkVfRUNP
UkVfWAotICAgICAgICBtX2RhdGEtPm1faXNVc2luZ0Vjb3JlWCA9IGZhbHNlOwotI2VuZGlmCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2RhdGEtPm1fZXZhcyA9IGV2YXNfb2JqZWN0
X2V2YXNfZ2V0KG9iamVjdCk7CiAKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSAgICBjb25zdCBjaGFy
ICplbmdpbmUgPSBlY29yZV9ldmFzX2VuZ2luZV9uYW1lX2dldChlY29yZUV2YXMoKSk7Ci0gICAg
bV9kYXRhLT5tX2lzVXNpbmdFY29yZVggPSAoIXN0cmNtcChlbmdpbmUsICJzb2Z0d2FyZV94MTEi
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFzdHJjbXAoZW5naW5lLCAic29m
dHdhcmVfeGNiIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhc3RyY21wKGVu
Z2luZSwgInNvZnR3YXJlXzE2X3gxMSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fHwgIXN0cm5jbXAoZW5naW5lLCAieHJlbmRlciIsIHNpemVvZigieHJlbmRlciIpIC0gMSkpOwot
I2VuZGlmCi0KICAgICBXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmlu
ZGV4IDYwZDEzZTUwYWY2MDExNDhlNTVlZGEwMzlhYzA1NDU5NTFiZDY2NGUuLmEyMzRiZjlmNzE5
MDdkMjYyODZmZGViYWZmOTBmYWVmOGQ3NzI3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNCw3ICs0LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbgogICogQ29w
eXJpZ2h0IChDKSAyMDA4IERpZWdvIEdvbnphbGV6CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAg
U2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcwogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
NDk5LDkgKzQ5OSw5IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpmb3JtU3RhdGVEaWRDaGFuZ2Uo
Y29uc3QgTm9kZSopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGll
bnRFZmw6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OnNl
dEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIGV3a192aWV3X2N1cnNvcl9zZXQobV92aWV3LCBjdXJzb3IpOwogfQogCiB2b2lkIENocm9t
ZUNsaWVudEVmbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA5Nzk4ZTk0Zjc3NmFjMjExNjUzYjNkZjVmOWRjMDFk
MTcxYjlhOTUyLi4xMWRkYzBjM2NiNzY2YzNiMDU5ZTdhNTA5MGQwNWMxODQ1M2M0N2EwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTY2LDYgKzY2LDggQEAKICNpbmNsdWRlICJl
d2tfdmlld19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3dpbmRvd19mZWF0dXJlc19wcml2YXRl
LmgiCiAjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CisjaW5jbHVk
ZSA8RWRqZS5oPgogI2luY2x1ZGUgPEVpbmEuaD4KICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVk
ZSA8ZWluYV9zYWZldHlfY2hlY2tzLmg+CkBAIC0zNDAsNiArMzQyLDExIEBAIHN0cnVjdCBfRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgRWNvcmVfQW5pbWF0b3IqIGFuaW1hdG9yOwog
ICAgIH0gYW5pbWF0ZWRab29tOwogICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbjsKKyAgICBj
b25zdCBjaGFyKiBjdXJzb3JHcm91cDsKKyAgICBFdmFzX09iamVjdCogY3Vyc29yT2JqZWN0Owor
I2lmZGVmIEhBVkVfRUNPUkVfWAorICAgIGJvb2wgaXNVc2luZ0Vjb3JlWDsKKyNlbmRpZgogfTsK
IAogI2lmbmRlZiBFV0tfVFlQRV9DSEVDSwpAQCAtODU3LDYgKzg2NCwxMiBAQCBzdGF0aWMgRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhKQogCiAgICAgcHJpdi0+cGFnZUNsaWVudCA9IGFkb3B0UHRyKG5ldyBQYWdl
Q2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZikpOwogCisjaWZkZWYgSEFWRV9FQ09SRV9YCisgICAg
RWNvcmVfRXZhcyogZWNvcmVFdmFzID0gZWNvcmVfZXZhc19lY29yZV9ldmFzX2dldChzbWFydERh
dGEtPmJhc2UuZXZhcyk7CisgICAgY29uc3QgY2hhciAqZW5naW5lID0gZWNvcmVfZXZhc19lbmdp
bmVfbmFtZV9nZXQoZWNvcmVFdmFzKTsKKyAgICBwcml2LT5pc1VzaW5nRWNvcmVYID0gIXN0cmNt
cChlbmdpbmUsICJzb2Z0d2FyZV94MTEiKSB8fCAhc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3hj
YiIpIHx8ICFzdHJjbXAoZW5naW5lLCAic29mdHdhcmVfMTZfeDExIikgfHwgIXN0cm5jbXAoZW5n
aW5lLCAieHJlbmRlciIsIHNpemVvZigieHJlbmRlciIpIC0gMSk7CisjZW5kaWYKKwogICAgIHJl
dHVybiBwcml2OwogfQogCkBAIC04ODcsNiArOTAwLDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3
X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIAogICAgIGV3a19oaXN0b3J5
X2ZyZWUocHJpdi0+aGlzdG9yeSk7CiAKKyAgICBpZiAocHJpdi0+Y3Vyc29yT2JqZWN0KQorICAg
ICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0KTsKKwogICAgIGRlbGV0ZSBw
cml2OwogfQogCkBAIC05MTMsMTEgKzkyOSwxMSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21h
cnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHNtYXJ0RGF0YS0+YmdfY29sb3IuYSA9
IDI1NTsKIAogICAgIHNtYXJ0RGF0YS0+c2VsZiA9IGV3a1ZpZXc7Ci0gICAgc21hcnREYXRhLT5f
cHJpdiA9IF9ld2tfdmlld19wcml2X25ldyhzbWFydERhdGEpOwogICAgIHNtYXJ0RGF0YS0+YXBp
ID0gYXBpOwogCiAgICAgX3BhcmVudF9zYy5hZGQoZXdrVmlldyk7CiAKKyAgICBzbWFydERhdGEt
Pl9wcml2ID0gX2V3a192aWV3X3ByaXZfbmV3KHNtYXJ0RGF0YSk7CiAgICAgaWYgKCFzbWFydERh
dGEtPl9wcml2KQogICAgICAgICByZXR1cm47CiAKQEAgLTQzNjgsNiArNDM4NCw1NyBAQCBFaW5h
X0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFaW5hX0Jvb2wgZW5hYmxlKQogI2VuZGlmCiB9CiAKK3ZvaWQgZXdrX3ZpZXdfY3Vyc29yX3Nl
dChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCit7
CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisgICAgY29u
c3QgY2hhciogZ3JvdXAgPSBjdXJzb3IucGxhdGZvcm1DdXJzb3IoKTsKKyAgICBpZiAoIWdyb3Vw
IHx8IGdyb3VwID09IHByaXYtPmN1cnNvckdyb3VwKQorICAgICAgICByZXR1cm47CisKKyAgICBw
cml2LT5jdXJzb3JHcm91cCA9IGdyb3VwOworCisgICAgaWYgKHByaXYtPmN1cnNvck9iamVjdCkK
KyAgICAgICAgZXZhc19vYmplY3RfZGVsKHByaXYtPmN1cnNvck9iamVjdCk7CisgICAgcHJpdi0+
Y3Vyc29yT2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKKwor
ICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQoc21h
cnREYXRhLT5iYXNlLmV2YXMpOworICAgIGlmICghcHJpdi0+c2V0dGluZ3MudGhlbWUgfHwgIWVk
amVfb2JqZWN0X2ZpbGVfc2V0KHByaXYtPmN1cnNvck9iamVjdCwgcHJpdi0+c2V0dGluZ3MudGhl
bWUsIGdyb3VwKSkgeworICAgICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0
KTsKKyAgICAgICAgcHJpdi0+Y3Vyc29yT2JqZWN0ID0gMDsKKworICAgICAgICBlY29yZV9ldmFz
X29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZhcywgMCwgMCwgMCwgMCk7CisjaWZkZWYgSEFWRV9F
Q09SRV9YCisgICAgICAgIGlmIChwcml2LT5pc1VzaW5nRWNvcmVYKQorICAgICAgICAgICAgV2Vi
Q29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcihlY29yZUV2YXMsIGdyb3VwKTsKKyNlbmRpZgorICAg
IH0gZWxzZSB7CisgICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKKyAgICAgICAgZWRq
ZV9vYmplY3Rfc2l6ZV9taW5fZ2V0KHByaXYtPmN1cnNvck9iamVjdCwgJndpZHRoLCAmaGVpZ2h0
KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApCisgICAgICAgICAgICBl
ZGplX29iamVjdF9zaXplX21pbl9jYWxjKHByaXYtPmN1cnNvck9iamVjdCwgJndpZHRoLCAmaGVp
Z2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAgICAgICAg
ICAgIHdpZHRoID0gMTY7CisgICAgICAgICAgICBoZWlnaHQgPSAxNjsKKyAgICAgICAgfQorICAg
ICAgICBldmFzX29iamVjdF9yZXNpemUocHJpdi0+Y3Vyc29yT2JqZWN0LCB3aWR0aCwgaGVpZ2h0
KTsKKworICAgICAgICBjb25zdCBjaGFyKiBkYXRhOworICAgICAgICBpbnQgaG90c3BvdFggPSAw
OworICAgICAgICBkYXRhID0gZWRqZV9vYmplY3RfZGF0YV9nZXQocHJpdi0+Y3Vyc29yT2JqZWN0
LCAiaG90LngiKTsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICBob3RzcG90WCA9IGF0
b2koZGF0YSk7CisKKyAgICAgICAgaW50IGhvdHNwb3RZID0gMDsKKyAgICAgICAgZGF0YSA9IGVk
amVfb2JqZWN0X2RhdGFfZ2V0KHByaXYtPmN1cnNvck9iamVjdCwgImhvdC55Iik7CisgICAgICAg
IGlmIChkYXRhKQorICAgICAgICAgICAgaG90c3BvdFkgPSBhdG9pKGRhdGEpOworCisgICAgICAg
IGVjb3JlX2V2YXNfb2JqZWN0X2N1cnNvcl9zZXQoZWNvcmVFdmFzLCBwcml2LT5jdXJzb3JPYmpl
Y3QsIEVWQVNfTEFZRVJfTUFYLCBob3RzcG90WCwgaG90c3BvdFkpOworICAgIH0KK30KKwogbmFt
ZXNwYWNlIEVXS1ByaXZhdGUgewogCiBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZShjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5o
CmluZGV4IGI3NDRlMTVhN2I2ZTRiNzgxYmUwMDU3YzAzNTdiMTMyOGRkMDAzNTkuLmI3MGU3NTVi
MTYwOTNhNTNjZTZjZDM3OGUzNjNkYzY5MjNkZjFkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzQsNiArMzQsNyBAQCBjbGFzcyBDb2xvcjsKIGNsYXNz
IENvbG9yQ2hvb3NlckNsaWVudDsKICNlbmRpZgogCitjbGFzcyBDdXJzb3I7CiBjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7CiB9CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgY29uc3QgY2hhciBld2tWaWV3U2lu
Z2xlTmFtZVtdID0gIkV3a19WaWV3X1NpbmdsZSI7CiAgICAgICAgIHJldHVybiBfX1ZBX0FSR1Nf
XzsgXAogICAgIH0KIAordm9pZCBld2tfdmlld19jdXJzb3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcik7CiB2b2lkIGV3a192aWV3X3JlYWR5
KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfaW5wdXRfbWV0aG9kX3N0YXRl
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBhY3RpdmUpOwogdm9pZCBld2tfdmlld190
aXRsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19UZXh0X1dpdGhfRGlyZWN0
aW9uKiB0aXRsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146921</attachid>
            <date>2012-06-11 14:56:30 -0700</date>
            <delta_ts>2012-06-11 16:28:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88803-20120612065629.patch</filename>
            <type>text/plain</type>
            <size>16282</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI5Y2U0YzcyNDQ2YWE0
ZGNlNjhkOGQ1YmQ2YzFmNmMzODk1NjU0Yi4uN2FhNmJmYTIwNDFlMGQwNTQwOTkxYjQwNjE2YjU1
YzAxNzhhMmE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTExICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGN1
cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3ZpZXcgYW5kIEVmbFNjcmVl
blV0aWxpdGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmVjYXVzZSBXZWJQcm9jZXNzIGNhbiBub3QgY29udHJvbCBjdXJzb3IsCisgICAgICAgIHNl
dEN1cnNvciBzaG91bGQgYmUgcGFzc2VkIHRvIENocm9tZUNsaWVudCBsaWtlIG90aGVyIHBvcnRz
LgorCisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6IE1vdmVkIGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWCk6IE1vdmVk
IGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lk
Z2V0RWZsLmNwcDogUmVtb3ZlcyBjdXJzb3IgcmVsYXRlZCBjb2Rlcy4KKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldFByaXZhdGU6OldpZGdldFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0Ojp+V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Q3Vyc29yKTogUmVk
aXJlY3QgdG8gSG9zdFdpbmRvdy4KKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0RXZhc09i
amVjdCk6CisKIDIwMTItMDYtMTEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZGlzY29ubmVjdGVkL2V4Y2x1ZGVkIGZyb20gc2VhcmNo
IGZyYW1lcywgdGhleSBhcmUgbm90IHVzZWQgYnkgU2FmYXJpIGFueW1vcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwppbmRleCA4OTcwMTBlMGNlMzIxMTU1ZGVhYmMyNjcyYjU2MWJjMTBlNDM5ZDE4Li5hODhhMGY1
NDFjZDQyYzVjYTE4Y2E5NWZjMjQyNjcxNjhjMTMyMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTItMDYtMTEgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdIE1vdmUgY3Vyc29yIHJlbGF0ZWQgY29kZSBmcm9tIFdpZGdl
dEVmbCB0byBld2tfdmlldyBhbmQgRWZsU2NyZWVuVXRpbGl0aWVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWNhdXNlIFdlYlByb2Nlc3MgY2FuIG5v
dCBjb250cm9sIGN1cnNvciwKKyAgICAgICAgc2V0Q3Vyc29yIHNob3VsZCBiZSBwYXNzZWQgdG8g
Q2hyb21lQ2xpZW50IGxpa2Ugb3RoZXIgcG9ydHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZs
OjpzZXRDdXJzb3IpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6IENoZWNr
IHdoZXRoZXIgZWNvcmVfeCBjYW4gYmUgdXNlZC4KKyAgICAgICAgKF9ld2tfdmlld19wcml2X2Rl
bCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfYWRkKToKKyAgICAgICAgQ2hhbmdlIG9yZGVy
IG9mIGluaXRpYWxpemF0aW9uIHRvIHVzZSBiYXNlIHN0cnVjdHVyZSBpbiBfZXdrX3ZpZXdfcHJp
dl9uZXcuCisgICAgICAgIChld2tfdmlld19jdXJzb3Jfc2V0KTogTW92ZWQgZnJvbSBXaWRnZXQ6
OmFwcGx5Q3Vyc29yLgorICAgICAgICAqIGV3ay9ld2tfdmlld19wcml2YXRlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKwogMjAxMi0wNi0wNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciB0YXJnZXQtZGVuc2l0eWRwaSBpbiB0aGUg
dmlld3BvcnQgbWV0YSB0YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dp
ZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggZmZhMWNjMDY4
Y2NkYWZlM2RlMDc3YjQwNDMxMmQ2YzIyZjllNDNiYy4uOGYzZWY1NzRiYTlkYWU2ZTdjOTI3NjUw
NTRjZmJlNWJhZmYyMzkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lk
Z2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTI3MSwxNCAr
MjcxLDYgQEAgcHJpdmF0ZToKIAogICAgIEludFJlY3QgbV9mcmFtZTsgLy8gTm90IHVzZWQgd2hl
biBhIG5hdGl2ZSB3aWRnZXQgZXhpc3RzLgogCi0jaWYgUExBVEZPUk0oRUZMKQotICAgIC8vIEZJ
WE1FOiBQbGVhc2Ugc2VlIHRoZSBwcmV2aW91cyAjaWYgUExBVEZPUk0oRUZMKSBibG9jay4KLSAg
ICBFY29yZV9FdmFzKiBlY29yZUV2YXMoKSBjb25zdDsKLQotICAgIHZvaWQgYXBwbHlGYWxsYmFj
a0N1cnNvcigpOwotICAgIHZvaWQgYXBwbHlDdXJzb3IoKTsKLSNlbmRpZgotCiAjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShFRkwpCiAgICAgV2lkZ2V0UHJpdmF0ZSogbV9kYXRhOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRp
ZXMuY3BwCmluZGV4IDdlYTdiN2U0N2E1OTQ4YjU0NzQ0MTc4NDlhZmQwYzU2MDQ3MzM3YzEuLjJl
ZWY1ODZlMDE0MmM1MzE0OTVkOGFkNjdiZjQ0YmJiZDAzMjY5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgIkVmbFNjcmVlblV0aWxpdGllcy5oIgogCiAj
aWZkZWYgSEFWRV9FQ09SRV9YCisjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVj
b3JlX1guaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KQEAgLTEwMiw2ICsxMDMsMjEgQEAgaW50IGdldEVjb3JlQ3Vyc29yKGNvbnN0
IFN0cmluZyYgY3Vyc29yU3RyaW5nKQogfQogI2VuZGlmCiAKK3ZvaWQgYXBwbHlGYWxsYmFja0N1
cnNvcihFY29yZV9FdmFzKiBlY29yZUV2YXMsIGNvbnN0IGNoYXIqIGN1cnNvclN0cmluZykKK3sK
KyNpZmRlZiBIQVZFX0VDT1JFX1gKKyAgICBpbnQgc2hhcGUgPSBnZXRFY29yZUN1cnNvcihjdXJz
b3JTdHJpbmcpOworICAgIGlmIChzaGFwZSA8IEVDT1JFX1hfQ1VSU09SX1ggfHwgc2hhcGUgPiBF
Q09SRV9YX0NVUlNPUl9YVEVSTSkgeworICAgICAgICBMT0dfRVJST1IoImNhbm5vdCBtYXAgYW4g
ZXF1aXZhbGVudCBYIGN1cnNvciBmb3IiCisgICAgICAgICAgICAgICAgICAiIGMgdXJzb3IgZ3Jv
dXAgJXMiLCBjdXJzb3JTdHJpbmcpOworICAgICAgICBzaGFwZSA9IEVDT1JFX1hfQ1VSU09SX0xF
RlRfUFRSOworICAgIH0KKyAgICBFY29yZV9YX1dpbmRvdyB3aW4gPSBlY29yZV9ldmFzX3NvZnR3
YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CisgICAgRWNvcmVfWF9DdXJzb3IgY3VyID0g
ZWNvcmVfeF9jdXJzb3Jfc2hhcGVfZ2V0KHNoYXBlKTsKKyAgICBlY29yZV94X3dpbmRvd19jdXJz
b3Jfc2V0KHdpbiwgY3VyKTsKKyNlbmRpZgorfQorCiBpbnQgZ2V0RFBJKCkKIHsKICNpZmRlZiBI
QVZFX0VDT1JFX1gKQEAgLTExMSw0ICsxMjcsMTggQEAgaW50IGdldERQSSgpCiAjZW5kaWYKIH0K
IAorYm9vbCBpc1VzaW5nRWNvcmVYKGNvbnN0IEV2YXMqIGV2YXMpCit7CisjaWZkZWYgSEFWRV9F
Q09SRV9YCisgICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzID0gZWNvcmVfZXZhc19lY29yZV9ldmFz
X2dldChldmFzKTsKKyAgICBjb25zdCBjaGFyICplbmdpbmUgPSBlY29yZV9ldmFzX2VuZ2luZV9u
YW1lX2dldChlY29yZUV2YXMpOworICAgIHJldHVybiAhc3RyY21wKGVuZ2luZSwgInNvZnR3YXJl
X3gxMSIpCisgICAgICAgIHx8ICFzdHJjbXAoZW5naW5lLCAic29mdHdhcmVfeGNiIikKKyAgICAg
ICAgfHwgIXN0cmNtcChlbmdpbmUsICJzb2Z0d2FyZV8xNl94MTEiKQorICAgICAgICB8fCAhc3Ry
bmNtcChlbmdpbmUsICJ4cmVuZGVyIiwgc2l6ZW9mKCJ4cmVuZGVyIikgLSAxKTsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaAppbmRl
eCAxNDQ1YzIyNjZlYWI5NjYyMGZjMGQwM2ZjNmQ0MjdiOTNjNTA2YTQzLi43Mjc0OGRlNWM1NmFl
NmIyOWVmOTU0MzcwNDhkYWU5Mjc0YWE1NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcwogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsMTIgKzIz
LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmZGVmIEhBVkVfRUNPUkVfWAotaW50
IGdldEVjb3JlQ3Vyc29yKGNvbnN0IFN0cmluZyYgY3Vyc29yU3RyaW5nKTsKLSNlbmRpZgordm9p
ZCBhcHBseUZhbGxiYWNrQ3Vyc29yKEVjb3JlX0V2YXMqLCBjb25zdCBjaGFyKik7CiAKIGludCBn
ZXREUEkoKTsKIAorYm9vbCBpc1VzaW5nRWNvcmVYKEVjb3JlX0V2YXMqKTsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRWZsU2NyZWVuVXRpbGl0aWVzX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggNzE0MGQ2OWYyMzNlOGQ1OTU0
NmJhMjQ5NGJjYTViYmNhMWVhYTg4Zi4uMTM4YmRmYTMwMTdkNWVlYjI0ZTAzNWJlOTMxZGRhMGQx
ZDBjOWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAg
LTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbgog
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00MywxNCArNDMsOCBAQAogI2luY2x1ZGUgIlBhZ2Uu
aCIKIAogI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1
ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxFdmFzLmg+CiAKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSNp
bmNsdWRlIDxFY29yZV9YLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBXaWRnZXRQcml2YXRlIHsKQEAgLTYyLDE5ICs1Niw3IEBAIHB1YmxpYzoKICAgICBXaWRnZXRQ
cml2YXRlKCkKICAgICAgICAgOiBtX2V2YXMoMCkKICAgICAgICAgLCBtX2V2YXNPYmplY3QoMCkK
LSAgICAgICAgLCBtX2N1cnNvck9iamVjdCgwKQotI2lmZGVmIEhBVkVfRUNPUkVfWAotICAgICAg
ICAsIG1faXNVc2luZ0Vjb3JlWChmYWxzZSkKLSNlbmRpZgogICAgIHsgfQotCi0gICAgLyogY3Vy
c29yICovCi0gICAgU3RyaW5nIG1fY3Vyc29yR3JvdXA7Ci0gICAgRXZhc19PYmplY3QqIG1fY3Vy
c29yT2JqZWN0OwotCi0jaWZkZWYgSEFWRV9FQ09SRV9YCi0gICAgYm9vbCBtX2lzVXNpbmdFY29y
ZVg7Ci0jZW5kaWYKIH07CiAKIFdpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkK
QEAgLTkyLDkgKzc0LDYgQEAgV2lkZ2V0Ojp+V2lkZ2V0KCkKIHsKICAgICBBU1NFUlQoIXBhcmVu
dCgpKTsKIAotICAgIGlmIChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0KQotICAgICAgICBldmFzX29i
amVjdF9kZWwobV9kYXRhLT5tX2N1cnNvck9iamVjdCk7Ci0KICAgICBkZWxldGUgbV9kYXRhOwog
fQogCkBAIC0xMzIsNzAgKzExMSwxMiBAQCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCBmb2N1
c2VkKQogewogfQogCi12b2lkIFdpZGdldDo6YXBwbHlGYWxsYmFja0N1cnNvcigpCi17Ci0jaWZk
ZWYgSEFWRV9FQ09SRV9YCi0gICAgaWYgKG1fZGF0YS0+bV9pc1VzaW5nRWNvcmVYICYmICFtX2Rh
dGEtPm1fY3Vyc29yR3JvdXAuaXNOdWxsKCkpIHsKLSAgICAgICAgaW50IHNoYXBlID0gZ2V0RWNv
cmVDdXJzb3IobV9kYXRhLT5tX2N1cnNvckdyb3VwKTsKLQotICAgICAgICBpZiAoc2hhcGUgPCBF
Q09SRV9YX0NVUlNPUl9YIHx8IHNoYXBlID4gRUNPUkVfWF9DVVJTT1JfWFRFUk0pIHsKLSAgICAg
ICAgICAgIExPR19FUlJPUigiY2Fubm90IG1hcCBhbiBlcXVpdmFsZW50IFggY3Vyc29yIGZvciIK
LSAgICAgICAgICAgICAgICAgICAgICAiIGMgdXJzb3IgZ3JvdXAgJXMiLCBtX2RhdGEtPm1fY3Vy
c29yR3JvdXAudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBzaGFwZSA9IEVDT1JFX1hfQ1VS
U09SX0xFRlRfUFRSOwotICAgICAgICB9Ci0KLSAgICAgICAgRWNvcmVfWF9XaW5kb3cgd2luID0g
ZWNvcmVfZXZhc19zb2Z0d2FyZV94MTFfd2luZG93X2dldChlY29yZUV2YXMoKSk7Ci0gICAgICAg
IEVjb3JlX1hfQ3Vyc29yIGN1ciA9IGVjb3JlX3hfY3Vyc29yX3NoYXBlX2dldChzaGFwZSk7Ci0g
ICAgICAgIGVjb3JlX3hfd2luZG93X2N1cnNvcl9zZXQod2luLCBjdXIpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotI2VuZGlmCi19Ci0KLXZvaWQgV2lkZ2V0OjphcHBseUN1cnNvcigpCi17Ci0g
ICAgQ1N0cmluZyBmaWxlID0gZWRqZVRoZW1lUmVjdXJzaXZlKCkudXRmOCgpOwotCi0gICAgbV9k
YXRhLT5tX2N1cnNvck9iamVjdCA9IGVkamVfb2JqZWN0X2FkZChldmFzKCkpOwotICAgIGlmICgh
ZmlsZS5pc051bGwoKSAmJiAhZWRqZV9vYmplY3RfZmlsZV9zZXQobV9kYXRhLT5tX2N1cnNvck9i
amVjdCwgZmlsZS5kYXRhKCksIG1fZGF0YS0+bV9jdXJzb3JHcm91cC51dGY4KCkuZGF0YSgpKSkg
ewotICAgICAgICBldmFzX29iamVjdF9kZWwobV9kYXRhLT5tX2N1cnNvck9iamVjdCk7Ci0gICAg
ICAgIG1fZGF0YS0+bV9jdXJzb3JPYmplY3QgPSAwOwotICAgICAgICBlY29yZV9ldmFzX29iamVj
dF9jdXJzb3Jfc2V0KGVjb3JlRXZhcygpLCAwLCAwLCAwLCAwKTsKLSAgICAgICAgYXBwbHlGYWxs
YmFja0N1cnNvcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgdywg
aDsKLSAgICAgICAgY29uc3QgY2hhciAqZDsKLQotICAgICAgICBlZGplX29iamVjdF9zaXplX21p
bl9nZXQobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgJncsICZoKTsKLSAgICAgICAgaWYgKCh3IDw9
IDApIHx8IChoIDw9IDApKQotICAgICAgICAgICAgZWRqZV9vYmplY3Rfc2l6ZV9taW5fY2FsYyht
X2RhdGEtPm1fY3Vyc29yT2JqZWN0LCAmdywgJmgpOwotICAgICAgICBpZiAoKHcgPD0gMCkgfHwg
KGggPD0gMCkpCi0gICAgICAgICAgICB3ID0gaCA9IDE2OwotICAgICAgICBldmFzX29iamVjdF9y
ZXNpemUobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgdywgaCk7Ci0KLSAgICAgICAgZCA9IGVkamVf
b2JqZWN0X2RhdGFfZ2V0KG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsICJob3QueCIpOwotICAgICAg
ICB4ID0gZCA/IGF0b2koZCkgOiAwOwotCi0gICAgICAgIGQgPSBlZGplX29iamVjdF9kYXRhX2dl
dChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LCAiaG90LnkiKTsKLSAgICAgICAgeSA9IGQgPyBhdG9p
KGQpIDogMDsKLQotICAgICAgICBlY29yZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZh
cygpLCBtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWQVNfTEFZRVJfTUFYLCB4LCB5KTsKLSAgICB9Ci19Ci0KIHZvaWQgV2lkZ2V0
OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7Ci0gICAgaWYgKCFldmFzKCkpCi0g
ICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBjaGFyKiBncm91cCA9IGN1cnNvci5wbGF0Zm9y
bUN1cnNvcigpOwotICAgIGlmICghZ3JvdXAgfHwgU3RyaW5nKGdyb3VwKSA9PSBtX2RhdGEtPm1f
Y3Vyc29yR3JvdXApCisgICAgU2Nyb2xsVmlldyogdmlldyA9IHJvb3QoKTsKKyAgICBpZiAoIXZp
ZXcpCiAgICAgICAgIHJldHVybjsKLQotICAgIG1fZGF0YS0+bV9jdXJzb3JHcm91cCA9IGdyb3Vw
OwotCi0gICAgYXBwbHlDdXJzb3IoKTsKKyAgICB2aWV3LT5ob3N0V2luZG93KCktPnNldEN1cnNv
cihjdXJzb3IpOwogfQogCiB2b2lkIFdpZGdldDo6c2hvdygpCkBAIC0yNTIsMTIgKzE3Myw2IEBA
IEV2YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YS0+bV9ldmFzOwog
fQogCi1FY29yZV9FdmFzKiBXaWRnZXQ6OmVjb3JlRXZhcygpIGNvbnN0Ci17Ci0gICAgLy8gRklY
TUUgRUZMOiBYWFggYXNzdW1lIGV2YXMgd2FzIGNyZWF0ZWQgYnkgZWNvcmVfZXZhcwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxFY29yZV9FdmFzKj4oZXZhc19kYXRhX2F0dGFjaF9nZXQoZXZhcygp
KSk7Ci19Ci0KIHZvaWQgV2lkZ2V0OjpzZXRFdmFzT2JqZWN0KEV2YXNfT2JqZWN0ICpvYmplY3Qp
CiB7CiAgICAgLy8gRklYTUU6IHN0dWR5IHBsYXRmb3JtV2lkZ2V0KCkgYW5kIHVzZSBpdApAQCAt
MjY3LDIyICsxODIsMTEgQEAgdm9pZCBXaWRnZXQ6OnNldEV2YXNPYmplY3QoRXZhc19PYmplY3Qg
Km9iamVjdCkKICAgICBtX2RhdGEtPm1fZXZhc09iamVjdCA9IG9iamVjdDsKICAgICBpZiAoIW9i
amVjdCkgewogICAgICAgICBtX2RhdGEtPm1fZXZhcyA9IDA7Ci0jaWZkZWYgSEFWRV9FQ09SRV9Y
Ci0gICAgICAgIG1fZGF0YS0+bV9pc1VzaW5nRWNvcmVYID0gZmFsc2U7Ci0jZW5kaWYKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fZGF0YS0+bV9ldmFzID0gZXZhc19vYmplY3RfZXZh
c19nZXQob2JqZWN0KTsKIAotI2lmZGVmIEhBVkVfRUNPUkVfWAotICAgIGNvbnN0IGNoYXIgKmVu
Z2luZSA9IGVjb3JlX2V2YXNfZW5naW5lX25hbWVfZ2V0KGVjb3JlRXZhcygpKTsKLSAgICBtX2Rh
dGEtPm1faXNVc2luZ0Vjb3JlWCA9ICghc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3gxMSIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIXN0cmNtcChlbmdpbmUsICJzb2Z0d2Fy
ZV94Y2IiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFzdHJjbXAoZW5naW5l
LCAic29mdHdhcmVfMTZfeDExIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAh
c3RybmNtcChlbmdpbmUsICJ4cmVuZGVyIiwgc2l6ZW9mKCJ4cmVuZGVyIikgLSAxKSk7Ci0jZW5k
aWYKLQogICAgIFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXgg
NjBkMTNlNTBhZjYwMTE0OGU1NWVkYTAzOWFjMDU0NTk1MWJkNjY0ZS4uYTIzNGJmOWY3MTkwN2Qy
NjI4NmZkZWJhZmY5MGZhZWY4ZDc3MjdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCkBAIC00LDcgKzQsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC00OTks
OSArNDk5LDkgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmZvcm1TdGF0ZURpZENoYW5nZShjb25z
dCBOb2RlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVm
bDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpCit2b2lkIENocm9tZUNsaWVudEVmbDo6c2V0Q3Vy
c29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
ZXdrX3ZpZXdfY3Vyc29yX3NldChtX3ZpZXcsIGN1cnNvcik7CiB9CiAKIHZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3OThlOTRmNzc2YWMyMTE2NTNiM2RmNWY5ZGMwMWQxNzFi
OWE5NTIuLjQwM2RhYjExZjkxNDA1N2JjNzNkYzc0ZGRiYmFiMjQxNDRmZTBhYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNjYsNiArNjYsOCBAQAogI2luY2x1ZGUgImV3a192
aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZhdGUuaCIK
ICNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KKyNpbmNsdWRlIDxF
ZGplLmg+CiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxl
aW5hX3NhZmV0eV9jaGVja3MuaD4KQEAgLTM0MCw2ICszNDIsMTEgQEAgc3RydWN0IF9Fd2tfVmll
d19Qcml2YXRlX0RhdGEgewogICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAg
fSBhbmltYXRlZFpvb207CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOworICAgIGNvbnN0
IGNoYXIqIGN1cnNvckdyb3VwOworICAgIEV2YXNfT2JqZWN0KiBjdXJzb3JPYmplY3Q7CisjaWZk
ZWYgSEFWRV9FQ09SRV9YCisgICAgYm9vbCBpc1VzaW5nRWNvcmVYOworI2VuZGlmCiB9OwogCiAj
aWZuZGVmIEVXS19UWVBFX0NIRUNLCkBAIC04NTcsNiArODY0LDEwIEBAIHN0YXRpYyBFd2tfVmll
d19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEpCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gYWRvcHRQdHIobmV3IFBhZ2VDbGll
bnRFZmwoc21hcnREYXRhLT5zZWxmKSk7CiAKKyNpZmRlZiBIQVZFX0VDT1JFX1gKKyAgICBwcml2
LT5pc1VzaW5nRWNvcmVYID0gV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWChzbWFydERhdGEtPmJhc2Uu
ZXZhcyk7CisjZW5kaWYKKwogICAgIHJldHVybiBwcml2OwogfQogCkBAIC04ODcsNiArODk4LDkg
QEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
cHJpdikKIAogICAgIGV3a19oaXN0b3J5X2ZyZWUocHJpdi0+aGlzdG9yeSk7CiAKKyAgICBpZiAo
cHJpdi0+Y3Vyc29yT2JqZWN0KQorICAgICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29y
T2JqZWN0KTsKKwogICAgIGRlbGV0ZSBwcml2OwogfQogCkBAIC05MTMsMTEgKzkyNywxMSBAQCBz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAg
IHNtYXJ0RGF0YS0+YmdfY29sb3IuYSA9IDI1NTsKIAogICAgIHNtYXJ0RGF0YS0+c2VsZiA9IGV3
a1ZpZXc7Ci0gICAgc21hcnREYXRhLT5fcHJpdiA9IF9ld2tfdmlld19wcml2X25ldyhzbWFydERh
dGEpOwogICAgIHNtYXJ0RGF0YS0+YXBpID0gYXBpOwogCiAgICAgX3BhcmVudF9zYy5hZGQoZXdr
Vmlldyk7CiAKKyAgICBzbWFydERhdGEtPl9wcml2ID0gX2V3a192aWV3X3ByaXZfbmV3KHNtYXJ0
RGF0YSk7CiAgICAgaWYgKCFzbWFydERhdGEtPl9wcml2KQogICAgICAgICByZXR1cm47CiAKQEAg
LTQzNjgsNiArNDM4Miw1NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9f
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZW5hYmxlKQogI2VuZGlmCiB9CiAK
K3ZvaWQgZXdrX3ZpZXdfY3Vyc29yX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2Vi
Q29yZTo6Q3Vyc29yJiBjdXJzb3IpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYpOworCisgICAgY29uc3QgY2hhciogZ3JvdXAgPSBjdXJzb3IucGxhdGZvcm1D
dXJzb3IoKTsKKyAgICBpZiAoIWdyb3VwIHx8IGdyb3VwID09IHByaXYtPmN1cnNvckdyb3VwKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5jdXJzb3JHcm91cCA9IGdyb3VwOworCisgICAg
aWYgKHByaXYtPmN1cnNvck9iamVjdCkKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKHByaXYtPmN1
cnNvck9iamVjdCk7CisgICAgcHJpdi0+Y3Vyc29yT2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHNt
YXJ0RGF0YS0+YmFzZS5ldmFzKTsKKworICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IGVjb3Jl
X2V2YXNfZWNvcmVfZXZhc19nZXQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworICAgIGlmICghcHJp
di0+c2V0dGluZ3MudGhlbWUgfHwgIWVkamVfb2JqZWN0X2ZpbGVfc2V0KHByaXYtPmN1cnNvck9i
amVjdCwgcHJpdi0+c2V0dGluZ3MudGhlbWUsIGdyb3VwKSkgeworICAgICAgICBldmFzX29iamVj
dF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0KTsKKyAgICAgICAgcHJpdi0+Y3Vyc29yT2JqZWN0ID0g
MDsKKworICAgICAgICBlY29yZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZhcywgMCwg
MCwgMCwgMCk7CisjaWZkZWYgSEFWRV9FQ09SRV9YCisgICAgICAgIGlmIChwcml2LT5pc1VzaW5n
RWNvcmVYKQorICAgICAgICAgICAgV2ViQ29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcihlY29yZUV2
YXMsIGdyb3VwKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIEV2YXNfQ29vcmQgd2lk
dGgsIGhlaWdodDsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2l6ZV9taW5fZ2V0KHByaXYtPmN1cnNv
ck9iamVjdCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVp
Z2h0IDw9IDApCisgICAgICAgICAgICBlZGplX29iamVjdF9zaXplX21pbl9jYWxjKHByaXYtPmN1
cnNvck9iamVjdCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwg
aGVpZ2h0IDw9IDApIHsKKyAgICAgICAgICAgIHdpZHRoID0gMTY7CisgICAgICAgICAgICBoZWln
aHQgPSAxNjsKKyAgICAgICAgfQorICAgICAgICBldmFzX29iamVjdF9yZXNpemUocHJpdi0+Y3Vy
c29yT2JqZWN0LCB3aWR0aCwgaGVpZ2h0KTsKKworICAgICAgICBjb25zdCBjaGFyKiBkYXRhOwor
ICAgICAgICBpbnQgaG90c3BvdFggPSAwOworICAgICAgICBkYXRhID0gZWRqZV9vYmplY3RfZGF0
YV9nZXQocHJpdi0+Y3Vyc29yT2JqZWN0LCAiaG90LngiKTsKKyAgICAgICAgaWYgKGRhdGEpCisg
ICAgICAgICAgICBob3RzcG90WCA9IGF0b2koZGF0YSk7CisKKyAgICAgICAgaW50IGhvdHNwb3RZ
ID0gMDsKKyAgICAgICAgZGF0YSA9IGVkamVfb2JqZWN0X2RhdGFfZ2V0KHByaXYtPmN1cnNvck9i
amVjdCwgImhvdC55Iik7CisgICAgICAgIGlmIChkYXRhKQorICAgICAgICAgICAgaG90c3BvdFkg
PSBhdG9pKGRhdGEpOworCisgICAgICAgIGVjb3JlX2V2YXNfb2JqZWN0X2N1cnNvcl9zZXQoZWNv
cmVFdmFzLCBwcml2LT5jdXJzb3JPYmplY3QsIEVWQVNfTEFZRVJfTUFYLCBob3RzcG90WCwgaG90
c3BvdFkpOworICAgIH0KK30KKwogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCiBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4IGI3NDRlMTVhN2I2ZTRiNzgxYmUwMDU3YzAz
NTdiMTMyOGRkMDAzNTkuLmI3MGU3NTViMTYwOTNhNTNjZTZjZDM3OGUzNjNkYzY5MjNkZjFkODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzQsNiArMzQs
NyBAQCBjbGFzcyBDb2xvcjsKIGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKICNlbmRpZgogCitj
bGFzcyBDdXJzb3I7CiBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiB9CiAKQEAgLTQ4LDYgKzQ5LDcg
QEAgY29uc3QgY2hhciBld2tWaWV3U2luZ2xlTmFtZVtdID0gIkV3a19WaWV3X1NpbmdsZSI7CiAg
ICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAogICAgIH0KIAordm9pZCBld2tfdmlld19jdXJz
b3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNv
cik7CiB2b2lkIGV3a192aWV3X3JlYWR5KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdr
X3ZpZXdfaW5wdXRfbWV0aG9kX3N0YXRlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBh
Y3RpdmUpOwogdm9pZCBld2tfdmlld190aXRsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IEV3a19UZXh0X1dpdGhfRGlyZWN0aW9uKiB0aXRsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146957</attachid>
            <date>2012-06-11 16:28:55 -0700</date>
            <delta_ts>2012-06-12 21:31:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88803-20120612082853.patch</filename>
            <type>text/plain</type>
            <size>16321</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlMTA3MzBkMDY4ODE2
NDJiM2NlN2IzMTBmY2U0Y2QzMDE1MDllMS4uMzM0MTRhOWJmN2Q0MzVmMjY5ZmMzYmUwNmU0OTY2
MGY5MzE5ZTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTExICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGN1
cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3ZpZXcgYW5kIEVmbFNjcmVl
blV0aWxpdGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmVjYXVzZSBXZWJQcm9jZXNzIGNhbiBub3QgY29udHJvbCBjdXJzb3IsCisgICAgICAgIHNl
dEN1cnNvciBzaG91bGQgYmUgcGFzc2VkIHRvIENocm9tZUNsaWVudCBsaWtlIG90aGVyIHBvcnRz
LgorCisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6IE1vdmVkIGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWCk6IE1vdmVk
IGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lk
Z2V0RWZsLmNwcDogUmVtb3ZlcyBjdXJzb3IgcmVsYXRlZCBjb2Rlcy4KKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldFByaXZhdGU6OldpZGdldFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0Ojp+V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Q3Vyc29yKTogUmVk
aXJlY3QgdG8gSG9zdFdpbmRvdy4KKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0RXZhc09i
amVjdCk6CisKIDIwMTItMDYtMTEgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSBXZWJHcmFwaGljc0NvbnRleHQzRCBpbiByYXRl
IGxpbWl0aW5nIGxvZ2ljIGluc2lkZSBjb21wb3NpdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggODk3
MDEwZTBjZTMyMTE1NWRlYWJjMjY3MmI1NjFiYzEwZTQzOWQxOC4uYTg4YTBmNTQxY2Q0MmM1Y2Ex
OGNhOTVmYzI0MjY3MTY4YzEzMjEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTA2LTExICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBbRUZMXSBNb3ZlIGN1cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdr
X3ZpZXcgYW5kIEVmbFNjcmVlblV0aWxpdGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBXZWJQcm9jZXNzIGNhbiBub3QgY29udHJvbCBj
dXJzb3IsCisgICAgICAgIHNldEN1cnNvciBzaG91bGQgYmUgcGFzc2VkIHRvIENocm9tZUNsaWVu
dCBsaWtlIG90aGVyIHBvcnRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29y
KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZh
dGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOiBDaGVjayB3aGV0aGVyIGVj
b3JlX3ggY2FuIGJlIHVzZWQuCisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9kZWwpOgorICAgICAg
ICAoX2V3a192aWV3X3NtYXJ0X2FkZCk6CisgICAgICAgIENoYW5nZSBvcmRlciBvZiBpbml0aWFs
aXphdGlvbiB0byB1c2UgYmFzZSBzdHJ1Y3R1cmUgaW4gX2V3a192aWV3X3ByaXZfbmV3LgorICAg
ICAgICAoZXdrX3ZpZXdfY3Vyc29yX3NldCk6IE1vdmVkIGZyb20gV2lkZ2V0OjphcHBseUN1cnNv
ci4KKyAgICAgICAgKiBld2svZXdrX3ZpZXdfcHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisKIDIwMTItMDYtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZW1vdmUgc3VwcG9ydCBmb3IgdGFyZ2V0LWRlbnNpdHlkcGkgaW4gdGhlIHZpZXdwb3J0IG1l
dGEgdGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IGZmYTFjYzA2OGNjZGFmZTNkZTA3
N2I0MDQzMTJkNmMyMmY5ZTQzYmMuLjhmM2VmNTc0YmE5ZGFlNmU3YzkyNzY1MDU0Y2ZiZTViYWZm
MjM5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC0yNzEsMTQgKzI3MSw2IEBAIHBy
aXZhdGU6CiAKICAgICBJbnRSZWN0IG1fZnJhbWU7IC8vIE5vdCB1c2VkIHdoZW4gYSBuYXRpdmUg
d2lkZ2V0IGV4aXN0cy4KIAotI2lmIFBMQVRGT1JNKEVGTCkKLSAgICAvLyBGSVhNRTogUGxlYXNl
IHNlZSB0aGUgcHJldmlvdXMgI2lmIFBMQVRGT1JNKEVGTCkgYmxvY2suCi0gICAgRWNvcmVfRXZh
cyogZWNvcmVFdmFzKCkgY29uc3Q7Ci0KLSAgICB2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3IoKTsK
LSAgICB2b2lkIGFwcGx5Q3Vyc29yKCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oRUZMKQogICAgIFdpZGdldFByaXZhdGUqIG1fZGF0YTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcAppbmRl
eCA3ZWE3YjdlNDdhNTk0OGI1NDc0NDE3ODQ5YWZkMGM1NjA0NzMzN2MxLi4yZWVmNTg2ZTAxNDJj
NTMxNDk1ZDhhZDY3YmY0NGJiYmQwMzI2OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDYg
KzIwLDcgQEAKICNpbmNsdWRlICJFZmxTY3JlZW5VdGlsaXRpZXMuaCIKIAogI2lmZGVmIEhBVkVf
RUNPUkVfWAorI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9YLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CkBAIC0xMDIsNiArMTAzLDIxIEBAIGludCBnZXRFY29yZUN1cnNvcihjb25zdCBTdHJpbmcmIGN1
cnNvclN0cmluZykKIH0KICNlbmRpZgogCit2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3IoRWNvcmVf
RXZhcyogZWNvcmVFdmFzLCBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmcpCit7CisjaWZkZWYgSEFW
RV9FQ09SRV9YCisgICAgaW50IHNoYXBlID0gZ2V0RWNvcmVDdXJzb3IoY3Vyc29yU3RyaW5nKTsK
KyAgICBpZiAoc2hhcGUgPCBFQ09SRV9YX0NVUlNPUl9YIHx8IHNoYXBlID4gRUNPUkVfWF9DVVJT
T1JfWFRFUk0pIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjYW5ub3QgbWFwIGFuIGVxdWl2YWxlbnQg
WCBjdXJzb3IgZm9yIgorICAgICAgICAgICAgICAgICAgIiBjIHVyc29yIGdyb3VwICVzIiwgY3Vy
c29yU3RyaW5nKTsKKyAgICAgICAgc2hhcGUgPSBFQ09SRV9YX0NVUlNPUl9MRUZUX1BUUjsKKyAg
ICB9CisgICAgRWNvcmVfWF9XaW5kb3cgd2luID0gZWNvcmVfZXZhc19zb2Z0d2FyZV94MTFfd2lu
ZG93X2dldChlY29yZUV2YXMpOworICAgIEVjb3JlX1hfQ3Vyc29yIGN1ciA9IGVjb3JlX3hfY3Vy
c29yX3NoYXBlX2dldChzaGFwZSk7CisgICAgZWNvcmVfeF93aW5kb3dfY3Vyc29yX3NldCh3aW4s
IGN1cik7CisjZW5kaWYKK30KKwogaW50IGdldERQSSgpCiB7CiAjaWZkZWYgSEFWRV9FQ09SRV9Y
CkBAIC0xMTEsNCArMTI3LDE4IEBAIGludCBnZXREUEkoKQogI2VuZGlmCiB9CiAKK2Jvb2wgaXNV
c2luZ0Vjb3JlWChjb25zdCBFdmFzKiBldmFzKQoreworI2lmZGVmIEhBVkVfRUNPUkVfWAorICAg
IEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQoZXZhcyk7
CisgICAgY29uc3QgY2hhciAqZW5naW5lID0gZWNvcmVfZXZhc19lbmdpbmVfbmFtZV9nZXQoZWNv
cmVFdmFzKTsKKyAgICByZXR1cm4gIXN0cmNtcChlbmdpbmUsICJzb2Z0d2FyZV94MTEiKQorICAg
ICAgICB8fCAhc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3hjYiIpCisgICAgICAgIHx8ICFzdHJj
bXAoZW5naW5lLCAic29mdHdhcmVfMTZfeDExIikKKyAgICAgICAgfHwgIXN0cm5jbXAoZW5naW5l
LCAieHJlbmRlciIsIHNpemVvZigieHJlbmRlciIpIC0gMSk7CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmgKaW5kZXggMTQ0NWMyMjY2
ZWFiOTY2MjBmYzBkMDNmYzZkNDI3YjkzYzUwNmE0My4uNmVjNjBlZjAyNjNjMzg1NzgzY2Q5MWM4
ZmQ5NTMxMjdjZmM1ZWU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0VmbFNjcmVlblV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9F
ZmxTY3JlZW5VdGlsaXRpZXMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDEzICsyMSwxMyBAQAogCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK3R5
cGVkZWYgc3RydWN0IF9FdmFzIEV2YXM7CiAKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLWludCBnZXRF
Y29yZUN1cnNvcihjb25zdCBTdHJpbmcmIGN1cnNvclN0cmluZyk7Ci0jZW5kaWYKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKIAordm9pZCBhcHBseUZhbGxiYWNrQ3Vyc29yKEVjb3JlX0V2YXMqLCBjb25z
dCBjaGFyKik7CiBpbnQgZ2V0RFBJKCk7Citib29sIGlzVXNpbmdFY29yZVgoY29uc3QgRXZhcyop
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1dpZGdldEVmbC5jcHAKaW5kZXggNzE0MGQ2OWYyMzNlOGQ1OTU0NmJhMjQ5NGJjYTViYmNhMWVh
YTg4Zi4uMTM4YmRmYTMwMTdkNWVlYjI0ZTAzNWJlOTMxZGRhMGQxZDBjOWYzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTMsNyArMyw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdo
dCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbgogICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC00MywxNCArNDMsOCBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKIAogI2luY2x1ZGUgPEVj
b3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1ZGUgPEVkamUuaD4KICNpbmNs
dWRlIDxFdmFzLmg+CiAKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSNpbmNsdWRlIDxFY29yZV9YLmg+
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXaWRnZXRQcml2YXRlIHsK
QEAgLTYyLDE5ICs1Niw3IEBAIHB1YmxpYzoKICAgICBXaWRnZXRQcml2YXRlKCkKICAgICAgICAg
OiBtX2V2YXMoMCkKICAgICAgICAgLCBtX2V2YXNPYmplY3QoMCkKLSAgICAgICAgLCBtX2N1cnNv
ck9iamVjdCgwKQotI2lmZGVmIEhBVkVfRUNPUkVfWAotICAgICAgICAsIG1faXNVc2luZ0Vjb3Jl
WChmYWxzZSkKLSNlbmRpZgogICAgIHsgfQotCi0gICAgLyogY3Vyc29yICovCi0gICAgU3RyaW5n
IG1fY3Vyc29yR3JvdXA7Ci0gICAgRXZhc19PYmplY3QqIG1fY3Vyc29yT2JqZWN0OwotCi0jaWZk
ZWYgSEFWRV9FQ09SRV9YCi0gICAgYm9vbCBtX2lzVXNpbmdFY29yZVg7Ci0jZW5kaWYKIH07CiAK
IFdpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKQEAgLTkyLDkgKzc0LDYgQEAg
V2lkZ2V0Ojp+V2lkZ2V0KCkKIHsKICAgICBBU1NFUlQoIXBhcmVudCgpKTsKIAotICAgIGlmICht
X2RhdGEtPm1fY3Vyc29yT2JqZWN0KQotICAgICAgICBldmFzX29iamVjdF9kZWwobV9kYXRhLT5t
X2N1cnNvck9iamVjdCk7Ci0KICAgICBkZWxldGUgbV9kYXRhOwogfQogCkBAIC0xMzIsNzAgKzEx
MSwxMiBAQCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewogfQogCi12b2lk
IFdpZGdldDo6YXBwbHlGYWxsYmFja0N1cnNvcigpCi17Ci0jaWZkZWYgSEFWRV9FQ09SRV9YCi0g
ICAgaWYgKG1fZGF0YS0+bV9pc1VzaW5nRWNvcmVYICYmICFtX2RhdGEtPm1fY3Vyc29yR3JvdXAu
aXNOdWxsKCkpIHsKLSAgICAgICAgaW50IHNoYXBlID0gZ2V0RWNvcmVDdXJzb3IobV9kYXRhLT5t
X2N1cnNvckdyb3VwKTsKLQotICAgICAgICBpZiAoc2hhcGUgPCBFQ09SRV9YX0NVUlNPUl9YIHx8
IHNoYXBlID4gRUNPUkVfWF9DVVJTT1JfWFRFUk0pIHsKLSAgICAgICAgICAgIExPR19FUlJPUigi
Y2Fubm90IG1hcCBhbiBlcXVpdmFsZW50IFggY3Vyc29yIGZvciIKLSAgICAgICAgICAgICAgICAg
ICAgICAiIGMgdXJzb3IgZ3JvdXAgJXMiLCBtX2RhdGEtPm1fY3Vyc29yR3JvdXAudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgICAgICBzaGFwZSA9IEVDT1JFX1hfQ1VSU09SX0xFRlRfUFRSOwotICAg
ICAgICB9Ci0KLSAgICAgICAgRWNvcmVfWF9XaW5kb3cgd2luID0gZWNvcmVfZXZhc19zb2Z0d2Fy
ZV94MTFfd2luZG93X2dldChlY29yZUV2YXMoKSk7Ci0gICAgICAgIEVjb3JlX1hfQ3Vyc29yIGN1
ciA9IGVjb3JlX3hfY3Vyc29yX3NoYXBlX2dldChzaGFwZSk7Ci0gICAgICAgIGVjb3JlX3hfd2lu
ZG93X2N1cnNvcl9zZXQod2luLCBjdXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlm
Ci19Ci0KLXZvaWQgV2lkZ2V0OjphcHBseUN1cnNvcigpCi17Ci0gICAgQ1N0cmluZyBmaWxlID0g
ZWRqZVRoZW1lUmVjdXJzaXZlKCkudXRmOCgpOwotCi0gICAgbV9kYXRhLT5tX2N1cnNvck9iamVj
dCA9IGVkamVfb2JqZWN0X2FkZChldmFzKCkpOwotICAgIGlmICghZmlsZS5pc051bGwoKSAmJiAh
ZWRqZV9vYmplY3RfZmlsZV9zZXQobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgZmlsZS5kYXRhKCks
IG1fZGF0YS0+bV9jdXJzb3JHcm91cC51dGY4KCkuZGF0YSgpKSkgewotICAgICAgICBldmFzX29i
amVjdF9kZWwobV9kYXRhLT5tX2N1cnNvck9iamVjdCk7Ci0gICAgICAgIG1fZGF0YS0+bV9jdXJz
b3JPYmplY3QgPSAwOwotICAgICAgICBlY29yZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3Jl
RXZhcygpLCAwLCAwLCAwLCAwKTsKLSAgICAgICAgYXBwbHlGYWxsYmFja0N1cnNvcigpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgdywgaDsKLSAgICAgICAgY29uc3Qg
Y2hhciAqZDsKLQotICAgICAgICBlZGplX29iamVjdF9zaXplX21pbl9nZXQobV9kYXRhLT5tX2N1
cnNvck9iamVjdCwgJncsICZoKTsKLSAgICAgICAgaWYgKCh3IDw9IDApIHx8IChoIDw9IDApKQot
ICAgICAgICAgICAgZWRqZV9vYmplY3Rfc2l6ZV9taW5fY2FsYyhtX2RhdGEtPm1fY3Vyc29yT2Jq
ZWN0LCAmdywgJmgpOwotICAgICAgICBpZiAoKHcgPD0gMCkgfHwgKGggPD0gMCkpCi0gICAgICAg
ICAgICB3ID0gaCA9IDE2OwotICAgICAgICBldmFzX29iamVjdF9yZXNpemUobV9kYXRhLT5tX2N1
cnNvck9iamVjdCwgdywgaCk7Ci0KLSAgICAgICAgZCA9IGVkamVfb2JqZWN0X2RhdGFfZ2V0KG1f
ZGF0YS0+bV9jdXJzb3JPYmplY3QsICJob3QueCIpOwotICAgICAgICB4ID0gZCA/IGF0b2koZCkg
OiAwOwotCi0gICAgICAgIGQgPSBlZGplX29iamVjdF9kYXRhX2dldChtX2RhdGEtPm1fY3Vyc29y
T2JqZWN0LCAiaG90LnkiKTsKLSAgICAgICAgeSA9IGQgPyBhdG9pKGQpIDogMDsKLQotICAgICAg
ICBlY29yZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZhcygpLCBtX2RhdGEtPm1fY3Vy
c29yT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWQVNfTEFZ
RVJfTUFYLCB4LCB5KTsKLSAgICB9Ci19Ci0KIHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3Qg
Q3Vyc29yJiBjdXJzb3IpCiB7Ci0gICAgaWYgKCFldmFzKCkpCi0gICAgICAgICByZXR1cm47Ci0K
LSAgICBjb25zdCBjaGFyKiBncm91cCA9IGN1cnNvci5wbGF0Zm9ybUN1cnNvcigpOwotICAgIGlm
ICghZ3JvdXAgfHwgU3RyaW5nKGdyb3VwKSA9PSBtX2RhdGEtPm1fY3Vyc29yR3JvdXApCisgICAg
U2Nyb2xsVmlldyogdmlldyA9IHJvb3QoKTsKKyAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVy
bjsKLQotICAgIG1fZGF0YS0+bV9jdXJzb3JHcm91cCA9IGdyb3VwOwotCi0gICAgYXBwbHlDdXJz
b3IoKTsKKyAgICB2aWV3LT5ob3N0V2luZG93KCktPnNldEN1cnNvcihjdXJzb3IpOwogfQogCiB2
b2lkIFdpZGdldDo6c2hvdygpCkBAIC0yNTIsMTIgKzE3Myw2IEBAIEV2YXMqIFdpZGdldDo6ZXZh
cygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YS0+bV9ldmFzOwogfQogCi1FY29yZV9FdmFzKiBX
aWRnZXQ6OmVjb3JlRXZhcygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUUgRUZMOiBYWFggYXNzdW1l
IGV2YXMgd2FzIGNyZWF0ZWQgYnkgZWNvcmVfZXZhcwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxF
Y29yZV9FdmFzKj4oZXZhc19kYXRhX2F0dGFjaF9nZXQoZXZhcygpKSk7Ci19Ci0KIHZvaWQgV2lk
Z2V0OjpzZXRFdmFzT2JqZWN0KEV2YXNfT2JqZWN0ICpvYmplY3QpCiB7CiAgICAgLy8gRklYTUU6
IHN0dWR5IHBsYXRmb3JtV2lkZ2V0KCkgYW5kIHVzZSBpdApAQCAtMjY3LDIyICsxODIsMTEgQEAg
dm9pZCBXaWRnZXQ6OnNldEV2YXNPYmplY3QoRXZhc19PYmplY3QgKm9iamVjdCkKICAgICBtX2Rh
dGEtPm1fZXZhc09iamVjdCA9IG9iamVjdDsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBt
X2RhdGEtPm1fZXZhcyA9IDA7Ci0jaWZkZWYgSEFWRV9FQ09SRV9YCi0gICAgICAgIG1fZGF0YS0+
bV9pc1VzaW5nRWNvcmVYID0gZmFsc2U7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIG1fZGF0YS0+bV9ldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQob2JqZWN0KTsKIAot
I2lmZGVmIEhBVkVfRUNPUkVfWAotICAgIGNvbnN0IGNoYXIgKmVuZ2luZSA9IGVjb3JlX2V2YXNf
ZW5naW5lX25hbWVfZ2V0KGVjb3JlRXZhcygpKTsKLSAgICBtX2RhdGEtPm1faXNVc2luZ0Vjb3Jl
WCA9ICghc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3gxMSIpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfHwgIXN0cmNtcChlbmdpbmUsICJzb2Z0d2FyZV94Y2IiKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHx8ICFzdHJjbXAoZW5naW5lLCAic29mdHdhcmVfMTZfeDEx
IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhc3RybmNtcChlbmdpbmUsICJ4
cmVuZGVyIiwgc2l6ZW9mKCJ4cmVuZGVyIikgLSAxKSk7Ci0jZW5kaWYKLQogICAgIFdpZGdldDo6
ZnJhbWVSZWN0c0NoYW5nZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggNjBkMTNlNTBhZjYwMTE0OGU1
NWVkYTAzOWFjMDU0NTk1MWJkNjY0ZS4uYTIzNGJmOWY3MTkwN2QyNjI4NmZkZWJhZmY5MGZhZWY4
ZDc3MjdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGllZ28g
R29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBz
eXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC00OTksOSArNDk5LDkgQEAgdm9pZCBD
aHJvbWVDbGllbnRFZmw6OmZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29yKGNvbnN0
IEN1cnNvciYpCit2b2lkIENocm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYg
Y3Vyc29yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXdrX3ZpZXdfY3Vyc29yX3Nl
dChtX3ZpZXcsIGN1cnNvcik7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRDdXJzb3JI
aWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmlu
ZGV4IDk3OThlOTRmNzc2YWMyMTE2NTNiM2RmNWY5ZGMwMWQxNzFiOWE5NTIuLjQwM2RhYjExZjkx
NDA1N2JjNzNkYzc0ZGRiYmFiMjQxNDRmZTBhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcApAQCAtNjYsNiArNjYsOCBAQAogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKICNp
bmNsdWRlICJld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZS5o
PgorI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KKyNpbmNsdWRlIDxFZGplLmg+CiAjaW5jbHVkZSA8
RWluYS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxlaW5hX3NhZmV0eV9jaGVja3Mu
aD4KQEAgLTM0MCw2ICszNDIsMTEgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewog
ICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAgfSBhbmltYXRlZFpvb207CiAg
ICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOworICAgIGNvbnN0IGNoYXIqIGN1cnNvckdyb3Vw
OworICAgIEV2YXNfT2JqZWN0KiBjdXJzb3JPYmplY3Q7CisjaWZkZWYgSEFWRV9FQ09SRV9YCisg
ICAgYm9vbCBpc1VzaW5nRWNvcmVYOworI2VuZGlmCiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NI
RUNLCkBAIC04NTcsNiArODY0LDEwIEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9l
d2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKICAgICBw
cml2LT5wYWdlQ2xpZW50ID0gYWRvcHRQdHIobmV3IFBhZ2VDbGllbnRFZmwoc21hcnREYXRhLT5z
ZWxmKSk7CiAKKyNpZmRlZiBIQVZFX0VDT1JFX1gKKyAgICBwcml2LT5pc1VzaW5nRWNvcmVYID0g
V2ViQ29yZTo6aXNVc2luZ0Vjb3JlWChzbWFydERhdGEtPmJhc2UuZXZhcyk7CisjZW5kaWYKKwog
ICAgIHJldHVybiBwcml2OwogfQogCkBAIC04ODcsNiArODk4LDkgQEAgc3RhdGljIHZvaWQgX2V3
a192aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIAogICAgIGV3a19o
aXN0b3J5X2ZyZWUocHJpdi0+aGlzdG9yeSk7CiAKKyAgICBpZiAocHJpdi0+Y3Vyc29yT2JqZWN0
KQorICAgICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0KTsKKwogICAgIGRl
bGV0ZSBwcml2OwogfQogCkBAIC05MTMsMTEgKzkyNywxMSBAQCBzdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHNtYXJ0RGF0YS0+YmdfY29s
b3IuYSA9IDI1NTsKIAogICAgIHNtYXJ0RGF0YS0+c2VsZiA9IGV3a1ZpZXc7Ci0gICAgc21hcnRE
YXRhLT5fcHJpdiA9IF9ld2tfdmlld19wcml2X25ldyhzbWFydERhdGEpOwogICAgIHNtYXJ0RGF0
YS0+YXBpID0gYXBpOwogCiAgICAgX3BhcmVudF9zYy5hZGQoZXdrVmlldyk7CiAKKyAgICBzbWFy
dERhdGEtPl9wcml2ID0gX2V3a192aWV3X3ByaXZfbmV3KHNtYXJ0RGF0YSk7CiAgICAgaWYgKCFz
bWFydERhdGEtPl9wcml2KQogICAgICAgICByZXR1cm47CiAKQEAgLTQzNjgsNiArNDM4Miw1NyBA
QCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFaW5hX0Jvb2wgZW5hYmxlKQogI2VuZGlmCiB9CiAKK3ZvaWQgZXdrX3ZpZXdfY3Vy
c29yX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJz
b3IpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEp
OworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisg
ICAgY29uc3QgY2hhciogZ3JvdXAgPSBjdXJzb3IucGxhdGZvcm1DdXJzb3IoKTsKKyAgICBpZiAo
IWdyb3VwIHx8IGdyb3VwID09IHByaXYtPmN1cnNvckdyb3VwKQorICAgICAgICByZXR1cm47CisK
KyAgICBwcml2LT5jdXJzb3JHcm91cCA9IGdyb3VwOworCisgICAgaWYgKHByaXYtPmN1cnNvck9i
amVjdCkKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKHByaXYtPmN1cnNvck9iamVjdCk7CisgICAg
cHJpdi0+Y3Vyc29yT2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFz
KTsKKworICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19n
ZXQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworICAgIGlmICghcHJpdi0+c2V0dGluZ3MudGhlbWUg
fHwgIWVkamVfb2JqZWN0X2ZpbGVfc2V0KHByaXYtPmN1cnNvck9iamVjdCwgcHJpdi0+c2V0dGlu
Z3MudGhlbWUsIGdyb3VwKSkgeworICAgICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29y
T2JqZWN0KTsKKyAgICAgICAgcHJpdi0+Y3Vyc29yT2JqZWN0ID0gMDsKKworICAgICAgICBlY29y
ZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZhcywgMCwgMCwgMCwgMCk7CisjaWZkZWYg
SEFWRV9FQ09SRV9YCisgICAgICAgIGlmIChwcml2LT5pc1VzaW5nRWNvcmVYKQorICAgICAgICAg
ICAgV2ViQ29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcihlY29yZUV2YXMsIGdyb3VwKTsKKyNlbmRp
ZgorICAgIH0gZWxzZSB7CisgICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKKyAgICAg
ICAgZWRqZV9vYmplY3Rfc2l6ZV9taW5fZ2V0KHByaXYtPmN1cnNvck9iamVjdCwgJndpZHRoLCAm
aGVpZ2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApCisgICAgICAg
ICAgICBlZGplX29iamVjdF9zaXplX21pbl9jYWxjKHByaXYtPmN1cnNvck9iamVjdCwgJndpZHRo
LCAmaGVpZ2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAg
ICAgICAgICAgIHdpZHRoID0gMTY7CisgICAgICAgICAgICBoZWlnaHQgPSAxNjsKKyAgICAgICAg
fQorICAgICAgICBldmFzX29iamVjdF9yZXNpemUocHJpdi0+Y3Vyc29yT2JqZWN0LCB3aWR0aCwg
aGVpZ2h0KTsKKworICAgICAgICBjb25zdCBjaGFyKiBkYXRhOworICAgICAgICBpbnQgaG90c3Bv
dFggPSAwOworICAgICAgICBkYXRhID0gZWRqZV9vYmplY3RfZGF0YV9nZXQocHJpdi0+Y3Vyc29y
T2JqZWN0LCAiaG90LngiKTsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICBob3RzcG90
WCA9IGF0b2koZGF0YSk7CisKKyAgICAgICAgaW50IGhvdHNwb3RZID0gMDsKKyAgICAgICAgZGF0
YSA9IGVkamVfb2JqZWN0X2RhdGFfZ2V0KHByaXYtPmN1cnNvck9iamVjdCwgImhvdC55Iik7Cisg
ICAgICAgIGlmIChkYXRhKQorICAgICAgICAgICAgaG90c3BvdFkgPSBhdG9pKGRhdGEpOworCisg
ICAgICAgIGVjb3JlX2V2YXNfb2JqZWN0X2N1cnNvcl9zZXQoZWNvcmVFdmFzLCBwcml2LT5jdXJz
b3JPYmplY3QsIEVWQVNfTEFZRVJfTUFYLCBob3RzcG90WCwgaG90c3BvdFkpOworICAgIH0KK30K
KwogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCiBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZShjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJp
dmF0ZS5oCmluZGV4IGI3NDRlMTVhN2I2ZTRiNzgxYmUwMDU3YzAzNTdiMTMyOGRkMDAzNTkuLmI3
MGU3NTViMTYwOTNhNTNjZTZjZDM3OGUzNjNkYzY5MjNkZjFkODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzQsNiArMzQsNyBAQCBjbGFzcyBDb2xvcjsK
IGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKICNlbmRpZgogCitjbGFzcyBDdXJzb3I7CiBjbGFz
cyBQb3B1cE1lbnVDbGllbnQ7CiB9CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgY29uc3QgY2hhciBld2tW
aWV3U2luZ2xlTmFtZVtdID0gIkV3a19WaWV3X1NpbmdsZSI7CiAgICAgICAgIHJldHVybiBfX1ZB
X0FSR1NfXzsgXAogICAgIH0KIAordm9pZCBld2tfdmlld19jdXJzb3Jfc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcik7CiB2b2lkIGV3a192aWV3
X3JlYWR5KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfaW5wdXRfbWV0aG9k
X3N0YXRlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBhY3RpdmUpOwogdm9pZCBld2tf
dmlld190aXRsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19UZXh0X1dpdGhf
RGlyZWN0aW9uKiB0aXRsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147223</attachid>
            <date>2012-06-12 21:31:55 -0700</date>
            <delta_ts>2012-06-13 03:25:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88803-20120613133153.patch</filename>
            <type>text/plain</type>
            <size>16282</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFmMzlhOWQ0YmExYjc1
NjZiOTQ0NTYyMWNlMjU0ZDVmMjU5YmU4OC4uYmZkNjNkNTMyYmRiZWFkOWUzNDdmMTcxZmVhMjRj
NTc1NzhmNmQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTEyICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGN1
cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3ZpZXcgYW5kIEVmbFNjcmVl
blV0aWxpdGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmVjYXVzZSBXZWJQcm9jZXNzIGNhbiBub3QgY29udHJvbCBjdXJzb3IsCisgICAgICAgIHNl
dEN1cnNvciBzaG91bGQgYmUgcGFzc2VkIHRvIENocm9tZUNsaWVudCBsaWtlIG90aGVyIHBvcnRz
LgorCisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6IE1vdmVkIGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWCk6IE1vdmVk
IGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lk
Z2V0RWZsLmNwcDogUmVtb3ZlcyBjdXJzb3IgcmVsYXRlZCBjb2Rlcy4KKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldFByaXZhdGU6OldpZGdldFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0Ojp+V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Q3Vyc29yKTogUmVk
aXJlY3QgdG8gSG9zdFdpbmRvdy4KKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0RXZhc09i
amVjdCk6CisKIDIwMTItMDYtMTIgIEx1a2UgTWFjcGhlcnNvbiAgPG1hY3BoZXJzb25AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdJUDogSW1wbGVtZW50IENTUyBWYXJpYWJsZXMgU3RhbmRhcmQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKaW5kZXggOTRhNTA0YzFmNThmMDYyYTQyMmUwZDZiNjQzYzJjNGU5ZjM0
NzBmNC4uNDQzYmQ5NWVmNmEzMGQxMDIxOTY4NDBkOTE3NjY1ZTAwNGZlOGQzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA2LTEyICBSeXVhbiBDaG9pICA8cnl1YW4u
Y2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGN1cnNvciByZWxhdGVkIGNv
ZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3ZpZXcgYW5kIEVmbFNjcmVlblV0aWxpdGllcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODAzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBXZWJQ
cm9jZXNzIGNhbiBub3QgY29udHJvbCBjdXJzb3IsCisgICAgICAgIHNldEN1cnNvciBzaG91bGQg
YmUgcGFzc2VkIHRvIENocm9tZUNsaWVudCBsaWtlIG90aGVyIHBvcnRzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29yKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgor
ICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJp
dl9uZXcpOiBDaGVjayB3aGV0aGVyIGVjb3JlX3ggY2FuIGJlIHVzZWQuCisgICAgICAgIChfZXdr
X3ZpZXdfcHJpdl9kZWwpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2FkZCk6CisgICAgICAg
IENoYW5nZSBvcmRlciBvZiBpbml0aWFsaXphdGlvbiB0byB1c2UgYmFzZSBzdHJ1Y3R1cmUgaW4g
X2V3a192aWV3X3ByaXZfbmV3LgorICAgICAgICAoZXdrX3ZpZXdfY3Vyc29yX3NldCk6IE1vdmVk
IGZyb20gV2lkZ2V0OjphcHBseUN1cnNvci4KKyAgICAgICAgKiBld2svZXdrX3ZpZXdfcHJpdmF0
ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMTIgIENocmlzdG9waGUgRHVtZXog
IDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBFbmFibGUgU0hB
RE9XX0RPTSBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IGZmYTFjYzA2OGNjZGFm
ZTNkZTA3N2I0MDQzMTJkNmMyMmY5ZTQzYmMuLjhmM2VmNTc0YmE5ZGFlNmU3YzkyNzY1MDU0Y2Zi
ZTViYWZmMjM5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC0yNzEsMTQgKzI3MSw2
IEBAIHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1fZnJhbWU7IC8vIE5vdCB1c2VkIHdoZW4gYSBu
YXRpdmUgd2lkZ2V0IGV4aXN0cy4KIAotI2lmIFBMQVRGT1JNKEVGTCkKLSAgICAvLyBGSVhNRTog
UGxlYXNlIHNlZSB0aGUgcHJldmlvdXMgI2lmIFBMQVRGT1JNKEVGTCkgYmxvY2suCi0gICAgRWNv
cmVfRXZhcyogZWNvcmVFdmFzKCkgY29uc3Q7Ci0KLSAgICB2b2lkIGFwcGx5RmFsbGJhY2tDdXJz
b3IoKTsKLSAgICB2b2lkIGFwcGx5Q3Vyc29yKCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oRUZMKQogICAgIFdpZGdldFByaXZhdGUqIG1fZGF0YTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNw
cAppbmRleCA3ZWE3YjdlNDdhNTk0OGI1NDc0NDE3ODQ5YWZkMGM1NjA0NzMzN2MxLi5iMTE3ZDcx
OGI3YzBjNDA4NDU3NGYzYjlmYjA2Y2Y4MGRjMWMyNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJp
Z2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJFZmxTY3JlZW5VdGlsaXRpZXMuaCIKIAogI2lmZGVm
IEhBVkVfRUNPUkVfWAorI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9Y
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CkBAIC0xMDIsNiArMTAzLDIxIEBAIGludCBnZXRFY29yZUN1cnNvcihjb25zdCBTdHJp
bmcmIGN1cnNvclN0cmluZykKIH0KICNlbmRpZgogCit2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3Io
RWNvcmVfRXZhcyogZWNvcmVFdmFzLCBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmcpCit7CisjaWZk
ZWYgSEFWRV9FQ09SRV9YCisgICAgaW50IHNoYXBlID0gZ2V0RWNvcmVDdXJzb3IoY3Vyc29yU3Ry
aW5nKTsKKyAgICBpZiAoc2hhcGUgPCBFQ09SRV9YX0NVUlNPUl9YIHx8IHNoYXBlID4gRUNPUkVf
WF9DVVJTT1JfWFRFUk0pIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjYW5ub3QgbWFwIGFuIGVxdWl2
YWxlbnQgWCBjdXJzb3IgZm9yIgorICAgICAgICAgICAgICAgICAgIiBjIHVyc29yIGdyb3VwICVz
IiwgY3Vyc29yU3RyaW5nKTsKKyAgICAgICAgc2hhcGUgPSBFQ09SRV9YX0NVUlNPUl9MRUZUX1BU
UjsKKyAgICB9CisgICAgRWNvcmVfWF9XaW5kb3cgd2luZG93ID0gZWNvcmVfZXZhc19zb2Z0d2Fy
ZV94MTFfd2luZG93X2dldChlY29yZUV2YXMpOworICAgIEVjb3JlX1hfQ3Vyc29yIGN1cnNvciA9
IGVjb3JlX3hfY3Vyc29yX3NoYXBlX2dldChzaGFwZSk7CisgICAgZWNvcmVfeF93aW5kb3dfY3Vy
c29yX3NldCh3aW5kb3csIGN1cnNvcik7CisjZW5kaWYKK30KKwogaW50IGdldERQSSgpCiB7CiAj
aWZkZWYgSEFWRV9FQ09SRV9YCkBAIC0xMTEsNCArMTI3LDE4IEBAIGludCBnZXREUEkoKQogI2Vu
ZGlmCiB9CiAKK2Jvb2wgaXNVc2luZ0Vjb3JlWChjb25zdCBFdmFzKiBldmFzKQoreworI2lmZGVm
IEhBVkVfRUNPUkVfWAorICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfZWNv
cmVfZXZhc19nZXQoZXZhcyk7CisgICAgY29uc3QgY2hhciAqZW5naW5lID0gZWNvcmVfZXZhc19l
bmdpbmVfbmFtZV9nZXQoZWNvcmVFdmFzKTsKKyAgICByZXR1cm4gIXN0cmNtcChlbmdpbmUsICJz
b2Z0d2FyZV94MTEiKQorICAgICAgICB8fCAhc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3hjYiIp
CisgICAgICAgIHx8ICFzdHJjbXAoZW5naW5lLCAic29mdHdhcmVfMTZfeDExIikKKyAgICAgICAg
fHwgIXN0cm5jbXAoZW5naW5lLCAieHJlbmRlciIsIHNpemVvZigieHJlbmRlciIpIC0gMSk7Cisj
ZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVz
LmgKaW5kZXggMTQ0NWMyMjY2ZWFiOTY2MjBmYzBkMDNmYzZkNDI3YjkzYzUwNmE0My4uNmVjNjBl
ZjAyNjNjMzg1NzgzY2Q5MWM4ZmQ5NTMxMjdjZmM1ZWU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIx
LDEzICsyMSwxMyBAQAogCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLW5hbWVz
cGFjZSBXZWJDb3JlIHsKK3R5cGVkZWYgc3RydWN0IF9FdmFzIEV2YXM7CiAKLSNpZmRlZiBIQVZF
X0VDT1JFX1gKLWludCBnZXRFY29yZUN1cnNvcihjb25zdCBTdHJpbmcmIGN1cnNvclN0cmluZyk7
Ci0jZW5kaWYKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAordm9pZCBhcHBseUZhbGxiYWNrQ3Vyc29y
KEVjb3JlX0V2YXMqLCBjb25zdCBjaGFyKik7CiBpbnQgZ2V0RFBJKCk7Citib29sIGlzVXNpbmdF
Y29yZVgoY29uc3QgRXZhcyopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggNzE0MGQ2OWYyMzNlOGQ1OTU0
NmJhMjQ5NGJjYTViYmNhMWVhYTg4Zi4uMTM4YmRmYTMwMTdkNWVlYjI0ZTAzNWJlOTMxZGRhMGQx
ZDBjOWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAg
LTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbgog
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00MywxNCArNDMsOCBAQAogI2luY2x1ZGUgIlBhZ2Uu
aCIKIAogI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1
ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxFdmFzLmg+CiAKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSNp
bmNsdWRlIDxFY29yZV9YLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBXaWRnZXRQcml2YXRlIHsKQEAgLTYyLDE5ICs1Niw3IEBAIHB1YmxpYzoKICAgICBXaWRnZXRQ
cml2YXRlKCkKICAgICAgICAgOiBtX2V2YXMoMCkKICAgICAgICAgLCBtX2V2YXNPYmplY3QoMCkK
LSAgICAgICAgLCBtX2N1cnNvck9iamVjdCgwKQotI2lmZGVmIEhBVkVfRUNPUkVfWAotICAgICAg
ICAsIG1faXNVc2luZ0Vjb3JlWChmYWxzZSkKLSNlbmRpZgogICAgIHsgfQotCi0gICAgLyogY3Vy
c29yICovCi0gICAgU3RyaW5nIG1fY3Vyc29yR3JvdXA7Ci0gICAgRXZhc19PYmplY3QqIG1fY3Vy
c29yT2JqZWN0OwotCi0jaWZkZWYgSEFWRV9FQ09SRV9YCi0gICAgYm9vbCBtX2lzVXNpbmdFY29y
ZVg7Ci0jZW5kaWYKIH07CiAKIFdpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkK
QEAgLTkyLDkgKzc0LDYgQEAgV2lkZ2V0Ojp+V2lkZ2V0KCkKIHsKICAgICBBU1NFUlQoIXBhcmVu
dCgpKTsKIAotICAgIGlmIChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0KQotICAgICAgICBldmFzX29i
amVjdF9kZWwobV9kYXRhLT5tX2N1cnNvck9iamVjdCk7Ci0KICAgICBkZWxldGUgbV9kYXRhOwog
fQogCkBAIC0xMzIsNzAgKzExMSwxMiBAQCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCBmb2N1
c2VkKQogewogfQogCi12b2lkIFdpZGdldDo6YXBwbHlGYWxsYmFja0N1cnNvcigpCi17Ci0jaWZk
ZWYgSEFWRV9FQ09SRV9YCi0gICAgaWYgKG1fZGF0YS0+bV9pc1VzaW5nRWNvcmVYICYmICFtX2Rh
dGEtPm1fY3Vyc29yR3JvdXAuaXNOdWxsKCkpIHsKLSAgICAgICAgaW50IHNoYXBlID0gZ2V0RWNv
cmVDdXJzb3IobV9kYXRhLT5tX2N1cnNvckdyb3VwKTsKLQotICAgICAgICBpZiAoc2hhcGUgPCBF
Q09SRV9YX0NVUlNPUl9YIHx8IHNoYXBlID4gRUNPUkVfWF9DVVJTT1JfWFRFUk0pIHsKLSAgICAg
ICAgICAgIExPR19FUlJPUigiY2Fubm90IG1hcCBhbiBlcXVpdmFsZW50IFggY3Vyc29yIGZvciIK
LSAgICAgICAgICAgICAgICAgICAgICAiIGMgdXJzb3IgZ3JvdXAgJXMiLCBtX2RhdGEtPm1fY3Vy
c29yR3JvdXAudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBzaGFwZSA9IEVDT1JFX1hfQ1VS
U09SX0xFRlRfUFRSOwotICAgICAgICB9Ci0KLSAgICAgICAgRWNvcmVfWF9XaW5kb3cgd2luID0g
ZWNvcmVfZXZhc19zb2Z0d2FyZV94MTFfd2luZG93X2dldChlY29yZUV2YXMoKSk7Ci0gICAgICAg
IEVjb3JlX1hfQ3Vyc29yIGN1ciA9IGVjb3JlX3hfY3Vyc29yX3NoYXBlX2dldChzaGFwZSk7Ci0g
ICAgICAgIGVjb3JlX3hfd2luZG93X2N1cnNvcl9zZXQod2luLCBjdXIpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotI2VuZGlmCi19Ci0KLXZvaWQgV2lkZ2V0OjphcHBseUN1cnNvcigpCi17Ci0g
ICAgQ1N0cmluZyBmaWxlID0gZWRqZVRoZW1lUmVjdXJzaXZlKCkudXRmOCgpOwotCi0gICAgbV9k
YXRhLT5tX2N1cnNvck9iamVjdCA9IGVkamVfb2JqZWN0X2FkZChldmFzKCkpOwotICAgIGlmICgh
ZmlsZS5pc051bGwoKSAmJiAhZWRqZV9vYmplY3RfZmlsZV9zZXQobV9kYXRhLT5tX2N1cnNvck9i
amVjdCwgZmlsZS5kYXRhKCksIG1fZGF0YS0+bV9jdXJzb3JHcm91cC51dGY4KCkuZGF0YSgpKSkg
ewotICAgICAgICBldmFzX29iamVjdF9kZWwobV9kYXRhLT5tX2N1cnNvck9iamVjdCk7Ci0gICAg
ICAgIG1fZGF0YS0+bV9jdXJzb3JPYmplY3QgPSAwOwotICAgICAgICBlY29yZV9ldmFzX29iamVj
dF9jdXJzb3Jfc2V0KGVjb3JlRXZhcygpLCAwLCAwLCAwLCAwKTsKLSAgICAgICAgYXBwbHlGYWxs
YmFja0N1cnNvcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgdywg
aDsKLSAgICAgICAgY29uc3QgY2hhciAqZDsKLQotICAgICAgICBlZGplX29iamVjdF9zaXplX21p
bl9nZXQobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgJncsICZoKTsKLSAgICAgICAgaWYgKCh3IDw9
IDApIHx8IChoIDw9IDApKQotICAgICAgICAgICAgZWRqZV9vYmplY3Rfc2l6ZV9taW5fY2FsYyht
X2RhdGEtPm1fY3Vyc29yT2JqZWN0LCAmdywgJmgpOwotICAgICAgICBpZiAoKHcgPD0gMCkgfHwg
KGggPD0gMCkpCi0gICAgICAgICAgICB3ID0gaCA9IDE2OwotICAgICAgICBldmFzX29iamVjdF9y
ZXNpemUobV9kYXRhLT5tX2N1cnNvck9iamVjdCwgdywgaCk7Ci0KLSAgICAgICAgZCA9IGVkamVf
b2JqZWN0X2RhdGFfZ2V0KG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsICJob3QueCIpOwotICAgICAg
ICB4ID0gZCA/IGF0b2koZCkgOiAwOwotCi0gICAgICAgIGQgPSBlZGplX29iamVjdF9kYXRhX2dl
dChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LCAiaG90LnkiKTsKLSAgICAgICAgeSA9IGQgPyBhdG9p
KGQpIDogMDsKLQotICAgICAgICBlY29yZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZh
cygpLCBtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWQVNfTEFZRVJfTUFYLCB4LCB5KTsKLSAgICB9Ci19Ci0KIHZvaWQgV2lkZ2V0
OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7Ci0gICAgaWYgKCFldmFzKCkpCi0g
ICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBjaGFyKiBncm91cCA9IGN1cnNvci5wbGF0Zm9y
bUN1cnNvcigpOwotICAgIGlmICghZ3JvdXAgfHwgU3RyaW5nKGdyb3VwKSA9PSBtX2RhdGEtPm1f
Y3Vyc29yR3JvdXApCisgICAgU2Nyb2xsVmlldyogdmlldyA9IHJvb3QoKTsKKyAgICBpZiAoIXZp
ZXcpCiAgICAgICAgIHJldHVybjsKLQotICAgIG1fZGF0YS0+bV9jdXJzb3JHcm91cCA9IGdyb3Vw
OwotCi0gICAgYXBwbHlDdXJzb3IoKTsKKyAgICB2aWV3LT5ob3N0V2luZG93KCktPnNldEN1cnNv
cihjdXJzb3IpOwogfQogCiB2b2lkIFdpZGdldDo6c2hvdygpCkBAIC0yNTIsMTIgKzE3Myw2IEBA
IEV2YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YS0+bV9ldmFzOwog
fQogCi1FY29yZV9FdmFzKiBXaWRnZXQ6OmVjb3JlRXZhcygpIGNvbnN0Ci17Ci0gICAgLy8gRklY
TUUgRUZMOiBYWFggYXNzdW1lIGV2YXMgd2FzIGNyZWF0ZWQgYnkgZWNvcmVfZXZhcwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxFY29yZV9FdmFzKj4oZXZhc19kYXRhX2F0dGFjaF9nZXQoZXZhcygp
KSk7Ci19Ci0KIHZvaWQgV2lkZ2V0OjpzZXRFdmFzT2JqZWN0KEV2YXNfT2JqZWN0ICpvYmplY3Qp
CiB7CiAgICAgLy8gRklYTUU6IHN0dWR5IHBsYXRmb3JtV2lkZ2V0KCkgYW5kIHVzZSBpdApAQCAt
MjY3LDIyICsxODIsMTEgQEAgdm9pZCBXaWRnZXQ6OnNldEV2YXNPYmplY3QoRXZhc19PYmplY3Qg
Km9iamVjdCkKICAgICBtX2RhdGEtPm1fZXZhc09iamVjdCA9IG9iamVjdDsKICAgICBpZiAoIW9i
amVjdCkgewogICAgICAgICBtX2RhdGEtPm1fZXZhcyA9IDA7Ci0jaWZkZWYgSEFWRV9FQ09SRV9Y
Ci0gICAgICAgIG1fZGF0YS0+bV9pc1VzaW5nRWNvcmVYID0gZmFsc2U7Ci0jZW5kaWYKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fZGF0YS0+bV9ldmFzID0gZXZhc19vYmplY3RfZXZh
c19nZXQob2JqZWN0KTsKIAotI2lmZGVmIEhBVkVfRUNPUkVfWAotICAgIGNvbnN0IGNoYXIgKmVu
Z2luZSA9IGVjb3JlX2V2YXNfZW5naW5lX25hbWVfZ2V0KGVjb3JlRXZhcygpKTsKLSAgICBtX2Rh
dGEtPm1faXNVc2luZ0Vjb3JlWCA9ICghc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3gxMSIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIXN0cmNtcChlbmdpbmUsICJzb2Z0d2Fy
ZV94Y2IiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFzdHJjbXAoZW5naW5l
LCAic29mdHdhcmVfMTZfeDExIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAh
c3RybmNtcChlbmdpbmUsICJ4cmVuZGVyIiwgc2l6ZW9mKCJ4cmVuZGVyIikgLSAxKSk7Ci0jZW5k
aWYKLQogICAgIFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXgg
NjBkMTNlNTBhZjYwMTE0OGU1NWVkYTAzOWFjMDU0NTk1MWJkNjY0ZS4uYTIzNGJmOWY3MTkwN2Qy
NjI4NmZkZWJhZmY5MGZhZWY4ZDc3MjdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCkBAIC00LDcgKzQsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA4IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC00OTks
OSArNDk5LDkgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmZvcm1TdGF0ZURpZENoYW5nZShjb25z
dCBOb2RlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVm
bDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpCit2b2lkIENocm9tZUNsaWVudEVmbDo6c2V0Q3Vy
c29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
ZXdrX3ZpZXdfY3Vyc29yX3NldChtX3ZpZXcsIGN1cnNvcik7CiB9CiAKIHZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3OThlOTRmNzc2YWMyMTE2NTNiM2RmNWY5ZGMwMWQxNzFi
OWE5NTIuLjQwM2RhYjExZjkxNDA1N2JjNzNkYzc0ZGRiYmFiMjQxNDRmZTBhYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNjYsNiArNjYsOCBAQAogI2luY2x1ZGUgImV3a192
aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfd2luZG93X2ZlYXR1cmVzX3ByaXZhdGUuaCIK
ICNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KKyNpbmNsdWRlIDxF
ZGplLmg+CiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxl
aW5hX3NhZmV0eV9jaGVja3MuaD4KQEAgLTM0MCw2ICszNDIsMTEgQEAgc3RydWN0IF9Fd2tfVmll
d19Qcml2YXRlX0RhdGEgewogICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAg
fSBhbmltYXRlZFpvb207CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOworICAgIGNvbnN0
IGNoYXIqIGN1cnNvckdyb3VwOworICAgIEV2YXNfT2JqZWN0KiBjdXJzb3JPYmplY3Q7CisjaWZk
ZWYgSEFWRV9FQ09SRV9YCisgICAgYm9vbCBpc1VzaW5nRWNvcmVYOworI2VuZGlmCiB9OwogCiAj
aWZuZGVmIEVXS19UWVBFX0NIRUNLCkBAIC04NTcsNiArODY0LDEwIEBAIHN0YXRpYyBFd2tfVmll
d19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEpCiAKICAgICBwcml2LT5wYWdlQ2xpZW50ID0gYWRvcHRQdHIobmV3IFBhZ2VDbGll
bnRFZmwoc21hcnREYXRhLT5zZWxmKSk7CiAKKyNpZmRlZiBIQVZFX0VDT1JFX1gKKyAgICBwcml2
LT5pc1VzaW5nRWNvcmVYID0gV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWChzbWFydERhdGEtPmJhc2Uu
ZXZhcyk7CisjZW5kaWYKKwogICAgIHJldHVybiBwcml2OwogfQogCkBAIC04ODcsNiArODk4LDkg
QEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
cHJpdikKIAogICAgIGV3a19oaXN0b3J5X2ZyZWUocHJpdi0+aGlzdG9yeSk7CiAKKyAgICBpZiAo
cHJpdi0+Y3Vyc29yT2JqZWN0KQorICAgICAgICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29y
T2JqZWN0KTsKKwogICAgIGRlbGV0ZSBwcml2OwogfQogCkBAIC05MTMsMTEgKzkyNywxMSBAQCBz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAg
IHNtYXJ0RGF0YS0+YmdfY29sb3IuYSA9IDI1NTsKIAogICAgIHNtYXJ0RGF0YS0+c2VsZiA9IGV3
a1ZpZXc7Ci0gICAgc21hcnREYXRhLT5fcHJpdiA9IF9ld2tfdmlld19wcml2X25ldyhzbWFydERh
dGEpOwogICAgIHNtYXJ0RGF0YS0+YXBpID0gYXBpOwogCiAgICAgX3BhcmVudF9zYy5hZGQoZXdr
Vmlldyk7CiAKKyAgICBzbWFydERhdGEtPl9wcml2ID0gX2V3a192aWV3X3ByaXZfbmV3KHNtYXJ0
RGF0YSk7CiAgICAgaWYgKCFzbWFydERhdGEtPl9wcml2KQogICAgICAgICByZXR1cm47CiAKQEAg
LTQzNjgsNiArNDM4Miw1NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9f
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZW5hYmxlKQogI2VuZGlmCiB9CiAK
K3ZvaWQgZXdrX3ZpZXdfY3Vyc29yX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2Vi
Q29yZTo6Q3Vyc29yJiBjdXJzb3IpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYpOworCisgICAgY29uc3QgY2hhciogZ3JvdXAgPSBjdXJzb3IucGxhdGZvcm1D
dXJzb3IoKTsKKyAgICBpZiAoIWdyb3VwIHx8IGdyb3VwID09IHByaXYtPmN1cnNvckdyb3VwKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5jdXJzb3JHcm91cCA9IGdyb3VwOworCisgICAg
aWYgKHByaXYtPmN1cnNvck9iamVjdCkKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKHByaXYtPmN1
cnNvck9iamVjdCk7CisgICAgcHJpdi0+Y3Vyc29yT2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHNt
YXJ0RGF0YS0+YmFzZS5ldmFzKTsKKworICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IGVjb3Jl
X2V2YXNfZWNvcmVfZXZhc19nZXQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworICAgIGlmICghcHJp
di0+c2V0dGluZ3MudGhlbWUgfHwgIWVkamVfb2JqZWN0X2ZpbGVfc2V0KHByaXYtPmN1cnNvck9i
amVjdCwgcHJpdi0+c2V0dGluZ3MudGhlbWUsIGdyb3VwKSkgeworICAgICAgICBldmFzX29iamVj
dF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0KTsKKyAgICAgICAgcHJpdi0+Y3Vyc29yT2JqZWN0ID0g
MDsKKworICAgICAgICBlY29yZV9ldmFzX29iamVjdF9jdXJzb3Jfc2V0KGVjb3JlRXZhcywgMCwg
MCwgMCwgMCk7CisjaWZkZWYgSEFWRV9FQ09SRV9YCisgICAgICAgIGlmIChwcml2LT5pc1VzaW5n
RWNvcmVYKQorICAgICAgICAgICAgV2ViQ29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcihlY29yZUV2
YXMsIGdyb3VwKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIEV2YXNfQ29vcmQgd2lk
dGgsIGhlaWdodDsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2l6ZV9taW5fZ2V0KHByaXYtPmN1cnNv
ck9iamVjdCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVp
Z2h0IDw9IDApCisgICAgICAgICAgICBlZGplX29iamVjdF9zaXplX21pbl9jYWxjKHByaXYtPmN1
cnNvck9iamVjdCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwg
aGVpZ2h0IDw9IDApIHsKKyAgICAgICAgICAgIHdpZHRoID0gMTY7CisgICAgICAgICAgICBoZWln
aHQgPSAxNjsKKyAgICAgICAgfQorICAgICAgICBldmFzX29iamVjdF9yZXNpemUocHJpdi0+Y3Vy
c29yT2JqZWN0LCB3aWR0aCwgaGVpZ2h0KTsKKworICAgICAgICBjb25zdCBjaGFyKiBkYXRhOwor
ICAgICAgICBpbnQgaG90c3BvdFggPSAwOworICAgICAgICBkYXRhID0gZWRqZV9vYmplY3RfZGF0
YV9nZXQocHJpdi0+Y3Vyc29yT2JqZWN0LCAiaG90LngiKTsKKyAgICAgICAgaWYgKGRhdGEpCisg
ICAgICAgICAgICBob3RzcG90WCA9IGF0b2koZGF0YSk7CisKKyAgICAgICAgaW50IGhvdHNwb3RZ
ID0gMDsKKyAgICAgICAgZGF0YSA9IGVkamVfb2JqZWN0X2RhdGFfZ2V0KHByaXYtPmN1cnNvck9i
amVjdCwgImhvdC55Iik7CisgICAgICAgIGlmIChkYXRhKQorICAgICAgICAgICAgaG90c3BvdFkg
PSBhdG9pKGRhdGEpOworCisgICAgICAgIGVjb3JlX2V2YXNfb2JqZWN0X2N1cnNvcl9zZXQoZWNv
cmVFdmFzLCBwcml2LT5jdXJzb3JPYmplY3QsIEVWQVNfTEFZRVJfTUFYLCBob3RzcG90WCwgaG90
c3BvdFkpOworICAgIH0KK30KKwogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCiBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4IGI3NDRlMTVhN2I2ZTRiNzgxYmUwMDU3YzAz
NTdiMTMyOGRkMDAzNTkuLmI3MGU3NTViMTYwOTNhNTNjZTZjZDM3OGUzNjNkYzY5MjNkZjFkODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzQsNiArMzQs
NyBAQCBjbGFzcyBDb2xvcjsKIGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKICNlbmRpZgogCitj
bGFzcyBDdXJzb3I7CiBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiB9CiAKQEAgLTQ4LDYgKzQ5LDcg
QEAgY29uc3QgY2hhciBld2tWaWV3U2luZ2xlTmFtZVtdID0gIkV3a19WaWV3X1NpbmdsZSI7CiAg
ICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAogICAgIH0KIAordm9pZCBld2tfdmlld19jdXJz
b3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNv
cik7CiB2b2lkIGV3a192aWV3X3JlYWR5KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdr
X3ZpZXdfaW5wdXRfbWV0aG9kX3N0YXRlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBh
Y3RpdmUpOwogdm9pZCBld2tfdmlld190aXRsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IEV3a19UZXh0X1dpdGhfRGlyZWN0aW9uKiB0aXRsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147275</attachid>
            <date>2012-06-13 03:25:09 -0700</date>
            <delta_ts>2012-06-14 16:10:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88803-20120613192507.patch</filename>
            <type>text/plain</type>
            <size>16308</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI0MTY2YmI4NzYyZTBh
MDA1ZDMyZjZmODYxMjUxZDc2YTU5YjVlNS4uM2RlYTMxNDc3NjFkNzY4YjIwMTk0ODcwYTU5Nzg0
NzI0NmZjYTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTEzICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGN1
cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3ZpZXcgYW5kIEVmbFNjcmVl
blV0aWxpdGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmVjYXVzZSBXZWJQcm9jZXNzIGNhbiBub3QgY29udHJvbCBjdXJzb3IsCisgICAgICAgIHNl
dEN1cnNvciBzaG91bGQgYmUgcGFzc2VkIHRvIENocm9tZUNsaWVudCBsaWtlIG90aGVyIHBvcnRz
LgorCisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6IE1vdmVkIGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNVc2luZ0Vjb3JlWCk6IE1vdmVk
IGZyb20gV2lkZ2V0RWZsLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lk
Z2V0RWZsLmNwcDogUmVtb3ZlcyBjdXJzb3IgcmVsYXRlZCBjb2Rlcy4KKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldFByaXZhdGU6OldpZGdldFByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0Ojp+V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Q3Vyc29yKTogUmVk
aXJlY3QgdG8gSG9zdFdpbmRvdy4KKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0RXZhc09i
amVjdCk6CisKIDIwMTItMDYtMTMgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEltcGxlbWVudCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlYWREaXJlY3Rv
cnkgZm9yIEZpbGVTeXN0ZW0gc3VwcG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA5NGE1MDRjMWY1
OGYwNjJhNDIyZTBkNmI2NDNjMmM0ZTlmMzQ3MGY0Li4zNzA3ZWY0NjAzYmU4Y2E4ZmYwN2M4ZmRl
YzFjMmUyZDJmMjRmNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTIt
MDYtMTMgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtF
RkxdIE1vdmUgY3Vyc29yIHJlbGF0ZWQgY29kZSBmcm9tIFdpZGdldEVmbCB0byBld2tfdmlldyBh
bmQgRWZsU2NyZWVuVXRpbGl0aWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODg4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBCZWNhdXNlIFdlYlByb2Nlc3MgY2FuIG5vdCBjb250cm9sIGN1cnNvciwK
KyAgICAgICAgc2V0Q3Vyc29yIHNob3VsZCBiZSBwYXNzZWQgdG8gQ2hyb21lQ2xpZW50IGxpa2Ug
b3RoZXIgcG9ydHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZXRDdXJzb3IpOgorICAg
ICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6IENoZWNrIHdoZXRoZXIgZWNvcmVfeCBj
YW4gYmUgdXNlZC4KKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChfZXdr
X3ZpZXdfc21hcnRfYWRkKToKKyAgICAgICAgQ2hhbmdlIG9yZGVyIG9mIGluaXRpYWxpemF0aW9u
IHRvIHVzZSBiYXNlIHN0cnVjdHVyZSBpbiBfZXdrX3ZpZXdfcHJpdl9uZXcuCisgICAgICAgIChl
d2tfdmlld19jdXJzb3Jfc2V0KTogTW92ZWQgZnJvbSBXaWRnZXQ6OmFwcGx5Q3Vyc29yLgorICAg
ICAgICAqIGV3ay9ld2tfdmlld19wcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAx
Mi0wNi0xMiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgog
CiAgICAgICAgIFtFRkxdIEVuYWJsZSBTSEFET1dfRE9NIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lk
Z2V0LmgKaW5kZXggZmZhMWNjMDY4Y2NkYWZlM2RlMDc3YjQwNDMxMmQ2YzIyZjllNDNiYy4uOGYz
ZWY1NzRiYTlkYWU2ZTdjOTI3NjUwNTRjZmJlNWJhZmYyMzkyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmgKQEAgLTI3MSwxNCArMjcxLDYgQEAgcHJpdmF0ZToKIAogICAgIEludFJlY3QgbV9m
cmFtZTsgLy8gTm90IHVzZWQgd2hlbiBhIG5hdGl2ZSB3aWRnZXQgZXhpc3RzLgogCi0jaWYgUExB
VEZPUk0oRUZMKQotICAgIC8vIEZJWE1FOiBQbGVhc2Ugc2VlIHRoZSBwcmV2aW91cyAjaWYgUExB
VEZPUk0oRUZMKSBibG9jay4KLSAgICBFY29yZV9FdmFzKiBlY29yZUV2YXMoKSBjb25zdDsKLQot
ICAgIHZvaWQgYXBwbHlGYWxsYmFja0N1cnNvcigpOwotICAgIHZvaWQgYXBwbHlDdXJzb3IoKTsK
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShFRkwpCiAgICAgV2lkZ2V0
UHJpdmF0ZSogbV9kYXRhOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCmluZGV4IDdlYTdiN2U0N2E1OTQ4YjU0NzQ0MTc4
NDlhZmQwYzU2MDQ3MzM3YzEuLmU0YTcyNzc5N2JmZDY2NGYyMmYwNDg1ZDIwZDE2ZGFkZDkyMGZl
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGls
aXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGls
aXRpZXMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cwogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgIkVmbFNj
cmVlblV0aWxpdGllcy5oIgogCiAjaWZkZWYgSEFWRV9FQ09SRV9YCisjaW5jbHVkZSA8RWNvcmVf
RXZhcy5oPgogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTEwMiw2ICsxMDMsMjEgQEAgaW50
IGdldEVjb3JlQ3Vyc29yKGNvbnN0IFN0cmluZyYgY3Vyc29yU3RyaW5nKQogfQogI2VuZGlmCiAK
K3ZvaWQgYXBwbHlGYWxsYmFja0N1cnNvcihFY29yZV9FdmFzKiBlY29yZUV2YXMsIGNvbnN0IGNo
YXIqIGN1cnNvclN0cmluZykKK3sKKyNpZmRlZiBIQVZFX0VDT1JFX1gKKyAgICBpbnQgc2hhcGUg
PSBnZXRFY29yZUN1cnNvcihjdXJzb3JTdHJpbmcpOworICAgIGlmIChzaGFwZSA8IEVDT1JFX1hf
Q1VSU09SX1ggfHwgc2hhcGUgPiBFQ09SRV9YX0NVUlNPUl9YVEVSTSkgeworICAgICAgICBMT0df
RVJST1IoImNhbm5vdCBtYXAgYW4gZXF1aXZhbGVudCBYIGN1cnNvciBmb3IiCisgICAgICAgICAg
ICAgICAgICAiIGMgdXJzb3IgZ3JvdXAgJXMiLCBjdXJzb3JTdHJpbmcpOworICAgICAgICBzaGFw
ZSA9IEVDT1JFX1hfQ1VSU09SX0xFRlRfUFRSOworICAgIH0KKyAgICBFY29yZV9YX1dpbmRvdyB3
aW5kb3cgPSBlY29yZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7Cisg
ICAgRWNvcmVfWF9DdXJzb3IgY3Vyc29yID0gZWNvcmVfeF9jdXJzb3Jfc2hhcGVfZ2V0KHNoYXBl
KTsKKyAgICBlY29yZV94X3dpbmRvd19jdXJzb3Jfc2V0KHdpbmRvdywgY3Vyc29yKTsKKyNlbmRp
ZgorfQorCiBpbnQgZ2V0RFBJKCkKIHsKICNpZmRlZiBIQVZFX0VDT1JFX1gKQEAgLTExMSw0ICsx
MjcsMTggQEAgaW50IGdldERQSSgpCiAjZW5kaWYKIH0KIAorYm9vbCBpc1VzaW5nRWNvcmVYKGNv
bnN0IEV2YXMqIGV2YXMpCit7CisjaWZkZWYgSEFWRV9FQ09SRV9YCisgICAgRWNvcmVfRXZhcyog
ZWNvcmVFdmFzID0gZWNvcmVfZXZhc19lY29yZV9ldmFzX2dldChldmFzKTsKKyAgICBjb25zdCBj
aGFyKiBlbmdpbmUgPSBlY29yZV9ldmFzX2VuZ2luZV9uYW1lX2dldChlY29yZUV2YXMpOworICAg
IHJldHVybiAhc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3gxMSIpCisgICAgICAgIHx8ICFzdHJj
bXAoZW5naW5lLCAic29mdHdhcmVfeGNiIikKKyAgICAgICAgfHwgIXN0cmNtcChlbmdpbmUsICJz
b2Z0d2FyZV8xNl94MTEiKQorICAgICAgICB8fCAhc3RybmNtcChlbmdpbmUsICJ4cmVuZGVyIiwg
c2l6ZW9mKCJ4cmVuZGVyIikgLSAxKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaAppbmRleCAxNDQ1YzIyNjZlYWI5NjYyMGZjMGQw
M2ZjNmQ0MjdiOTNjNTA2YTQzLi42ZWM2MGVmMDI2M2MzODU3ODNjZDkxYzhmZDk1MzEyN2NmYzVl
ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxp
dGllcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5n
IEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMTMgKzIxLDEzIEBACiAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBzdHJ1Y3Qg
X0V2YXMgRXZhczsKIAotI2lmZGVmIEhBVkVfRUNPUkVfWAotaW50IGdldEVjb3JlQ3Vyc29yKGNv
bnN0IFN0cmluZyYgY3Vyc29yU3RyaW5nKTsKLSNlbmRpZgorbmFtZXNwYWNlIFdlYkNvcmUgewog
Cit2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3IoRWNvcmVfRXZhcyosIGNvbnN0IGNoYXIqKTsKIGlu
dCBnZXREUEkoKTsKK2Jvb2wgaXNVc2luZ0Vjb3JlWChjb25zdCBFdmFzKik7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1dpZGdldEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNw
cAppbmRleCA3MTQwZDY5ZjIzM2U4ZDU5NTQ2YmEyNDk0YmNhNWJiY2ExZWFhODhmLi4xMzhiZGZh
MzAxN2Q1ZWViMjRlMDM1YmU5MzFkZGEwZDFkMGM5ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA4IEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9G
VVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTIgU2Ftc3VuZyBFbGVjdHJv
bmljcwogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQzLDE0
ICs0Myw4IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogCiAjaW5jbHVkZSA8RWNvcmUuaD4KLSNpbmNs
dWRlIDxFY29yZV9FdmFzLmg+Ci0jaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPEV2YXMuaD4K
IAotI2lmZGVmIEhBVkVfRUNPUkVfWAotI2luY2x1ZGUgPEVjb3JlX1guaD4KLSNlbmRpZgotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdpZGdldFByaXZhdGUgewpAQCAtNjIsMTkgKzU2
LDcgQEAgcHVibGljOgogICAgIFdpZGdldFByaXZhdGUoKQogICAgICAgICA6IG1fZXZhcygwKQog
ICAgICAgICAsIG1fZXZhc09iamVjdCgwKQotICAgICAgICAsIG1fY3Vyc29yT2JqZWN0KDApCi0j
aWZkZWYgSEFWRV9FQ09SRV9YCi0gICAgICAgICwgbV9pc1VzaW5nRWNvcmVYKGZhbHNlKQotI2Vu
ZGlmCiAgICAgeyB9Ci0KLSAgICAvKiBjdXJzb3IgKi8KLSAgICBTdHJpbmcgbV9jdXJzb3JHcm91
cDsKLSAgICBFdmFzX09iamVjdCogbV9jdXJzb3JPYmplY3Q7Ci0KLSNpZmRlZiBIQVZFX0VDT1JF
X1gKLSAgICBib29sIG1faXNVc2luZ0Vjb3JlWDsKLSNlbmRpZgogfTsKIAogV2lkZ2V0OjpXaWRn
ZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQpAQCAtOTIsOSArNzQsNiBAQCBXaWRnZXQ6On5XaWRn
ZXQoKQogewogICAgIEFTU0VSVCghcGFyZW50KCkpOwogCi0gICAgaWYgKG1fZGF0YS0+bV9jdXJz
b3JPYmplY3QpCi0gICAgICAgIGV2YXNfb2JqZWN0X2RlbChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0
KTsKLQogICAgIGRlbGV0ZSBtX2RhdGE7CiB9CiAKQEAgLTEzMiw3MCArMTExLDEyIEBAIHZvaWQg
V2lkZ2V0OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCiB7CiB9CiAKLXZvaWQgV2lkZ2V0OjphcHBs
eUZhbGxiYWNrQ3Vyc29yKCkKLXsKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSAgICBpZiAobV9kYXRh
LT5tX2lzVXNpbmdFY29yZVggJiYgIW1fZGF0YS0+bV9jdXJzb3JHcm91cC5pc051bGwoKSkgewot
ICAgICAgICBpbnQgc2hhcGUgPSBnZXRFY29yZUN1cnNvcihtX2RhdGEtPm1fY3Vyc29yR3JvdXAp
OwotCi0gICAgICAgIGlmIChzaGFwZSA8IEVDT1JFX1hfQ1VSU09SX1ggfHwgc2hhcGUgPiBFQ09S
RV9YX0NVUlNPUl9YVEVSTSkgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJjYW5ub3QgbWFwIGFu
IGVxdWl2YWxlbnQgWCBjdXJzb3IgZm9yIgotICAgICAgICAgICAgICAgICAgICAgICIgYyB1cnNv
ciBncm91cCAlcyIsIG1fZGF0YS0+bV9jdXJzb3JHcm91cC51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIHNoYXBlID0gRUNPUkVfWF9DVVJTT1JfTEVGVF9QVFI7Ci0gICAgICAgIH0KLQotICAg
ICAgICBFY29yZV9YX1dpbmRvdyB3aW4gPSBlY29yZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3df
Z2V0KGVjb3JlRXZhcygpKTsKLSAgICAgICAgRWNvcmVfWF9DdXJzb3IgY3VyID0gZWNvcmVfeF9j
dXJzb3Jfc2hhcGVfZ2V0KHNoYXBlKTsKLSAgICAgICAgZWNvcmVfeF93aW5kb3dfY3Vyc29yX3Nl
dCh3aW4sIGN1cik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLX0KLQotdm9pZCBX
aWRnZXQ6OmFwcGx5Q3Vyc29yKCkKLXsKLSAgICBDU3RyaW5nIGZpbGUgPSBlZGplVGhlbWVSZWN1
cnNpdmUoKS51dGY4KCk7Ci0KLSAgICBtX2RhdGEtPm1fY3Vyc29yT2JqZWN0ID0gZWRqZV9vYmpl
Y3RfYWRkKGV2YXMoKSk7Ci0gICAgaWYgKCFmaWxlLmlzTnVsbCgpICYmICFlZGplX29iamVjdF9m
aWxlX3NldChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LCBmaWxlLmRhdGEoKSwgbV9kYXRhLT5tX2N1
cnNvckdyb3VwLnV0ZjgoKS5kYXRhKCkpKSB7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2RlbChtX2Rh
dGEtPm1fY3Vyc29yT2JqZWN0KTsKLSAgICAgICAgbV9kYXRhLT5tX2N1cnNvck9iamVjdCA9IDA7
Ci0gICAgICAgIGVjb3JlX2V2YXNfb2JqZWN0X2N1cnNvcl9zZXQoZWNvcmVFdmFzKCksIDAsIDAs
IDAsIDApOwotICAgICAgICBhcHBseUZhbGxiYWNrQ3Vyc29yKCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgRXZhc19Db29yZCB4LCB5LCB3LCBoOwotICAgICAgICBjb25zdCBjaGFyICpkOwotCi0g
ICAgICAgIGVkamVfb2JqZWN0X3NpemVfbWluX2dldChtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LCAm
dywgJmgpOwotICAgICAgICBpZiAoKHcgPD0gMCkgfHwgKGggPD0gMCkpCi0gICAgICAgICAgICBl
ZGplX29iamVjdF9zaXplX21pbl9jYWxjKG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsICZ3LCAmaCk7
Ci0gICAgICAgIGlmICgodyA8PSAwKSB8fCAoaCA8PSAwKSkKLSAgICAgICAgICAgIHcgPSBoID0g
MTY7Ci0gICAgICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShtX2RhdGEtPm1fY3Vyc29yT2JqZWN0LCB3
LCBoKTsKLQotICAgICAgICBkID0gZWRqZV9vYmplY3RfZGF0YV9nZXQobV9kYXRhLT5tX2N1cnNv
ck9iamVjdCwgImhvdC54Iik7Ci0gICAgICAgIHggPSBkID8gYXRvaShkKSA6IDA7Ci0KLSAgICAg
ICAgZCA9IGVkamVfb2JqZWN0X2RhdGFfZ2V0KG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsICJob3Qu
eSIpOwotICAgICAgICB5ID0gZCA/IGF0b2koZCkgOiAwOwotCi0gICAgICAgIGVjb3JlX2V2YXNf
b2JqZWN0X2N1cnNvcl9zZXQoZWNvcmVFdmFzKCksIG1fZGF0YS0+bV9jdXJzb3JPYmplY3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZBU19MQVlFUl9NQVgsIHgsIHkp
OwotICAgIH0KLX0KLQogdm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNv
cikKIHsKLSAgICBpZiAoIWV2YXMoKSkKLSAgICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IGNo
YXIqIGdyb3VwID0gY3Vyc29yLnBsYXRmb3JtQ3Vyc29yKCk7Ci0gICAgaWYgKCFncm91cCB8fCBT
dHJpbmcoZ3JvdXApID09IG1fZGF0YS0+bV9jdXJzb3JHcm91cCkKKyAgICBTY3JvbGxWaWV3KiB2
aWV3ID0gcm9vdCgpOworICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwotCi0gICAgbV9k
YXRhLT5tX2N1cnNvckdyb3VwID0gZ3JvdXA7Ci0KLSAgICBhcHBseUN1cnNvcigpOworICAgIHZp
ZXctPmhvc3RXaW5kb3coKS0+c2V0Q3Vyc29yKGN1cnNvcik7CiB9CiAKIHZvaWQgV2lkZ2V0Ojpz
aG93KCkKQEAgLTI1MiwxMiArMTczLDYgQEAgRXZhcyogV2lkZ2V0OjpldmFzKCkgY29uc3QKICAg
ICByZXR1cm4gbV9kYXRhLT5tX2V2YXM7CiB9CiAKLUVjb3JlX0V2YXMqIFdpZGdldDo6ZWNvcmVF
dmFzKCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRSBFRkw6IFhYWCBhc3N1bWUgZXZhcyB3YXMgY3Jl
YXRlZCBieSBlY29yZV9ldmFzCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEVjb3JlX0V2YXMqPihl
dmFzX2RhdGFfYXR0YWNoX2dldChldmFzKCkpKTsKLX0KLQogdm9pZCBXaWRnZXQ6OnNldEV2YXNP
YmplY3QoRXZhc19PYmplY3QgKm9iamVjdCkKIHsKICAgICAvLyBGSVhNRTogc3R1ZHkgcGxhdGZv
cm1XaWRnZXQoKSBhbmQgdXNlIGl0CkBAIC0yNjcsMjIgKzE4MiwxMSBAQCB2b2lkIFdpZGdldDo6
c2V0RXZhc09iamVjdChFdmFzX09iamVjdCAqb2JqZWN0KQogICAgIG1fZGF0YS0+bV9ldmFzT2Jq
ZWN0ID0gb2JqZWN0OwogICAgIGlmICghb2JqZWN0KSB7CiAgICAgICAgIG1fZGF0YS0+bV9ldmFz
ID0gMDsKLSNpZmRlZiBIQVZFX0VDT1JFX1gKLSAgICAgICAgbV9kYXRhLT5tX2lzVXNpbmdFY29y
ZVggPSBmYWxzZTsKLSNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9kYXRh
LT5tX2V2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChvYmplY3QpOwogCi0jaWZkZWYgSEFWRV9F
Q09SRV9YCi0gICAgY29uc3QgY2hhciAqZW5naW5lID0gZWNvcmVfZXZhc19lbmdpbmVfbmFtZV9n
ZXQoZWNvcmVFdmFzKCkpOwotICAgIG1fZGF0YS0+bV9pc1VzaW5nRWNvcmVYID0gKCFzdHJjbXAo
ZW5naW5lLCAic29mdHdhcmVfeDExIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
fCAhc3RyY21wKGVuZ2luZSwgInNvZnR3YXJlX3hjYiIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgIXN0cmNtcChlbmdpbmUsICJzb2Z0d2FyZV8xNl94MTEiKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHx8ICFzdHJuY21wKGVuZ2luZSwgInhyZW5kZXIiLCBzaXpl
b2YoInhyZW5kZXIiKSAtIDEpKTsKLSNlbmRpZgotCiAgICAgV2lkZ2V0OjpmcmFtZVJlY3RzQ2hh
bmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA2MGQxM2U1MGFmNjAxMTQ4ZTU1ZWRhMDM5YWMwNTQ1
OTUxYmQ2NjRlLi5hMjM0YmY5ZjcxOTA3ZDI2Mjg2ZmRlYmFmZjkwZmFlZjhkNzcyN2IyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4KICAqIENvcHlyaWdodCAoQykgMjAwOCBEaWVnbyBHb256YWxlegogICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KQEAgLTQ5OSw5ICs0OTksOSBAQCB2b2lkIENocm9tZUNsaWVudEVm
bDo6Zm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJikKK3Zv
aWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBld2tfdmlld19jdXJzb3Jfc2V0KG1fdmlldywgY3Vy
c29yKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6OnNldEN1cnNvckhpZGRlblVudGlsTW91
c2VNb3Zlcyhib29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggOTc5OGU5NGY3
NzZhYzIxMTY1M2IzZGY1ZjlkYzAxZDE3MWI5YTk1Mi4uNDAzZGFiMTFmOTE0MDU3YmM3M2RjNzRk
ZGJiYWIyNDE0NGZlMGFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC02Niw2
ICs2Niw4IEBACiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193
aW5kb3dfZmVhdHVyZXNfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8
RWNvcmVfRXZhcy5oPgorI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxFaW5hLmg+CiAjaW5j
bHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgpAQCAtMzQwLDYg
KzM0MiwxMSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIEVjb3Jl
X0FuaW1hdG9yKiBhbmltYXRvcjsKICAgICB9IGFuaW1hdGVkWm9vbTsKICAgICBTb3VwU2Vzc2lv
biogc291cFNlc3Npb247CisgICAgY29uc3QgY2hhciogY3Vyc29yR3JvdXA7CisgICAgRXZhc19P
YmplY3QqIGN1cnNvck9iamVjdDsKKyNpZmRlZiBIQVZFX0VDT1JFX1gKKyAgICBib29sIGlzVXNp
bmdFY29yZVg7CisjZW5kaWYKIH07CiAKICNpZm5kZWYgRVdLX1RZUEVfQ0hFQ0sKQEAgLTg1Nyw2
ICs4NjQsMTAgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZf
bmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIHByaXYtPnBhZ2VDbGll
bnQgPSBhZG9wdFB0cihuZXcgUGFnZUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpKTsKIAorI2lm
ZGVmIEhBVkVfRUNPUkVfWAorICAgIHByaXYtPmlzVXNpbmdFY29yZVggPSBXZWJDb3JlOjppc1Vz
aW5nRWNvcmVYKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHBy
aXY7CiB9CiAKQEAgLTg4Nyw2ICs4OTgsOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfcHJpdl9k
ZWwoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2KQogCiAgICAgZXdrX2hpc3RvcnlfZnJlZShw
cml2LT5oaXN0b3J5KTsKIAorICAgIGlmIChwcml2LT5jdXJzb3JPYmplY3QpCisgICAgICAgIGV2
YXNfb2JqZWN0X2RlbChwcml2LT5jdXJzb3JPYmplY3QpOworCiAgICAgZGVsZXRlIHByaXY7CiB9
CiAKQEAgLTkxMywxMSArOTI3LDExIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9hZGQo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgc21hcnREYXRhLT5iZ19jb2xvci5hID0gMjU1Owog
CiAgICAgc21hcnREYXRhLT5zZWxmID0gZXdrVmlldzsKLSAgICBzbWFydERhdGEtPl9wcml2ID0g
X2V3a192aWV3X3ByaXZfbmV3KHNtYXJ0RGF0YSk7CiAgICAgc21hcnREYXRhLT5hcGkgPSBhcGk7
CiAKICAgICBfcGFyZW50X3NjLmFkZChld2tWaWV3KTsKIAorICAgIHNtYXJ0RGF0YS0+X3ByaXYg
PSBfZXdrX3ZpZXdfcHJpdl9uZXcoc21hcnREYXRhKTsKICAgICBpZiAoIXNtYXJ0RGF0YS0+X3By
aXYpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDM2OCw2ICs0MzgyLDU3IEBAIEVpbmFfQm9vbCBl
d2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFf
Qm9vbCBlbmFibGUpCiAjZW5kaWYKIH0KIAordm9pZCBld2tfdmlld19jdXJzb3Jfc2V0KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKK3sKKyAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBjb25zdCBjaGFy
KiBncm91cCA9IGN1cnNvci5wbGF0Zm9ybUN1cnNvcigpOworICAgIGlmICghZ3JvdXAgfHwgZ3Jv
dXAgPT0gcHJpdi0+Y3Vyc29yR3JvdXApCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPmN1
cnNvckdyb3VwID0gZ3JvdXA7CisKKyAgICBpZiAocHJpdi0+Y3Vyc29yT2JqZWN0KQorICAgICAg
ICBldmFzX29iamVjdF9kZWwocHJpdi0+Y3Vyc29yT2JqZWN0KTsKKyAgICBwcml2LT5jdXJzb3JP
YmplY3QgPSBlZGplX29iamVjdF9hZGQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworCisgICAgRWNv
cmVfRXZhcyogZWNvcmVFdmFzID0gZWNvcmVfZXZhc19lY29yZV9ldmFzX2dldChzbWFydERhdGEt
PmJhc2UuZXZhcyk7CisgICAgaWYgKCFwcml2LT5zZXR0aW5ncy50aGVtZSB8fCAhZWRqZV9vYmpl
Y3RfZmlsZV9zZXQocHJpdi0+Y3Vyc29yT2JqZWN0LCBwcml2LT5zZXR0aW5ncy50aGVtZSwgZ3Jv
dXApKSB7CisgICAgICAgIGV2YXNfb2JqZWN0X2RlbChwcml2LT5jdXJzb3JPYmplY3QpOworICAg
ICAgICBwcml2LT5jdXJzb3JPYmplY3QgPSAwOworCisgICAgICAgIGVjb3JlX2V2YXNfb2JqZWN0
X2N1cnNvcl9zZXQoZWNvcmVFdmFzLCAwLCAwLCAwLCAwKTsKKyNpZmRlZiBIQVZFX0VDT1JFX1gK
KyAgICAgICAgaWYgKHByaXYtPmlzVXNpbmdFY29yZVgpCisgICAgICAgICAgICBXZWJDb3JlOjph
cHBseUZhbGxiYWNrQ3Vyc29yKGVjb3JlRXZhcywgZ3JvdXApOworI2VuZGlmCisgICAgfSBlbHNl
IHsKKyAgICAgICAgRXZhc19Db29yZCB3aWR0aCwgaGVpZ2h0OworICAgICAgICBlZGplX29iamVj
dF9zaXplX21pbl9nZXQocHJpdi0+Y3Vyc29yT2JqZWN0LCAmd2lkdGgsICZoZWlnaHQpOworICAg
ICAgICBpZiAod2lkdGggPD0gMCB8fCBoZWlnaHQgPD0gMCkKKyAgICAgICAgICAgIGVkamVfb2Jq
ZWN0X3NpemVfbWluX2NhbGMocHJpdi0+Y3Vyc29yT2JqZWN0LCAmd2lkdGgsICZoZWlnaHQpOwor
ICAgICAgICBpZiAod2lkdGggPD0gMCB8fCBoZWlnaHQgPD0gMCkgeworICAgICAgICAgICAgd2lk
dGggPSAxNjsKKyAgICAgICAgICAgIGhlaWdodCA9IDE2OworICAgICAgICB9CisgICAgICAgIGV2
YXNfb2JqZWN0X3Jlc2l6ZShwcml2LT5jdXJzb3JPYmplY3QsIHdpZHRoLCBoZWlnaHQpOworCisg
ICAgICAgIGNvbnN0IGNoYXIqIGRhdGE7CisgICAgICAgIGludCBob3RzcG90WCA9IDA7CisgICAg
ICAgIGRhdGEgPSBlZGplX29iamVjdF9kYXRhX2dldChwcml2LT5jdXJzb3JPYmplY3QsICJob3Qu
eCIpOworICAgICAgICBpZiAoZGF0YSkKKyAgICAgICAgICAgIGhvdHNwb3RYID0gYXRvaShkYXRh
KTsKKworICAgICAgICBpbnQgaG90c3BvdFkgPSAwOworICAgICAgICBkYXRhID0gZWRqZV9vYmpl
Y3RfZGF0YV9nZXQocHJpdi0+Y3Vyc29yT2JqZWN0LCAiaG90LnkiKTsKKyAgICAgICAgaWYgKGRh
dGEpCisgICAgICAgICAgICBob3RzcG90WSA9IGF0b2koZGF0YSk7CisKKyAgICAgICAgZWNvcmVf
ZXZhc19vYmplY3RfY3Vyc29yX3NldChlY29yZUV2YXMsIHByaXYtPmN1cnNvck9iamVjdCwgRVZB
U19MQVlFUl9NQVgsIGhvdHNwb3RYLCBob3RzcG90WSk7CisgICAgfQorfQorCiBuYW1lc3BhY2Ug
RVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKaW5kZXgg
Yjc0NGUxNWE3YjZlNGI3ODFiZTAwNTdjMDM1N2IxMzI4ZGQwMDM1OS4uYjcwZTc1NWIxNjA5M2E1
M2NlNmNkMzc4ZTM2M2RjNjkyM2RmMWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfcHJpdmF0ZS5oCkBAIC0zNCw2ICszNCw3IEBAIGNsYXNzIENvbG9yOwogY2xhc3MgQ29sb3JD
aG9vc2VyQ2xpZW50OwogI2VuZGlmCiAKK2NsYXNzIEN1cnNvcjsKIGNsYXNzIFBvcHVwTWVudUNs
aWVudDsKIH0KIApAQCAtNDgsNiArNDksNyBAQCBjb25zdCBjaGFyIGV3a1ZpZXdTaW5nbGVOYW1l
W10gPSAiRXdrX1ZpZXdfU2luZ2xlIjsKICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCiAg
ICAgfQogCit2b2lkIGV3a192aWV3X2N1cnNvcl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKTsKIHZvaWQgZXdrX3ZpZXdfcmVhZHkoRXZhc19P
YmplY3QqIGV3a1ZpZXcpOwogdm9pZCBld2tfdmlld19pbnB1dF9tZXRob2Rfc3RhdGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGFjdGl2ZSk7CiB2b2lkIGV3a192aWV3X3RpdGxlX3Nl
dChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX1RleHRfV2l0aF9EaXJlY3Rpb24qIHRp
dGxlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>