<?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>44434</bug_id>
          
          <creation_ts>2010-08-23 09:46:29 -0700</creation_ts>
          <short_desc>[chromium] Add chromium-side of AsyncFileSystem implementation</short_desc>
          <delta_ts>2010-08-27 17:59:52 -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 Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          <dependson>44433</dependson>
          <blocked>42903</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dumi</cc>
    
    <cc>ericu</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>michaeln</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>267961</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 09:46:29 -0700</bug_when>
    <thetext>Add chromium-side of AsyncFileSystem implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267963</commentid>
    <comment_count>1</comment_count>
      <attachid>65134</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 09:50:01 -0700</bug_when>
    <thetext>Created attachment 65134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268262</commentid>
    <comment_count>2</comment_count>
      <attachid>65202</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 18:59:47 -0700</bug_when>
    <thetext>Created attachment 65202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268276</commentid>
    <comment_count>3</comment_count>
      <attachid>65202</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-23 19:52:12 -0700</bug_when>
    <thetext>Comment on attachment 65202
Patch

Some drive by comments.

WebKit/chromium/src/AsyncFileSystemChromium.cpp:55
 +  static PassOwnPtr&lt;AsyncFileSystem&gt; createPlatformAsyncFileSystem()
I don&apos;t follow this static function definition, its not called in this module so what purpose does it serve?

WebKit/chromium/src/LocalFileSystemChromium.cpp:70
 +  COMPILE_ASSERT_MATCHING_ENUM(Persistent);
Most of these are in AssertMatchingEnums.cpp, unless there&apos;s a compelling reason to have these separated out, I think these should also be in that .cpp file.

WebKit/chromium/src/AsyncFileSystemChromium.cpp:64
 +  {
maybe ASSERT(m_webFileSystem)

WebKit/chromium/src/LocalFileSystemChromium.cpp:60
 +          WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document-&gt;frame());
Is there any chance script can be executing in a document that has been detached from its frame? IDK?

WebKit/chromium/src/AsyncFileSystemChromium.h:36
 +  namespace WebKit { class WebFileSystem; }
