<?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>57191</bug_id>
          
          <creation_ts>2011-03-27 14:50:50 -0700</creation_ts>
          <short_desc>[WIN] Use WCHAR instead of TCHAR</short_desc>
          <delta_ts>2011-03-29 11:08:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>buildbot</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>374226</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 14:50:50 -0700</bug_when>
    <thetext>[WIN] Use WCHAR instead of TCHAR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374229</commentid>
    <comment_count>1</comment_count>
      <attachid>87086</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 15:00:14 -0700</bug_when>
    <thetext>Created attachment 87086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374230</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-27 15:01:57 -0700</bug_when>
    <thetext>Attachment 87086 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/win/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1

Source/WebKit/win/WebKitDLL.cpp:42:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374239</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-27 15:47:07 -0700</bug_when>
    <thetext>Attachment 87086 did not build on win:
Build output: http://queues.webkit.org/results/8266620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374243</commentid>
    <comment_count>4</comment_count>
      <attachid>87090</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-27 15:54:52 -0700</bug_when>
    <thetext>Created attachment 87090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374246</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-27 15:56:31 -0700</bug_when>
    <thetext>Attachment 87090 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/win/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1

Source/WebKit/win/WebKitDLL.cpp:42:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374428</commentid>
    <comment_count>6</comment_count>
      <attachid>87090</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-28 05:36:40 -0700</bug_when>
    <thetext>Comment on attachment 87090
Patch

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

I&apos;m surprised that the wchar.h includes are needed.

Do you have any opinion on WCHAR vs. wchar_t?

&gt;&gt; Source/WebKit/win/WebKitDLL.cpp:42
&gt;&gt; +#include &lt;wchar.h&gt;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

You should fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374433</commentid>
    <comment_count>7</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-28 05:41:02 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;m surprised that the wchar.h includes are needed.
I&apos;m not sure if they are needed, but the w* functions are declared in wchar.h. IMHO it should be included.

&gt; Do you have any opinion on WCHAR vs. wchar_t?
Not realy, but i think WCHAR is better since the windows xxxW functions use WCHAR for parameters too.

&gt; &gt;&gt; Source/WebKit/win/WebKitDLL.cpp:42
&gt; &gt;&gt; +#include &lt;wchar.h&gt;
&gt; &gt; 
&gt; &gt; Alphabetical sorting problem.  [build/include_order] [4]
&gt; 
&gt; You should fix this.
I&apos;ll do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374601</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-28 10:48:44 -0700</bug_when>
    <thetext>This looks somewhat strange to me. WCHAR and wchar_t are different types, why is calling functions like wcslen() on WCHAR[] ok? It&apos;s confusing at best.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374614</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-28 11:00:50 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This looks somewhat strange to me. WCHAR and wchar_t are different types, why is calling functions like wcslen() on WCHAR[] ok?
WCHAR is only a typdef to wchar_t, but most (all?) wide character windows api function use the WCHAR typedef for declaring the arguments.

&gt; It&apos;s confusing at best.
It&apos;s windows. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374618</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-28 11:05:23 -0700</bug_when>
    <thetext>Indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375551</commentid>
    <comment_count>11</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-03-29 11:08:36 -0700</bug_when>
    <thetext>Committed r82284: &lt;http://trac.webkit.org/changeset/82284&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87086</attachid>
            <date>2011-03-27 15:00:14 -0700</date>
            <delta_ts>2011-03-27 15:54:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57191-20110328000011.patch</filename>
            <type>text/plain</type>
            <size>16769</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIwNzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBkY2E2MWJlMzEw