I would expect in webkit style that the forward decl would go after the includes (not positive about that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268305</commentid>
    <comment_count>4</comment_count>
      <attachid>65209</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 22:24:13 -0700</bug_when>
    <thetext>Created attachment 65209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268308</commentid>
    <comment_count>5</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 22:30:24 -0700</bug_when>
    <thetext>Thanks!

(In reply to comment #3)
&gt; (From update of attachment 65202 [details])
&gt; Some drive by comments.
&gt; 
&gt; WebKit/chromium/src/AsyncFileSystemChromium.cpp:55
&gt;  +  static PassOwnPtr&lt;AsyncFileSystem&gt; createPlatformAsyncFileSystem()
&gt; I don&apos;t follow this static function definition, its not called in this module so what purpose does it serve?

Removed.

&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:70
&gt;  +  COMPILE_ASSERT_MATCHING_ENUM(Persistent);
&gt; Most of these are in AssertMatchingEnums.cpp, unless there&apos;s a compelling reason to have these separated out, I think these should also be in that .cpp file.

I didn&apos;t know of the file... fixed.

&gt; WebKit/chromium/src/AsyncFileSystemChromium.cpp:64
&gt;  +  {
&gt; maybe ASSERT(m_webFileSystem)

Added.

&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:60
&gt;  +          WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document-&gt;frame());
&gt; Is there any chance script can be executing in a document that has been detached from its frame? IDK?

In that case openFileSystem&apos;s implementation must call errorCallback.

&gt; WebKit/chromium/src/AsyncFileSystemChromium.h:36
&gt;  +  namespace WebKit { class WebFileSystem; }
&gt; I would expect in webkit style that the forward decl would go after the includes (not positive about that).

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268335</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-23 23:35:27 -0700</bug_when>
    <thetext>Attachment 65209 did not build on chromium:
Build output: http://queues.webkit.org/results/3731548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269009</commentid>
    <comment_count>7</comment_count>
      <attachid>65209</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-08-24 21:48:48 -0700</bug_when>
    <thetext>Comment on attachment 65209
Patch

WebKit/chromium/src/LocalFileSystemChromium.cpp:47
 +  using WebKit::WebFileSystemCallbacksImpl;
nit: since you are in WebKit, I would just put a &quot;using namespace WebKit&quot; here, and
then drop the WebKit:: prefixes down below.


otherwise, R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269479</commentid>
    <comment_count>8</comment_count>
      <attachid>65209</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-25 13:40:04 -0700</bug_when>
    <thetext>Comment on attachment 65209
Patch

WebKit/chromium/src/AsyncFileSystemChromium.h:46
 +  class SecurityOrigin;
super minor nit: is this forward decl needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269552</commentid>
    <comment_count>9</comment_count>
      <attachid>65483</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 15:40:18 -0700</bug_when>
    <thetext>Created attachment 65483
Patch

Uploading a patch one more time to include changes made in issue 44433</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269567</commentid>
    <comment_count>10</comment_count>
      <attachid>65490</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 15:55:34 -0700</bug_when>
    <thetext>Created attachment 65490
Patch

Removed SecurityOrigin.h includsion from AsyncFileSystemChromium.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269569</commentid>
    <comment_count>11</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 15:55:54 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 65209 [details])
&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:47
&gt;  +  using WebKit::WebFileSystemCallbacksImpl;
&gt; nit: since you are in WebKit, I would just put a &quot;using namespace WebKit&quot; here, and
&gt; then drop the WebKit:: prefixes down below.

Fixed.

(In reply to comment #8)
&gt; (From update of attachment 65209 [details])
&gt; WebKit/chromium/src/AsyncFileSystemChromium.h:46
&gt;  +  class SecurityOrigin;
&gt; super minor nit: is this forward decl needed?

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269665</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-25 18:34:26 -0700</bug_when>
    <thetext>Attachment 65490 did not build on chromium:
Build output: http://queues.webkit.org/results/3738626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269725</commentid>
    <comment_count>13</comment_count>
      <attachid>65527</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-25 22:49:18 -0700</bug_when>
    <thetext>Created attachment 65527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269736</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-25 23:22:43 -0700</bug_when>
    <thetext>Attachment 65527 did not build on chromium:
Build output: http://queues.webkit.org/results/3726669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270629</commentid>
    <comment_count>15</comment_count>
      <attachid>65527</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-08-27 11:40:12 -0700</bug_when>
    <thetext>Comment on attachment 65527
Patch

re-applying fishd&apos;s r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270820</commentid>
    <comment_count>16</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-27 16:59:28 -0700</bug_when>
    <thetext>Committed r66280: &lt;http://trac.webkit.org/changeset/66280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270862</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-27 17:59:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66280 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/66280
http://trac.webkit.org/changeset/66278
http://trac.webkit.org/changeset/66279</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65134</attachid>
            <date>2010-08-23 09:50:01 -0700</date>
            <delta_ts>2010-08-23 18:59:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44434-20100823095000.patch</filename>
            <type>text/plain</type>
            <size>11820</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGZiMjU5OWY3ODliZDFkOGRkMTJhZWNjYzYwOGJiN2UyNzI5ODg1ZWUu
LjhhNTkwZjJmZmViNzM3NTc2ZjFiNGUzODJhYjNiZTJmY2JlMzg3NTUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRhICA8a2ludWtvQGtpbnVr
bzItbWFjcHJvLm10di5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgY2hyb21pdW0tc2lkZSBvZiBB
c3luY0ZpbGVTeXN0ZW0gaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NDM0CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAq
IHNyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lz
dGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAq
IHNyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oOgorCiAyMDEwLTA4LTIyICBEYW5pZWwg
QmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKaW5kZXggNTQ3MmQwNGMyOGExYzM5Njc4NWE2MDA1MzRmZTY4YzQzNWYz
ZGY2ZC4uZmQxYjdhOTk4ZDhhNmFkNzIxZDIwZDEyODIwZjlkODY0MDY3ODI2ZSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKQEAgLTI5Miw2ICsyOTIsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0SW50ZXJuYWwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAn
LAorICAgICAgICAgICAgICAgICdzcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9CYWNrRm9yd2FyZExpc3RDbGllbnRJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyODk0Y2M1YzZl
ZmQ2NTVkYmQ2YjIwMDEyM2JlNTBiYmRkMTZmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtMCwwICsxLDEwNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRl
ICJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oIgorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiRE9NRmlsZVBhdGguaCIKKyNpbmNsdWRlICJGaWxlU3lz
dGVtLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lz
dGVtLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRl
ICJXZWJLaXQuaCIKKyNpbmNsdWRlICJXZWJLaXRDbGllbnQuaCIKKworI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFzeW5jRmlsZVN5
c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5n
JiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIC8vIENocm9taXVtIGltcGxlbWVudGF0aW9u
IGRvZXNuJ3QgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KworQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtKGNvbnN0
IFN0cmluZyYgcGxhdGZvcm1Sb290UGF0aCkKKyAgICA6IEFzeW5jRmlsZVN5c3RlbShwbGF0Zm9y
bVJvb3RQYXRoKQorICAgICwgbV93ZWJGaWxlU3lzdGVtKFdlYktpdDo6d2ViS2l0Q2xpZW50KCkt
PmZpbGVTeXN0ZW0oKSkKK3sKK30KKworQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06On5Bc3luY0Zp
bGVTeXN0ZW1DaHJvbWl1bSgpCit7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06
Om1vdmUoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2Vi
RmlsZVN5c3RlbS0+bW92ZSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoc3JjUGF0aCksIHZpcnR1YWxU
b1BsYXRmb3JtUGF0aChkZXN0UGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpj
b3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZp
bGVTeXN0ZW0tPmNvcHkodmlydHVhbFRvUGxhdGZvcm1QYXRoKHNyY1BhdGgpLCB2aXJ0dWFsVG9Q
bGF0Zm9ybVBhdGgoZGVzdFBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVt
b3ZlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPnJlbW92ZSh2aXJ0dWFsVG9Q
bGF0Zm9ybVBhdGgocGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
KGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpyZWFkTWV0
YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+cmVhZE1ldGFkYXRhKHZp
cnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxi
YWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06
OmNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVT
eXN0ZW0tPmNyZWF0ZUZpbGUodmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBleGNsdXNpdmUs
IG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQor
Cit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjcmVhdGVEaXJlY3RvcnkoY29uc3QgU3Ry
aW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPmNyZWF0ZURpcmVjdG9y
eSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIGV4Y2x1c2l2ZSwgbmV3IFdlYktpdDo6V2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxl
U3lzdGVtQ2hyb21pdW06OmZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRy
PEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5
c3RlbS0+ZmlsZUV4aXN0cyh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIG5ldyBXZWJLaXQ6
OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5j
RmlsZVN5c3RlbUNocm9taXVtOjpkaXJlY3RvcnlFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1f
d2ViRmlsZVN5c3RlbS0+ZGlyZWN0b3J5RXhpc3RzKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRo
KSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRlNGM0NTZiNDlkZTcx
NWFiMTg4NGY1ZWY5MzNhY2NjOWFiYzQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaApAQCAtMCwwICsxLDc2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW1faAorI2RlZmluZSAgQXN5bmNGaWxlU3lzdGVtQ2hy
b21pdW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCituYW1lc3BhY2UgV2ViS2l0IHsg
Y2xhc3MgV2ViRmlsZVN5c3RlbTsgfQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKKworY2xh
c3MgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0gOiBwdWJsaWMgQXN5bmNGaWxlU3lzdGVtIHsKK3B1
YmxpYzoKKyAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShjb25zdCBTdHJpbmcmIHBsYXRmb3Jt
Um9vdFBhdGgpOworICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5c3RlbUNocm9taXVtKCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYg
ZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmly
dHVhbCB2b2lkIGNvcHkoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQ
YXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCByZWFkTWV0YWRhdGEoY29uc3QgU3RyaW5n
JiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGNy
ZWF0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3du
UHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBmaWxlRXhp
c3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlyZWN0b3J5RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0
aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKworcHJpdmF0ZToKKyAg
ICBXZWJLaXQ6OldlYkZpbGVTeXN0ZW0qIG1fd2ViRmlsZVN5c3RlbTsKK307CisKK2NsYXNzIEFz
eW5jRmlsZVN5c3RlbUNocm9taXVtRmFjdG9yeSA6IHB1YmxpYyBBc3luY0ZpbGVTeXN0ZW1GYWN0
b3J5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIEFzeW5jRmlsZVN5c3RlbSogY3JlYXRlQXN5bmNG
aWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgcGxhdGZvcm1Sb290UGF0aCkKKyAgICB7CisgICAgICAg
IHJldHVybiBuZXcgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0ocGxhdGZvcm1Sb290UGF0aCk7Cisg
ICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8v
ICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IGQyOWY4NmQyZDU0MTg2NDYxODM5
ZmU1NjRlNzgyYzRjNzRmM2I2ODcuLmM4YWUyYjlhZjIxNWUxMmU1MmQ5YjYzN2RhNTFlY2M3NzFi
OGU2MWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxi
YWNrc0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxi
YWNrc0ltcGwuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0p
CiAKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUg
IldlYkZpbGVTeXN0ZW1FbnRyeS5oIgogI2luY2x1ZGUgIldlYkZpbGVJbmZvLmgiCiAjaW5jbHVk
ZSAiV2ViU3RyaW5nLmgiCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGw6Oldl
YkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NPd25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrc0Jh
c2U+IGNhbGxiYWNrcykKK1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOjpXZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJh
Y2tzKQogICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogewogfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGYzYzZiYzNmNDA1
MmQ2NmQ5MTc0ZmQ3MDQxM2NiMmJkOGU0NjllYzYuLmI5YzgyNWJiNGJlZmM3YzM3ZTAyMmUyY2Fl
YWYzMjg0NTI5MzBiNjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsLmgKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2tz
QmFzZTsKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdlYlN0cmluZzsKIAogY2xhc3MgV2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwgOiBwdWJsaWMgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBw
dWJsaWM6Ci0gICAgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxXZWJDb3Jl
OjpGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZT4pOworICAgIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJ
bXBsKFBhc3NPd25QdHI8V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAgICAg
dmlydHVhbCB+V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdWNjZWVkKCk7CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChXZWJGaWxlRXJyb3IgZXJyb3IpOwogCiBwcml2YXRlOgotICAgIE93blB0cjxX
ZWJDb3JlOjpGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZT4gbV9jYWxsYmFja3M7CisgICAgT3duUHRy
PFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65202</attachid>
            <date>2010-08-23 18:59:47 -0700</date>
            <delta_ts>2010-08-23 22:24:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44434-20100823185946.patch</filename>
            <type>text/plain</type>
            <size>15245</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDAwMzNkZWJlNjYwNDU4MWIxMzBkYTg4ZDdlMGUyZWFjMDg4NDBhYmMu
LjAyZGFlNjA4MjNmMzZkZDNiMDFjNDA5NTgwNGVhNThiMzkyNThlZWMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRhICA8a2ludWtvQGtpbnVr
bzItbWFjcHJvLm10di5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgY2hyb21pdW0tc2lkZSBvZiBB
c3luY0ZpbGVTeXN0ZW0gaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NDM0CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAq
IHNyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvTG9j
YWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2Fs
bGJhY2tzSW1wbDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oOgorCiAyMDEwLTA4LTIzICBLZW5uZXRoIFJ1c3Nl
bGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXpr
b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCmluZGV4IGQwNjBkODc3ZjM5ODlkOWU5YWYwODEwOWE5NWEyZmEwYzg2
OTNkOTYuLjc2OTViYTI2NDdjMTUyYjZiMzdiMmM4Y2QyYjgxZTI3NzQ5NzNhNTUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCkBAIC0yOTIsNiArMjkyLDggQEAKICAgICAgICAgICAgICAgICAnc3JjL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9BcHBsaWNhdGlvbkNhY2hl
SG9zdEludGVybmFsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVt
cy5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3Bw
JywKKyAgICAgICAgICAgICAgICAnc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgnLAogICAg
ICAgICAgICAgICAgICdzcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmgnLAogICAgICAgICAgICAgICAg
ICdzcmMvQmFja0ZvcndhcmRMaXN0Q2xpZW50SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjgxYWFmMDk4
MGMzZWM2MGU1YTA0ODRhNjdiOTIzN2JkMzM4ZjNhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTAsMCArMSwxMTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVk
ZSAiQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCIKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkRPTUZpbGVQYXRoLmgiCisjaW5jbHVkZSAiRmlsZVN5
c3RlbS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5
c3RlbS5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgiCisjaW5jbHVk
ZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2ViS2l0Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBBc3luY0ZpbGVT
eXN0ZW06Om9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmlu
ZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUgdHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICAvLyBDaHJvbWl1bSBpbXBsZW1lbnRhdGlv
biBkb2Vzbid0IGNhbGwgdGhpcyBtZXRob2QuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK3N0YXRpYyBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gY3JlYXRlUGxhdGZvcm1Bc3lu
Y0ZpbGVTeXN0ZW0oKQoreworICAgIC8vIENocm9taXVtIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qg
Y2FsbCB0aGlzIG1ldGhvZC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OkFzeW5jRmlsZVN5c3RlbUNocm9taXVt
KCkKKyAgICA6IG1fd2ViRmlsZVN5c3RlbShXZWJLaXQ6OndlYktpdENsaWVudCgpLT5maWxlU3lz
dGVtKCkpCit7Cit9CisKK0FzeW5jRmlsZVN5c3RlbUNocm9taXVtOjp+QXN5bmNGaWxlU3lzdGVt
Q2hyb21pdW0oKQoreworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjptb3ZlKGNv
bnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0
ZW0tPm1vdmUodmlydHVhbFRvUGxhdGZvcm1QYXRoKHNyY1BhdGgpLCB2aXJ0dWFsVG9QbGF0Zm9y
bVBhdGgoZGVzdFBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChj
YWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6Y29weShjb25z
dCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVt
LT5jb3B5KHZpcnR1YWxUb1BsYXRmb3JtUGF0aChzcmNQYXRoKSwgdmlydHVhbFRvUGxhdGZvcm1Q
YXRoKGRlc3RQYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OnJlbW92ZShjb25z
dCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5yZW1vdmUodmlydHVhbFRvUGxhdGZvcm1Q
YXRoKHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFj
a3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVhZE1ldGFkYXRhKGNv
bnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNh
bGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPnJlYWRNZXRhZGF0YSh2aXJ0dWFsVG9Q
bGF0Zm9ybVBhdGgocGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
KGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjcmVhdGVG
aWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNG
aWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5j
cmVhdGVGaWxlKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgZXhjbHVzaXZlLCBuZXcgV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBB
c3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6Y3JlYXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0
aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5jcmVhdGVEaXJlY3RvcnkodmlydHVh
bFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBleGNsdXNpdmUsIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNo
cm9taXVtOjpmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPmZp
bGVFeGlzdHModmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0
ZW1DaHJvbWl1bTo6ZGlyZWN0b3J5RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVT
eXN0ZW0tPmRpcmVjdG9yeUV4aXN0cyh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIG5ldyBX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNWQ0N2IzMGFiYjgxMzU0OTk0MmI2
NDI5NTQ5MzZhNzI0M2VhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgIEFzeW5j
RmlsZVN5c3RlbUNocm9taXVtX2gKKyNkZWZpbmUgIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtX2gK
KworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworbmFtZXNwYWNlIFdlYktpdCB7IGNsYXNzIFdl
YkZpbGVTeXN0ZW07IH0KKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXN5bmNG
aWxlU3lzdGVtQ2FsbGJhY2tzOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CisKK2NsYXNzIEFzeW5j
RmlsZVN5c3RlbUNocm9taXVtIDogcHVibGljIEFzeW5jRmlsZVN5c3RlbSB7CitwdWJsaWM6Cisg
ICAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oKTsKKyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0
ZW1DaHJvbWl1bSgpOworCisgICAgdmlydHVhbCB2b2lkIG1vdmUoY29uc3QgU3RyaW5nJiBzcmNQ
YXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjb3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwg
Y29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZE1l
dGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgs
IGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwor
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBib29s
IGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2
aXJ0dWFsIHZvaWQgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGRpcmVjdG9yeUV4aXN0
cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tz
Pik7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJGaWxlU3lzdGVtKiBtX3dlYkZpbGVTeXN0
ZW07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8g
IEFzeW5jRmlsZVN5c3RlbUNocm9taXVtX2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2Nh
bEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZmNTFiNTI3MjJiNzk0YzE5MDlh
Y2E3ZDE2ZjU3NDRlZWFkN2ExMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgiCisKKyNpZiBFTkFCTEUoRklM
RV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oIgorI2luY2x1
ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2suaCIKKyNp
bmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgorI2luY2x1ZGUgIldl
YkZyYW1lSW1wbC5oIgorCit1c2luZyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
OwordXNpbmcgV2ViS2l0OjpXZWJGcmFtZUltcGw7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsRmlsZVN5c3Rl
bShwYXRoKSk7Cit9CisKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlw
ZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAg
ICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCk7CisgICAgICAgIFdlYkZyYW1lSW1w
bCogd2ViRnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7
CisgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+b3BlbkZpbGVTeXN0ZW0od2ViRnJhbWUsIHN0
YXRpY19jYXN0PFdlYktpdDo6V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChuZXcgRmlsZVN5c3RlbUNhbGxiYWNrcyhzdWNjZXNz
Q2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGNvbnRleHQsIG5ldyBBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bSgpKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50
YXRpb24gZm9yIHdvcmtlcnMuCisgICAgfQorfQorCisjZGVmaW5lIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0odHlwZSkgXAorICAgIENPTVBJTEVfQVNTRVJUKGludChXZWJLaXQ6OldlYkZp
bGVTeXN0ZW06OlR5cGUjI3R5cGUpID09IGludChBc3luY0ZpbGVTeXN0ZW06OnR5cGUpLCBXZWJG
aWxlU3lzdGVtQW5kQXN5bmNGaWxlU3lzdGVtTXVzdEhhdmVTYW1lVHlwZVZhbHVlc18jI3R5cGUp
CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFRlbXBvcmFyeSk7CitDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFBlcnNpc3RlbnQpOworCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggZDI5Zjg2ZDJkNTQxODY0
NjE4MzlmZTU2NGU3ODJjNGM3NGYzYjY4Ny4uYzhhZTJiOWFmMjE1ZTEyZTUyZDliNjM3ZGE1MWVj
Yzc3MWI4ZTYxZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbC5jcHAKQEAgLTMyLDggKzMyLDggQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCiAjaW5j
bHVkZSAiV2ViRmlsZVN5c3RlbUVudHJ5LmgiCiAjaW5jbHVkZSAiV2ViRmlsZUluZm8uaCIKICNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKQEAgLTQzLDcgKzQzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1w
bDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxGaWxlU3lzdGVtQ2FsbGJh
Y2tzQmFzZT4gY2FsbGJhY2tzKQorV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGw6OldlYkZpbGVT
eXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiAgICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCiB7CiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmggYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgKaW5kZXggZjNjNmJj
M2Y0MDUyZDY2ZDkxNzRmZDcwNDEzY2IyYmQ4ZTQ2OWVjNi4uYjljODI1YmI0YmVmYzdjMzdlMDIy
ZTJjYWVhZjMyODQ1MjkzMGI2MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
aWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwuaApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEZpbGVTeXN0ZW1DYWxs
YmFja3NCYXNlOworY2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViU3RyaW5nOwogCiBjbGFzcyBX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbCA6IHB1YmxpYyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
IHsKIHB1YmxpYzoKLSAgICBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPFdl
YkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlPik7CisgICAgV2ViRmlsZVN5c3RlbUNhbGxi
YWNrc0ltcGwoUGFzc093blB0cjxXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsK
ICAgICB2aXJ0dWFsIH5XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRpZFN1Y2NlZWQoKTsKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsKFdlYkZpbGVFcnJvciBlcnJvcik7CiAKIHByaXZhdGU6Ci0gICAgT3du
UHRyPFdlYkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlPiBtX2NhbGxiYWNrczsKKyAgICBP
d25QdHI8V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65209</attachid>
            <date>2010-08-23 22:24:13 -0700</date>
            <delta_ts>2010-08-25 15:40:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44434-20100823222412.patch</filename>
            <type>text/plain</type>
            <size>16194</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDAwMzNkZWJlNjYwNDU4MWIxMzBkYTg4ZDdlMGUyZWFjMDg4NDBhYmMu
LmE5NzVjOWU1ZWEyNzUyYjA4YmU3M2I5ODBkNDU3MjczZTI3NDQyODIgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRhICA8a2ludWtvQGtpbnVr
bzItbWFjcHJvLm10di5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgY2hyb21pdW0tc2lkZSBvZiBB
c3luY0ZpbGVTeXN0ZW0gaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NDM0CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDogQWRkZWQgYXNzZXJ0aW9ucy4KKyAg
ICAgICAgKiBzcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBzcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaDogQWRkZWQuCisgICAgICAgICogc3JjL0xv
Y2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYkZpbGVT
eXN0ZW1DYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGw6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBzcmMv
V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaDoKKwogMjAxMC0wOC0yMyAgS2VubmV0aCBSdXNz
ZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6
a292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAppbmRleCBkMDYwZDg3N2YzOTg5ZDllOWFmMDgxMDlhOTVhMmZhMGM4
NjkzZDk2Li41NTI4NWEyNWMzOWE2M2NlNTU3ZTc1NjZlNmVmYTI4NjAxNWZjZjg5IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtMjkyLDYgKzI5Miw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvQXBwbGljYXRpb25DYWNo
ZUhvc3RJbnRlcm5hbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNw
cCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oJywKICAg
ICAgICAgICAgICAgICAnc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL0JhY2tGb3J3YXJkTGlzdENsaWVudEltcGwuY3BwJywKQEAgLTM2Myw2ICszNjUsNyBA
QAogICAgICAgICAgICAgICAgICdzcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0nLAogICAgICAg
ICAgICAgICAgICdzcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tJywKKyAgICAgICAgICAg
ICAgICAnc3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9NZWRpYVBs
YXllclByaXZhdGVDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbC5oJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCmluZGV4IGI5M2Q0YmIyNjNlZWM0Y2IwMzJkNjkyMjNjMmEwZGY0MDFjODA4YTUu
LjhiYzg3ODI2NTM2MjUyMTc2YTZlOTkxNGM5ZjBiMmQyNDU3ODEzZjMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtMzUsNiArMzUsNyBAQAogCiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgiCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRWRpdG9y
SW5zZXJ0QWN0aW9uLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAi
Rm9udFNtb290aGluZ01vZGUuaCIKQEAgLTUzLDYgKzU0LDcgQEAKICNpbmNsdWRlICJXZWJDbGlw
Ym9hcmQuaCIKICNpbmNsdWRlICJXZWJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiV2ViRWRpdGlu
Z0FjdGlvbi5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJGb250
RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJXZWJJREJLZXkuaCIKICNpbmNsdWRlICJXZWJJbnB1
dEVsZW1lbnQuaCIKQEAgLTM2MSw0ICszNjMsNyBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYklEQktleTo6TnVsbFR5cGUsIElEQktleTo6TnVsbFR5cGUpOwogQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXZWJJREJLZXk6OlN0cmluZ1R5cGUsIElEQktleTo6U3RyaW5nVHlw
ZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQktleTo6TnVtYmVyVHlwZSwg
SURCS2V5OjpOdW1iZXJUeXBlKTsKIAotCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxlU3lzdGVtOjpUeXBlVGVtcG9yYXJ5LCBBc3lu
Y0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
YkZpbGVTeXN0ZW06OlR5cGVQZXJzaXN0ZW50LCBBc3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQp
OworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3Rl
bUNocm9taXVtLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU3YTllMTc5YzU3ZWEzYmQ4MmZhYTA3YzQxY2MwMzgxODk2NTkw
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3Rl
bUNocm9taXVtLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5o
IgorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiRE9N
RmlsZVBhdGguaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRlICJXZWJL
aXRDbGllbnQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6QXN5bmNGaWxlU3lzdGVtQ2hy
b21pdW0oKQorICAgIDogbV93ZWJGaWxlU3lzdGVtKFdlYktpdDo6d2ViS2l0Q2xpZW50KCktPmZp
bGVTeXN0ZW0oKSkKK3sKKyAgICBBU1NFUlQobV93ZWJGaWxlU3lzdGVtKTsKK30KKworQXN5bmNG
aWxlU3lzdGVtQ2hyb21pdW06On5Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSgpCit7Cit9CisKK3Zv
aWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06Om1vdmUoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBj
b25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+bW92ZSh2aXJ0dWFsVG9QbGF0
Zm9ybVBhdGgoc3JjUGF0aCksIHZpcnR1YWxUb1BsYXRmb3JtUGF0aChkZXN0UGF0aCksIG5ldyBX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lk
IEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjb3B5KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29u
c3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPmNvcHkodmlydHVhbFRvUGxhdGZv
cm1QYXRoKHNyY1BhdGgpLCB2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoZGVzdFBhdGgpLCBuZXcgV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBB
c3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZp
bGVTeXN0ZW0tPnJlbW92ZSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIG5ldyBXZWJLaXQ6
OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5j
RmlsZVN5c3RlbUNocm9taXVtOjpyZWFkTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2Vi
RmlsZVN5c3RlbS0+cmVhZE1ldGFkYXRhKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3
IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3Zv
aWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
LCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNh
bGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPmNyZWF0ZUZpbGUodmlydHVhbFRvUGxh
dGZvcm1QYXRoKHBhdGgpLCBleGNsdXNpdmUsIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxs
YmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVt
OjpjcmVhdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dl
YkZpbGVTeXN0ZW0tPmNyZWF0ZURpcmVjdG9yeSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCks
IGV4Y2x1c2l2ZSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJh
Y2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmZpbGVFeGlzdHMoY29u
c3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2Fs
bGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+ZmlsZUV4aXN0cyh2aXJ0dWFsVG9QbGF0
Zm9ybVBhdGgocGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNh
bGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpkaXJlY3RvcnlF
eGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+ZGlyZWN0b3J5RXhpc3Rz
KHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNo
cm9taXVtLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTAxYWQ1ZDJmNDZjMzM4MTZhZWU1MDIxYTYwZTZlNzRmZDBmMmM3MgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW0uaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW1faAor
I2RlZmluZSAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJGaWxlU3lzdGVtOworfQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsK
K2NsYXNzIFNlY3VyaXR5T3JpZ2luOworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSA6
IHB1YmxpYyBBc3luY0ZpbGVTeXN0ZW0geworcHVibGljOgorICAgIEFzeW5jRmlsZVN5c3RlbUNo
cm9taXVtKCk7CisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0oKTsKKworICAg
IHZpcnR1YWwgdm9pZCBtb3ZlKGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBk
ZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0
dWFsIHZvaWQgY29weShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBh
dGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2
b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIHJlYWRNZXRhZGF0YShjb25zdCBTdHJpbmcm
IHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGZpbGVFeGlz
dHMoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pOworICAgIHZpcnR1YWwgdm9pZCBkaXJlY3RvcnlFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRo
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworCitwcml2YXRlOgorICAg
IFdlYktpdDo6V2ViRmlsZVN5c3RlbSogbV93ZWJGaWxlU3lzdGVtOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vICBBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3RlbUNo
cm9taXVtLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAzZTk3ZDM4Yzc4YTNhMDRlY2E3NmJlZDU5YzFjZjJiYzkxNjM3ZGQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3RlbUNo
cm9taXVtLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgiCisKKyNpbmNs
dWRlICJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJG
aWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaCIKKyNp
bmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgorI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorCit1
c2luZyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOwordXNpbmcgV2ViS2l0OjpX
ZWJGcmFtZUltcGw7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxMb2NhbEZp
bGVTeXN0ZW0+IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsRmlsZVN5c3RlbShwYXRoKSk7Cit9CisKK3Zv
aWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25nIHNpemUs
IFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAoY29udGV4dC0+aXNE
b2N1bWVudCgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERv
Y3VtZW50Kj4oY29udGV4dCk7CisgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJG
cmFtZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgICAgIHdlYkZyYW1l
LT5jbGllbnQoKS0+b3BlbkZpbGVTeXN0ZW0od2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYktpdDo6
V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxlU3lzdGVtQ2FsbGJh
Y2tzSW1wbChuZXcgRmlsZVN5c3RlbUNhbGxiYWNrcyhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2Fs
bGJhY2ssIGNvbnRleHQsIG5ldyBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSgpKSkpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgaW1wbGVtZW50YXRpb24gZm9yIHdvcmtlcnMu
CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
RklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwuY3BwCmluZGV4IGQyOWY4NmQyZDU0MTg2NDYxODM5ZmU1NjRlNzgyYzRjNzRm
M2I2ODcuLmM4YWUyYjlhZjIxNWUxMmU1MmQ5YjYzN2RhNTFlY2M3NzFiOGU2MWYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3BwCkBA
IC0zMiw4ICszMiw4IEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0j
aW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1F
bnRyeS5oIgogI2luY2x1ZGUgIldlYkZpbGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgi
CkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGw6OldlYkZpbGVTeXN0ZW1DYWxs
YmFja3NJbXBsKFBhc3NPd25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U+IGNhbGxiYWNrcykK
K1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgIDogbV9j
YWxsYmFja3MoY2FsbGJhY2tzKQogewogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
aWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGYzYzZiYzNmNDA1MmQ2NmQ5MTc0ZmQ3MDQx
M2NiMmJkOGU0NjllYzYuLmI5YzgyNWJiNGJlZmM3YzM3ZTAyMmUyY2FlYWYzMjg0NTI5MzBiNjMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0lt
cGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
LmgKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2tzQmFzZTsKK2NsYXNzIEFz
eW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00OCw3
ICs0OCw3IEBAIGNsYXNzIFdlYlN0cmluZzsKIAogY2xhc3MgV2ViRmlsZVN5c3RlbUNhbGxiYWNr
c0ltcGwgOiBwdWJsaWMgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyB7CiBwdWJsaWM6Ci0gICAgV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxXZWJDb3JlOjpGaWxlU3lzdGVtQ2Fs
bGJhY2tzQmFzZT4pOworICAgIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NPd25QdHI8
V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAgICAgdmlydHVhbCB+V2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTdWNjZWVkKCk7
CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJG
aWxlRXJyb3IgZXJyb3IpOwogCiBwcml2YXRlOgotICAgIE93blB0cjxXZWJDb3JlOjpGaWxlU3lz
dGVtQ2FsbGJhY2tzQmFzZT4gbV9jYWxsYmFja3M7CisgICAgT3duUHRyPFdlYkNvcmU6OkFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65483</attachid>
            <date>2010-08-25 15:40:18 -0700</date>
            <delta_ts>2010-08-25 15:55:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44434-20100825154017.patch</filename>
            <type>text/plain</type>
            <size>16873</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDI0MGEyMzAyYTBlMjcyZjUwN2E3MzNhYmQxOWE0Zjg2OWMwYmNlNGYu
LjNhNmI0YjJhZmQ1YjI1MTkzNmUwNjg2NTkzMTQ0N2E4YWNhNjIyMmMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbY2hyb21pdW1dIEFkZCBjaHJvbWl1bS1zaWRlIG9mIEFzeW5jRmlsZVN5c3RlbSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MzQKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwOiBBZGRlZCBhc3NlcnRpb25zLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1D
aHJvbWl1bS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbC5oOgorCiAyMDEwLTA4LTI0ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
NTY0YjlmOTgxNjEyMDdmOWQyN2I1OGE5NDZkYjEzMjI4ODNmZGE5ZS4uMWFlZjAwNWI4MDAyM2Nh
NmE2MTk5ZDczOWY0NTEzMDI2MjM1ODZmZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI5Miw2ICsyOTIs
OCBAQAogICAgICAgICAgICAgICAgICdzcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCcsCisgICAgICAgICAgICAg
ICAgJ3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgICAgICdz
cmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9BdXRv
RmlsbFBvcHVwTWVudUNsaWVudC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvQXV0b0ZpbGxQ
b3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9CYWNrRm9yd2FyZExpc3RD
bGllbnRJbXBsLmNwcCcsCkBAIC0zNjMsNiArMzY1LDcgQEAKICAgICAgICAgICAgICAgICAnc3Jj
L3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbWFj
L1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tJywKICAgICAgICAgICAgICAgICAnc3JjL21hYy9XZWJT
Y3JlZW5JbmZvRmFjdG9yeS5tbScsCisgICAgICAgICAgICAgICAgJ3NyYy9Mb2NhbEZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvTG9jYWxpemVkU3RyaW5ncy5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvTWVkaWFQbGF5ZXJQcml2YXRlQ2hyb21pdW0uY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCcsCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBiOTNkNGJi
MjYzZWVjNGNiMDMyZDY5MjIzYzJhMGRmNDAxYzgwOGE1Li44YmM4NzgyNjUzNjI1MjE3NmE2ZTk5
MTRjOWYwYjJkMjQ1NzgxM2YzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlP
YmplY3QuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgorI2luY2x1ZGUgIkFz
eW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkVkaXRvckluc2VydEFjdGlvbi5oIgogI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdNb2RlLmgiCkBA
IC01Myw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiV2Vi
Q3Vyc29ySW5mby5oIgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKKyNpbmNsdWRlICJX
ZWJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiV2ViRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCkBAIC0zNjEsNCAr
MzYzLDcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJLZXk6Ok51bGxUeXBl
LCBJREJLZXk6Ok51bGxUeXBlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURC
S2V5OjpTdHJpbmdUeXBlLCBJREJLZXk6OlN0cmluZ1R5cGUpOwogQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJJREJLZXk6Ok51bWJlclR5cGUsIElEQktleTo6TnVtYmVyVHlwZSk7CiAK
LQorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViRmlsZVN5c3RlbTo6VHlwZVRlbXBvcmFyeSwgQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3Jhcnkp
OworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxlU3lzdGVtOjpUeXBlUGVyc2lz
dGVudCwgQXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0ZW50KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTI0
Y2U4ZDM4OWIxYTEwNThjZGY4MGM4NWEzMTk2YjdlYjQ4MmJlCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTAsMCAr
MSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisj
aW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCIKKworI2luY2x1ZGUgIkFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkRPTUZpbGVQYXRoLmgiCisjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV2Vi
RmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgiCisj
aW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2ViS2l0Q2xpZW50LmgiCisKKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQXN5bmNGaWxl
U3lzdGVtQ2hyb21pdW06OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtKGNvbnN0IFN0cmluZyYgcm9v
dFBhdGgpCisgICAgOiBtX3dlYkZpbGVTeXN0ZW0oV2ViS2l0Ojp3ZWJLaXRDbGllbnQoKS0+Zmls
ZVN5c3RlbSgpKQoreworICAgIEFTU0VSVChtX3dlYkZpbGVTeXN0ZW0pOworICAgIHNldFBsYXRm
b3JtUm9vdFBhdGgocm9vdFBhdGgpOworfQorCitBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6fkFz
eW5jRmlsZVN5c3RlbUNocm9taXVtKCkKK3sKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bTo6bW92ZShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAg
bV93ZWJGaWxlU3lzdGVtLT5tb3ZlKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChzcmNQYXRoKSwgdmly
dHVhbFRvUGxhdGZvcm1QYXRoKGRlc3RQYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW06OmNvcHkoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1f
d2ViRmlsZVN5c3RlbS0+Y29weSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoc3JjUGF0aCksIHZpcnR1
YWxUb1BsYXRmb3JtUGF0aChkZXN0UGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxs
YmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVt
OjpyZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+cmVtb3ZlKHZpcnR1
YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OnJl
YWRNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5yZWFkTWV0YWRh
dGEodmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bTo6Y3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2Vi
RmlsZVN5c3RlbS0+Y3JlYXRlRmlsZSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIGV4Y2x1
c2l2ZSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7
Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmNyZWF0ZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+Y3JlYXRlRGly
ZWN0b3J5KHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgZXhjbHVzaXZlLCBuZXcgV2ViS2l0
OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bTo6ZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJG
aWxlU3lzdGVtLT5maWxlRXhpc3RzKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3IFdl
YktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQg
QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmRpcmVjdG9yeUV4aXN0cyhjb25zdCBTdHJpbmcmIHBh
dGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7Cisg
ICAgbV93ZWJGaWxlU3lzdGVtLT5kaXJlY3RvcnlFeGlzdHModmlydHVhbFRvUGxhdGZvcm1QYXRo
KHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
KTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVhZERpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5yZWFkRGlyZWN0b3J5KHZpcnR1YWxUb1Bs
YXRmb3JtUGF0aChwYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwo
Y2FsbGJhY2tzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjQ2Zjc4Y2NjM2IyOGY2NTYzMmM5ZmJmYWFhMjY0OTc2YzZmZDMxNQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaApAQCAtMCww
ICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW1faAorI2RlZmluZSAgQXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5j
bHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJGaWxlU3lzdGVtOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKKworY2xhc3MgQXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW0gOiBwdWJsaWMgQXN5bmNGaWxlU3lzdGVtIHsKK3B1YmxpYzoK
KyAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAg
ICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSgpOworCisgICAgdmlydHVhbCB2b2lk
IG1vdmUoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjb3B5
KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNv
bnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVhZE1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgZmlsZUV4aXN0cyhjb25zdCBTdHJp
bmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmly
dHVhbCB2b2lkIGRpcmVjdG9yeUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIHJlYWREaXJlY3Rv
cnkoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pOworCitwcml2YXRlOgorICAgIFdlYktpdDo6V2ViRmlsZVN5c3RlbSogbV93ZWJGaWxlU3lz
dGVtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8v
ICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9j
YWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MzY1ZWYyZTY3OWQ5OTBiYjNh
ZWJkZjNlY2E5Y2U4MjIwZjI1YjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgorCisjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRXJy
b3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbC5oIgorI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJ
bXBsLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsRmlsZVN5
c3RlbShwYXRoKSk7Cit9CisKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3Rl
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUg
dHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sK
KyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRl
eHQpOworICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9t
RnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOworICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCktPm9w
ZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBlPih0
eXBlKSwgc2l6ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKG5ldyBGaWxlU3lzdGVt
Q2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkpKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uIGZvciB3b3Jr
ZXJzLgorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsLmNwcAppbmRleCBkMjlmODZkMmQ1NDE4NjQ2MTgzOWZlNTY0ZTc4MmM0
Yzc0ZjNiNjg3Li4yZTQ4NzEwMTNkMGRhOWQ5NjY2ZWQ5NjNjY2M4MzZmNGUyNDc5NGVjIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNw
cApAQCAtMzIsOCArMzIsOSBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVk
ZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVt
Q2hyb21pdW0uaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRmlsZVN5
c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1FbnRyeS5oIgogI2luY2x1
ZGUgIldlYkZpbGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC00Myw3ICs0NCw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGw6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NP
d25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U+IGNhbGxiYWNrcykKK1dlYkZpbGVTeXN0ZW1D
YWxsYmFja3NJbXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgIDogbV9jYWxsYmFja3MoY2FsbGJh
Y2tzKQogewogfQpAQCAtNzgsNyArNzksNyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJ
bXBsOjpkaWRSZWFkRGlyZWN0b3J5KGNvbnN0IFdlYlZlY3RvcjxXZWJGaWxlU3lzdGVtRQogCiB2
b2lkIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgcGF0aCkKIHsKLSAgICBtX2NhbGxiYWNr
cy0+ZGlkT3BlbkZpbGVTeXN0ZW0obmFtZSwgcGF0aCk7CisgICAgbV9jYWxsYmFja3MtPmRpZE9w
ZW5GaWxlU3lzdGVtKG5hbWUsIG5ldyBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShwYXRoKSk7CiAg
ICAgZGVsZXRlIHRoaXM7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwuaAppbmRleCBmM2M2YmMzZjQwNTJkNjZkOTE3NGZkNzA0MTNjYjJi
ZDhlNDY5ZWM2Li5iOWM4MjViYjRiZWZjN2MzN2UwMjJlMmNhZWFmMzI4NDUyOTMwYjYzIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCkBA
IC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U7CitjbGFzcyBBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDgsNyArNDgs
NyBAQCBjbGFzcyBXZWJTdHJpbmc7CiAKIGNsYXNzIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
IDogcHVibGljIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MgewogcHVibGljOgotICAgIFdlYkZpbGVT
eXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NPd25QdHI8V2ViQ29yZTo6RmlsZVN5c3RlbUNhbGxiYWNr
c0Jhc2U+KTsKKyAgICBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwogICAgIHZpcnR1YWwgfldlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgpOwpAQCAt
NTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViRmlsZUVy
cm9yIGVycm9yKTsKIAogcHJpdmF0ZToKLSAgICBPd25QdHI8V2ViQ29yZTo6RmlsZVN5c3RlbUNh
bGxiYWNrc0Jhc2U+IG1fY2FsbGJhY2tzOworICAgIE93blB0cjxXZWJDb3JlOjpBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M+IG1fY2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65490</attachid>
            <date>2010-08-25 15:55:34 -0700</date>
            <delta_ts>2010-08-25 22:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44434-20100825155532.patch</filename>
            <type>text/plain</type>
            <size>16816</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDI0MGEyMzAyYTBlMjcyZjUwN2E3MzNhYmQxOWE0Zjg2OWMwYmNlNGYu
LjNhNmI0YjJhZmQ1YjI1MTkzNmUwNjg2NTkzMTQ0N2E4YWNhNjIyMmMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbY2hyb21pdW1dIEFkZCBjaHJvbWl1bS1zaWRlIG9mIEFzeW5jRmlsZVN5c3RlbSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MzQKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwOiBBZGRlZCBhc3NlcnRpb25zLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1D
aHJvbWl1bS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbC5oOgorCiAyMDEwLTA4LTI0ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
NTY0YjlmOTgxNjEyMDdmOWQyN2I1OGE5NDZkYjEzMjI4ODNmZGE5ZS4uMWFlZjAwNWI4MDAyM2Nh
NmE2MTk5ZDczOWY0NTEzMDI2MjM1ODZmZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI5Miw2ICsyOTIs
OCBAQAogICAgICAgICAgICAgICAgICdzcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCcsCisgICAgICAgICAgICAg
ICAgJ3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgICAgICdz
cmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9BdXRv
RmlsbFBvcHVwTWVudUNsaWVudC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvQXV0b0ZpbGxQ
b3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9CYWNrRm9yd2FyZExpc3RD
bGllbnRJbXBsLmNwcCcsCkBAIC0zNjMsNiArMzY1LDcgQEAKICAgICAgICAgICAgICAgICAnc3Jj
L3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbWFj
L1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tJywKICAgICAgICAgICAgICAgICAnc3JjL21hYy9XZWJT
Y3JlZW5JbmZvRmFjdG9yeS5tbScsCisgICAgICAgICAgICAgICAgJ3NyYy9Mb2NhbEZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvTG9jYWxpemVkU3RyaW5ncy5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvTWVkaWFQbGF5ZXJQcml2YXRlQ2hyb21pdW0uY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCcsCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBiOTNkNGJi
MjYzZWVjNGNiMDMyZDY5MjIzYzJhMGRmNDAxYzgwOGE1Li44YmM4NzgyNjUzNjI1MjE3NmE2ZTk5
MTRjOWYwYjJkMjQ1NzgxM2YzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlP
YmplY3QuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgorI2luY2x1ZGUgIkFz
eW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkVkaXRvckluc2VydEFjdGlvbi5oIgogI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdNb2RlLmgiCkBA
IC01Myw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiV2Vi
Q3Vyc29ySW5mby5oIgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKKyNpbmNsdWRlICJX
ZWJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiV2ViRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCkBAIC0zNjEsNCAr
MzYzLDcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJLZXk6Ok51bGxUeXBl
LCBJREJLZXk6Ok51bGxUeXBlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURC
S2V5OjpTdHJpbmdUeXBlLCBJREJLZXk6OlN0cmluZ1R5cGUpOwogQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJJREJLZXk6Ok51bWJlclR5cGUsIElEQktleTo6TnVtYmVyVHlwZSk7CiAK
LQorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViRmlsZVN5c3RlbTo6VHlwZVRlbXBvcmFyeSwgQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3Jhcnkp
OworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJGaWxlU3lzdGVtOjpUeXBlUGVyc2lz
dGVudCwgQXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0ZW50KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWJi
NDBmNjFiZGY4YjZjY2QzNjc5YmMzNWU3M2Y1ZGZhNjY2YmU0Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTAsMCAr
MSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNocm9t
aXVtLmgiCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiV2Vi
RmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgiCisj
aW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2ViS2l0Q2xpZW50LmgiCisKKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQXN5bmNGaWxl
U3lzdGVtQ2hyb21pdW06OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtKGNvbnN0IFN0cmluZyYgcm9v
dFBhdGgpCisgICAgOiBtX3dlYkZpbGVTeXN0ZW0oV2ViS2l0Ojp3ZWJLaXRDbGllbnQoKS0+Zmls
ZVN5c3RlbSgpKQoreworICAgIEFTU0VSVChtX3dlYkZpbGVTeXN0ZW0pOworICAgIHNldFBsYXRm
b3JtUm9vdFBhdGgocm9vdFBhdGgpOworfQorCitBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6fkFz
eW5jRmlsZVN5c3RlbUNocm9taXVtKCkKK3sKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bTo6bW92ZShjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAg
bV93ZWJGaWxlU3lzdGVtLT5tb3ZlKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChzcmNQYXRoKSwgdmly
dHVhbFRvUGxhdGZvcm1QYXRoKGRlc3RQYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21p
dW06OmNvcHkoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1f
d2ViRmlsZVN5c3RlbS0+Y29weSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoc3JjUGF0aCksIHZpcnR1
YWxUb1BsYXRmb3JtUGF0aChkZXN0UGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxs
YmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVt
OjpyZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+cmVtb3ZlKHZpcnR1
YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OnJl
YWRNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5yZWFkTWV0YWRh
dGEodmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJv
bWl1bTo6Y3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2Vi
RmlsZVN5c3RlbS0+Y3JlYXRlRmlsZSh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIGV4Y2x1
c2l2ZSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7
Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmNyZWF0ZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+Y3JlYXRlRGly
ZWN0b3J5KHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgZXhjbHVzaXZlLCBuZXcgV2ViS2l0
OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bTo6ZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJG
aWxlU3lzdGVtLT5maWxlRXhpc3RzKHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgbmV3IFdl
YktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQg
QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmRpcmVjdG9yeUV4aXN0cyhjb25zdCBTdHJpbmcmIHBh
dGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7Cisg
ICAgbV93ZWJGaWxlU3lzdGVtLT5kaXJlY3RvcnlFeGlzdHModmlydHVhbFRvUGxhdGZvcm1QYXRo
KHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
KTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVhZERpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5yZWFkRGlyZWN0b3J5KHZpcnR1YWxUb1Bs
YXRmb3JtUGF0aChwYXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwo
Y2FsbGJhY2tzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjQ2Zjc4Y2NjM2IyOGY2NTYzMmM5ZmJmYWFhMjY0OTc2YzZmZDMxNQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaApAQCAtMCww
ICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiAgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW1faAorI2RlZmluZSAgQXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5j
bHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJGaWxlU3lzdGVtOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczsKKworY2xhc3MgQXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW0gOiBwdWJsaWMgQXN5bmNGaWxlU3lzdGVtIHsKK3B1YmxpYzoK
KyAgICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKKyAg
ICB2aXJ0dWFsIH5Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSgpOworCisgICAgdmlydHVhbCB2b2lk
IG1vdmUoY29uc3QgU3RyaW5nJiBzcmNQYXRoLCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjb3B5
KGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNv
bnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVhZE1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgZmlsZUV4aXN0cyhjb25zdCBTdHJp
bmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmly
dHVhbCB2b2lkIGRpcmVjdG9yeUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIHJlYWREaXJlY3Rv
cnkoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pOworCitwcml2YXRlOgorICAgIFdlYktpdDo6V2ViRmlsZVN5c3RlbSogbV93ZWJGaWxlU3lz
dGVtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8v
ICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9j
YWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MzY1ZWYyZTY3OWQ5OTBiYjNh
ZWJkZjNlY2E5Y2U4MjIwZjI1YjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgorCisjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRXJy
b3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbC5oIgorI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJ
bXBsLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsRmlsZVN5
c3RlbShwYXRoKSk7Cit9CisKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3Rl
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUg
dHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sK
KyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRl
eHQpOworICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9t
RnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOworICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCktPm9w
ZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBlPih0
eXBlKSwgc2l6ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKG5ldyBGaWxlU3lzdGVt
Q2FsbGJhY2tzKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkpKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogQWRkIGltcGxlbWVudGF0aW9uIGZvciB3b3Jr
ZXJzLgorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsLmNwcAppbmRleCBkMjlmODZkMmQ1NDE4NjQ2MTgzOWZlNTY0ZTc4MmM0
Yzc0ZjNiNjg3Li4yZTQ4NzEwMTNkMGRhOWQ5NjY2ZWQ5NjNjY2M4MzZmNGUyNDc5NGVjIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmNw
cApAQCAtMzIsOCArMzIsOSBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVk
ZSAiQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVt
Q2hyb21pdW0uaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRmlsZVN5
c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1FbnRyeS5oIgogI2luY2x1
ZGUgIldlYkZpbGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC00Myw3ICs0NCw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGw6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NP
d25QdHI8RmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U+IGNhbGxiYWNrcykKK1dlYkZpbGVTeXN0ZW1D
YWxsYmFja3NJbXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAgIDogbV9jYWxsYmFja3MoY2FsbGJh
Y2tzKQogewogfQpAQCAtNzgsNyArNzksNyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJ
bXBsOjpkaWRSZWFkRGlyZWN0b3J5KGNvbnN0IFdlYlZlY3RvcjxXZWJGaWxlU3lzdGVtRQogCiB2
b2lkIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsOjpkaWRPcGVuRmlsZVN5c3RlbShjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgcGF0aCkKIHsKLSAgICBtX2NhbGxiYWNr
cy0+ZGlkT3BlbkZpbGVTeXN0ZW0obmFtZSwgcGF0aCk7CisgICAgbV9jYWxsYmFja3MtPmRpZE9w
ZW5GaWxlU3lzdGVtKG5hbWUsIG5ldyBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bShwYXRoKSk7CiAg
ICAgZGVsZXRlIHRoaXM7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwuaAppbmRleCBmM2M2YmMzZjQwNTJkNjZkOTE3NGZkNzA0MTNjYjJi
ZDhlNDY5ZWM2Li5iOWM4MjViYjRiZWZjN2MzN2UwMjJlMmNhZWFmMzI4NDUyOTMwYjYzIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCkBA
IC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNrc0Jhc2U7CitjbGFzcyBBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDgsNyArNDgs
NyBAQCBjbGFzcyBXZWJTdHJpbmc7CiAKIGNsYXNzIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBs
IDogcHVibGljIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MgewogcHVibGljOgotICAgIFdlYkZpbGVT
eXN0ZW1DYWxsYmFja3NJbXBsKFBhc3NPd25QdHI8V2ViQ29yZTo6RmlsZVN5c3RlbUNhbGxiYWNr
c0Jhc2U+KTsKKyAgICBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPFdlYkNv
cmU6OkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwogICAgIHZpcnR1YWwgfldlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZCgpOwpAQCAt
NTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViRmlsZUVy
cm9yIGVycm9yKTsKIAogcHJpdmF0ZToKLSAgICBPd25QdHI8V2ViQ29yZTo6RmlsZVN5c3RlbUNh
bGxiYWNrc0Jhc2U+IG1fY2FsbGJhY2tzOworICAgIE93blB0cjxXZWJDb3JlOjpBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M+IG1fY2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65527</attachid>
            <date>2010-08-25 22:49:18 -0700</date>
            <delta_ts>2010-08-27 11:40:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44434-20100825224917.patch</filename>
            <type>text/plain</type>
            <size>16910</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDZiMGIzZmE4NDkzYjY2YWFhMThjNzZkNTNiYzg5ZTMxZDUyY2JkY2Eu
LjU0ZTBmZDA3MDYxOWUxODdmY2NjODg1MGU4NDcyZTQ0N2NjZTVmNDAgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEwLTA4LTIzICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbY2hyb21pdW1dIEFkZCBjaHJvbWl1bS1zaWRlIG9mIEFzeW5jRmlsZVN5c3RlbSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MzQKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwOiBBZGRlZCBhc3NlcnRpb25zLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1D
aHJvbWl1bS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmlsZVN5
c3RlbUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbC5oOgorCiAyMDEwLTA4LTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjYwNzQuCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCmluZGV4IDk0NDNkOGVlYWFhZGUyZjVmNDM0ZjI2YTBhMGM3MDU0ZWI0Yjk0ODkuLjMy
YjE0ZGI0MWZiNTExNWM3ZjU1N2E3MjlkMmJlZTkyYTA2OGQ4NzIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBA
IC0yOTIsNiArMjkyLDggQEAKICAgICAgICAgICAgICAgICAnc3JjL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9BcHBsaWNhdGlvbkNhY2hlSG9zdEludGVy
bmFsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAnLAor
ICAgICAgICAgICAgICAgICdzcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwJywKKyAgICAg
ICAgICAgICAgICAnc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdzcmMvQmFj
a0ZvcndhcmRMaXN0Q2xpZW50SW1wbC5jcHAnLApAQCAtMzYzLDYgKzM2NSw3IEBACiAgICAgICAg
ICAgICAgICAgJ3NyYy94MTEvV2ViU2NyZWVuSW5mb0ZhY3RvcnkuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbScsCiAgICAgICAgICAgICAgICAg
J3NyYy9tYWMvV2ViU2NyZWVuSW5mb0ZhY3RvcnkubW0nLAorICAgICAgICAgICAgICAgICdzcmMv
TG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0xvY2Fs
aXplZFN0cmluZ3MuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL01lZGlhUGxheWVyUHJpdmF0
ZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Ob3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsLmgnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAK
aW5kZXggYTExN2ZjMmE3N2ZkZjViZGQ3ODI2ZjQ3YTBhNDA1YjEyOWM5OTNlNi4uYWMzYWFkM2Uz
MTJmOTkzZThmMzgxMmIwOTgzYzA2NjFlNGNmMGU5ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIK
KyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJFZGl0b3JJbnNlcnRBY3Rp
b24uaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250U21vb3Ro
aW5nTW9kZS5oIgpAQCAtNTQsNiArNTUsNyBAQAogI2luY2x1ZGUgIldlYkNsaXBib2FyZC5oIgog
I2luY2x1ZGUgIldlYkN1cnNvckluZm8uaCIKICNpbmNsdWRlICJXZWJFZGl0aW5nQWN0aW9uLmgi
CisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIldlYkZvbnREZXNjcmlwdGlv
bi5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5o
IgpAQCAtMzgwLDMgKzM4Miw4IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmll
dzo6VXNlckNvbnRlbnRJbmplY3RJblRvcEZyYW1lT25seSwgSW5qZWN0SW5UCiBDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYklEQktleTo6TnVsbFR5cGUsIElEQktleTo6TnVsbFR5cGUp
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJLZXk6OlN0cmluZ1R5cGUsIElE
QktleTo6U3RyaW5nVHlwZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQktl
eTo6TnVtYmVyVHlwZSwgSURCS2V5OjpOdW1iZXJUeXBlKTsKKworI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViRmlsZVN5c3RlbTo6VHlwZVRl
bXBvcmFyeSwgQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkpOworQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJGaWxlU3lzdGVtOjpUeXBlUGVyc2lzdGVudCwgQXN5bmNGaWxlU3lzdGVt
OjpQZXJzaXN0ZW50KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmls
ZVN5c3RlbUNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Mzk4MjZkMGM1NTk1NGMyN2Q1YThjYmQy
MmQyNTg4N2Q1MmI0NGE4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lz
dGVtQ2hyb21pdW0uaCIKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtLmgiCisjaW5j
bHVkZSAiV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIK
KyNpbmNsdWRlICJXZWJLaXRDbGllbnQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6QXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW0oY29uc3QgU3RyaW5nJiByb290UGF0aCkKKyAgICA6IEFzeW5j
RmlsZVN5c3RlbShyb290UGF0aCkKKyAgICAsIG1fd2ViRmlsZVN5c3RlbShXZWJLaXQ6OndlYktp
dENsaWVudCgpLT5maWxlU3lzdGVtKCkpCit7CisgICAgQVNTRVJUKG1fd2ViRmlsZVN5c3RlbSk7
Cit9CisKK0FzeW5jRmlsZVN5c3RlbUNocm9taXVtOjp+QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0o
KQoreworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjptb3ZlKGNvbnN0IFN0cmlu
ZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVT
eXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPm1vdmUo
dmlydHVhbFRvUGxhdGZvcm1QYXRoKHNyY1BhdGgpLCB2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoZGVz
dFBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
KTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6Y29weShjb25zdCBTdHJpbmcm
IHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5jb3B5KHZp
cnR1YWxUb1BsYXRmb3JtUGF0aChzcmNQYXRoKSwgdmlydHVhbFRvUGxhdGZvcm1QYXRoKGRlc3RQ
YXRoKSwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7
Cit9CisKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OnJlbW92ZShjb25zdCBTdHJpbmcm
IHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7
CisgICAgbV93ZWJGaWxlU3lzdGVtLT5yZW1vdmUodmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgp
LCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30K
Kwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVhZE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykK
K3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPnJlYWRNZXRhZGF0YSh2aXJ0dWFsVG9QbGF0Zm9ybVBh
dGgocGF0aCksIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNr
cykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpjcmVhdGVGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5jcmVhdGVGaWxl
KHZpcnR1YWxUb1BsYXRmb3JtUGF0aChwYXRoKSwgZXhjbHVzaXZlLCBuZXcgV2ViS2l0OjpXZWJG
aWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVT
eXN0ZW1DaHJvbWl1bTo6Y3JlYXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBl
eGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3Mp
Cit7CisgICAgbV93ZWJGaWxlU3lzdGVtLT5jcmVhdGVEaXJlY3RvcnkodmlydHVhbFRvUGxhdGZv
cm1QYXRoKHBhdGgpLCBleGNsdXNpdmUsIG5ldyBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpm
aWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPmZpbGVFeGlzdHMo
dmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bTo6ZGlyZWN0b3J5RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZpbGVTeXN0ZW0tPmRp
cmVjdG9yeUV4aXN0cyh2aXJ0dWFsVG9QbGF0Zm9ybVBhdGgocGF0aCksIG5ldyBXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIEFzeW5jRmls
ZVN5c3RlbUNocm9taXVtOjpyZWFkRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX3dlYkZp
bGVTeXN0ZW0tPnJlYWREaXJlY3RvcnkodmlydHVhbFRvUGxhdGZvcm1QYXRoKHBhdGgpLCBuZXcg
V2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDZmNzhjY2MzYjI4ZjY1NjMyYzlm
YmZhYWEyNjQ5NzZjNmZkMzE1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmICBBc3lu
Y0ZpbGVTeXN0ZW1DaHJvbWl1bV9oCisjZGVmaW5lICBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bV9o
CisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0u
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2Ns
YXNzIFdlYkZpbGVTeXN0ZW07Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOworCitjbGFzcyBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bSA6
IHB1YmxpYyBBc3luY0ZpbGVTeXN0ZW0geworcHVibGljOgorICAgIEFzeW5jRmlsZVN5c3RlbUNo
cm9taXVtKGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOworICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN5
c3RlbUNocm9taXVtKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNy
Y1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGNvcHkoY29uc3QgU3RyaW5nJiBzcmNQYXRo
LCBjb25zdCBTdHJpbmcmIGRlc3RQYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCByZWFk
TWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0
aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7
CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGJv
b2wgZXhjbHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAg
IHZpcnR1YWwgdm9pZCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlyZWN0b3J5RXhp
c3RzKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgs
IFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisKK3ByaXZhdGU6CisgICAg
V2ViS2l0OjpXZWJGaWxlU3lzdGVtKiBtX3dlYkZpbGVTeXN0ZW07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gIEFzeW5jRmlsZVN5c3RlbUNocm9t
aXVtX2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hy
b21pdW0uY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTZmNzk5NmMzMDM3ZjljMzBjNjJiMWExNGI5ZGQxYmJiNDBiMGUxNAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hy
b21pdW0uY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKKworI2luY2x1
ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJGaWxlU3lzdGVtQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tz
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVt
LmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJX
ZWJGcmFtZUNsaWVudC5oIgorI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TG9jYWxG
aWxlU3lzdGVtPiBMb2NhbEZpbGVTeXN0ZW06OmNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMb2NhbEZpbGVTeXN0ZW0ocGF0aCkpOworfQorCit2
b2lkIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZyBzaXpl
LCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgQVNTRVJUKGNvbnRleHQp
OworICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJh
bWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFt
ZSgpKTsKKyAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFt
ZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJG
aWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChuZXcgRmlsZVN5c3RlbUNhbGxiYWNrcyhzdWNjZXNzQ2Fs
bGJhY2ssIGVycm9yQ2FsbGJhY2ssIGNvbnRleHQpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gRklYTUU6IEFkZCBpbXBsZW1lbnRhdGlvbiBmb3Igd29ya2Vycy4KKyAgICB9Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwu
Y3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggZDI5Zjg2ZDJkNTQxODY0NjE4MzlmZTU2NGU3ODJjNGM3NGYzYjY4Ny4uMmU0ODcxMDEz
ZDBkYTlkOTY2NmVkOTYzY2NjODM2ZjRlMjQ3OTRlYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTMyLDggKzMyLDkgQEAK
IAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIgorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFja3MuaCIKICNp
bmNsdWRlICJXZWJGaWxlU3lzdGVtRW50cnkuaCIKICNpbmNsdWRlICJXZWJGaWxlSW5mby5oIgog
I2luY2x1ZGUgIldlYlN0cmluZy5oIgpAQCAtNDMsNyArNDQsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJ
bXBsOjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQYXNzT3duUHRyPEZpbGVTeXN0ZW1DYWxs
YmFja3NCYXNlPiBjYWxsYmFja3MpCitXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6V2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
IGNhbGxiYWNrcykKICAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKIHsKIH0KQEAgLTc4LDcg
Kzc5LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbDo6ZGlkUmVhZERpcmVjdG9y
eShjb25zdCBXZWJWZWN0b3I8V2ViRmlsZVN5c3RlbUUKIAogdm9pZCBXZWJGaWxlU3lzdGVtQ2Fs
bGJhY2tzSW1wbDo6ZGlkT3BlbkZpbGVTeXN0ZW0oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIHBhdGgpCiB7Ci0gICAgbV9jYWxsYmFja3MtPmRpZE9wZW5GaWxlU3lzdGVt
KG5hbWUsIHBhdGgpOworICAgIG1fY2FsbGJhY2tzLT5kaWRPcGVuRmlsZVN5c3RlbShuYW1lLCBu
ZXcgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0ocGF0aCkpOwogICAgIGRlbGV0ZSB0aGlzOwogfQog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJ
bXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgK
aW5kZXggZjNjNmJjM2Y0MDUyZDY2ZDkxNzRmZDcwNDEzY2IyYmQ4ZTQ2OWVjNi4uYjljODI1YmI0
YmVmYzdjMzdlMDIyZTJjYWVhZjMyODQ1MjkzMGI2MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwuaApAQCAtMzcsNyArMzcsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEZp
bGVTeXN0ZW1DYWxsYmFja3NCYXNlOworY2xhc3MgQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViU3RyaW5n
OwogCiBjbGFzcyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbCA6IHB1YmxpYyBXZWJGaWxlU3lz
dGVtQ2FsbGJhY2tzIHsKIHB1YmxpYzoKLSAgICBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChQ
YXNzT3duUHRyPFdlYkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlPik7CisgICAgV2ViRmls
ZVN5c3RlbUNhbGxiYWNrc0ltcGwoUGFzc093blB0cjxXZWJDb3JlOjpBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbCgpOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoKTsKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYkZpbGVFcnJvciBlcnJvcik7CiAKIHByaXZh
dGU6Ci0gICAgT3duUHRyPFdlYkNvcmU6OkZpbGVTeXN0ZW1DYWxsYmFja3NCYXNlPiBtX2NhbGxi
YWNrczsKKyAgICBPd25QdHI8V2ViQ29yZTo6QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBtX2Nh
bGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="54319"
          type_id="1"
          status="+"
          setter="dumi"
    />
          </attachment>
      

    </bug>

</bugzilla>