MTY4YzA0YzVkYjQ3ZWM3MGQzYmFiYjlhN2RkYWMxLi5mNTVhNDdiMjI5ZjIxMGViZWZlYjVjMjA1
NjU2ZGFmMmE0ODFkMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEt
MDMtMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJTl0gVXNlIFdDSEFSIGlu
c3RlYWQgb2YgVENIQVIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU3MTkxCisKKyAgICAgICAgV2UgYWx3YXlzIHVzZSB0aGUgVU5JQ09ERSB2ZXJzaW9u
cyBvZiB3aW5kb3dzIGZ1bmN0aW9ucywgc28KKyAgICAgICAgdGhlIHVzYWdlIG9mIFRDSEFSIG1h
a2VzIG5vIHNlbnNlIGFuZCBtaXhpbmcgdGhlbSBpcyBiYWQgc3R5bGUuCisKKyAgICAgICAgKiBE
ZWZhdWx0RG93bmxvYWREZWxlZ2F0ZS5jcHA6CisgICAgICAgIChEZWZhdWx0RG93bmxvYWREZWxl
Z2F0ZTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OnJ1bk9wZW5QYW5lbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5j
cHA6CisgICAgICAgICogV2ViS2l0RExMLmNwcDoKKyAgICAgICAgKiBXZWJOb3RpZmljYXRpb25D
ZW50ZXIuY3BwOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKiBXZWJV
UkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJVUkxSZXNwb25zZTo6c3VnZ2VzdGVkRmlsZUV4
dGVuc2lvbik6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojptb3Vz
ZVdoZWVsKToKKyAgICAgICAgKFdlYlZpZXc6OnNob3VsZEluaXRpYWxpemVUcmFja1BvaW50SGFj
ayk6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUpOgorICAgICAgICAoSU1NRGljdDo6SU1NRGljdCk6
CisgICAgICAgIChXZWJWaWV3OjpvbkdldE9iamVjdCk6CisKIDIwMTEtMDMtMjUgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb24gSG9uZXljdXR0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vRGVmYXVsdERvd25sb2FkRGVsZWdhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vRGVmYXVsdERvd25sb2FkRGVsZWdhdGUuY3BwCmluZGV4
IDI5ZGE2YTRjODVkMDE3ZmRhMjcwZTQzNjRkMjIzNzFkYmY5YzE5MzQuLmFkZTAzMzY2OTAyMTlk
NWYxZDhlN2NjNWVkOTdlNDhlOGYyYTgxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0RlZmF1bHREb3dubG9hZERlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9EZWZh
dWx0RG93bmxvYWREZWxlZ2F0ZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxzaGxvYmouaD4KLSNpbmNsdWRlIDx0Y2hhci5o
PgorI2luY2x1ZGUgPHdjaGFyLmg+CiAKICNwcmFnbWEgd2FybmluZyhwdXNoLCAwKQogI2luY2x1
ZGUgPFdlYkNvcmUvQlN0cmluZy5oPgpAQCAtMTA5LDcgKzEwOSw3IEBAIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgRGVmYXVsdERvd25sb2FkRGVsZWdhdGU6OmRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlCiB7CiAgICAgTE9HKERvd25sb2FkLCAiRGVmYXVsdERvd25sb2FkRGVsZWdhdGUg
JXAgLSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSAlcyIsIGRvd25sb2Fk
LCBTdHJpbmcoZmlsZW5hbWUsIFN5c1N0cmluZ0xlbihmaWxlbmFtZSkpLmFzY2lpKCkuZGF0YSgp
KTsKIAotICAgIFRDSEFSIHBhdGhDaGFyc1tNQVhfUEFUSF07CisgICAgV0NIQVIgcGF0aENoYXJz
W01BWF9QQVRIXTsKICAgICBpZiAoRkFJTEVEKFNIR2V0Rm9sZGVyUGF0aCgwLCBDU0lETF9ERVNL
VE9QRElSRUNUT1JZICB8IENTSURMX0ZMQUdfQ1JFQVRFLCAwLCAwLCBwYXRoQ2hhcnMpKSkgewog
ICAgICAgICBpZiAoRkFJTEVEKGRvd25sb2FkLT5zZXREZXN0aW5hdGlvbihmaWxlbmFtZSwgdHJ1
ZSkpKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQgZGVzdGluYXRpb24g
b24gZmlsZSIpOwpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBEZWZhdWx0RG93bmxvYWREZWxlZ2F0ZTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGUK
ICAgICAgICAgcmV0dXJuIFNfT0s7CiAgICAgfQogCi0gICAgc2l6ZV90IGZ1bGxMZW5ndGggPSBf
dGNzbGVuKHBhdGhDaGFycykgKyBTeXNTdHJpbmdMZW4oZmlsZW5hbWUpICsgMjsKKyAgICBzaXpl
X3QgZnVsbExlbmd0aCA9IHdjc2xlbihwYXRoQ2hhcnMpICsgU3lzU3RyaW5nTGVuKGZpbGVuYW1l
KSArIDI7CiAgICAgQlNUUiBmdWxsID0gU3lzQWxsb2NTdHJpbmdMZW4oMCwgKFVJTlQpZnVsbExl
bmd0aCk7CiAgICAgaWYgKCFmdWxsKQogICAgICAgICByZXR1cm4gRV9PVVRPRk1FTU9SWTsKIAot
ICAgIF90Y3NjcHlfcyhmdWxsLCBmdWxsTGVuZ3RoLCBwYXRoQ2hhcnMpOwotICAgIF90Y3NjYXRf
cyhmdWxsLCBmdWxsTGVuZ3RoLCBfVCgiXFwiKSk7Ci0gICAgX3Rjc2NhdF9zKGZ1bGwsIGZ1bGxM
ZW5ndGgsIGZpbGVuYW1lKTsKKyAgICB3Y3NjcHlfcyhmdWxsLCBmdWxsTGVuZ3RoLCBwYXRoQ2hh
cnMpOworICAgIHdjc2NhdF9zKGZ1bGwsIGZ1bGxMZW5ndGgsIEwiXFwiKTsKKyAgICB3Y3NjYXRf
cyhmdWxsLCBmdWxsTGVuZ3RoLCBmaWxlbmFtZSk7CiAgICAgQlN0cmluZyBmdWxsUGF0aDsKICAg
ICBmdWxsUGF0aC5hZG9wdEJTVFIoZnVsbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDY1NTM3ZjQyNTUxN2Ix
NjIzODIxYzhlNWJlOWIzNTEzYzlmOGZkMWUuLjE5MzVjNWZhMTIxMTcwOWYwMmMxMmE3YjU5MWVl
ZTQzNTgxMThhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUG9wdXBNZW51V2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVXaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+Ci0jaW5jbHVkZSA8dGNoYXIu
aD4KKyNpbmNsdWRlIDx3Y2hhci5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgpAQCAtNTkxLDggKzU5MSw4IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1l
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlCiAgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKG1fd2ViVmlldywga2l0KGZyYW1lKSwgb3JpZ2luLmdldCgp
LCBCU3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllcikpOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3b3JrYXJvdW5kIG9uY2Ugc2hpcHBpbmcgU2FmYXJp
IGhhcyB0aGUgbmVjZXNzYXJ5IGRlbGVnYXRlIGltcGxlbWVudGVkLgotICAgICAgICAgICAgVENI
QVIgcGF0aFtNQVhfUEFUSF07Ci0gICAgICAgICAgICBITU9EVUxFIHNhZmFyaUhhbmRsZSA9IEdl
dE1vZHVsZUhhbmRsZShURVhUKCJTYWZhcmkuZXhlIikpOworICAgICAgICAgICAgV0NIQVIgcGF0
aFtNQVhfUEFUSF07CisgICAgICAgICAgICBITU9EVUxFIHNhZmFyaUhhbmRsZSA9IEdldE1vZHVs
ZUhhbmRsZVcoTCJTYWZhcmkuZXhlIik7CiAgICAgICAgICAgICBpZiAoIXNhZmFyaUhhbmRsZSkK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBHZXRNb2R1bGVGaWxlTmFtZShz
YWZhcmlIYW5kbGUsIHBhdGgsIFdURl9BUlJBWV9MRU5HVEgocGF0aCkpOwpAQCAtNjA2LDkgKzYw
Niw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlCiAKICAgICAgICAgICAgIExQQ1RTVFIgcHJv
ZHVjdFZlcnNpb247CiAgICAgICAgICAgICBVSU5UIHByb2R1Y3RWZXJzaW9uTGVuZ3RoOwotICAg
ICAgICAgICAgaWYgKCFWZXJRdWVyeVZhbHVlKGRhdGEuZGF0YSgpLCBURVhUKCJcXFN0cmluZ0Zp
bGVJbmZvXFwwNDA5MDRiMFxcUHJvZHVjdFZlcnNpb24iKSwgKHZvaWQqKikmcHJvZHVjdFZlcnNp
b24sICZwcm9kdWN0VmVyc2lvbkxlbmd0aCkpCisgICAgICAgICAgICBpZiAoIVZlclF1ZXJ5VmFs
dWVXKGRhdGEuZGF0YSgpLCBMIlxcU3RyaW5nRmlsZUluZm9cXDA0MDkwNGIwXFxQcm9kdWN0VmVy
c2lvbiIsICh2b2lkKiopJnByb2R1Y3RWZXJzaW9uLCAmcHJvZHVjdFZlcnNpb25MZW5ndGgpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChfdGNzbmNtcChURVhUKCIz
LjEiKSwgcHJvZHVjdFZlcnNpb24sIHByb2R1Y3RWZXJzaW9uTGVuZ3RoKSA+IDApIHsKKyAgICAg
ICAgICAgIGlmICh3Y3NuY21wKEwiMy4xIiwgcHJvZHVjdFZlcnNpb24sIHByb2R1Y3RWZXJzaW9u
TGVuZ3RoKSA+IDApIHsKICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcg
ZGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OyAvLyA1IG1lZ2FieXRlcyBzaG91bGQgaG9w
ZWZ1bGx5IGJlIGVub3VnaCB0byB0ZXN0IHN0b3JhZ2Ugc3VwcG9ydC4KICAgICAgICAgICAgICAg
ICBvcmlnaW4tPnNldFF1b3RhKGRlZmF1bHRRdW90YSk7CiAgICAgICAgICAgICB9CkBAIC03Mzgs
NyArNzM4LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBh
c3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgYm9vbCBtdWx0aUZpbGUgPSBmaWxlQ2hvb3Nlci0+YWxsb3dzTXVsdGlwbGVGaWxlcygpOwot
ICAgIFZlY3RvcjxUQ0hBUj4gZmlsZUJ1ZihtdWx0aUZpbGUgPyBtYXhGaWxlUGF0aHNMaXN0U2l6
ZSA6IE1BWF9QQVRIKTsKKyAgICBWZWN0b3I8V0NIQVI+IGZpbGVCdWYobXVsdGlGaWxlID8gbWF4
RmlsZVBhdGhzTGlzdFNpemUgOiBNQVhfUEFUSCk7CiAKICAgICBPUEVORklMRU5BTUUgb2ZuOwog
CkBAIC03NTAsNyArNzUwLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChG
cmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UKICAgICBvZm4ubFN0
cnVjdFNpemUgPSBzaXplb2Yob2ZuKTsKICAgICBvZm4uaHduZE93bmVyID0gdmlld1dpbmRvdzsK
ICAgICBTdHJpbmcgYWxsRmlsZXMgPSBhbGxGaWxlc1RleHQoKTsKLSAgICBhbGxGaWxlcy5hcHBl
bmQoVEVYVCgiXDAqLipcMFwwIiksIDYpOworICAgIGFsbEZpbGVzLmFwcGVuZChMIlwwKi4qXDBc
MCIsIDYpOwogICAgIG9mbi5scHN0ckZpbHRlciA9IGFsbEZpbGVzLmNoYXJhY3RlcnNXaXRoTnVs
bFRlcm1pbmF0aW9uKCk7CiAgICAgb2ZuLmxwc3RyRmlsZSA9IGZpbGVCdWYuZGF0YSgpOwogICAg
IG9mbi5uTWF4RmlsZSA9IGZpbGVCdWYuc2l6ZSgpOwpAQCAtNzYxLDcgKzc2MSw3IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBwcnBGaWxlQ2hvb3NlCiAgICAgICAgIG9mbi5GbGFncyA9IG9mbi5GbGFncyB8IE9GTl9B
TExPV01VTFRJU0VMRUNUOwogCiAgICAgaWYgKEdldE9wZW5GaWxlTmFtZSgmb2ZuKSkgewotICAg
ICAgICBUQ0hBUiogZmlsZXMgPSBmaWxlQnVmLmRhdGEoKTsKKyAgICAgICAgV0NIQVIqIGZpbGVz
ID0gZmlsZUJ1Zi5kYXRhKCk7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVMaXN0OwogICAg
ICAgICBTdHJpbmcgZmlsZShmaWxlcyk7CiAgICAgICAgIGlmIChtdWx0aUZpbGUpIHsKQEAgLTc2
OSw3ICs3NjksNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwg
UGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAgICAgICAgICAgICAgIC8v
IFdoZW4gdXNpbmcgdGhlIE9GTl9FWFBMT1JFUiBmbGFnLCB0aGUgZmlsZSBsaXN0IGlzIG51bGwg
ZGVsaW1pdGVkLgogICAgICAgICAgICAgICAgIC8vIFdoZW4geW91IGNyZWF0ZSBhIFN0cmluZyBm
cm9tIGEgcHRyIHRvIHRoaXMgbGlzdCwgaXQgd2lsbCB1c2Ugc3RybGVuIHRvIGxvb2sgZm9yIHRo
ZSBudWxsIGNoYXJhY3Rlci4KICAgICAgICAgICAgICAgICAvLyBUaGVuIHdlIGZpbmQgdGhlIG5l
eHQgZmlsZSBwYXRoIHN0cmluZyBieSB1c2luZyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgd2Ug
anVzdCBjcmVhdGVkLgotICAgICAgICAgICAgICAgIFRDSEFSKiBuZXh0RmlsZVB0ciA9IGZpbGVz
ICsgZmlsZS5sZW5ndGgoKSArIDE7CisgICAgICAgICAgICAgICAgV0NIQVIqIG5leHRGaWxlUHRy
ID0gZmlsZXMgKyBmaWxlLmxlbmd0aCgpICsgMTsKICAgICAgICAgICAgICAgICBTdHJpbmcgbmV4
dEZpbGUobmV4dEZpbGVQdHIpOwogICAgICAgICAgICAgICAgIC8vIElmIG11bHRpcGxlIGZpbGVz
IGFyZSBzZWxlY3RlZCwgdGhlcmUgd2lsbCBiZSBhIGRpcmVjdG9yeSBuYW1lIGZpcnN0LCB3aGlj
aCB3ZSBkb24ndCB3YW50IHRvIGFkZCB0byB0aGUgdmVjdG9yLgogICAgICAgICAgICAgICAgIC8v
IFdlIGtub3cgYSBzaW5nbGUgZmlsZSB3YXMgc2VsZWN0ZWQgaWYgdGhlcmUgaXMgb25seSBvbmUg
ZmlsZW5hbWUgaW4gdGhlIGxpc3QuICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCA5NDA1ZmM4OTA0
ZGJlNmY5NTdjNDcyOTY2OTBhM2MzNTFlZjBiYTUzLi44MDY5MGM3ZWIxYTQ3YTYyNmMyMTg4ZmZk
ZjQ1YWZmNWFkYjAxOTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC00MSw4ICs0MSw2IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CiAKLSNpbmNsdWRlIDx0Y2hhci5oPgotCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogV2ViQ29udGV4dE1lbnVDbGllbnQ6OldlYkNvbnRleHRNZW51Q2xpZW50KFdl
YlZpZXcqIHdlYlZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAxNDMwYWE4Mjk1ZGI5MGZlZDU0NmMw
MjM2ZThmM2NmZTE1NTQ5MjRlLi5hM2Q4NWFkYTFhZDdiZGFkZWEyMjAxYzNjZmY0OTYxZGY4NDE0
ZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1dpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlci5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIAotI2lu
Y2x1ZGUgPHRjaGFyLmg+CisjaW5jbHVkZSA8d2NoYXIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0RExMLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYktpdERMTC5jcHAKaW5kZXggZDZhNTEyMGQ3NDg3MTYyNzk2ZTAxM2ZhNDgwMTMxMWI5ZDUy
NmZjYS4uNDdjYjJlNDAzYTdlMjgwN2UwZDE0ZDA4NTRiMjI2NzZiMjAxODUyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0RExMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJLaXRETEwuY3BwCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJD
b3JlSW5zdGFuY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpZGdldC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx0Y2hhci5oPgorI2luY2x1ZGUgPHdjaGFyLmg+
CiAjaW5jbHVkZSA8b2xlY3RsLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYk5vdGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXggNmMyMjIyNDY2ZTZi
ZTgzZDYwNDdhMjM2MjIzNGM1NTVkODVmMmM5Mi4uM2E5MGI3NjZkY2NmMzkwMmE3YjU1NjUwZWI1
M2QxYjVjMTUxM2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViTm90aWZpY2F0
aW9uQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJOb3RpZmljYXRpb25DZW50
ZXIuY3BwCkBAIC0zNiw4ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNwcmFnbWEgd2FybmluZyhwb3ApCi0jaW5jbHVk
ZSA8dGNoYXIuaD4KICNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHdjaGFyLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAK
aW5kZXggMDFjYWIyYmVkZmU4YmViODYxMDIxZTBiYzQwYzVmOTA4ZDYzMWY2My4uYjBkOTQ2MDE4
ZmQyNWFmYTU2N2E0NmQzZThiNDQ0MDg1ZDRjZGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZl
cmVuY2VzLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1T
dHJpbmcuaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8c2hsb2JqLmg+Ci0jaW5jbHVk
ZSA8dGNoYXIuaD4KKyNpbmNsdWRlIDx3Y2hhci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVVJMUmVzcG9uc2UuY3BwIGIv
U291cmNlL1dlYktpdC93aW4vV2ViVVJMUmVzcG9uc2UuY3BwCmluZGV4IDY0NGUxZDhjZTAxMWE0
NTYzNzY5MjE4Nzk1NmYzMjU0MTAzOTJkZGYuLjU2MGFmZDhiOWJlMTMxMzc1YmU1YTY2NTEyZDY2
NTA0MDgwZjQ1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlVSTFJlc3BvbnNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJVUkxSZXNwb25zZS5jcHAKQEAgLTQ1LDcg
KzQ1LDcgQEAKICNwcmFnbWEgd2FybmluZyggcG9wICkKICNpbmNsdWRlIDxzaGxvYmouaD4KICNp
bmNsdWRlIDxzaGx3YXBpLmg+Ci0jaW5jbHVkZSA8dGNoYXIuaD4KKyNpbmNsdWRlIDx3Y2hhci5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDM5LDIxICs0MzksMjEgQEAgSFJF
U1VMVCBXZWJVUkxSZXNwb25zZTo6c3VnZ2VzdGVkRmlsZUV4dGVuc2lvbihCU1RSICpyZXN1bHQp
CiAgICAgICAgIGVyciA9IFJlZ09wZW5LZXlFeChrZXksIG1pbWVUeXBlLCAwLCBLRVlfUVVFUllf
VkFMVUUsICZzdWJLZXkpOwogICAgICAgICBpZiAoIWVycikgewogICAgICAgICAgICAgRFdPUkQg
a2V5VHlwZSA9IFJFR19TWjsKLSAgICAgICAgICAgIFRDSEFSIGV4dGVuc2lvbltNQVhfUEFUSF07
CisgICAgICAgICAgICBXQ0hBUiBleHRlbnNpb25bTUFYX1BBVEhdOwogICAgICAgICAgICAgRFdP
UkQga2V5U2l6ZSA9IHNpemVvZihleHRlbnNpb24pL3NpemVvZihleHRlbnNpb25bMF0pOwogICAg
ICAgICAgICAgZXJyID0gUmVnUXVlcnlWYWx1ZUV4KHN1YktleSwgVEVYVCgiRXh0ZW5zaW9uIiks
IDAsICZrZXlUeXBlLCAoTFBCWVRFKWV4dGVuc2lvbiwgJmtleVNpemUpOwogICAgICAgICAgICAg
aWYgKCFlcnIgJiYga2V5VHlwZSAhPSBSRUdfU1opCiAgICAgICAgICAgICAgICAgZXJyID0gRVJS
T1JfSU5WQUxJRF9EQVRBOwogICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAg
IC8vIGZhbGxiYWNrIGhhbmRsZXJzCi0gICAgICAgICAgICAgICAgaWYgKCFfdGNzY21wKG1pbWVU
eXBlLCBURVhUKCJ0ZXh0L2h0bWwiKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgX3Rjc2NweShl
eHRlbnNpb24sIFRFWFQoIi5odG1sIikpOworICAgICAgICAgICAgICAgIGlmICghd2NzY21wKG1p
bWVUeXBlLCBMInRleHQvaHRtbCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHdjc2NweShleHRl
bnNpb24sIEwiLmh0bWwiKTsKICAgICAgICAgICAgICAgICAgICAgZXJyID0gMDsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKCFfdGNzY21wKG1pbWVUeXBlLCBURVhUKCJhcHBsaWNhdGlvbi94
aHRtbCt4bWwiKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgX3Rjc2NweShleHRlbnNpb24sIFRF
WFQoIi54aHRtbCIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF3Y3NjbXAobWltZVR5
cGUsIEwiYXBwbGljYXRpb24veGh0bWwreG1sIikpIHsKKyAgICAgICAgICAgICAgICAgICAgd2Nz
Y3B5KGV4dGVuc2lvbiwgTCIueGh0bWwiKTsKICAgICAgICAgICAgICAgICAgICAgZXJyID0gMDsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFfdGNzY21wKG1pbWVUeXBlLCBURVhUKCJpbWFn
ZS9zdmcreG1sIikpKSB7Ci0gICAgICAgICAgICAgICAgICAgIF90Y3NjcHkoZXh0ZW5zaW9uLCBU
RVhUKCIuc3ZnIikpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXdjc2NtcChtaW1lVHlw
ZSwgTCJpbWFnZS9zdmcreG1sIikpIHsKKyAgICAgICAgICAgICAgICAgICAgd2NzY3B5KGV4dGVu
c2lvbiwgTCIuc3ZnIik7CiAgICAgICAgICAgICAgICAgICAgIGVyciA9IDA7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCAwNjgyNTM1NWMx
ZjMwN2FkYjhhNzkxMTYwYmVhN2RmNTAxNzBhMjY2Li42OWY4M2RlZTNjZGJiMDAyYWM2YTFhYjU2
YWM2OTZiZDI5MTBmY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMTYyLDcgKzE2Miw3IEBA
CiAjaW5jbHVkZSA8Y29tdXRpbC5oPgogI2luY2x1ZGUgPGRpbW0uaD4KICNpbmNsdWRlIDxvbGVh
Y2MuaD4KLSNpbmNsdWRlIDx0Y2hhci5oPgorI2luY2x1ZGUgPHdjaGFyLmg+CiAjaW5jbHVkZSA8
d2luZG93c3guaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KQEAgLTE2NzYsMTIgKzE2NzYsMTIgQEAgYm9vbCBXZWJWaWV3Ojptb3VzZVdo
ZWVsKFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKICAg
ICBIV05EIGZvY3VzZWRXaW5kb3cgPSBHZXRGb2N1cygpOwogICAgIGlmIChmb2N1c2VkV2luZG93
ICYmIGZvY3VzZWRXaW5kb3cgIT0gbV92aWV3V2luZG93KSB7CiAgICAgICAgIC8vIE91ciBmb2N1
cyBpcyBvbiBhIGRpZmZlcmVudCBod25kLCBzZWUgaWYgaXQncyBhIFBvcHVwTWVudSBhbmQgaWYg
c28sIHNldCB0aGUgZm9jdXMgYmFjayBvbiB1cyAod2hpY2ggd2lsbCBoaWRlIHRoZSBwb3B1cCku
Ci0gICAgICAgIFRDSEFSIGNsYXNzTmFtZVsyNTZdOworICAgICAgICBXQ0hBUiBjbGFzc05hbWVb
MjU2XTsKIAogICAgICAgICAvLyBNYWtlIHN1cmUgdHJ1bmNhdGlvbiB3b24ndCBhZmZlY3QgdGhl
IGNvbXBhcmlzb24uCi0gICAgICAgIEFTU0VSVChXVEZfQVJSQVlfTEVOR1RIKGNsYXNzTmFtZSkg
PiBfdGNzbGVuKFBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUoKSkpOworICAgICAgICBBU1NF
UlQoV1RGX0FSUkFZX0xFTkdUSChjbGFzc05hbWUpID4gd2NzbGVuKFBvcHVwTWVudVdpbjo6cG9w
dXBDbGFzc05hbWUoKSkpOwogCi0gICAgICAgIGlmIChHZXRDbGFzc05hbWUoZm9jdXNlZFdpbmRv
dywgY2xhc3NOYW1lLCBXVEZfQVJSQVlfTEVOR1RIKGNsYXNzTmFtZSkpICYmICFfdGNzY21wKGNs
YXNzTmFtZSwgUG9wdXBNZW51V2luOjpwb3B1cENsYXNzTmFtZSgpKSkgeworICAgICAgICBpZiAo
R2V0Q2xhc3NOYW1lVyhmb2N1c2VkV2luZG93LCBjbGFzc05hbWUsIFdURl9BUlJBWV9MRU5HVEgo
Y2xhc3NOYW1lKSkgJiYgIXdjc2NtcChjbGFzc05hbWUsIFBvcHVwTWVudVdpbjo6cG9wdXBDbGFz
c05hbWUoKSkpIHsKICAgICAgICAgICAgIC8vIFdlIGRvbid0IGxldCB0aGUgV2ViVmlldyBzY3Jv
bGwgaGVyZSBmb3IgdHdvIHJlYXNvbnMgLSAxKSBUbyBtYXRjaCBGaXJlZm94IGJlaGF2aW9yLCAy
KSBJZiB3ZSBkbyBzY3JvbGwsIHdlIGxvc2UgdGhlCiAgICAgICAgICAgICAvLyBmb2N1cyByaW5n
IGFyb3VuZCB0aGUgc2VsZWN0IG1lbnUuCiAgICAgICAgICAgICBTZXRGb2N1cyhtX3ZpZXdXaW5k
b3cpOwpAQCAtMjUwMCwxNSArMjUwMCwxNSBAQCBib29sIFdlYlZpZXc6OnNob3VsZEluaXRpYWxp
emVUcmFja1BvaW50SGFjaygpCiAgICAgICAgIHJldHVybiBzaG91bGRDcmVhdGVTY3JvbGxiYXJz
OwogCiAgICAgaGFzUnVuVHJhY2tQb2ludENoZWNrID0gdHJ1ZTsKLSAgICBjb25zdCBUQ0hBUiB0
cmFja1BvaW50S2V5c1tdWzUwXSA9IHsgVEVYVCgiU29mdHdhcmVcXExlbm92b1xcVHJhY2tQb2lu
dCIpLAotICAgICAgICBURVhUKCJTb2Z0d2FyZVxcTGVub3ZvXFxVbHRyYU5hdiIpLAotICAgICAg
ICBURVhUKCJTb2Z0d2FyZVxcQWxwc1xcQXBvaW50XFxUcmFja1BvaW50IiksCi0gICAgICAgIFRF
WFQoIlNvZnR3YXJlXFxTeW5hcHRpY3NcXFN5blRQRW5oXFxVbHRyYU5hdlVTQiIpLAotICAgICAg
ICBURVhUKCJTb2Z0d2FyZVxcU3luYXB0aWNzXFxTeW5UUEVuaFxcVWx0cmFOYXZQUzIiKSB9Owor
ICAgIGNvbnN0IFdDSEFSIHRyYWNrUG9pbnRLZXlzW11bNTBdID0geyBMIlNvZnR3YXJlXFxMZW5v
dm9cXFRyYWNrUG9pbnQiLAorICAgICAgICBMIlNvZnR3YXJlXFxMZW5vdm9cXFVsdHJhTmF2IiwK
KyAgICAgICAgTCJTb2Z0d2FyZVxcQWxwc1xcQXBvaW50XFxUcmFja1BvaW50IiwKKyAgICAgICAg
TCJTb2Z0d2FyZVxcU3luYXB0aWNzXFxTeW5UUEVuaFxcVWx0cmFOYXZVU0IiLAorICAgICAgICBM
IlNvZnR3YXJlXFxTeW5hcHRpY3NcXFN5blRQRW5oXFxVbHRyYU5hdlBTMiIgfTsKIAogICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgNTsgKytpKSB7CiAgICAgICAgIEhLRVkgdHJhY2tQb2ludEtleTsK
LSAgICAgICAgaW50IHJlYWRLZXlSZXN1bHQgPSA6OlJlZ09wZW5LZXlFeChIS0VZX0NVUlJFTlRf
VVNFUiwgdHJhY2tQb2ludEtleXNbaV0sIDAsIEtFWV9SRUFELCAmdHJhY2tQb2ludEtleSk7Cisg
ICAgICAgIGludCByZWFkS2V5UmVzdWx0ID0gOjpSZWdPcGVuS2V5RXhXKEhLRVlfQ1VSUkVOVF9V
U0VSLCB0cmFja1BvaW50S2V5c1tpXSwgMCwgS0VZX1JFQUQsICZ0cmFja1BvaW50S2V5KTsKICAg
ICAgICAgOjpSZWdDbG9zZUtleSh0cmFja1BvaW50S2V5KTsKICAgICAgICAgaWYgKHJlYWRLZXlS
ZXN1bHQgPT0gRVJST1JfU1VDQ0VTUykgewogICAgICAgICAgICAgc2hvdWxkQ3JlYXRlU2Nyb2xs
YmFycyA9IHRydWU7CkBAIC0yNTM5LDggKzI1MzksOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoCiAgICAgICAgIC8vIElmIHdlIGRldGVjdGVkIGEg
cmVnaXN0cnkga2V5IGJlbG9uZ2luZyB0byBhIFRyYWNrUG9pbnQgZHJpdmVyLCB0aGVuIGNyZWF0
ZSBmYWtlIHRyYWNrcG9pbnQKICAgICAgICAgLy8gc2Nyb2xsYmFycywgc28gdGhlIFdlYlZpZXcg
d2lsbCByZWNlaXZlIFdNX1ZTQ1JPTEwgYW5kIFdNX0hTQ1JPTEwgbWVzc2FnZXMuIFdlIGNyZWF0
ZSBvbmUKICAgICAgICAgLy8gdmVydGljYWwgc2Nyb2xsYmFyIGFuZCBvbmUgaG9yaXpvbnRhbCB0
byBhbGxvdyBmb3IgcmVjZWl2aW5nIGJvdGggdHlwZXMgb2YgbWVzc2FnZXMuCi0gICAgICAgIDo6
Q3JlYXRlV2luZG93KFRFWFQoIlNDUk9MTEJBUiIpLCBURVhUKCJGQUtFVFJBQ0tQT0lOVEhTQ1JP
TExCQVIiKSwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgU0JTX0hPUlosIDAsIDAsIDAsIDAsIG1f
dmlld1dpbmRvdywgMCwgZ0luc3RhbmNlLCAwKTsKLSAgICAgICAgOjpDcmVhdGVXaW5kb3coVEVY
VCgiU0NST0xMQkFSIiksIFRFWFQoIkZBS0VUUkFDS1BPSU5UVlNDUk9MTEJBUiIpLCBXU19DSElM
RCB8IFdTX1ZJU0lCTEUgfCBTQlNfVkVSVCwgMCwgMCwgMCwgMCwgbV92aWV3V2luZG93LCAwLCBn
SW5zdGFuY2UsIDApOworICAgICAgICA6OkNyZWF0ZVdpbmRvd1coTCJTQ1JPTExCQVIiLCBMIkZB
S0VUUkFDS1BPSU5USFNDUk9MTEJBUiIsIFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFNCU19IT1Ja
LCAwLCAwLCAwLCAwLCBtX3ZpZXdXaW5kb3csIDAsIGdJbnN0YW5jZSwgMCk7CisgICAgICAgIDo6
Q3JlYXRlV2luZG93VyhMIlNDUk9MTEJBUiIsIEwiRkFLRVRSQUNLUE9JTlRWU0NST0xMQkFSIiwg
V1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgU0JTX1ZFUlQsIDAsIDAsIDAsIDAsIG1fdmlld1dpbmRv
dywgMCwgZ0luc3RhbmNlLCAwKTsKICAgICB9CiAKICAgICBociA9IHJlZ2lzdGVyRHJhZ0Ryb3Ao
KTsKQEAgLTMwMjcsNyArMzAyNyw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmll
dzo6c2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZSgKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAg
ICAgcmV0dXJuIGhyOwogCi0gICAgaWYgKG9sZEVuY29kaW5nICE9IGVuY29kaW5nTmFtZSAmJiAo
IW9sZEVuY29kaW5nIHx8ICFlbmNvZGluZ05hbWUgfHwgX3Rjc2NtcChvbGRFbmNvZGluZywgZW5j
b2RpbmdOYW1lKSkpIHsKKyAgICBpZiAob2xkRW5jb2RpbmcgIT0gZW5jb2RpbmdOYW1lICYmICgh
b2xkRW5jb2RpbmcgfHwgIWVuY29kaW5nTmFtZSB8fCB3Y3NjbXAob2xkRW5jb2RpbmcsIGVuY29k
aW5nTmFtZSkpKSB7CiAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShtX21haW5G
cmFtZSkpCiAgICAgICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5yZWxvYWRXaXRoT3ZlcnJp
ZGVFbmNvZGluZyhTdHJpbmcoZW5jb2RpbmdOYW1lLCBTeXNTdHJpbmdMZW4oZW5jb2RpbmdOYW1l
KSkpOwogICAgIH0KQEAgLTUyNDgsNyArNTI0OCw3IEBAIGNvbnN0IElNTURpY3QmIElNTURpY3Q6
OmRpY3QoKQogCiBJTU1EaWN0OjpJTU1EaWN0KCkKIHsKLSAgICBtX2luc3RhbmNlID0gOjpMb2Fk
TGlicmFyeShURVhUKCJJTU0zMi5ETEwiKSk7CisgICAgbV9pbnN0YW5jZSA9IDo6TG9hZExpYnJh
cnlXKEwiSU1NMzIuRExMIik7CiAgICAgZ2V0Q29udGV4dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Z2V0
Q29udGV4dFB0cj4oOjpHZXRQcm9jQWRkcmVzcyhtX2luc3RhbmNlLCAiSW1tR2V0Q29udGV4dCIp
KTsKICAgICBBU1NFUlQoZ2V0Q29udGV4dCk7CiAgICAgcmVsZWFzZUNvbnRleHQgPSByZWludGVy
cHJldF9jYXN0PHJlbGVhc2VDb250ZXh0UHRyPig6OkdldFByb2NBZGRyZXNzKG1faW5zdGFuY2Us
ICJJbW1SZWxlYXNlQ29udGV4dCIpKTsKQEAgLTU5MDUsNyArNTkwNSw3IEBAIGJvb2wgV2ViVmll
dzo6b25HZXRPYmplY3QoV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSwgTFJFU1VMVCYgbFJl
c3VsdCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFhY2Nlc3NpYmls
aXR5TGliKSB7Ci0gICAgICAgIGlmICghKGFjY2Vzc2liaWxpdHlMaWIgPSA6OkxvYWRMaWJyYXJ5
KFRFWFQoIm9sZWFjYy5kbGwiKSkpKQorICAgICAgICBpZiAoIShhY2Nlc3NpYmlsaXR5TGliID0g
OjpMb2FkTGlicmFyeVcoTCJvbGVhY2MuZGxsIikpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87090</attachid>
            <date>2011-03-27 15:54:52 -0700</date>
            <delta_ts>2011-03-28 05:36:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57191-20110328005449.patch</filename>
            <type>text/plain</type>
            <size>17012</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIwNzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBkY2E2MWJlMzEw
MTY4YzA0YzVkYjQ3ZWM3MGQzYmFiYjlhN2RkYWMxLi5iNzE3NTU1MTFmYjg4ZjUzZDBiNjk2MjY0
YTI1Y2E2NTI5MGVjNDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEt
MDMtMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJTl0gVXNlIFdDSEFSIGlu
c3RlYWQgb2YgVENIQVIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU3MTkxCisKKyAgICAgICAgV2UgYWx3YXlzIHVzZSB0aGUgVU5JQ09ERSB2ZXJzaW9u
cyBvZiB3aW5kb3dzIGZ1bmN0aW9ucywgc28KKyAgICAgICAgdGhlIHVzYWdlIG9mIFRDSEFSIG1h
a2VzIG5vIHNlbnNlIGFuZCBtaXhpbmcgdGhlbSBpcyBiYWQgc3R5bGUuCisKKyAgICAgICAgKiBE
ZWZhdWx0RG93bmxvYWREZWxlZ2F0ZS5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKiBXZWJLaXRETEwuY3BwOgorICAgICAgICAqIFdlYk5vdGlmaWNhdGlv
bkNlbnRlci5jcHA6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAqIFdl
YlVSTFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKwogMjAxMS0wMy0yNSAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvbiBI
b25leWN1dHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9EZWZhdWx0RG93bmxvYWRE
ZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9EZWZhdWx0RG93bmxvYWREZWxlZ2F0ZS5j
cHAKaW5kZXggMjlkYTZhNGM4NWQwMTdmZGEyNzBlNDM2NGQyMjM3MWRiZjljMTkzNC4uYWRlMDMz
NjY5MDIxOWQ1ZjFkOGU3Y2M1ZWQ5N2U0OGU4ZjJhODFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vRGVmYXVsdERvd25sb2FkRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0RlZmF1bHREb3dubG9hZERlbGVnYXRlLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPHNobG9iai5oPgotI2luY2x1ZGUg
PHRjaGFyLmg+CisjaW5jbHVkZSA8d2NoYXIuaD4KIAogI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDAp
CiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+CkBAIC0xMDksNyArMTA5LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBEZWZhdWx0RG93bmxvYWREZWxlZ2F0ZTo6ZGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGUKIHsKICAgICBMT0coRG93bmxvYWQsICJEZWZhdWx0RG93bmxvYWRE
ZWxlZ2F0ZSAlcCAtIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lICVzIiwg
ZG93bmxvYWQsIFN0cmluZyhmaWxlbmFtZSwgU3lzU3RyaW5nTGVuKGZpbGVuYW1lKSkuYXNjaWko
KS5kYXRhKCkpOwogCi0gICAgVENIQVIgcGF0aENoYXJzW01BWF9QQVRIXTsKKyAgICBXQ0hBUiBw
YXRoQ2hhcnNbTUFYX1BBVEhdOwogICAgIGlmIChGQUlMRUQoU0hHZXRGb2xkZXJQYXRoKDAsIENT
SURMX0RFU0tUT1BESVJFQ1RPUlkgIHwgQ1NJRExfRkxBR19DUkVBVEUsIDAsIDAsIHBhdGhDaGFy
cykpKSB7CiAgICAgICAgIGlmIChGQUlMRUQoZG93bmxvYWQtPnNldERlc3RpbmF0aW9uKGZpbGVu
YW1lLCB0cnVlKSkpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNldCBkZXN0
aW5hdGlvbiBvbiBmaWxlIik7CkBAIC0xMTgsMTQgKzExOCwxNCBAQCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIERlZmF1bHREb3dubG9hZERlbGVnYXRlOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhT
dWdnZXN0ZQogICAgICAgICByZXR1cm4gU19PSzsKICAgICB9CiAKLSAgICBzaXplX3QgZnVsbExl
bmd0aCA9IF90Y3NsZW4ocGF0aENoYXJzKSArIFN5c1N0cmluZ0xlbihmaWxlbmFtZSkgKyAyOwor
ICAgIHNpemVfdCBmdWxsTGVuZ3RoID0gd2NzbGVuKHBhdGhDaGFycykgKyBTeXNTdHJpbmdMZW4o
ZmlsZW5hbWUpICsgMjsKICAgICBCU1RSIGZ1bGwgPSBTeXNBbGxvY1N0cmluZ0xlbigwLCAoVUlO
VClmdWxsTGVuZ3RoKTsKICAgICBpZiAoIWZ1bGwpCiAgICAgICAgIHJldHVybiBFX09VVE9GTUVN
T1JZOwogCi0gICAgX3Rjc2NweV9zKGZ1bGwsIGZ1bGxMZW5ndGgsIHBhdGhDaGFycyk7Ci0gICAg
X3Rjc2NhdF9zKGZ1bGwsIGZ1bGxMZW5ndGgsIF9UKCJcXCIpKTsKLSAgICBfdGNzY2F0X3MoZnVs
bCwgZnVsbExlbmd0aCwgZmlsZW5hbWUpOworICAgIHdjc2NweV9zKGZ1bGwsIGZ1bGxMZW5ndGgs
IHBhdGhDaGFycyk7CisgICAgd2NzY2F0X3MoZnVsbCwgZnVsbExlbmd0aCwgTCJcXCIpOworICAg
IHdjc2NhdF9zKGZ1bGwsIGZ1bGxMZW5ndGgsIGZpbGVuYW1lKTsKICAgICBCU3RyaW5nIGZ1bGxQ
YXRoOwogICAgIGZ1bGxQYXRoLmFkb3B0QlNUUihmdWxsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjU1Mzdm
NDI1NTE3YjE2MjM4MjFjOGU1YmU5YjM1MTNjOWY4ZmQxZS4uMTkzNWM1ZmExMjExNzA5ZjAyYzEy
YTdiNTkxZWVlNDM1ODExOGFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9Qb3B1cE1lbnVXaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVw
TWVudVdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KLSNpbmNsdWRl
IDx0Y2hhci5oPgorI2luY2x1ZGUgPHdjaGFyLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CkBAIC01OTEsOCAr
NTkxLDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2UKICAgICAgICAgICAgIHVpRGVsZWdhdGVQ
cml2YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93ZWJWaWV3LCBraXQoZnJhbWUpLCBvcmln
aW4uZ2V0KCksIEJTdHJpbmcoZGF0YWJhc2VJZGVudGlmaWVyKSk7CiAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdvcmthcm91bmQgb25jZSBzaGlwcGlu
ZyBTYWZhcmkgaGFzIHRoZSBuZWNlc3NhcnkgZGVsZWdhdGUgaW1wbGVtZW50ZWQuCi0gICAgICAg
ICAgICBUQ0hBUiBwYXRoW01BWF9QQVRIXTsKLSAgICAgICAgICAgIEhNT0RVTEUgc2FmYXJpSGFu
ZGxlID0gR2V0TW9kdWxlSGFuZGxlKFRFWFQoIlNhZmFyaS5leGUiKSk7CisgICAgICAgICAgICBX
Q0hBUiBwYXRoW01BWF9QQVRIXTsKKyAgICAgICAgICAgIEhNT0RVTEUgc2FmYXJpSGFuZGxlID0g
R2V0TW9kdWxlSGFuZGxlVyhMIlNhZmFyaS5leGUiKTsKICAgICAgICAgICAgIGlmICghc2FmYXJp
SGFuZGxlKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIEdldE1vZHVsZUZp
bGVOYW1lKHNhZmFyaUhhbmRsZSwgcGF0aCwgV1RGX0FSUkFZX0xFTkdUSChwYXRoKSk7CkBAIC02
MDYsOSArNjA2LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2UKIAogICAgICAgICAgICAgTFBD
VFNUUiBwcm9kdWN0VmVyc2lvbjsKICAgICAgICAgICAgIFVJTlQgcHJvZHVjdFZlcnNpb25MZW5n
dGg7Ci0gICAgICAgICAgICBpZiAoIVZlclF1ZXJ5VmFsdWUoZGF0YS5kYXRhKCksIFRFWFQoIlxc
U3RyaW5nRmlsZUluZm9cXDA0MDkwNGIwXFxQcm9kdWN0VmVyc2lvbiIpLCAodm9pZCoqKSZwcm9k
dWN0VmVyc2lvbiwgJnByb2R1Y3RWZXJzaW9uTGVuZ3RoKSkKKyAgICAgICAgICAgIGlmICghVmVy
UXVlcnlWYWx1ZVcoZGF0YS5kYXRhKCksIEwiXFxTdHJpbmdGaWxlSW5mb1xcMDQwOTA0YjBcXFBy
b2R1Y3RWZXJzaW9uIiwgKHZvaWQqKikmcHJvZHVjdFZlcnNpb24sICZwcm9kdWN0VmVyc2lvbkxl
bmd0aCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKF90Y3NuY21w
KFRFWFQoIjMuMSIpLCBwcm9kdWN0VmVyc2lvbiwgcHJvZHVjdFZlcnNpb25MZW5ndGgpID4gMCkg
eworICAgICAgICAgICAgaWYgKHdjc25jbXAoTCIzLjEiLCBwcm9kdWN0VmVyc2lvbiwgcHJvZHVj
dFZlcnNpb25MZW5ndGgpID4gMCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgbG9uZyBkZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7IC8vIDUgbWVnYWJ5dGVzIHNo
b3VsZCBob3BlZnVsbHkgYmUgZW5vdWdoIHRvIHRlc3Qgc3RvcmFnZSBzdXBwb3J0LgogICAgICAg
ICAgICAgICAgIG9yaWdpbi0+c2V0UXVvdGEoZGVmYXVsdFF1b3RhKTsKICAgICAgICAgICAgIH0K
QEAgLTczOCw3ICs3MzgsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZy
YW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAgICAgICByZXR1
cm47CiAKICAgICBib29sIG11bHRpRmlsZSA9IGZpbGVDaG9vc2VyLT5hbGxvd3NNdWx0aXBsZUZp
bGVzKCk7Ci0gICAgVmVjdG9yPFRDSEFSPiBmaWxlQnVmKG11bHRpRmlsZSA/IG1heEZpbGVQYXRo
c0xpc3RTaXplIDogTUFYX1BBVEgpOworICAgIFZlY3RvcjxXQ0hBUj4gZmlsZUJ1ZihtdWx0aUZp
bGUgPyBtYXhGaWxlUGF0aHNMaXN0U2l6ZSA6IE1BWF9QQVRIKTsKIAogICAgIE9QRU5GSUxFTkFN
RSBvZm47CiAKQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3Bl
blBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAg
IG9mbi5sU3RydWN0U2l6ZSA9IHNpemVvZihvZm4pOwogICAgIG9mbi5od25kT3duZXIgPSB2aWV3
V2luZG93OwogICAgIFN0cmluZyBhbGxGaWxlcyA9IGFsbEZpbGVzVGV4dCgpOwotICAgIGFsbEZp
bGVzLmFwcGVuZChURVhUKCJcMCouKlwwXDAiKSwgNik7CisgICAgYWxsRmlsZXMuYXBwZW5kKEwi
XDAqLipcMFwwIiwgNik7CiAgICAgb2ZuLmxwc3RyRmlsdGVyID0gYWxsRmlsZXMuY2hhcmFjdGVy
c1dpdGhOdWxsVGVybWluYXRpb24oKTsKICAgICBvZm4ubHBzdHJGaWxlID0gZmlsZUJ1Zi5kYXRh
KCk7CiAgICAgb2ZuLm5NYXhGaWxlID0gZmlsZUJ1Zi5zaXplKCk7CkBAIC03NjEsNyArNzYxLDcg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8
RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UKICAgICAgICAgb2ZuLkZsYWdzID0gb2ZuLkZsYWdz
IHwgT0ZOX0FMTE9XTVVMVElTRUxFQ1Q7CiAKICAgICBpZiAoR2V0T3BlbkZpbGVOYW1lKCZvZm4p
KSB7Ci0gICAgICAgIFRDSEFSKiBmaWxlcyA9IGZpbGVCdWYuZGF0YSgpOworICAgICAgICBXQ0hB
UiogZmlsZXMgPSBmaWxlQnVmLmRhdGEoKTsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gZmlsZUxp
c3Q7CiAgICAgICAgIFN0cmluZyBmaWxlKGZpbGVzKTsKICAgICAgICAgaWYgKG11bHRpRmlsZSkg
ewpAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwo
RnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hvb3NlCiAgICAgICAgICAg
ICAgICAgLy8gV2hlbiB1c2luZyB0aGUgT0ZOX0VYUExPUkVSIGZsYWcsIHRoZSBmaWxlIGxpc3Qg
aXMgbnVsbCBkZWxpbWl0ZWQuCiAgICAgICAgICAgICAgICAgLy8gV2hlbiB5b3UgY3JlYXRlIGEg
U3RyaW5nIGZyb20gYSBwdHIgdG8gdGhpcyBsaXN0LCBpdCB3aWxsIHVzZSBzdHJsZW4gdG8gbG9v
ayBmb3IgdGhlIG51bGwgY2hhcmFjdGVyLgogICAgICAgICAgICAgICAgIC8vIFRoZW4gd2UgZmlu
ZCB0aGUgbmV4dCBmaWxlIHBhdGggc3RyaW5nIGJ5IHVzaW5nIHRoZSBsZW5ndGggb2YgdGhlIHN0
cmluZyB3ZSBqdXN0IGNyZWF0ZWQuCi0gICAgICAgICAgICAgICAgVENIQVIqIG5leHRGaWxlUHRy
ID0gZmlsZXMgKyBmaWxlLmxlbmd0aCgpICsgMTsKKyAgICAgICAgICAgICAgICBXQ0hBUiogbmV4
dEZpbGVQdHIgPSBmaWxlcyArIGZpbGUubGVuZ3RoKCkgKyAxOwogICAgICAgICAgICAgICAgIFN0
cmluZyBuZXh0RmlsZShuZXh0RmlsZVB0cik7CiAgICAgICAgICAgICAgICAgLy8gSWYgbXVsdGlw
bGUgZmlsZXMgYXJlIHNlbGVjdGVkLCB0aGVyZSB3aWxsIGJlIGEgZGlyZWN0b3J5IG5hbWUgZmly
c3QsIHdoaWNoIHdlIGRvbid0IHdhbnQgdG8gYWRkIHRvIHRoZSB2ZWN0b3IuCiAgICAgICAgICAg
ICAgICAgLy8gV2Uga25vdyBhIHNpbmdsZSBmaWxlIHdhcyBzZWxlY3RlZCBpZiB0aGVyZSBpcyBv
bmx5IG9uZSBmaWxlbmFtZSBpbiB0aGUgbGlzdC4gIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDk0
MDVmYzg5MDRkYmU2Zjk1N2M0NzI5NjY5MGEzYzM1MWVmMGJhNTMuLjgwNjkwYzdlYjFhNDdhNjI2
YzIxODhmZmRmNDVhZmY1YWRiMDE5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTQxLDggKzQx
LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KIAotI2luY2x1ZGUgPHRjaGFyLmg+Ci0KIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBXZWJDb250ZXh0TWVudUNsaWVudDo6V2ViQ29udGV4dE1lbnVD
bGllbnQoV2ViVmlldyogd2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDE0MzBhYTgyOTVkYjkw
ZmVkNTQ2YzAyMzZlOGYzY2ZlMTU1NDkyNGUuLmEzZDg1YWRhMWFkN2JkYWRlYTIyMDFjM2NmZjQ5
NjFkZjg0MTRkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtNDcsNyArNDcsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+CiAjcHJhZ21hIHdhcm5pbmcocG9w
KQogCi0jaW5jbHVkZSA8dGNoYXIuaD4KKyNpbmNsdWRlIDx3Y2hhci5oPgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViS2l0RExMLmNwcAppbmRleCBkNmE1MTIwZDc0ODcxNjI3OTZlMDEzZmE0ODAx
MzExYjlkNTI2ZmNhLi40N2NiMmU0MDNhN2UyODA3ZTBkMTRkMDg1NGIyMjY3NmIyMDE4NTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYktpdERMTC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkNvcmVJbnN0YW5jZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2lkZ2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHRjaGFyLmg+CisjaW5jbHVkZSA8
d2NoYXIuaD4KICNpbmNsdWRlIDxvbGVjdGwuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJOb3RpZmljYXRpb25DZW50ZXIuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA2YzIy
MjI0NjZlNmJlODNkNjA0N2EyMzYyMjM0YzU1NWQ4NWYyYzkyLi4zYTkwYjc2NmRjY2YzOTAyYTdi
NTU2NTBlYjUzZDFiNWMxNTEzYmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJO
b3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYk5vdGlmaWNh
dGlvbkNlbnRlci5jcHAKQEAgLTM2LDggKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkK
LSNpbmNsdWRlIDx0Y2hhci5oPgogI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8d2NoYXIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VzLmNwcAppbmRleCAwMWNhYjJiZWRmZThiZWI4NjEwMjFlMGJjNDBjNWY5MDhkNjMxZjYzLi5h
NDg2OWI2OTE3ZGEyZDc1OGI1OGQxNGJlZWEyYjZlZjFhMGUwYWQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViUHJlZmVyZW5jZXMuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybVN0cmluZy5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxzaGxvYmouaD4K
LSNpbmNsdWRlIDx0Y2hhci5oPgorI2luY2x1ZGUgPHdjaGFyLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CkBAIC0zNDAsMTIgKzM0MCwxMiBAQCBMT05HTE9ORyBXZWJQcmVmZXJlbmNl
czo6bG9uZ2xvbmdWYWx1ZUZvcktleShDRlN0cmluZ1JlZiBrZXkpCiB2b2lkIFdlYlByZWZlcmVu
Y2VzOjpzZXRTdHJpbmdWYWx1ZShDRlN0cmluZ1JlZiBrZXksIExQQ1RTVFIgdmFsdWUpCiB7CiAg
ICAgQlNUUiB2YWwgPSBzdHJpbmdWYWx1ZUZvcktleShrZXkpOwotICAgIGlmICh2YWwgJiYgIV90
Y3NjbXAodmFsLCB2YWx1ZSkpCisgICAgaWYgKHZhbCAmJiAhd2NzY21wKHZhbCwgdmFsdWUpKQog
ICAgICAgICByZXR1cm47CiAgICAgU3lzRnJlZVN0cmluZyh2YWwpOwogICAgIAogICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gdmFsdWVSZWYoQWRvcHRDRiwKLSAgICAgICAgQ0ZTdHJpbmdDcmVh
dGVXaXRoQ2hhcmFjdGVyc05vQ29weSgwLCAoVW5pQ2hhciopX3djc2R1cCh2YWx1ZSksIChDRklu
ZGV4KV90Y3NsZW4odmFsdWUpLCBrQ0ZBbGxvY2F0b3JNYWxsb2MpKTsKKyAgICAgICAgQ0ZTdHJp
bmdDcmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weSgwLCAoVW5pQ2hhciopX3djc2R1cCh2YWx1ZSks
IChDRkluZGV4KXdjc2xlbih2YWx1ZSksIGtDRkFsbG9jYXRvck1hbGxvYykpOwogICAgIHNldFZh
bHVlRm9yS2V5KGtleSwgdmFsdWVSZWYuZ2V0KCkpOwogCiAgICAgcG9zdFByZWZlcmVuY2VzQ2hh
bmdlc05vdGlmaWNhdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVVJM
UmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVVJMUmVzcG9uc2UuY3BwCmluZGV4
IDY0NGUxZDhjZTAxMWE0NTYzNzY5MjE4Nzk1NmYzMjU0MTAzOTJkZGYuLjU2MGFmZDhiOWJlMTMx
Mzc1YmU1YTY2NTEyZDY2NTA0MDgwZjQ1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlVSTFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJVUkxSZXNwb25z
ZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKICNwcmFnbWEgd2FybmluZyggcG9wICkKICNpbmNsdWRl
IDxzaGxvYmouaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+Ci0jaW5jbHVkZSA8dGNoYXIuaD4KKyNp
bmNsdWRlIDx3Y2hhci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDM5LDIx
ICs0MzksMjEgQEAgSFJFU1VMVCBXZWJVUkxSZXNwb25zZTo6c3VnZ2VzdGVkRmlsZUV4dGVuc2lv
bihCU1RSICpyZXN1bHQpCiAgICAgICAgIGVyciA9IFJlZ09wZW5LZXlFeChrZXksIG1pbWVUeXBl
LCAwLCBLRVlfUVVFUllfVkFMVUUsICZzdWJLZXkpOwogICAgICAgICBpZiAoIWVycikgewogICAg
ICAgICAgICAgRFdPUkQga2V5VHlwZSA9IFJFR19TWjsKLSAgICAgICAgICAgIFRDSEFSIGV4dGVu
c2lvbltNQVhfUEFUSF07CisgICAgICAgICAgICBXQ0hBUiBleHRlbnNpb25bTUFYX1BBVEhdOwog
ICAgICAgICAgICAgRFdPUkQga2V5U2l6ZSA9IHNpemVvZihleHRlbnNpb24pL3NpemVvZihleHRl
bnNpb25bMF0pOwogICAgICAgICAgICAgZXJyID0gUmVnUXVlcnlWYWx1ZUV4KHN1YktleSwgVEVY
VCgiRXh0ZW5zaW9uIiksIDAsICZrZXlUeXBlLCAoTFBCWVRFKWV4dGVuc2lvbiwgJmtleVNpemUp
OwogICAgICAgICAgICAgaWYgKCFlcnIgJiYga2V5VHlwZSAhPSBSRUdfU1opCiAgICAgICAgICAg
ICAgICAgZXJyID0gRVJST1JfSU5WQUxJRF9EQVRBOwogICAgICAgICAgICAgaWYgKGVycikgewog
ICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIGhhbmRsZXJzCi0gICAgICAgICAgICAgICAgaWYg
KCFfdGNzY21wKG1pbWVUeXBlLCBURVhUKCJ0ZXh0L2h0bWwiKSkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgX3Rjc2NweShleHRlbnNpb24sIFRFWFQoIi5odG1sIikpOworICAgICAgICAgICAgICAg
IGlmICghd2NzY21wKG1pbWVUeXBlLCBMInRleHQvaHRtbCIpKSB7CisgICAgICAgICAgICAgICAg
ICAgIHdjc2NweShleHRlbnNpb24sIEwiLmh0bWwiKTsKICAgICAgICAgICAgICAgICAgICAgZXJy
ID0gMDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFfdGNzY21wKG1pbWVUeXBlLCBURVhU
KCJhcHBsaWNhdGlvbi94aHRtbCt4bWwiKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgX3Rjc2Nw
eShleHRlbnNpb24sIFRFWFQoIi54aHRtbCIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCF3Y3NjbXAobWltZVR5cGUsIEwiYXBwbGljYXRpb24veGh0bWwreG1sIikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgd2NzY3B5KGV4dGVuc2lvbiwgTCIueGh0bWwiKTsKICAgICAgICAgICAgICAg
ICAgICAgZXJyID0gMDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFfdGNzY21wKG1pbWVU
eXBlLCBURVhUKCJpbWFnZS9zdmcreG1sIikpKSB7Ci0gICAgICAgICAgICAgICAgICAgIF90Y3Nj
cHkoZXh0ZW5zaW9uLCBURVhUKCIuc3ZnIikpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
IXdjc2NtcChtaW1lVHlwZSwgTCJpbWFnZS9zdmcreG1sIikpIHsKKyAgICAgICAgICAgICAgICAg
ICAgd2NzY3B5KGV4dGVuc2lvbiwgTCIuc3ZnIik7CiAgICAgICAgICAgICAgICAgICAgIGVyciA9
IDA7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApp
bmRleCAwNjgyNTM1NWMxZjMwN2FkYjhhNzkxMTYwYmVhN2RmNTAxNzBhMjY2Li42OWY4M2RlZTNj
ZGJiMDAyYWM2YTFhYjU2YWM2OTZiZDI5MTBmY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAt
MTYyLDcgKzE2Miw3IEBACiAjaW5jbHVkZSA8Y29tdXRpbC5oPgogI2luY2x1ZGUgPGRpbW0uaD4K
ICNpbmNsdWRlIDxvbGVhY2MuaD4KLSNpbmNsdWRlIDx0Y2hhci5oPgorI2luY2x1ZGUgPHdjaGFy
Lmg+CiAjaW5jbHVkZSA8d2luZG93c3guaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE2NzYsMTIgKzE2NzYsMTIgQEAgYm9vbCBX
ZWJWaWV3Ojptb3VzZVdoZWVsKFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNN
b3VzZUhXaGVlbCkKICAgICBIV05EIGZvY3VzZWRXaW5kb3cgPSBHZXRGb2N1cygpOwogICAgIGlm
IChmb2N1c2VkV2luZG93ICYmIGZvY3VzZWRXaW5kb3cgIT0gbV92aWV3V2luZG93KSB7CiAgICAg
ICAgIC8vIE91ciBmb2N1cyBpcyBvbiBhIGRpZmZlcmVudCBod25kLCBzZWUgaWYgaXQncyBhIFBv
cHVwTWVudSBhbmQgaWYgc28sIHNldCB0aGUgZm9jdXMgYmFjayBvbiB1cyAod2hpY2ggd2lsbCBo
aWRlIHRoZSBwb3B1cCkuCi0gICAgICAgIFRDSEFSIGNsYXNzTmFtZVsyNTZdOworICAgICAgICBX
Q0hBUiBjbGFzc05hbWVbMjU2XTsKIAogICAgICAgICAvLyBNYWtlIHN1cmUgdHJ1bmNhdGlvbiB3
b24ndCBhZmZlY3QgdGhlIGNvbXBhcmlzb24uCi0gICAgICAgIEFTU0VSVChXVEZfQVJSQVlfTEVO
R1RIKGNsYXNzTmFtZSkgPiBfdGNzbGVuKFBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUoKSkp
OworICAgICAgICBBU1NFUlQoV1RGX0FSUkFZX0xFTkdUSChjbGFzc05hbWUpID4gd2NzbGVuKFBv
cHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUoKSkpOwogCi0gICAgICAgIGlmIChHZXRDbGFzc05h
bWUoZm9jdXNlZFdpbmRvdywgY2xhc3NOYW1lLCBXVEZfQVJSQVlfTEVOR1RIKGNsYXNzTmFtZSkp
ICYmICFfdGNzY21wKGNsYXNzTmFtZSwgUG9wdXBNZW51V2luOjpwb3B1cENsYXNzTmFtZSgpKSkg
eworICAgICAgICBpZiAoR2V0Q2xhc3NOYW1lVyhmb2N1c2VkV2luZG93LCBjbGFzc05hbWUsIFdU
Rl9BUlJBWV9MRU5HVEgoY2xhc3NOYW1lKSkgJiYgIXdjc2NtcChjbGFzc05hbWUsIFBvcHVwTWVu
dVdpbjo6cG9wdXBDbGFzc05hbWUoKSkpIHsKICAgICAgICAgICAgIC8vIFdlIGRvbid0IGxldCB0
aGUgV2ViVmlldyBzY3JvbGwgaGVyZSBmb3IgdHdvIHJlYXNvbnMgLSAxKSBUbyBtYXRjaCBGaXJl
Zm94IGJlaGF2aW9yLCAyKSBJZiB3ZSBkbyBzY3JvbGwsIHdlIGxvc2UgdGhlCiAgICAgICAgICAg
ICAvLyBmb2N1cyByaW5nIGFyb3VuZCB0aGUgc2VsZWN0IG1lbnUuCiAgICAgICAgICAgICBTZXRG
b2N1cyhtX3ZpZXdXaW5kb3cpOwpAQCAtMjUwMCwxNSArMjUwMCwxNSBAQCBib29sIFdlYlZpZXc6
OnNob3VsZEluaXRpYWxpemVUcmFja1BvaW50SGFjaygpCiAgICAgICAgIHJldHVybiBzaG91bGRD
cmVhdGVTY3JvbGxiYXJzOwogCiAgICAgaGFzUnVuVHJhY2tQb2ludENoZWNrID0gdHJ1ZTsKLSAg
ICBjb25zdCBUQ0hBUiB0cmFja1BvaW50S2V5c1tdWzUwXSA9IHsgVEVYVCgiU29mdHdhcmVcXExl
bm92b1xcVHJhY2tQb2ludCIpLAotICAgICAgICBURVhUKCJTb2Z0d2FyZVxcTGVub3ZvXFxVbHRy
YU5hdiIpLAotICAgICAgICBURVhUKCJTb2Z0d2FyZVxcQWxwc1xcQXBvaW50XFxUcmFja1BvaW50
IiksCi0gICAgICAgIFRFWFQoIlNvZnR3YXJlXFxTeW5hcHRpY3NcXFN5blRQRW5oXFxVbHRyYU5h
dlVTQiIpLAotICAgICAgICBURVhUKCJTb2Z0d2FyZVxcU3luYXB0aWNzXFxTeW5UUEVuaFxcVWx0
cmFOYXZQUzIiKSB9OworICAgIGNvbnN0IFdDSEFSIHRyYWNrUG9pbnRLZXlzW11bNTBdID0geyBM
IlNvZnR3YXJlXFxMZW5vdm9cXFRyYWNrUG9pbnQiLAorICAgICAgICBMIlNvZnR3YXJlXFxMZW5v
dm9cXFVsdHJhTmF2IiwKKyAgICAgICAgTCJTb2Z0d2FyZVxcQWxwc1xcQXBvaW50XFxUcmFja1Bv
aW50IiwKKyAgICAgICAgTCJTb2Z0d2FyZVxcU3luYXB0aWNzXFxTeW5UUEVuaFxcVWx0cmFOYXZV
U0IiLAorICAgICAgICBMIlNvZnR3YXJlXFxTeW5hcHRpY3NcXFN5blRQRW5oXFxVbHRyYU5hdlBT
MiIgfTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgKytpKSB7CiAgICAgICAgIEhLRVkg
dHJhY2tQb2ludEtleTsKLSAgICAgICAgaW50IHJlYWRLZXlSZXN1bHQgPSA6OlJlZ09wZW5LZXlF
eChIS0VZX0NVUlJFTlRfVVNFUiwgdHJhY2tQb2ludEtleXNbaV0sIDAsIEtFWV9SRUFELCAmdHJh
Y2tQb2ludEtleSk7CisgICAgICAgIGludCByZWFkS2V5UmVzdWx0ID0gOjpSZWdPcGVuS2V5RXhX
KEhLRVlfQ1VSUkVOVF9VU0VSLCB0cmFja1BvaW50S2V5c1tpXSwgMCwgS0VZX1JFQUQsICZ0cmFj
a1BvaW50S2V5KTsKICAgICAgICAgOjpSZWdDbG9zZUtleSh0cmFja1BvaW50S2V5KTsKICAgICAg
ICAgaWYgKHJlYWRLZXlSZXN1bHQgPT0gRVJST1JfU1VDQ0VTUykgewogICAgICAgICAgICAgc2hv
dWxkQ3JlYXRlU2Nyb2xsYmFycyA9IHRydWU7CkBAIC0yNTM5LDggKzI1MzksOCBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoCiAgICAgICAgIC8vIElm
IHdlIGRldGVjdGVkIGEgcmVnaXN0cnkga2V5IGJlbG9uZ2luZyB0byBhIFRyYWNrUG9pbnQgZHJp
dmVyLCB0aGVuIGNyZWF0ZSBmYWtlIHRyYWNrcG9pbnQKICAgICAgICAgLy8gc2Nyb2xsYmFycywg
c28gdGhlIFdlYlZpZXcgd2lsbCByZWNlaXZlIFdNX1ZTQ1JPTEwgYW5kIFdNX0hTQ1JPTEwgbWVz
c2FnZXMuIFdlIGNyZWF0ZSBvbmUKICAgICAgICAgLy8gdmVydGljYWwgc2Nyb2xsYmFyIGFuZCBv
bmUgaG9yaXpvbnRhbCB0byBhbGxvdyBmb3IgcmVjZWl2aW5nIGJvdGggdHlwZXMgb2YgbWVzc2Fn
ZXMuCi0gICAgICAgIDo6Q3JlYXRlV2luZG93KFRFWFQoIlNDUk9MTEJBUiIpLCBURVhUKCJGQUtF
VFJBQ0tQT0lOVEhTQ1JPTExCQVIiKSwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgU0JTX0hPUlos
IDAsIDAsIDAsIDAsIG1fdmlld1dpbmRvdywgMCwgZ0luc3RhbmNlLCAwKTsKLSAgICAgICAgOjpD
cmVhdGVXaW5kb3coVEVYVCgiU0NST0xMQkFSIiksIFRFWFQoIkZBS0VUUkFDS1BPSU5UVlNDUk9M
TEJBUiIpLCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBTQlNfVkVSVCwgMCwgMCwgMCwgMCwgbV92
aWV3V2luZG93LCAwLCBnSW5zdGFuY2UsIDApOworICAgICAgICA6OkNyZWF0ZVdpbmRvd1coTCJT
Q1JPTExCQVIiLCBMIkZBS0VUUkFDS1BPSU5USFNDUk9MTEJBUiIsIFdTX0NISUxEIHwgV1NfVklT
SUJMRSB8IFNCU19IT1JaLCAwLCAwLCAwLCAwLCBtX3ZpZXdXaW5kb3csIDAsIGdJbnN0YW5jZSwg
MCk7CisgICAgICAgIDo6Q3JlYXRlV2luZG93VyhMIlNDUk9MTEJBUiIsIEwiRkFLRVRSQUNLUE9J
TlRWU0NST0xMQkFSIiwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgU0JTX1ZFUlQsIDAsIDAsIDAs
IDAsIG1fdmlld1dpbmRvdywgMCwgZ0luc3RhbmNlLCAwKTsKICAgICB9CiAKICAgICBociA9IHJl
Z2lzdGVyRHJhZ0Ryb3AoKTsKQEAgLTMwMjcsNyArMzAyNyw3IEBAIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgV2ViVmlldzo6c2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZSgKICAgICBpZiAoRkFJ
TEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwogCi0gICAgaWYgKG9sZEVuY29kaW5nICE9IGVu
Y29kaW5nTmFtZSAmJiAoIW9sZEVuY29kaW5nIHx8ICFlbmNvZGluZ05hbWUgfHwgX3Rjc2NtcChv
bGRFbmNvZGluZywgZW5jb2RpbmdOYW1lKSkpIHsKKyAgICBpZiAob2xkRW5jb2RpbmcgIT0gZW5j
b2RpbmdOYW1lICYmICghb2xkRW5jb2RpbmcgfHwgIWVuY29kaW5nTmFtZSB8fCB3Y3NjbXAob2xk
RW5jb2RpbmcsIGVuY29kaW5nTmFtZSkpKSB7CiAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1l
ID0gY29yZShtX21haW5GcmFtZSkpCiAgICAgICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5y
ZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGluZyhTdHJpbmcoZW5jb2RpbmdOYW1lLCBTeXNTdHJpbmdM
ZW4oZW5jb2RpbmdOYW1lKSkpOwogICAgIH0KQEAgLTUyNDgsNyArNTI0OCw3IEBAIGNvbnN0IElN
TURpY3QmIElNTURpY3Q6OmRpY3QoKQogCiBJTU1EaWN0OjpJTU1EaWN0KCkKIHsKLSAgICBtX2lu
c3RhbmNlID0gOjpMb2FkTGlicmFyeShURVhUKCJJTU0zMi5ETEwiKSk7CisgICAgbV9pbnN0YW5j
ZSA9IDo6TG9hZExpYnJhcnlXKEwiSU1NMzIuRExMIik7CiAgICAgZ2V0Q29udGV4dCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Z2V0Q29udGV4dFB0cj4oOjpHZXRQcm9jQWRkcmVzcyhtX2luc3RhbmNlLCAi
SW1tR2V0Q29udGV4dCIpKTsKICAgICBBU1NFUlQoZ2V0Q29udGV4dCk7CiAgICAgcmVsZWFzZUNv
bnRleHQgPSByZWludGVycHJldF9jYXN0PHJlbGVhc2VDb250ZXh0UHRyPig6OkdldFByb2NBZGRy
ZXNzKG1faW5zdGFuY2UsICJJbW1SZWxlYXNlQ29udGV4dCIpKTsKQEAgLTU5MDUsNyArNTkwNSw3
IEBAIGJvb2wgV2ViVmlldzo6b25HZXRPYmplY3QoV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJh
bSwgTFJFU1VMVCYgbFJlc3VsdCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKCFhY2Nlc3NpYmlsaXR5TGliKSB7Ci0gICAgICAgIGlmICghKGFjY2Vzc2liaWxpdHlMaWIg
PSA6OkxvYWRMaWJyYXJ5KFRFWFQoIm9sZWFjYy5kbGwiKSkpKQorICAgICAgICBpZiAoIShhY2Nl
c3NpYmlsaXR5TGliID0gOjpMb2FkTGlicmFyeVcoTCJvbGVhY2MuZGxsIikpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="79486"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>