<?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>73918</bug_id>
          
          <creation_ts>2011-12-06 06:14:30 -0800</creation_ts>
          <short_desc>[Qt][WK2] Compute and set cache capacities using the current CacheModel</short_desc>
          <delta_ts>2012-06-11 03:10:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78124</dependson>
    
    <dependson>88771</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="Michael Brüning">michael.bruning</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>michael.bruning</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>515862</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2011-12-06 06:14:30 -0800</bug_when>
    <thetext>Implement WebProcess::platformSetCacheModel() for Qt and expose CacheModel API so that host apps, such as browser, can set it properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545099</commentid>
    <comment_count>1</comment_count>
      <attachid>124551</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-30 07:55:05 -0800</bug_when>
    <thetext>Created attachment 124551
First patch.

First patch for implementation of the patch model. It adds the implementation for Qt port of WebKit2 for Mac and Linux systems.

Next patches to be made are the implementation for Qt/WK2 on Windows, the implementation of hybrid memory and disk cache and the implementation for the WK2/Qt Quick API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545100</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 07:56:58 -0800</bug_when>
    <thetext>Attachment 124551 did not pass style-queue:

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

Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:85:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:95:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:100:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:131:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 4 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545102</commentid>
    <comment_count>3</comment_count>
      <attachid>124551</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-30 08:02:49 -0800</bug_when>
    <thetext>Comment on attachment 124551
First patch.

Found style issues that I&apos;ll fix first. Sorry for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545104</commentid>
    <comment_count>4</comment_count>
      <attachid>124553</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-30 08:04:52 -0800</bug_when>
    <thetext>Created attachment 124553
First patch (updated)

Fixed style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545125</commentid>
    <comment_count>5</comment_count>
      <attachid>124553</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-01-30 08:38:40 -0800</bug_when>
    <thetext>Comment on attachment 124553
First patch (updated)

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

Hello Michael, I have some suggestions and a question. :-)

&gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:60
&gt; +static QString defaultDiskCacheDirectory()

I think this could be String (from WTF) instead of QString. Both functions you call here in WebCore return String and this function is used to fill a String too.

&gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:65
&gt; +    if (!s_defaulDiskCacheDirectory.isEmpty())
&gt; +        return s_defaulDiskCacheDirectory;

In case of lazy initialization I tend to write down the initialization block here, and after the conditional, one return. Just a minor suggestion, feel free to ignore.

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:109
&gt; +    // The Mac port of WebKit2 uses a fudge factor of 1000 here to account for misalignment, howver,

Typo: &quot;however&quot;.

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:112
&gt; +    qint64 freeMemory = memorySize() / 1024 / 1023;

If I understood correctly memorySize() calculates the full physical memory size, not only the free memory. I think this is confusing.

Also freeMemory must be understood in MB? If so the conversion is confusing to me: it will give us more memory than the physical, or am I reading something wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545137</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-30 08:51:30 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 124553 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124553&amp;action=review
&gt; 
&gt; Hello Michael, I have some suggestions and a question. :-)

Thanks for the suggestions :).
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:60
&gt; &gt; +static QString defaultDiskCacheDirectory()
&gt; 
&gt; I think this could be String (from WTF) instead of QString. Both functions you call here in WebCore return String and this function is used to fill a String too.

Okay, true - I just did this to stay inline with the other methods in WebContextQt.cpp, they also use QString.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:65
&gt; &gt; +    if (!s_defaulDiskCacheDirectory.isEmpty())
&gt; &gt; +        return s_defaulDiskCacheDirectory;
&gt; 
&gt; In case of lazy initialization I tend to write down the initialization block here, and after the conditional, one return. Just a minor suggestion, feel free to ignore.

Yeah, actually, I would have done the same, but the other methods also do it this way and I think the WebKit style guide says that one should do early returns. 

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:109
&gt; &gt; +    // The Mac port of WebKit2 uses a fudge factor of 1000 here to account for misalignment, howver,
&gt; 
&gt; Typo: &quot;however&quot;.
Nice catch, will fix :)
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:112
&gt; &gt; +    qint64 freeMemory = memorySize() / 1024 / 1023;
&gt; 
&gt; If I understood correctly memorySize() calculates the full physical memory size, not only the free memory. I think this is confusing.

Yeah, I forgot to rename since I misinterpreted what was needed for the calcualation. I&apos;ll rename it.
&gt; 
&gt; Also freeMemory must be understood in MB? If so the conversion is confusing to me: it will give us more memory than the physical, or am I reading something wrong?
The fudge factor (inspired from the Mac version) is basically there to account the fact that memory might not necessarily aligned to a full Megabyte. This is probably more important for the free disk space than for the memory, but we can also remove it completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545286</commentid>
    <comment_count>7</comment_count>
      <attachid>124553</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-30 12:12:02 -0800</bug_when>
    <thetext>Comment on attachment 124553
First patch (updated)

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

How does all of this tie in with the MemoryPressure (or what is its name) class in WebKit?

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:65
&gt; +    // Most of this part was copied from the Mac port (see Source/WebKit2/WebProcess/mac/WebProcessMac.mm for details).
&gt; +    static host_basic_info_data_t hostInfo;

Can&apos;t it be shared instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545325</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-30 12:53:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 124553 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124553&amp;action=review
&gt; 
&gt; How does all of this tie in with the MemoryPressure (or what is its name) class in WebKit?
It calculates the limits that the MemoryPressureHandler and the MemoryCache will have for operation.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:65
&gt; &gt; +    // Most of this part was copied from the Mac port (see Source/WebKit2/WebProcess/mac/WebProcessMac.mm for details).
&gt; &gt; +    static host_basic_info_data_t hostInfo;
&gt; 
&gt; Can&apos;t it be shared instead?
Sure, we could make the Mac part a shared private method in the WebProcess if that&apos;s what you meant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545906</commentid>
    <comment_count>9</comment_count>
      <attachid>124699</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-31 03:25:51 -0800</bug_when>
    <thetext>Created attachment 124699
First patch (updated with suggestions).

Updated the patch with suggestions from Caio Marcelo and Kenneth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545907</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 03:27:58 -0800</bug_when>
    <thetext>Attachment 124699 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545914</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-01-31 03:33:58 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Attachment 124699 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9
&gt; 
&gt; Updating OpenSource
&gt; First, rewinding head to replay your work on top of it...
&gt; Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
&gt; Using index info to reconstruct a base tree...
&gt; Falling back to patching base and 3-way merge...
&gt; Auto-merging LayoutTests/ChangeLog
&gt; CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
&gt; Auto-merging LayoutTests/platform/qt/Skipped
&gt; CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
&gt; Auto-merging Source/WebCore/ChangeLog
&gt; CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
&gt; Failed to merge in the changes.
&gt; Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.
&gt; 
&gt; When you have resolved this problem run &quot;git rebase --continue&quot;.
&gt; If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
&gt; To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.
&gt; 
&gt; rebase refs/remotes/origin/master: command returned error: 1
&gt; 
&gt; Died at Tools/Scripts/update-webkit line 164.
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Seems as if either the style-commit-queue is hosed or it has problems with git patches. Anyway, none of the changes I made touched any if these files...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545981</commentid>
    <comment_count>12</comment_count>
      <attachid>124699</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-31 06:00:26 -0800</bug_when>
    <thetext>Comment on attachment 124699
First patch (updated with suggestions).

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

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:69
&gt; +        long pageSize = sysconf(_SC_PAGESIZE);
&gt; +        long numberOfPages = sysconf(_SC_PHYS_PAGES);
&gt; +
&gt; +        if (pageSize &gt; 0 &amp;&amp; numberOfPages &gt; 0)
&gt; +            s_physicalMemorySize = static_cast&lt;qint64&gt;(pageSize) * static_cast&lt;qint64&gt;(numberOfPages);

why not turn this into a memorySize method for UNIX platforms?

Would be great to have a class for all of these, so they can be shared better.

like PlatformInfoMac, PlatformInfoUNIX etc

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:73
&gt; +    // FIXME: Find a correct implementation of this for QtWebKit on Windows.

Currently this is not just windows... could be QNX for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547896</commentid>
    <comment_count>13</comment_count>
      <attachid>125140</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-02 08:58:44 -0800</bug_when>
    <thetext>Created attachment 125140
Updated patch.

Added the Platform class plus implementation for unix/posix, windows and mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548649</commentid>
    <comment_count>14</comment_count>
      <attachid>125310</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-03 05:13:33 -0800</bug_when>
    <thetext>Created attachment 125310
Updated patch.

Fixed build problem for Qt port on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549913</commentid>
    <comment_count>15</comment_count>
      <attachid>125310</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-06 05:14:44 -0800</bug_when>
    <thetext>Comment on attachment 125310
Updated patch.

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

&gt; Source/WebCore/platform/PlatformInfo.cpp:31
&gt; +PlatformInfo* platformInfo()

I would prefer something like PlatformInfo::instance() but i am not sure of the pattern used in webkit

&gt; Source/WebCore/platform/PlatformInfo.cpp:33
&gt; +    static PlatformInfo* staticInfo = new PlatformInfo;

I would prefer the name &apos;instance&apos;

&gt; Source/WebCore/platform/mac/PlatformInfoMac.cpp:36
&gt; +uint64_t PlatformInfo::memorySize()

so is this available memory, total memory, is it in mega bytes, bytes etc? I think the name could be better

&gt; Source/WebCore/platform/qt/FileSystemQt.cpp:194
&gt; +uint64_t getVolumeFreeSizeForPath(const char* path)

Size? in bytes? mega bytes? 

availableBytesOnVolumeAtPath ? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549926</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 05:35:41 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 125310 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125310&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformInfo.cpp:31
&gt; &gt; +PlatformInfo* platformInfo()
&gt; 
&gt; I would prefer something like PlatformInfo::instance() but i am not sure of the pattern used in webkit
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformInfo.cpp:33
&gt; &gt; +    static PlatformInfo* staticInfo = new PlatformInfo;
&gt; 
&gt; I would prefer the name &apos;instance&apos;
&gt; 
&gt; &gt; Source/WebCore/platform/mac/PlatformInfoMac.cpp:36
&gt; &gt; +uint64_t PlatformInfo::memorySize()
&gt; 
&gt; so is this available memory, total memory, is it in mega bytes, bytes etc? I think the name could be better

I agree - I just copied the name from the Mac and GTK WebProcess implementation for consistency / for possible use by those ports in the future. Should we stay consistent with those or should we just change the name?

&gt; 
&gt; &gt; Source/WebCore/platform/qt/FileSystemQt.cpp:194
&gt; &gt; +uint64_t getVolumeFreeSizeForPath(const char* path)
&gt; 
&gt; Size? in bytes? mega bytes? 
&gt; 
&gt; availableBytesOnVolumeAtPath ? :-)

This is a method that was already implemented on the GTK port. Should we change the name and also refactor the GTK code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549936</commentid>
    <comment_count>17</comment_count>
      <attachid>125626</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 06:02:54 -0800</bug_when>
    <thetext>Created attachment 125626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549938</commentid>
    <comment_count>18</comment_count>
      <attachid>125627</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 06:07:03 -0800</bug_when>
    <thetext>Created attachment 125627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549948</commentid>
    <comment_count>19</comment_count>
      <attachid>125629</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 06:30:43 -0800</bug_when>
    <thetext>Created attachment 125629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549956</commentid>
    <comment_count>20</comment_count>
      <attachid>125629</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-06 06:36:03 -0800</bug_when>
    <thetext>Comment on attachment 125629
Patch

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

&gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:62
&gt; +    static String s_defaulDiskCacheDirectory;

spelling error

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:74
&gt; +    unsigned cacheTotalCapacity = 0;
&gt; +    unsigned cacheMinDeadCapacity = 0;
&gt; +    unsigned cacheMaxDeadCapacity = 0;
&gt; +    double deadDecodedDataDeletionInterval = 0;
&gt; +    unsigned pageCacheCapacity = 0;
&gt; +    unsigned long urlCacheMemoryCapacity = 0;
&gt; +    unsigned long urlCacheDiskCapacity = 0;

why do you need to initialize these to 0? Doesn&apos;t the calculateCacheSizes aways set the values?

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:104
&gt; +    QNetworkDiskCache* diskCache = new QNetworkDiskCache();

does the network access manager take over ownership?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549974</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 07:09:53 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 125629 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125629&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:62
&gt; &gt; +    static String s_defaulDiskCacheDirectory;
&gt; 
&gt; spelling error
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:74
&gt; &gt; +    unsigned cacheTotalCapacity = 0;
&gt; &gt; +    unsigned cacheMinDeadCapacity = 0;
&gt; &gt; +    unsigned cacheMaxDeadCapacity = 0;
&gt; &gt; +    double deadDecodedDataDeletionInterval = 0;
&gt; &gt; +    unsigned pageCacheCapacity = 0;
&gt; &gt; +    unsigned long urlCacheMemoryCapacity = 0;
&gt; &gt; +    unsigned long urlCacheDiskCapacity = 0;
&gt; 
&gt; why do you need to initialize these to 0? Doesn&apos;t the calculateCacheSizes aways set the values?
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:104
&gt; &gt; +    QNetworkDiskCache* diskCache = new QNetworkDiskCache();
&gt; 
&gt; does the network access manager take over ownership?

(In reply to comment #20)
&gt; (From update of attachment 125629 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125629&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:62
&gt; &gt; +    static String s_defaulDiskCacheDirectory;
&gt; 
&gt; spelling error
Good catch :)
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:74
&gt; &gt; +    unsigned cacheTotalCapacity = 0;
&gt; &gt; +    unsigned cacheMinDeadCapacity = 0;
&gt; &gt; +    unsigned cacheMaxDeadCapacity = 0;
&gt; &gt; +    double deadDecodedDataDeletionInterval = 0;
&gt; &gt; +    unsigned pageCacheCapacity = 0;
&gt; &gt; +    unsigned long urlCacheMemoryCapacity = 0;
&gt; &gt; +    unsigned long urlCacheDiskCapacity = 0;
&gt; 
&gt; why do you need to initialize these to 0? Doesn&apos;t the calculateCacheSizes aways set the values?

It&apos;s basically what all the other ports do. Anyway, I checked and it seems there is one case where cacheTotalCapacity does not get set (that happens if the physical memory of the device is smaller than 512 MB) and subsequently, cacheMinDeadCapacity and CacheMaxDeadCapacity might not be set correctly.

We could fix this and move the initialization to 0 to WebProcess::calculateCacheSizes, but I don&apos;t think the initialization&apos;s here hurt as they will probably get optimised out anyway. I agree that initializing here is unnecessary if everything gets reset anyway, but is it against some Webkit guideline to do this? 

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:104
&gt; &gt; +    QNetworkDiskCache* diskCache = new QNetworkDiskCache();
&gt; 
&gt; does the network access manager take over ownership?
Yes, it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549982</commentid>
    <comment_count>22</comment_count>
      <attachid>125640</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 07:21:22 -0800</bug_when>
    <thetext>Created attachment 125640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550043</commentid>
    <comment_count>23</comment_count>
      <attachid>125660</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-06 09:05:06 -0800</bug_when>
    <thetext>Created attachment 125660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550163</commentid>
    <comment_count>24</comment_count>
      <attachid>125660</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-06 11:53:07 -0800</bug_when>
    <thetext>Comment on attachment 125660
Patch

OK, lets go with this for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550744</commentid>
    <comment_count>25</comment_count>
      <attachid>125660</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 02:17:37 -0800</bug_when>
    <thetext>Comment on attachment 125660
Patch

I&apos;ll follow up with the PlatformInfo patch and cc Anders or Kling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550793</commentid>
    <comment_count>26</comment_count>
      <attachid>125660</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 03:42:54 -0800</bug_when>
    <thetext>Comment on attachment 125660
Patch

Clearing flags on attachment: 125660

Committed r106920: &lt;http://trac.webkit.org/changeset/106920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550794</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 03:43:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550812</commentid>
    <comment_count>28</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 03:59:18 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 125660 [details])
&gt; Clearing flags on attachment: 125660
&gt; 
&gt; Committed r106920: &lt;http://trac.webkit.org/changeset/106920&gt;

Reopen, because it broke the Qt Windows build:
../../../../Source/WebCore/platform/qt/FileSystemQt.cpp:42:25: fatal error: sys/statvfs.h: No such file or directory

Could you fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550821</commentid>
    <comment_count>29</comment_count>
      <attachid>125809</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 04:10:20 -0800</bug_when>
    <thetext>Created attachment 125809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550822</commentid>
    <comment_count>30</comment_count>
      <attachid>125809</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 04:11:26 -0800</bug_when>
    <thetext>Comment on attachment 125809
Patch

Invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550826</commentid>
    <comment_count>31</comment_count>
      <attachid>125810</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 04:15:30 -0800</bug_when>
    <thetext>Created attachment 125810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550830</commentid>
    <comment_count>32</comment_count>
      <attachid>125810</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 04:17:58 -0800</bug_when>
    <thetext>Comment on attachment 125810
Patch

rs=me, I&apos;ll land it manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550835</commentid>
    <comment_count>33</comment_count>
      <attachid>125810</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 04:23:23 -0800</bug_when>
    <thetext>Comment on attachment 125810
Patch

Clearing flags on attachment: 125810

Committed r106924: &lt;http://trac.webkit.org/changeset/106924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550836</commentid>
    <comment_count>34</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 04:23:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550857</commentid>
    <comment_count>35</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 04:48:06 -0800</bug_when>
    <thetext>Reopen, because win build is still broken:

../../../../Source/WebCore/platform/qt/FileSystemQt.cpp: In function &apos;uint64_t WebCore::getVolumeFreeSizeForPath(const char*)&apos;:
../../../../Source/WebCore/platform/qt/FileSystemQt.cpp:203:33: error: expected &apos;(&apos; before &apos;freeBytesToCaller&apos;
../../../../Source/WebCore/platform/qt/FileSystemQt.cpp:203:59: error: expected &apos;)&apos; before &apos;;&apos; token</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550862</commentid>
    <comment_count>36</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 04:53:51 -0800</bug_when>
    <thetext>And it broke many tests on WK2: http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r106920%20%2819804%29/results.html
(fails before your change: http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r106919%20%2819803%29/results.html)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550880</commentid>
    <comment_count>37</comment_count>
      <attachid>125821</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 05:11:51 -0800</bug_when>
    <thetext>Created attachment 125821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550916</commentid>
    <comment_count>38</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 06:02:47 -0800</bug_when>
    <thetext>Could you guys land buildfixes manually instad of waiting hours for commit queue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550931</commentid>
    <comment_count>39</comment_count>
      <attachid>125821</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 06:24:15 -0800</bug_when>
    <thetext>Comment on attachment 125821
Patch

Rejecting attachment 125821 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ebKit/chromium/third_party/yasm/source/patched-yasm --revision 73761 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
46&gt;At revision 73761.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/11436305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550936</commentid>
    <comment_count>40</comment_count>
      <attachid>125821</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 06:33:08 -0800</bug_when>
    <thetext>Comment on attachment 125821
Patch

Landed in http://trac.webkit.org/changeset/106933</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550937</commentid>
    <comment_count>41</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 06:33:33 -0800</bug_when>
    <thetext>Leave it open, because WK2 tests are still broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550971</commentid>
    <comment_count>42</comment_count>
      <attachid>125843</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 07:33:59 -0800</bug_when>
    <thetext>Created attachment 125843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551001</commentid>
    <comment_count>43</comment_count>
      <attachid>125843</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 08:17:39 -0800</bug_when>
    <thetext>Comment on attachment 125843
Patch

bbandix was the faster - http://trac.webkit.org/changeset/106939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551051</commentid>
    <comment_count>44</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 09:20:30 -0800</bug_when>
    <thetext>I skipped the failing tests until fix - http://trac.webkit.org/changeset/106954</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551058</commentid>
    <comment_count>45</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-07 09:24:36 -0800</bug_when>
    <thetext>(In reply to comment #44)
&gt; I skipped the failing tests until fix - http://trac.webkit.org/changeset/106954

WK2 fails can be found here: http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r106951%20%2819821%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551093</commentid>
    <comment_count>46</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-02-07 10:16:29 -0800</bug_when>
    <thetext>(In reply to comment #45)
&gt; (In reply to comment #44)
&gt; &gt; I skipped the failing tests until fix - http://trac.webkit.org/changeset/106954
&gt; 
&gt; WK2 fails can be found here: http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r106951%20%2819821%29/results.html

Michael, the fact that fast/harness/use-page-cache.html is not passing maybe indicates that the page cache capacity is not enough. One idea is to check which value those calculations are giving you for page capacity. Also, enforce page capacity 20 to see if the test pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551096</commentid>
    <comment_count>47</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-02-07 10:24:24 -0800</bug_when>
    <thetext>(In reply to comment #46)
&gt; Michael, the fact that fast/harness/use-page-cache.html is not passing maybe indicates that the page cache capacity is not enough. One idea is to check which value those calculations are giving you for page capacity. Also, enforce page capacity 20 to see if the test pass.

Magic number 20 was the old default :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551192</commentid>
    <comment_count>48</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-07 11:46:10 -0800</bug_when>
    <thetext>(In reply to comment #46)
&gt; (In reply to comment #45)
&gt; &gt; (In reply to comment #44)
&gt; &gt; &gt; I skipped the failing tests until fix - http://trac.webkit.org/changeset/106954
&gt; &gt; 
&gt; &gt; WK2 fails can be found here: http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r106951%20%2819821%29/results.html
&gt; 
&gt; Michael, the fact that fast/harness/use-page-cache.html is not passing maybe indicates that the page cache capacity is not enough. One idea is to check which value those calculations are giving you for page capacity. Also, enforce page capacity 20 to see if the test pass.

Yeah, I also found that this was the reason - the default CacheModel results in pageCacheCapacity being 0. The gtk port sets this to another value, while the Mac port does not seem to reset it from the default value. 

I have a patch built &amp; running the test at the office, but had to leave before it finished. I&apos;ll post the patch tomorrow if it fixes the issues...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552075</commentid>
    <comment_count>49</comment_count>
      <attachid>126072</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-08 06:23:36 -0800</bug_when>
    <thetext>Created attachment 126072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552078</commentid>
    <comment_count>50</comment_count>
      <attachid>126072</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-08 06:38:03 -0800</bug_when>
    <thetext>Comment on attachment 126072
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        (WebKit::WebContext::WebContext): Set default cacheModel for QT platform to

Qt

&gt; Source/WebKit2/UIProcess/WebContext.cpp:129
&gt; +#if PLATFORM(QT)
&gt; +    , m_cacheModel(CacheModelPrimaryWebBrowser)
&gt; +#else
&gt;      , m_cacheModel(CacheModelDocumentViewer)
&gt; +#endif

We might want an experimental setting for this with the document viewer being the default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552092</commentid>
    <comment_count>51</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-08 06:54:24 -0800</bug_when>
    <thetext>(In reply to comment #50)
&gt; (From update of attachment 126072 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126072&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:9
&gt; &gt; +        (WebKit::WebContext::WebContext): Set default cacheModel for QT platform to
&gt; 
&gt; Qt
Will fix. So &quot;Qt&quot; is the preferred way of writing? I&apos;m asking because I&apos;ve seen mixes of Qt, QT and qt being used in logs...

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebContext.cpp:129
&gt; &gt; +#if PLATFORM(QT)
&gt; &gt; +    , m_cacheModel(CacheModelPrimaryWebBrowser)
&gt; &gt; +#else
&gt; &gt;      , m_cacheModel(CacheModelDocumentViewer)
&gt; &gt; +#endif
&gt; 
&gt; We might want an experimental setting for this with the document viewer being the default

As mentioned in #qtwebkit, the experimental setting will be part of the cacheModel API implementation for Qt-WK2, which I&apos;ll post soon. However, I think it&apos;s important that we unskip those layout tests for the time being.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552094</commentid>
    <comment_count>52</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-08 07:03:02 -0800</bug_when>
    <thetext>It has always been Qt. QT == QuickTime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552103</commentid>
    <comment_count>53</comment_count>
      <attachid>126079</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-08 07:17:15 -0800</bug_when>
    <thetext>Created attachment 126079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552104</commentid>
    <comment_count>54</comment_count>
      <attachid>126079</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-02-08 07:18:16 -0800</bug_when>
    <thetext>Comment on attachment 126079
Patch

Corrected ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552126</commentid>
    <comment_count>55</comment_count>
      <attachid>126079</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 08:02:47 -0800</bug_when>
    <thetext>Comment on attachment 126079
Patch

Clearing flags on attachment: 126079

Committed r107090: &lt;http://trac.webkit.org/changeset/107090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552127</commentid>
    <comment_count>56</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 08:02:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552169</commentid>
    <comment_count>57</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-08 08:57:43 -0800</bug_when>
    <thetext>Reopen, because the bug is still valid. You broke 19 tests now:
http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20WebKit2/r107090%20%2819898%29/results.html

Please run layout tests before commiting and _watch_ the bots after landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552178</commentid>
    <comment_count>58</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-08 09:01:33 -0800</bug_when>
    <thetext>I think it&apos;s time to rollout the original patch and the wrong fix.
And then you can reland the whole fixed patch when it is finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552227</commentid>
    <comment_count>59</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-08 09:57:55 -0800</bug_when>
    <thetext>All patches related to this bug were rolled out - http://trac.webkit.org/changeset/107101 (original patch, buildfixes, gardening, fix, ...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643418</commentid>
    <comment_count>60</comment_count>
      <attachid>146254</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-07 04:46:15 -0700</bug_when>
    <thetext>Created attachment 146254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643429</commentid>
    <comment_count>61</comment_count>
      <attachid>146254</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-07 04:56:41 -0700</bug_when>
    <thetext>Comment on attachment 146254
Patch

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

&gt; Source/WebCore/platform/qt/FileSystemQt.cpp:222
&gt; +#else
&gt; +    struct statvfs volumeInfo;
&gt; +    if (statvfs(path, &amp;volumeInfo))
&gt; +        return 0;
&gt; +
&gt; +    return static_cast&lt;uint64_t&gt;(volumeInfo.f_bavail) * static_cast&lt;uint64_t&gt;(volumeInfo.f_frsize);
&gt; +#endif

IS this ensure to work on all non windows platforms (that we support)? :)

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:104
&gt; +    // The following variables are initialised to 0 because WebProcess::calculateCacheSizes might not
&gt; +    // set them in some rare cases.

Bug number for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643436</commentid>
    <comment_count>62</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-07 05:08:17 -0700</bug_when>
    <thetext>(In reply to comment #61)
&gt; (From update of attachment 146254 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146254&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/qt/FileSystemQt.cpp:222
&gt; &gt; +#else
&gt; &gt; +    struct statvfs volumeInfo;
&gt; &gt; +    if (statvfs(path, &amp;volumeInfo))
&gt; &gt; +        return 0;
&gt; &gt; +
&gt; &gt; +    return static_cast&lt;uint64_t&gt;(volumeInfo.f_bavail) * static_cast&lt;uint64_t&gt;(volumeInfo.f_frsize);
&gt; &gt; +#endif
&gt; 
&gt; IS this ensure to work on all non windows platforms (that we support)? :)
At least on all the POSIX systems, it should be supported.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:104
&gt; &gt; +    // The following variables are initialised to 0 because WebProcess::calculateCacheSizes might not
&gt; &gt; +    // set them in some rare cases.
&gt; 
&gt; Bug number for that?

Not sure if this is a bug, actually. All the other ports simply initialize to 0 and some code paths in calculateCacheSizes do not reset the values. It might be possible that someone would like to override this and still have a non-zero default if calculateCacheSizes does not set any value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644518</commentid>
    <comment_count>63</comment_count>
      <attachid>146254</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-08 02:37:06 -0700</bug_when>
    <thetext>Comment on attachment 146254
Patch

I have tested this on two different machines (one using sedkit, one using resworb environment) and gotten the same results with or without the patch apart from one test that got flaky with the patch (http/tests/xmlhttprequest/zero-length-response.html). 

Do you think we could commit this and watch the bots afterwards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645853</commentid>
    <comment_count>64</comment_count>
      <attachid>146254</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 02:17:25 -0700</bug_when>
    <thetext>Comment on attachment 146254
Patch

Clearing flags on attachment: 146254

Committed r119965: &lt;http://trac.webkit.org/changeset/119965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645855</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 02:17:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645858</commentid>
    <comment_count>66</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 02:25:52 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 88771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645870</commentid>
    <comment_count>67</comment_count>
      <attachid>146819</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-11 02:41:14 -0700</bug_when>
    <thetext>Created attachment 146819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645874</commentid>
    <comment_count>68</comment_count>
      <attachid>146819</attachid>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-11 03:09:16 -0700</bug_when>
    <thetext>Comment on attachment 146819
Patch

Build fix landed manually by Simon Hausmann in r119968.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645875</commentid>
    <comment_count>69</comment_count>
    <who name="Michael Brüning">michael.bruning</who>
    <bug_when>2012-06-11 03:10:08 -0700</bug_when>
    <thetext>All reviewed patches and the build fix have been landed, so closing the bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124551</attachid>
            <date>2012-01-30 07:55:05 -0800</date>
            <delta_ts>2012-01-30 08:02:48 -0800</delta_ts>
            <desc>First patch.</desc>
            <filename>0001-Qt-WK2-Compute-and-set-cache-capacities-using-the-cu.patch</filename>
            <type>text/plain</type>
            <size>10961</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">RnJvbSA5M2E5YTBmZTE0ZjM4YWUzMzdjYjIwMTE4ZDhiYTg5MjFlMThmNzY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWljaGFlbD0yMEJyPUMzPUJDbmluZz89IDxt
aWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgpEYXRlOiBNb24sIDMwIEphbiAyMDEyIDE2OjQ3OjUy
ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBj
YXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50CiBDYWNoZU1vZGVsCgpodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0
aGUgaW1wbGVtZW50YXRpb24Kb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktpdCAyIHBvcnQsIHRo
ZSBpbXBsZW1lbnRhdGlvbiBmb3IgUXRXZWJLaXQgb24gV2luZG93cwphbmQgdGhlIGh5YnJpZCBt
ZW1vcnkgYW5kIGRpc2sgY2FjaGUuCgoqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToK
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgooV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyk6CiogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CihXZWJLaXQ6OmRlZmF1bHRE
aXNrQ2FjaGVEaXJlY3RvcnkpOiBBZGRlZC4KKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyk6CiogV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwOgoo
V2ViS2l0OjptZW1vcnlTaXplKTogQWRkZWQuCihXZWJLaXQ6OmZyZWVTcGFjZUZvclZvbHVtZSk6
IEFkZGVkLgooV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOiBJbXBs
ZW1lbnRlZC4KKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6Ci0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDI1ICsrKysrKwogLi4uL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCAgICAgICAgfCAgICAzICsKIC4uLi9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
Q29udGV4dFF0LmNwcCAgICAgICB8ICAgMTQgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1dlYlByb2Nlc3NRdC5jcHAgICAgICB8ICAgOTEgKysrKysrKysrKysrKysrKysrKy0KIDUg
ZmlsZXMgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDU2ODQwMGQuLjg2YmUwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAx
Mi0wMS0zMCAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisK
KyAgICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5n
IHRoZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0
IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgdGhlIEFQSSBmb3IgdGhl
IFF0IFdlYktpdCAyIHBvcnQsIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgUXRXZWJLaXQgb24gV2lu
ZG93cworICAgICAgICBhbmQgdGhlIGh5YnJpZCBtZW1vcnkgYW5kIGRpc2sgY2FjaGUuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6bWVtb3J5U2l6ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpmcmVl
U3BhY2VGb3JWb2x1bWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEyLTAxLTMwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLiBGaXggbWFrZSBkaXN0Y2hlY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggOGUxZDE2NC4uN2M3OTk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtOTgsNiArOTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNv
bgogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgZW5jb2Rlci0+ZW5jb2RlKGNvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkpOworICAgIGVuY29kZXItPmVuY29kZShkaXNrQ2FjaGVEaXJlY3Rvcnkp
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE5NSw2ICsxOTYsOCBA
QCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFdlYgogI2lmIFBMQVRGT1JNKFFUKQogICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmRpc2tD
YWNoZURpcmVjdG9yeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzYTM3NjRkLi5jNzNkYjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyB7CiAjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQogI2lmIFBMQVRGT1JNKFFUKQogICAgIFN0cmlu
ZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5OworICAgIFN0cmluZyBkaXNrQ2FjaGVEaXJlY3Rvcnk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAppbmRleCBiMGQ1YWM0Li45NGRkOTAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcApAQCAtNTcsNiAr
NTcsMTggQEAgc3RhdGljIFFTdHJpbmcgZGVmYXVsdERhdGFMb2NhdGlvbigpCiAgICAgcmV0dXJu
IHNfZGF0YUxvY2F0aW9uOwogfQogCitzdGF0aWMgUVN0cmluZyBkZWZhdWx0RGlza0NhY2hlRGly
ZWN0b3J5KCkKK3sKKyAgICBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9y
eTsKKworICAgIGlmICghc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bERp
c2tDYWNoZURpcmVjdG9yeSA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkZWZh
dWx0RGF0YUxvY2F0aW9uKCksICJjYWNoZSIpOworICAgIFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rv
cmllcyhzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIHNfZGVmYXVsRGlz
a0NhY2hlRGlyZWN0b3J5OworfQorCiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bHREYXRhYmFzZURp
cmVjdG9yeTsKIHN0YXRpYyBRU3RyaW5nIHNfZGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeTsK
IApAQCAtNjksNiArODEsOCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogewogICAgIHFSZWdp
c3Rlck1ldGFUeXBlPFFQcm9jZXNzOjpFeGl0U3RhdHVzPigiUVByb2Nlc3M6OkV4aXRTdGF0dXMi
KTsKICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSBkZWZhdWx0RGF0YUxv
Y2F0aW9uKCk7CisgICAgcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkgPSBkZWZhdWx0RGlz
a0NhY2hlRGlyZWN0b3J5KCk7CisKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgc3RhdGlj
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRpb24gPSBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQ6OmNyZWF0ZSh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpKSk7CiAgICAgV0tH
ZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcih0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94
eSgpKSwgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcihsb2NhdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCmluZGV4IGEyYmVh
YzEuLjE0YTE0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2Vi
UHJvY2Vzc1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTAgKzM2LDE2IEBACiAjaW5jbHVkZSA8UUNvcmVB
cHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5jbHVkZSA8
UU5ldHdvcmtDb29raWVKYXI+CisjaW5jbHVkZSA8UU5ldHdvcmtEaXNrQ2FjaGU+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db29raWVKYXJRdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oPgogCisjaWYgIU9TKFdJTkRPV1MpCisjaW5jbHVkZSA8c3lz
L3N0YXR2ZnMuaD4KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChRX09TX01BQ1gpCiAjaW5jbHVkZSA8
ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgpAQCAtNDcsMTIgKzU0LDgyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIGNvbnN0IGlu
dCBEZWZhdWx0UGFnZUNhY2hlQ2FwYWNpdHkgPSAyMDsKK3N0YXRpYyBxaW50NjQgbWVtb3J5U2l6
ZSgpCit7CisgICAgc3RhdGljIHFpbnQ2NCBwaHlzaWNhbE1lbW9yeVNpemUgPSAwOworICAgIGlm
IChwaHlzaWNhbE1lbW9yeVNpemUpCisgICAgICAgIHJldHVybiBwaHlzaWNhbE1lbW9yeVNpemU7
CisKKyNpZiBkZWZpbmVkKFFfT1NfTUFDWCkKKyAgICAvLyBNb3N0IG9mIHRoaXMgcGFydCB3YXMg
Y29waWVkIGZyb20gdGhlIE1hYyBwb3J0IChzZWUgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01hYy5tbSBmb3IgZGV0YWlscykuCisgICAgc3RhdGljIGhvc3RfYmFzaWNf
aW5mb19kYXRhX3QgaG9zdEluZm87CisKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2U7
CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXigpIHsKKyAgICAgICAgbWFjaF9wb3J0X3QgaG9z
dCA9IG1hY2hfaG9zdF9zZWxmKCk7CisgICAgICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgY291
bnQgPSBIT1NUX0JBU0lDX0lORk9fQ09VTlQ7CisgICAgICAgIGtlcm5fcmV0dXJuX3QgciA9IGhv
c3RfaW5mbyhob3N0LCBIT1NUX0JBU0lDX0lORk8sIChob3N0X2luZm9fdCkmaG9zdEluZm8sICZj
b3VudCk7CisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGhv
c3QpOworCisgICAgICAgIGlmIChyICE9IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgICAgIExPR19F
UlJPUigiJXMgOiBob3N0X2luZm8oJWQpIDogJXMuXG4iLCBfX0ZVTkNUSU9OX18sIHIsIG1hY2hf
ZXJyb3Jfc3RyaW5nKHIpKTsKKyAgICB9KTsKKyAgICBwaHlzaWNhbE1lbW9yeVNpemUgPSBzdGF0
aWNfY2FzdDxxaW50NjQ+KGhvc3RJbmZvLm1heF9tZW0pOworI2VsaWYgZGVmaW5lZChRX09TX0xJ
TlVYKSB8fCBkZWZpbmVkIChRX09TX1VOSVgpCisgICAgbG9uZyBwYWdlU2l6ZSA9IHN5c2NvbmYo
X1NDX1BBR0VTSVpFKTsKKyAgICBsb25nIG51bWJlck9mUGFnZXMgPSBzeXNjb25mKF9TQ19QSFlT
X1BBR0VTKTsKKworICAgIGlmIChwYWdlU2l6ZSA+IDAgJiYgbnVtYmVyT2ZQYWdlcyA+IDApCisg
ICAgICAgIHBoeXNpY2FsTWVtb3J5U2l6ZSA9IHN0YXRpY19jYXN0PHFpbnQ2ND4ocGFnZVNpemUp
ICogc3RhdGljX2Nhc3Q8cWludDY0PihudW1iZXJPZlBhZ2VzKTsKKyNlbmRpZgorICAgIC8vRklY
TUU6IEZpbmQgYSBjb3JyZWN0IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZm9yIFF0V2ViS2l0IG9u
IFdpbmRvd3MuCisgICAgcmV0dXJuIHBoeXNpY2FsTWVtb3J5U2l6ZTsKK30KIAotdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKK3N0YXRpYyBxaW50NjQg
ZnJlZVNwYWNlRm9yVm9sdW1lKGNvbnN0IFFTdHJpbmcmIHBhdGgpCiB7Ci0gICAgLy8gRklYTUU6
IHNlZSBidWcgNzM5MTgKLSAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBhZ2VD
YWNoZUNhcGFjaXR5KTsKKyAgICBxaW50NjQgZnJlZVNwYWNlID0gMDsKKworI2lmICFPUyhXSU5E
T1dTKQorICAgIHN0cnVjdCBzdGF0dmZzIHZvbHVtZUluZm87CisgICAgaWYgKHN0YXR2ZnMocGF0
aC50b0FzY2lpKCkuZGF0YSgpLCAmdm9sdW1lSW5mbykgIT0gMCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBmcmVlU3BhY2UgPSBzdGF0aWNfY2FzdDxxaW50NjQ+KHZvbHVtZUluZm8uZl9iYXZh
aWwpICogc3RhdGljX2Nhc3Q8cWludDY0Pih2b2x1bWVJbmZvLmZfYnNpemUpOworI2VuZGlmCisg
ICAgLy9GSVhNRTogRmluZCBhIGNvcnJlY3QgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmb3IgUXRX
ZWJLaXQgb24gV2luZG93cy4KKyAgICByZXR1cm4gZnJlZVNwYWNlOworfQorCit2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCit7Cisg
ICAgUU5ldHdvcmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9IHFvYmplY3RfY2FzdDxRTmV0d29ya0Rp
c2tDYWNoZSo+KG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPmNhY2hlKCkpOworICAgIEFTU0VSVChk
aXNrQ2FjaGUpOworCisgICAgLy8gVGhlIE1hYyBwb3J0IG9mIFdlYktpdDIgdXNlcyBhIGZ1ZGdl
IGZhY3RvciBvZiAxMDAwIGhlcmUgdG8gYWNjb3VudCBmb3IgbWlzYWxpZ25tZW50LCBob3d2ZXIs
CisgICAgLy8gdGhhdCB0ZW5kcyB0byBvdmVyZXN0aW1hdGUgdGhlIG1lbW9yeSBxdWl0ZSBhIGJp
dCAoMSBieXRlIG1pc2FsaWdubWVudCB+IDQ4IE1pQiBtaXNlc3RpbWF0aW9uKS4KKyAgICAvLyBX
ZSB1c2UgMTAyNCAqIDEwMjMgZm9yIG5vdyB0byBrZWVwIHRoZSBlc3RpbWF0aW9uIGVycm9yIGRv
d24gdG8gKy8tIDEgTWlCLgorICAgIHFpbnQ2NCBmcmVlTWVtb3J5ID0gbWVtb3J5U2l6ZSgpIC8g
MTAyNCAvIDEwMjM7CisgICAgcWludDY0IGZyZWVWb2x1bWVTcGFjZSA9IGZyZWVTcGFjZUZvclZv
bHVtZShkaXNrQ2FjaGUtPmNhY2hlRGlyZWN0b3J5KCkpIC8gMTAyNCAvIDEwMjM7CisKKyAgICB1
bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGNhY2hlTWluRGVh
ZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7Cisg
ICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOworICAgIHVuc2ln
bmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlTWVt
b3J5Q2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkg
PSAwOworCisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBmcmVlTWVtb3J5LCBm
cmVlVm9sdW1lU3BhY2UsCisgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFk
Q2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsLAorICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSwgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0
eSwgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOworCisgICAgbWVtb3J5Q2FjaGUoKS0+c2V0Q2FwYWNp
dGllcyhjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90
YWxDYXBhY2l0eSk7CisgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRp
b25JbnRlcnZhbChkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKKyAgICBwYWdlQ2Fj
aGUoKS0+c2V0Q2FwYWNpdHkocGFnZUNhY2hlQ2FwYWNpdHkpOworCisgICAgLy9GSVhNRTogSW1w
bGVtZW50IGh5YnJpZCBpbi1tZW1vcnktIGFuZCBkaXNrLWNhY2hpbmcgYXMgZS5nLiB0aGUgTWFj
IHBvcnQgZG9lcy4KKyAgICBkaXNrQ2FjaGUtPnNldE1heGltdW1DYWNoZVNpemUoc3RhdGljX2Nh
c3Q8cWludDY0Pih1cmxDYWNoZURpc2tDYXBhY2l0eSkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCkBAIC02
OSw2ICsxNDYsMTIgQEAgc3RhdGljIHZvaWQgcGFyZW50UHJvY2Vzc0RpZWRDYWxsYmFjayh2b2lk
KikKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyID0gbmV3
IFF0TmV0d29ya0FjY2Vzc01hbmFnZXIodGhpcyk7CisKKyAgICBBU1NFUlQoIXBhcmFtZXRlcnMu
ZGlza0NhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJl
Y3RvcnkuaXNOdWxsKCkpOworICAgIFFOZXR3b3JrRGlza0NhY2hlKiBkaXNrQ2FjaGUgPSBuZXcg
UU5ldHdvcmtEaXNrQ2FjaGUoKTsKKyAgICBkaXNrQ2FjaGUtPnNldENhY2hlRGlyZWN0b3J5KHBh
cmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5KTsKKyAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2Vy
LT5zZXRDYWNoZShkaXNrQ2FjaGUpOworCiAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmNvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnkuaXNOdWxsKCkpOwogICAgIFdlYkNvcmU6OlNoYXJlZENvb2tpZUphclF0KiBqYXIgPSBX
ZWJDb3JlOjpTaGFyZWRDb29raWVKYXJRdDo6Y3JlYXRlKHBhcmFtZXRlcnMuY29va2llU3RvcmFn
ZURpcmVjdG9yeSk7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+c2V0Q29va2llSmFyKGph
cik7Ci0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124553</attachid>
            <date>2012-01-30 08:04:52 -0800</date>
            <delta_ts>2012-01-31 03:25:51 -0800</delta_ts>
            <desc>First patch (updated)</desc>
            <filename>0001-Qt-WK2-Compute-and-set-cache-capacities-using-the-cu.patch</filename>
            <type>text/plain</type>
            <size>10959</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">RnJvbSAxOTIwYTFlNjJkYmRiNDcxYTk4ODkwN2M2MDc2YmZjZjJmMmRiNDAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWljaGFlbD0yMEJyPUMzPUJDbmluZz89IDxt
aWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgpEYXRlOiBNb24sIDMwIEphbiAyMDEyIDE2OjQ3OjUy
ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBj
YXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50CiBDYWNoZU1vZGVsCgpodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0
aGUgaW1wbGVtZW50YXRpb24Kb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktpdCAyIHBvcnQsIHRo
ZSBpbXBsZW1lbnRhdGlvbiBmb3IgUXRXZWJLaXQgb24gV2luZG93cwphbmQgdGhlIGh5YnJpZCBt
ZW1vcnkgYW5kIGRpc2sgY2FjaGUuCgoqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToK
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgooV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyk6CiogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CihXZWJLaXQ6OmRlZmF1bHRE
aXNrQ2FjaGVEaXJlY3RvcnkpOiBBZGRlZC4KKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyk6CiogV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwOgoo
V2ViS2l0OjptZW1vcnlTaXplKTogQWRkZWQuCihXZWJLaXQ6OmZyZWVTcGFjZUZvclZvbHVtZSk6
IEFkZGVkLgooV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOiBJbXBs
ZW1lbnRlZC4KKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6Ci0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDI1ICsrKysrKwogLi4uL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCAgICAgICAgfCAgICAzICsKIC4uLi9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
Q29udGV4dFF0LmNwcCAgICAgICB8ICAgMTQgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1dlYlByb2Nlc3NRdC5jcHAgICAgICB8ICAgOTEgKysrKysrKysrKysrKysrKysrKy0KIDUg
ZmlsZXMgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDU2ODQwMGQuLjg2YmUwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAx
Mi0wMS0zMCAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisK
KyAgICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5n
IHRoZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0
IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgdGhlIEFQSSBmb3IgdGhl
IFF0IFdlYktpdCAyIHBvcnQsIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgUXRXZWJLaXQgb24gV2lu
ZG93cworICAgICAgICBhbmQgdGhlIGh5YnJpZCBtZW1vcnkgYW5kIGRpc2sgY2FjaGUuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6bWVtb3J5U2l6ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpmcmVl
U3BhY2VGb3JWb2x1bWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKTogSW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEyLTAxLTMwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLiBGaXggbWFrZSBkaXN0Y2hlY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggOGUxZDE2NC4uN2M3OTk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtOTgsNiArOTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNv
bgogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgZW5jb2Rlci0+ZW5jb2RlKGNvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkpOworICAgIGVuY29kZXItPmVuY29kZShkaXNrQ2FjaGVEaXJlY3Rvcnkp
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE5NSw2ICsxOTYsOCBA
QCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFdlYgogI2lmIFBMQVRGT1JNKFFUKQogICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmRpc2tD
YWNoZURpcmVjdG9yeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzYTM3NjRkLi5jNzNkYjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyB7CiAjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQogI2lmIFBMQVRGT1JNKFFUKQogICAgIFN0cmlu
ZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5OworICAgIFN0cmluZyBkaXNrQ2FjaGVEaXJlY3Rvcnk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAppbmRleCBiMGQ1YWM0Li45NGRkOTAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcApAQCAtNTcsNiAr
NTcsMTggQEAgc3RhdGljIFFTdHJpbmcgZGVmYXVsdERhdGFMb2NhdGlvbigpCiAgICAgcmV0dXJu
IHNfZGF0YUxvY2F0aW9uOwogfQogCitzdGF0aWMgUVN0cmluZyBkZWZhdWx0RGlza0NhY2hlRGly
ZWN0b3J5KCkKK3sKKyAgICBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9y
eTsKKworICAgIGlmICghc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bERp
c2tDYWNoZURpcmVjdG9yeSA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkZWZh
dWx0RGF0YUxvY2F0aW9uKCksICJjYWNoZSIpOworICAgIFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rv
cmllcyhzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIHNfZGVmYXVsRGlz
a0NhY2hlRGlyZWN0b3J5OworfQorCiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bHREYXRhYmFzZURp
cmVjdG9yeTsKIHN0YXRpYyBRU3RyaW5nIHNfZGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeTsK
IApAQCAtNjksNiArODEsOCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogewogICAgIHFSZWdp
c3Rlck1ldGFUeXBlPFFQcm9jZXNzOjpFeGl0U3RhdHVzPigiUVByb2Nlc3M6OkV4aXRTdGF0dXMi
KTsKICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSBkZWZhdWx0RGF0YUxv
Y2F0aW9uKCk7CisgICAgcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkgPSBkZWZhdWx0RGlz
a0NhY2hlRGlyZWN0b3J5KCk7CisKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgc3RhdGlj
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRpb24gPSBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQ6OmNyZWF0ZSh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpKSk7CiAgICAgV0tH
ZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcih0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94
eSgpKSwgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcihsb2NhdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCmluZGV4IGEyYmVh
YzEuLjUyNzFhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2Vi
UHJvY2Vzc1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTAgKzM2LDE2IEBACiAjaW5jbHVkZSA8UUNvcmVB
cHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5jbHVkZSA8
UU5ldHdvcmtDb29raWVKYXI+CisjaW5jbHVkZSA8UU5ldHdvcmtEaXNrQ2FjaGU+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db29raWVKYXJRdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oPgogCisjaWYgIU9TKFdJTkRPV1MpCisjaW5jbHVkZSA8c3lz
L3N0YXR2ZnMuaD4KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChRX09TX01BQ1gpCiAjaW5jbHVkZSA8
ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgpAQCAtNDcsMTIgKzU0LDgyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIGNvbnN0IGlu
dCBEZWZhdWx0UGFnZUNhY2hlQ2FwYWNpdHkgPSAyMDsKK3N0YXRpYyBxaW50NjQgbWVtb3J5U2l6
ZSgpCit7CisgICAgc3RhdGljIHFpbnQ2NCBwaHlzaWNhbE1lbW9yeVNpemUgPSAwOworICAgIGlm
IChwaHlzaWNhbE1lbW9yeVNpemUpCisgICAgICAgIHJldHVybiBwaHlzaWNhbE1lbW9yeVNpemU7
CisKKyNpZiBkZWZpbmVkKFFfT1NfTUFDWCkKKyAgICAvLyBNb3N0IG9mIHRoaXMgcGFydCB3YXMg
Y29waWVkIGZyb20gdGhlIE1hYyBwb3J0IChzZWUgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01hYy5tbSBmb3IgZGV0YWlscykuCisgICAgc3RhdGljIGhvc3RfYmFzaWNf
aW5mb19kYXRhX3QgaG9zdEluZm87CisKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2U7
CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXigpIHsKKyAgICAgICAgbWFjaF9wb3J0X3QgaG9z
dCA9IG1hY2hfaG9zdF9zZWxmKCk7CisgICAgICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgY291
bnQgPSBIT1NUX0JBU0lDX0lORk9fQ09VTlQ7CisgICAgICAgIGtlcm5fcmV0dXJuX3QgciA9IGhv
c3RfaW5mbyhob3N0LCBIT1NUX0JBU0lDX0lORk8sIChob3N0X2luZm9fdCkmaG9zdEluZm8sICZj
b3VudCk7CisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGhv
c3QpOworCisgICAgICAgIGlmIChyICE9IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgICAgIExPR19F
UlJPUigiJXMgOiBob3N0X2luZm8oJWQpIDogJXMuXG4iLCBfX0ZVTkNUSU9OX18sIHIsIG1hY2hf
ZXJyb3Jfc3RyaW5nKHIpKTsKKyAgICB9KTsKKyAgICBwaHlzaWNhbE1lbW9yeVNpemUgPSBzdGF0
aWNfY2FzdDxxaW50NjQ+KGhvc3RJbmZvLm1heF9tZW0pOworI2VsaWYgZGVmaW5lZChRX09TX0xJ
TlVYKSB8fCBkZWZpbmVkIChRX09TX1VOSVgpCisgICAgbG9uZyBwYWdlU2l6ZSA9IHN5c2NvbmYo
X1NDX1BBR0VTSVpFKTsKKyAgICBsb25nIG51bWJlck9mUGFnZXMgPSBzeXNjb25mKF9TQ19QSFlT
X1BBR0VTKTsKKworICAgIGlmIChwYWdlU2l6ZSA+IDAgJiYgbnVtYmVyT2ZQYWdlcyA+IDApCisg
ICAgICAgIHBoeXNpY2FsTWVtb3J5U2l6ZSA9IHN0YXRpY19jYXN0PHFpbnQ2ND4ocGFnZVNpemUp
ICogc3RhdGljX2Nhc3Q8cWludDY0PihudW1iZXJPZlBhZ2VzKTsKKyNlbmRpZgorICAgIC8vIEZJ
WE1FOiBGaW5kIGEgY29ycmVjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZvciBRdFdlYktpdCBv
biBXaW5kb3dzLgorICAgIHJldHVybiBwaHlzaWNhbE1lbW9yeVNpemU7Cit9CiAKLXZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCitzdGF0aWMgcWludDY0
IGZyZWVTcGFjZUZvclZvbHVtZShjb25zdCBRU3RyaW5nJiBwYXRoKQogewotICAgIC8vIEZJWE1F
OiBzZWUgYnVnIDczOTE4Ci0gICAgcGFnZUNhY2hlKCktPnNldENhcGFjaXR5KERlZmF1bHRQYWdl
Q2FjaGVDYXBhY2l0eSk7CisgICAgcWludDY0IGZyZWVTcGFjZSA9IDA7CisKKyNpZiAhT1MoV0lO
RE9XUykKKyAgICBzdHJ1Y3Qgc3RhdHZmcyB2b2x1bWVJbmZvOworICAgIGlmIChzdGF0dmZzKHBh
dGgudG9Bc2NpaSgpLmRhdGEoKSwgJnZvbHVtZUluZm8pKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIGZyZWVTcGFjZSA9IHN0YXRpY19jYXN0PHFpbnQ2ND4odm9sdW1lSW5mby5mX2JhdmFpbCkg
KiBzdGF0aWNfY2FzdDxxaW50NjQ+KHZvbHVtZUluZm8uZl9ic2l6ZSk7CisjZW5kaWYKKyAgICAv
LyBGSVhNRTogRmluZCBhIGNvcnJlY3QgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmb3IgUXRXZWJL
aXQgb24gV2luZG93cy4KKyAgICByZXR1cm4gZnJlZVNwYWNlOworfQorCit2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCit7CisgICAg
UU5ldHdvcmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9IHFvYmplY3RfY2FzdDxRTmV0d29ya0Rpc2tD
YWNoZSo+KG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPmNhY2hlKCkpOworICAgIEFTU0VSVChkaXNr
Q2FjaGUpOworCisgICAgLy8gVGhlIE1hYyBwb3J0IG9mIFdlYktpdDIgdXNlcyBhIGZ1ZGdlIGZh
Y3RvciBvZiAxMDAwIGhlcmUgdG8gYWNjb3VudCBmb3IgbWlzYWxpZ25tZW50LCBob3d2ZXIsCisg
ICAgLy8gdGhhdCB0ZW5kcyB0byBvdmVyZXN0aW1hdGUgdGhlIG1lbW9yeSBxdWl0ZSBhIGJpdCAo
MSBieXRlIG1pc2FsaWdubWVudCB+IDQ4IE1pQiBtaXNlc3RpbWF0aW9uKS4KKyAgICAvLyBXZSB1
c2UgMTAyNCAqIDEwMjMgZm9yIG5vdyB0byBrZWVwIHRoZSBlc3RpbWF0aW9uIGVycm9yIGRvd24g
dG8gKy8tIDEgTWlCLgorICAgIHFpbnQ2NCBmcmVlTWVtb3J5ID0gbWVtb3J5U2l6ZSgpIC8gMTAy
NCAvIDEwMjM7CisgICAgcWludDY0IGZyZWVWb2x1bWVTcGFjZSA9IGZyZWVTcGFjZUZvclZvbHVt
ZShkaXNrQ2FjaGUtPmNhY2hlRGlyZWN0b3J5KCkpIC8gMTAyNCAvIDEwMjM7CisKKyAgICB1bnNp
Z25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGNhY2hlTWluRGVhZENh
cGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7CisgICAg
ZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOworICAgIHVuc2lnbmVk
IHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlTWVtb3J5
Q2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSAw
OworCisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBmcmVlTWVtb3J5LCBmcmVl
Vm9sdW1lU3BhY2UsCisgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2Fw
YWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsLAorICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSwgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSwg
dXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOworCisgICAgbWVtb3J5Q2FjaGUoKS0+c2V0Q2FwYWNpdGll
cyhjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90YWxD
YXBhY2l0eSk7CisgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25J
bnRlcnZhbChkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKKyAgICBwYWdlQ2FjaGUo
KS0+c2V0Q2FwYWNpdHkocGFnZUNhY2hlQ2FwYWNpdHkpOworCisgICAgLy8gRklYTUU6IEltcGxl
bWVudCBoeWJyaWQgaW4tbWVtb3J5LSBhbmQgZGlzay1jYWNoaW5nIGFzIGUuZy4gdGhlIE1hYyBw
b3J0IGRvZXMuCisgICAgZGlza0NhY2hlLT5zZXRNYXhpbXVtQ2FjaGVTaXplKHN0YXRpY19jYXN0
PHFpbnQ2ND4odXJsQ2FjaGVEaXNrQ2FwYWNpdHkpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyKQpAQCAtNjks
NiArMTQ2LDEyIEBAIHN0YXRpYyB2b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2FsbGJhY2sodm9pZCop
CiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFuYWdlciA9IG5ldyBR
dE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKHRoaXMpOworCisgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmRp
c2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYgIXBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0
b3J5LmlzTnVsbCgpKTsKKyAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gbmV3IFFO
ZXR3b3JrRGlza0NhY2hlKCk7CisgICAgZGlza0NhY2hlLT5zZXRDYWNoZURpcmVjdG9yeShwYXJh
bWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgbV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+
c2V0Q2FjaGUoZGlza0NhY2hlKTsKKwogICAgIEFTU0VSVCghcGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0
b3J5LmlzTnVsbCgpKTsKICAgICBXZWJDb3JlOjpTaGFyZWRDb29raWVKYXJRdCogamFyID0gV2Vi
Q29yZTo6U2hhcmVkQ29va2llSmFyUXQ6OmNyZWF0ZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkpOwogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPnNldENvb2tpZUphcihqYXIp
OwotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124699</attachid>
            <date>2012-01-31 03:25:51 -0800</date>
            <delta_ts>2012-02-02 08:58:44 -0800</delta_ts>
            <desc>First patch (updated with suggestions).</desc>
            <filename>0001-Qt-WK2-Compute-and-set-cache-capacities-using-the-cu.patch</filename>
            <type>text/plain</type>
            <size>13771</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">RnJvbSA1NDI0M2E2ODM3ZTE3MzI1MmFiZmQwZWQxMWVmM2YzYjE3ZTJmNzA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWljaGFlbD0yMEJyPUMzPUJDbmluZz89IDxt
aWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgpEYXRlOiBUdWUsIDMxIEphbiAyMDEyIDEyOjE5OjAy
ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBj
YXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50CiBDYWNoZU1vZGVsCgpodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0
aGUgaW1wbGVtZW50YXRpb24Kb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktpdCAyIHBvcnQsIHRo
ZSBpbXBsZW1lbnRhdGlvbiBmb3IgUXRXZWJLaXQgb24gV2luZAphbmQgdGhlIGh5YnJpZCBtZW1v
cnkgYW5kIGRpc2sgY2FjaGUuCgoqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKFdl
YktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOiBBZGRlZCBwYXJhbWV0ZXIgZGlza0NhY2hlRGly
ZWN0b3J5LgooV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CiogVUlQcm9jZXNzL3F0L1dl
YkNvbnRleHRRdC5jcHA6CihXZWJLaXQ6OmRlZmF1bHREaXNrQ2FjaGVEaXJlY3RvcnkpOiBBZGRl
ZC4KKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6Ciog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vzczo6bWVtb3J5U2l6
ZSk6IE1vdmVkIGZyb20gbWFjL1dlYlByb2Nlc3NNYWMubW0KKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKFdlYktpdDo6V2ViUHJvY2Vzczo6bWVtb3J5U2l6ZSk6IE1vdmVkIGZyb20gbWFjL1dl
YlByb2Nlc3NNYWMubW0KKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tOiBNb3ZlZCBt
ZW1vcnlTaXplIGZyb20gaGVyZS4KKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHA6CihX
ZWJLaXQ6OnBoeXNpY2FsTWVtb3J5U2l6ZSk6IEFkZGVkLgooV2ViS2l0OjpmcmVlU3BhY2VGb3JW
b2x1bWUpOiBBZGRlZC4KKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVs
KTogSW1wbGVtZW50ZWQuCihXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyNiArKysrKysrCiAuLi4vU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwICAgICAgICB8ICAgIDMgKwogLi4uL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJDb250ZXh0UXQuY3BwICAgICAgIHwgICAxNCArKysrCiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwICAgICAgICAgICB8ICAgMjQgKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCAgICAgICAgICAgICB8ICAgIDQgKwogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSAgICAgfCAgIDE4IC0t
LS0tCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAgICAgICB8
ICAgODAgKysrKysrKysrKysrKysrKysrKy0KIDggZmlsZXMgY2hhbmdlZCwgMTQ4IGluc2VydGlv
bnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1Njg0MDBkLi43MjA4YzFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDEtMzEgIE1pY2hhZWwgQnLDvG5pbmcg
IDxtaWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBDb21wdXRl
IGFuZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNoZU1vZGVsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6IEFkZGVkIHBhcmFtZXRlciBkaXNrQ2FjaGVEaXJlY3Rv
cnkuCisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdERp
c2tDYWNoZURpcmVjdG9yeSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjptZW1vcnlTaXplKTogTW92
ZWQgZnJvbSBtYWMvV2ViUHJvY2Vzc01hYy5tbQorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjptZW1vcnlTaXplKTogTW92ZWQg
ZnJvbSBtYWMvV2ViUHJvY2Vzc01hYy5tbQorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlBy
b2Nlc3NNYWMubW06IE1vdmVkIG1lbW9yeVNpemUgZnJvbSBoZXJlLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGh5c2ljYWxNZW1v
cnlTaXplKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmZyZWVTcGFjZUZvclZvbHVtZSk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwp
OiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMTItMDEtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBtYWtlIGRpc3Rj
aGVjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCA4ZTFkMTY0Li43Yzc5OTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC05OCw2ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUoY29va2llU3RvcmFnZURpcmVjdG9yeSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTk1LDYgKzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1l
dGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDNhMzc2NGQuLmM3M2RiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIxLDYgKzEyMSw3
IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZiAvLyBQTEFU
Rk9STShXSU4pCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJl
Y3Rvcnk7CisgICAgU3RyaW5nIGRpc2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0UXQuY3BwCmluZGV4IGIwZDVhYzQuLmM4ZWE4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1NywxOCBAQCBzdGF0aWMgUVN0
cmluZyBkZWZhdWx0RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4gc19kYXRhTG9jYXRpb247CiB9
CiAKK3N0YXRpYyBTdHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3Rh
dGljIFN0cmluZyBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKKworICAgIGlmICghc19kZWZh
dWxEaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gc19kZWZhdWxE
aXNrQ2FjaGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSA9IFdl
YkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkZWZhdWx0RGF0YUxvY2F0aW9uKCksICJj
YWNoZS8iKTsKKyAgICBXZWJDb3JlOjptYWtlQWxsRGlyZWN0b3JpZXMoc19kZWZhdWxEaXNrQ2Fj
aGVEaXJlY3RvcnkpOworICAgIHJldHVybiBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKK30K
Kwogc3RhdGljIFFTdHJpbmcgc19kZWZhdWx0RGF0YWJhc2VEaXJlY3Rvcnk7CiBzdGF0aWMgUVN0
cmluZyBzX2RlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAKQEAgLTY5LDYgKzgxLDggQEAg
dm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vz
czo6RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2NhdGlvbigpOworICAgIHBhcmFt
ZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5ID0gZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpOwor
CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUodG9BUEko
Z2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOwogICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0
UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSksIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IGQwOTgxMDcuLjhlODYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtODAsNiArODAsMTAgQEAKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1iZXIuaD4KIAorI2lmIFBM
QVRGT1JNKE1BQykgfHwgZGVmaW5lZCAoUV9PU19NQUNYKQorI2luY2x1ZGUgPGRpc3BhdGNoL2Rp
c3BhdGNoLmg+CisjZW5kaWYKKwogI2lmICFPUyhXSU5ET1dTKQogI2luY2x1ZGUgPHVuaXN0ZC5o
PgogI2VuZGlmCkBAIC0xMDE3LDQgKzEwMjEsMjQgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRUZXh0
Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVja2VyU3RhdGUmIHRleHRDaGVja2VyU3RhdGUpCiAg
ICAgfQogfQogCisjaWYgUExBVEZPUk0oTUFDKSB8fCBkZWZpbmVkKFFfT1NfTUFDWCkKK3VpbnQ2
NF90IFdlYlByb2Nlc3M6Om1lbW9yeVNpemUoKQoreworICAgIHN0YXRpYyBob3N0X2Jhc2ljX2lu
Zm9fZGF0YV90IGhvc3RJbmZvOworCisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwor
ICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4oKSB7CisgICAgICAgIG1hY2hfcG9ydF90IGhvc3Qg
PSBtYWNoX2hvc3Rfc2VsZigpOworICAgICAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGNvdW50
ID0gSE9TVF9CQVNJQ19JTkZPX0NPVU5UOworICAgICAgICBrZXJuX3JldHVybl90IHIgPSBob3N0
X2luZm8oaG9zdCwgSE9TVF9CQVNJQ19JTkZPLCAoaG9zdF9pbmZvX3QpJmhvc3RJbmZvLCAmY291
bnQpOworICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBob3N0
KTsKKworICAgICAgICBpZiAociAhPSBLRVJOX1NVQ0NFU1MpCisgICAgICAgICAgICBMT0dfRVJS
T1IoIiVzIDogaG9zdF9pbmZvKCVkKSA6ICVzLlxuIiwgX19GVU5DVElPTl9fLCByLCBtYWNoX2Vy
cm9yX3N0cmluZyhyKSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gaG9zdEluZm8ubWF4X21lbTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKaW5kZXggZWZhMmU2OC4uNzgxZmIyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTIwOSw2ICsyMDksMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNlY0tleWNoYWluSXRlbVJlc3BvbnNlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YSYpOwogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShNQUMpIHx8IGRlZmluZWQoUV9PU19NQUNYKQorICAgIHVpbnQ2NF90
IG1lbW9yeVNpemUoKTsKKyNlbmRpZgorCiAgICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAgdmlydHVh
bCBib29sIHNob3VsZFRlcm1pbmF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCmluZGV4
IDdkMGQ2OWMuLmY0NDNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc01hYy5tbQpAQCAtNjksMjQgKzY5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyB1aW50NjRfdCBtZW1vcnlTaXplKCkKLXsK
LSAgICBzdGF0aWMgaG9zdF9iYXNpY19pbmZvX2RhdGFfdCBob3N0SW5mbzsKLQotICAgIHN0YXRp
YyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeKCkgewot
ICAgICAgICBtYWNoX3BvcnRfdCBob3N0ID0gbWFjaF9ob3N0X3NlbGYoKTsKLSAgICAgICAgbWFj
aF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IEhPU1RfQkFTSUNfSU5GT19DT1VOVDsKLSAgICAg
ICAga2Vybl9yZXR1cm5fdCByID0gaG9zdF9pbmZvKGhvc3QsIEhPU1RfQkFTSUNfSU5GTywgKGhv
c3RfaW5mb190KSZob3N0SW5mbywgJmNvdW50KTsKLSAgICAgICAgbWFjaF9wb3J0X2RlYWxsb2Nh
dGUobWFjaF90YXNrX3NlbGYoKSwgaG9zdCk7Ci0KLSAgICAgICAgaWYgKHIgIT0gS0VSTl9TVUND
RVNTKQotICAgICAgICAgICAgTE9HX0VSUk9SKCIlcyA6IGhvc3RfaW5mbyglZCkgOiAlcy5cbiIs
IF9fRlVOQ1RJT05fXywgciwgbWFjaF9lcnJvcl9zdHJpbmcocikpOwotICAgIH0pOwotCi0gICAg
cmV0dXJuIGhvc3RJbmZvLm1heF9tZW07Ci19Ci0KIHN0YXRpYyB1aW50NjRfdCB2b2x1bWVGcmVl
U2l6ZShOU1N0cmluZyAqcGF0aCkKIHsKICAgICBOU0RpY3Rpb25hcnkgKmZpbGVTeXN0ZW1BdHRy
aWJ1dGVzRGljdGlvbmFyeSA9IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gYXR0cmli
dXRlc09mRmlsZVN5c3RlbUZvclBhdGg6cGF0aCBlcnJvcjpOVUxMXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRleCBhMmJlYWMxLi5iNTFlNzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM1LDEwICszNiwxNiBAQAogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+
CiAjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgogI2luY2x1ZGUgPFFOZXR3b3JrQ29v
a2llSmFyPgorI2luY2x1ZGUgPFFOZXR3b3JrRGlza0NhY2hlPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29va2llSmFyUXQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaD4KIAorI2lmICFPUyhXSU5ET1dTKQorI2luY2x1ZGUgPHN5cy9zdGF0dmZzLmg+
CisjZW5kaWYKKwogI2lmIGRlZmluZWQoUV9PU19NQUNYKQogI2luY2x1ZGUgPGRpc3BhdGNoL2Rp
c3BhdGNoLmg+CiAjZW5kaWYKQEAgLTQ3LDEyICs1NCw3MSBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25zdCBpbnQgRGVmYXVsdFBh
Z2VDYWNoZUNhcGFjaXR5ID0gMjA7CitzdGF0aWMgcWludDY0IHBoeXNpY2FsTWVtb3J5U2l6ZSgp
Cit7CisgICAgc3RhdGljIHFpbnQ2NCBzX3BoeXNpY2FsTWVtb3J5U2l6ZSA9IDA7CisKKyAgICBp
ZiAoIXNfcGh5c2ljYWxNZW1vcnlTaXplKSB7CisjaWYgZGVmaW5lZChRX09TX01BQ1gpCisgICAg
ICAgIHNfcGh5c2ljYWxNZW1vcnlTaXplID0gc3RhdGljX2Nhc3Q8cWludDY0PihtZW1vcnlTaXpl
KCkpOworI2VsaWYgZGVmaW5lZChRX09TX0xJTlVYKSB8fCBkZWZpbmVkIChRX09TX1VOSVgpCisg
ICAgICAgIGxvbmcgcGFnZVNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxv
bmcgbnVtYmVyT2ZQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOworCisgICAgICAgIGlm
IChwYWdlU2l6ZSA+IDAgJiYgbnVtYmVyT2ZQYWdlcyA+IDApCisgICAgICAgICAgICBzX3BoeXNp
Y2FsTWVtb3J5U2l6ZSA9IHN0YXRpY19jYXN0PHFpbnQ2ND4ocGFnZVNpemUpICogc3RhdGljX2Nh
c3Q8cWludDY0PihudW1iZXJPZlBhZ2VzKTsKKyNlbmRpZgorICAgIH0KKworICAgIC8vIEZJWE1F
OiBGaW5kIGEgY29ycmVjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZvciBRdFdlYktpdCBvbiBX
aW5kb3dzLgorICAgIHJldHVybiBzX3BoeXNpY2FsTWVtb3J5U2l6ZTsKK30KIAotdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKK3N0YXRpYyBxaW50NjQg
ZnJlZVNwYWNlRm9yVm9sdW1lKGNvbnN0IFFTdHJpbmcmIHBhdGgpCiB7Ci0gICAgLy8gRklYTUU6
IHNlZSBidWcgNzM5MTgKLSAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBhZ2VD
YWNoZUNhcGFjaXR5KTsKKyAgICBxaW50NjQgZnJlZVNwYWNlID0gMDsKKworI2lmICFPUyhXSU5E
T1dTKQorICAgIHN0cnVjdCBzdGF0dmZzIHZvbHVtZUluZm87CisgICAgaWYgKHN0YXR2ZnMocGF0
aC50b0FzY2lpKCkuZGF0YSgpLCAmdm9sdW1lSW5mbykpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgZnJlZVNwYWNlID0gc3RhdGljX2Nhc3Q8cWludDY0Pih2b2x1bWVJbmZvLmZfYmF2YWlsKSAq
IHN0YXRpY19jYXN0PHFpbnQ2ND4odm9sdW1lSW5mby5mX2JzaXplKTsKKyNlbmRpZgorICAgIC8v
IEZJWE1FOiBGaW5kIGEgY29ycmVjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZvciBRdFdlYktp
dCBvbiBXaW5kb3dzLgorICAgIHJldHVybiBmcmVlU3BhY2U7Cit9CisKK3ZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKK3sKKyAgICBR
TmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9iamVjdF9jYXN0PFFOZXR3b3JrRGlza0Nh
Y2hlKj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2FjaGUoKSk7CisgICAgQVNTRVJUKGRpc2tD
YWNoZSk7CisKKyAgICBxaW50NjQgcGh5c2ljYWxNZW1vcnkgPSBwaHlzaWNhbE1lbW9yeVNpemUo
KSAvIDEwMjQgLyAxMDI0OworCisgICAgLy8gVGhlIE1hYyBwb3J0IG9mIFdlYktpdDIgdXNlcyBh
IGZ1ZGdlIGZhY3RvciBvZiAxMDAwIGhlcmUgdG8gYWNjb3VudCBmb3IgbWlzYWxpZ25tZW50LCBo
b3dldmVyLAorICAgIC8vIHRoYXQgdGVuZHMgdG8gb3ZlcmVzdGltYXRlIHRoZSBtZW1vcnkgcXVp
dGUgYSBiaXQgKDEgYnl0ZSBtaXNhbGlnbm1lbnQgfiA0OCBNaUIgbWlzZXN0aW1hdGlvbikuCisg
ICAgLy8gV2UgdXNlIDEwMjQgKiAxMDIzIGZvciBub3cgdG8ga2VlcCB0aGUgZXN0aW1hdGlvbiBl
cnJvciBkb3duIHRvICsvLSB+MSBNaUIuCisgICAgcWludDY0IGZyZWVWb2x1bWVTcGFjZSA9IGZy
ZWVTcGFjZUZvclZvbHVtZShkaXNrQ2FjaGUtPmNhY2hlRGlyZWN0b3J5KCkpIC8gMTAyNCAvIDEw
MjM7CisKKyAgICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVk
IGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBh
Y2l0eSA9IDA7CisgICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAw
OworICAgIHVuc2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25n
IHVybENhY2hlTWVtb3J5Q2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVE
aXNrQ2FwYWNpdHkgPSAwOworCisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBw
aHlzaWNhbE1lbW9yeSwgZnJlZVZvbHVtZVNwYWNlLAorICAgICAgICBjYWNoZVRvdGFsQ2FwYWNp
dHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29k
ZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKKyAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENh
Y2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hlRGlza0NhcGFjaXR5KTsKKworICAgIG1lbW9yeUNh
Y2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENh
cGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOworICAgIG1lbW9yeUNhY2hlKCktPnNldERlYWRE
ZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZh
bCk7CisgICAgcGFnZUNhY2hlKCktPnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKKwor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgaHlicmlkIGluLW1lbW9yeS0gYW5kIGRpc2stY2FjaGlu
ZyBhcyBlLmcuIHRoZSBNYWMgcG9ydCBkb2VzLgorICAgIGRpc2tDYWNoZS0+c2V0TWF4aW11bUNh
Y2hlU2l6ZShzdGF0aWNfY2FzdDxxaW50NjQ+KHVybENhY2hlRGlza0NhcGFjaXR5KSk7CiB9CiAK
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2Fj
aGVzVG9DbGVhcikKQEAgLTY5LDYgKzEzNSwxMiBAQCBzdGF0aWMgdm9pZCBwYXJlbnRQcm9jZXNz
RGllZENhbGxiYWNrKHZvaWQqKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIG1fbmV0d29ya0Fj
Y2Vzc01hbmFnZXIgPSBuZXcgUXROZXR3b3JrQWNjZXNzTWFuYWdlcih0aGlzKTsKKworICAgIEFT
U0VSVCghcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0
ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc051bGwoKSk7CisgICAgUU5ldHdvcmtEaXNrQ2FjaGUq
IGRpc2tDYWNoZSA9IG5ldyBRTmV0d29ya0Rpc2tDYWNoZSgpOworICAgIGRpc2tDYWNoZS0+c2V0
Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkpOworICAgIG1fbmV0
d29ya0FjY2Vzc01hbmFnZXItPnNldENhY2hlKGRpc2tDYWNoZSk7CisKICAgICBBU1NFUlQoIXBh
cmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYgIXBhcmFtZXRlcnMu
Y29va2llU3RvcmFnZURpcmVjdG9yeS5pc051bGwoKSk7CiAgICAgV2ViQ29yZTo6U2hhcmVkQ29v
a2llSmFyUXQqIGphciA9IFdlYkNvcmU6OlNoYXJlZENvb2tpZUphclF0OjpjcmVhdGUocGFyYW1l
dGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2Vy
LT5zZXRDb29raWVKYXIoamFyKTsKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125140</attachid>
            <date>2012-02-02 08:58:44 -0800</date>
            <delta_ts>2012-02-03 05:13:33 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>0001-Qt-WK2-Compute-and-set-cache-capacities-using-the-cu.patch</filename>
            <type>text/plain</type>
            <size>25686</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">RnJvbSA4MmU3YjFjMGJlNGQwYzNiOWZkMTVkY2QzYjFiYzNmMWU0Yzg1MTNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWljaGFlbD0yMEJyPUMzPUJDbmluZz89IDxt
aWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgpEYXRlOiBUaHUsIDIgRmViIDIwMTIgMTY6MzM6NTYg
KzAxMDAKU3ViamVjdDogW1BBVENIXSBbUXRdW1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNh
cGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQKIENhY2hlTW9kZWwKCmh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAoKRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50
YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24Kb2YgdGhlIEFQSSBm
b3IgdGhlIFF0IFdlYktpdCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQgbWVtb3J5IGFuZCBkaXNrIGNh
Y2hlLgoKU291cmNlL1dlYktpdDI6CiogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgooV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgoo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgoqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CihXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKFdlYktpdDo6ZGVmYXVsdERp
c2tDYWNoZURpcmVjdG9yeSk6CihXZWJLaXQpOgooV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHA6
CihXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6CihXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgoKU291cmNlL1dlYkNvcmU6
CkFkZGVkIE9TLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBmcmVl
IGRpc2sgc3BhY2UgYW5kCnRoZSBhbW91bnQgb2YgcGh5c2ljYWwgbWVtb3J5IGZvciB0aGUgUXQg
cG9ydC4KCiogVGFyZ2V0LnByaToKKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CihXZWJDb3JlKToK
KiBwbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwOiBBZGRlZC4KKFdlYkNvcmUpOgooV2ViQ29yZTo6
cGxhdGZvcm1JbmZvKToKKFdlYkNvcmU6OlBsYXRmb3JtSW5mbzo6UGxhdGZvcm1JbmZvKToKKiBw
bGF0Zm9ybS9QbGF0Zm9ybUluZm8uaDogQWRkZWQuCihXZWJDb3JlKToKKFBsYXRmb3JtSW5mbyk6
CiogcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwOiBBZGRlZC4KKFdlYkNvcmUp
OgooV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjptZW1vcnlTaXplKToKKiBwbGF0Zm9ybS9xdC9GaWxl
U3lzdGVtUXQuY3BwOgooV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKToKKFdlYkNv
cmUpOgoqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybUluZm9XaW4uY3BwOiBBZGRlZC4KKFdlYkNvcmUp
OgooV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjptZW1vcnlTaXplKToKKiBwbGF0Zm9ybS9tYWMvUGxh
dGZvcm1JbmZvTWFjLmNwcDogQWRkZWQuCihXZWJDb3JlKToKKFdlYkNvcmU6OlBsYXRmb3JtSW5m
bzo6bWVtb3J5U2l6ZSk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM1ICsrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCAgICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwICAgICAgICAgICB8ICAgNDMgKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5oICAgICAg
ICAgICAgIHwgICA0OCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcCAgICB8ICAgNTAgKysrKysrKysrKysrKysrKysrKysK
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5mb1BPU0lYLmNwcCAgIHwgICA0
NyArKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0
ZW1RdC5jcHAgICAgICAgIHwgICAxOCArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGxhdGZvcm1JbmZvV2luLmNwcCAgICB8ICAgNDQgKysrKysrKysrKysrKysrKysKIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMyArKysr
KysrKysKIC4uLi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgICAgICAg
IHwgICAgMyArCiAuLi4vV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oICB8ICAgIDEgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5j
cHAgICAgICAgfCAgIDE0ICsrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQ
cm9jZXNzUXQuY3BwICAgICAgfCAgIDQ1ICsrKysrKysrKysrKysrKystLQogMTQgZmlsZXMgY2hh
bmdlZCwgMzc4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9y
bUluZm9QT1NJWC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGxhdGZvcm1JbmZvV2luLmNwcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MGIyMDI3Li5mOTg5ZGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTItMDItMDIgIE1pY2hhZWwgQnLDvG5p
bmcgIDxtaWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBDb21w
dXRlIGFuZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNoZU1vZGVs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gKE5vdCBhcHBsaWNhYmxlKQorCisgICAgICAgIEFkZGVkIE9TLXNwZWNpZmljIGltcGxl
bWVudGF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBmcmVlIGRpc2sgc3BhY2UgYW5kCisgICAgICAg
IHRoZSBhbW91bnQgb2YgcGh5c2ljYWwgbWVtb3J5IGZvciB0aGUgUXQgcG9ydC4KKworICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtSW5mbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluZm86OlBsYXRmb3JtSW5mbyk6CisgICAgICAgICog
cGxhdGZvcm0vUGxhdGZvcm1JbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChQbGF0Zm9ybUluZm8pOgorICAgICAgICAqIHBsYXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5m
b1BPU0lYLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtSW5mbzo6bWVtb3J5U2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRmlsZVN5
c3RlbVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFZvbHVtZUZyZWVTaXplRm9yUGF0aCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1JbmZv
V2luLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtSW5mbzo6bWVtb3J5U2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
SW5mb01hYy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUluZm86Om1lbW9yeVNpemUpOgorCiAyMDEyLTAxLTMxICBSb2xhbmQgU3RlaW5l
ciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIDxzdHlsZSBzY29wZWQ+
OiBJbXByb3ZlIHNob3J0Y3V0IGNvZGUgZm9yIGNhc2VzIHdoZXJlIDxzdHlsZSBzY29wZWQ+IGlz
bid0IHVzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDA5MTI5ZmEuLjI2Njg0MDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtMjI0NCw2ICsyMjQ0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZl
dGNoSGVscGVyLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya1N0YXRlTm90aWZp
ZXJQcml2YXRlLmggXAorICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5oIFwKICAgICBwbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoRXZlbnQuaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50
LmggXAogICAgIHBsYXRmb3JtL1BvcHVwTWVudS5oIFwKQEAgLTI4MDIsNiArMjgwMyw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
Y3BwIFwKICAgICBlZGl0aW5nL3F0L0VkaXRvclF0LmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Vyc29y
LmNwcCBcCisgICAgcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmNwcCBcCiAgICAgcGxhdGZvcm0vcXQv
Q2xpcGJvYXJkUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9Db250ZXh0TWVudUl0ZW1RdC5jcHAg
XAogICAgIHBsYXRmb3JtL3F0L0NvbnRleHRNZW51UXQuY3BwIFwKQEAgLTI4NjQsMTUgKzI4NjYs
MjEgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NNT09USF9TQ1JPTExJTkc9MSkgewogd2lu
MzItKnx3aW5jZSogewogICAgIEhFQURFUlMgKz0gcGxhdGZvcm0vd2luL1N5c3RlbUluZm8uaAog
ICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBwbGF0Zm9ybS93aW4vUGxhdGZvcm1JbmZvV2luLmNw
cCBcCiAgICAgICAgIHBsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmNwcCBcCiAgICAgICAgIHBsYXRm
b3JtL3dpbi9TeXN0ZW1UaW1lV2luLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9UcmFuc2Zvcm1hdGlvbk1hdHJpeFdpbi5jcHAKIH0KIAotbWFjIHsKLSAgICBTT1VSQ0VTICs9
IFwKK3VuaXggeworICAgbWFjIHsKKyAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgcGxhdGZv
cm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAgXAogICAgICAgICBwbGF0Zm9ybS90ZXh0L2NmL1N0
cmluZ0NGLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL3RleHQvY2YvU3RyaW5nSW1wbENGLmNwcAor
ICAgfSBlbHNlIHsKKyAgICAgICBTT1VSQ0VTICs9IHBsYXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5m
b1BPU0lYLmNwcAorICAgfQogfQogCiBoYXZlUXQoNSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmls
ZVN5c3RlbS5oCmluZGV4IDMzYzY0M2UuLjkzNGQyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmgKQEAgLTE5OCw2ICsxOTgsOCBAQCBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHBhdGhB
c1VSTChjb25zdCBTdHJpbmcmKTsKIFN0cmluZyBmaWxlbmFtZVRvU3RyaW5nKGNvbnN0IGNoYXIq
KTsKIFN0cmluZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFw
cGxpY2F0aW9uRGlyZWN0b3J5UGF0aCgpOworI2VuZGlmCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShRVCkKIHVpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFy
Kik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNlZWYzZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsYXRmb3Jt
SW5mbyogcGxhdGZvcm1JbmZvKCkKK3sKKyAgICBzdGF0aWMgUGxhdGZvcm1JbmZvKiBzdGF0aWNJ
bmZvID0gbmV3IFBsYXRmb3JtSW5mbzsKKyAgICByZXR1cm4gc3RhdGljSW5mbzsKK30KKworUGxh
dGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8oKQorICAgIDogbV9tZW1vcnlTaXplKDApCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUlu
Zm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjhhOTg0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmgKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgUGxhdGZvcm1JbmZv
X2gKKyNkZWZpbmUgUGxhdGZvcm1JbmZvX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRmb3JtSW5mbyB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUGxhdGZvcm1JbmZvKTsKK3B1YmxpYzoKKyAgICBmcmllbmQgUGxh
dGZvcm1JbmZvKiBwbGF0Zm9ybUluZm8oKTsKKworICAgIHVpbnQ2NF90IG1lbW9yeVNpemUoKTsK
KworcHJpdmF0ZToKKyAgICBQbGF0Zm9ybUluZm8oKTsKKyAgICB1aW50NjRfdCBtX21lbW9yeVNp
emU7Cit9OworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5mbygpOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQbGF0Zm9ybUluZm9faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zOTEyNDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtSW5mby5oIgorCisjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1aW50NjRfdCBQbGF0Zm9ybUluZm86Om1lbW9yeVNpemUoKQoreworICAg
IGlmICghbV9tZW1vcnlTaXplKSB7CisgICAgICAgIGhvc3RfYmFzaWNfaW5mb19kYXRhX3QgaG9z
dEluZm87CisgICAgICAgIG1hY2hfcG9ydF90IGhvc3QgPSBtYWNoX2hvc3Rfc2VsZigpOworICAg
ICAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGNvdW50ID0gSE9TVF9CQVNJQ19JTkZPX0NPVU5U
OworICAgICAgICBrZXJuX3JldHVybl90IHIgPSBob3N0X2luZm8oaG9zdCwgSE9TVF9CQVNJQ19J
TkZPLCAoaG9zdF9pbmZvX3QpJmhvc3RJbmZvLCAmY291bnQpOworICAgICAgICBtYWNoX3BvcnRf
ZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBob3N0KTsKKworICAgICAgICBpZiAociA9PSBL
RVJOX1NVQ0NFU1MpCisgICAgICAgICAgICBtX21lbW9yeVNpemUgPSBob3N0SW5mby5tYXhfbWVt
OworICAgIH0KKworICAgIHJldHVybiBtX21lbW9yeVNpemU7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvUGxh
dGZvcm1JbmZvUE9TSVguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvUGxhdGZv
cm1JbmZvUE9TSVguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYjgz
OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0
Zm9ybUluZm9QT1NJWC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisj
aW5jbHVkZSA8dW5pc3RkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxh
dGZvcm1JbmZvOjptZW1vcnlTaXplKCkKK3sKKyAgICBpZiAoIW1fbWVtb3J5U2l6ZSkgeworICAg
ICAgICBsb25nIHBhZ2VTaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworICAgICAgICBsb25n
IG51bWJlck9mUGFnZXMgPSBzeXNjb25mKF9TQ19QSFlTX1BBR0VTKTsKKworICAgICAgICBpZiAo
cGFnZVNpemUgPiAwICYmIG51bWJlck9mUGFnZXMgPiAwKQorICAgICAgICAgICAgbV9tZW1vcnlT
aXplID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSAqIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihudW1iZXJPZlBhZ2VzKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9tZW1vcnlTaXplOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9GaWxlU3lzdGVtUXQuY3BwCmluZGV4IDMyNjQ0ZDEuLmE2ODk2ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgPFFGaWxlPgogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRVGVtcG9yYXJ5
RmlsZT4KKyNpbmNsdWRlIDxzeXMvc3RhdHZmcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTkwLDYgKzE5MSwyMyBAQCBsb25nIGxv
bmcgc2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwg
RmlsZVNlZWtPcmlnaW4gbwogICAgIHJldHVybiAtMTsKIH0KIAordWludDY0X3QgZ2V0Vm9sdW1l
RnJlZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpCit7CisjaWYgZGVmaW5lZChRX09TX1dJ
TikKKyAgICBVTEFSR0VfSU5URUdFUiBmcmVlQnl0ZXNUb0NhbGxlcjsKKyAgICBCT09MIHJlc3Vs
dCA9IEdldERpc2tGcmVlU3BhY2VFeFcoKExQQ1dTVFIpcGF0aCwgJmZyZWVCeXRlc1RvQ2FsbGVy
LCAwLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQ2NF90PmZyZWVCeXRlc1RvQ2FsbGVyLlF1YWRQYXJ0OworI2Vsc2UK
KyAgICBzdHJ1Y3Qgc3RhdHZmcyB2b2x1bWVJbmZvOworICAgIGlmIChzdGF0dmZzKHBhdGgsICZ2
b2x1bWVJbmZvKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KHZvbHVtZUluZm8uZl9iYXZhaWwpICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZv
bHVtZUluZm8uZl9mcnNpemUpOworI2VuZGlmCit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAg
IGlmIChoYW5kbGUgJiYgaGFuZGxlLT5leGlzdHMoKSAmJiBoYW5kbGUtPmlzV3JpdGFibGUoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybUluZm9XaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZiMjEwNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybUluZm9XaW4uY3BwCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybUluZm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
aW50NjRfdCBQbGF0Zm9ybUluZm86Om1lbW9yeVNpemUoKQoreworICAgIGlmICghbV9tZW1vcnlT
aXplKSB7CisgICAgICAgIE1FTU9SWVNUQVRVU0VYIHN0YXRleDsKKyAgICAgICAgc3RhdGV4LmR3
TGVuZ3RoID0gc2l6ZW9mKHN0YXRleCk7CisgICAgICAgIEdsb2JhbE1lbW9yeVN0YXR1c0V4KCZz
dGF0ZXgpOworICAgICAgICBtX21lbW9yeVNpemUgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3Rh
dGV4LnVsbFRvdGFsUGh5cyk7CisgICAgfQorCisgICAgcmV0dXJuIG1fbWVtb3J5U2l6ZTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTIwMTY3Yy4uMTk2MWI5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTAyICBNaWNoYWVsIEJyw7xu
aW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gQ29t
cHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQgQ2FjaGVNb2Rl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJzdCBw
YXJ0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbi4gVGhlIG5leHQgc3RlcHMgYXJlIHRoZSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBvZiB0aGUgQVBJIGZvciB0aGUgUXQgV2ViS2l0IDIgcG9ydCBhbmQg
dGhlIGh5YnJpZCBtZW1vcnkgYW5kIGRpc2sgY2FjaGUuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpkZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMTIt
MDEtMzAgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAog
ICAgICAgICBbUXRdIERpc2Nvbm5lY3QgdGhlIExheWVyVHJlZUhvc3QgZnJvbSBsYXllcnMgd2hl
biB0aGV5IGdldCByZW1vdmVkIGZyb20gdGhlaXIgcGFyZW50LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDhl
MWQxNjQuLjdjNzk5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyKSBjb24KICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgIGVuY29kZXItPmVu
Y29kZShjb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoZGlza0Nh
Y2hlRGlyZWN0b3J5KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0x
OTUsNiArMTk2LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWIKICNpZiBQTEFURk9STShRVCkK
ICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3Rv
cnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFy
YW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2EzNzY0ZC4uYzcz
ZGI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0xMjEsNiArMTIxLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogI2VuZGlmIC8vIFBMQVRGT1JNKFdJTikKICNpZiBQTEFURk9STShR
VCkKICAgICBTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeTsKKyAgICBTdHJpbmcgZGlza0Nh
Y2hlRGlyZWN0b3J5OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKaW5kZXggYjBkNWFjNC4u
YzhlYThjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5j
cHAKQEAgLTU3LDYgKzU3LDE4IEBAIHN0YXRpYyBRU3RyaW5nIGRlZmF1bHREYXRhTG9jYXRpb24o
KQogICAgIHJldHVybiBzX2RhdGFMb2NhdGlvbjsKIH0KIAorc3RhdGljIFN0cmluZyBkZWZhdWx0
RGlza0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIHNfZGVmYXVsRGlza0Nh
Y2hlRGlyZWN0b3J5OworCisgICAgaWYgKCFzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKKworICAg
IHNfZGVmYXVsRGlza0NhY2hlRGlyZWN0b3J5ID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGRlZmF1bHREYXRhTG9jYXRpb24oKSwgImNhY2hlLyIpOworICAgIFdlYkNvcmU6Om1h
a2VBbGxEaXJlY3RvcmllcyhzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgcmV0dXJu
IHNfZGVmYXVsRGlza0NhY2hlRGlyZWN0b3J5OworfQorCiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1
bHREYXRhYmFzZURpcmVjdG9yeTsKIHN0YXRpYyBRU3RyaW5nIHNfZGVmYXVsdExvY2FsU3RvcmFn
ZURpcmVjdG9yeTsKIApAQCAtNjksNiArODEsOCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQog
ewogICAgIHFSZWdpc3Rlck1ldGFUeXBlPFFQcm9jZXNzOjpFeGl0U3RhdHVzPigiUVByb2Nlc3M6
OkV4aXRTdGF0dXMiKTsKICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSBk
ZWZhdWx0RGF0YUxvY2F0aW9uKCk7CisgICAgcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnkg
PSBkZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KCk7CisKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CiAgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRpb24gPSBXZWJHZW9s
b2NhdGlvblByb3ZpZGVyUXQ6OmNyZWF0ZSh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgp
KSk7CiAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcih0b0FQSShnZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSgpKSwgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcihsb2Nh
dGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9j
ZXNzUXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3Bw
CmluZGV4IGEyYmVhYzEuLmUwNjQ3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1dlYlByb2Nlc3NRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsOCArMzYsMTIgQEAKICNpbmNs
dWRlIDxRQ29yZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4K
ICNpbmNsdWRlIDxRTmV0d29ya0Nvb2tpZUphcj4KKyNpbmNsdWRlIDxRTmV0d29ya0Rpc2tDYWNo
ZT4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphclF0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUluZm8uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KIAogI2lmIGRlZmlu
ZWQoUV9PU19NQUNYKQpAQCAtNDcsMTIgKzUyLDM2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIGNvbnN0IGludCBEZWZhdWx0UGFnZUNh
Y2hlQ2FwYWNpdHkgPSAyMDsKLQotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9k
ZWwoQ2FjaGVNb2RlbCkKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwgY2FjaGVNb2RlbCkKIHsKLSAgICAvLyBGSVhNRTogc2VlIGJ1ZyA3MzkxOAotICAg
IHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShEZWZhdWx0UGFnZUNhY2hlQ2FwYWNpdHkpOworICAg
IFFOZXR3b3JrRGlza0NhY2hlKiBkaXNrQ2FjaGUgPSBxb2JqZWN0X2Nhc3Q8UU5ldHdvcmtEaXNr
Q2FjaGUqPihtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5jYWNoZSgpKTsKKyAgICBBU1NFUlQoZGlz
a0NhY2hlKTsKKworICAgIHVpbnQ2NF90IHBoeXNpY2FsTWVtb3J5ID0gV2ViQ29yZTo6cGxhdGZv
cm1JbmZvKCktPm1lbW9yeVNpemUoKSAvIDEwMjQgLyAxMDI0OworCisgICAgLy8gVGhlIE1hYyBw
b3J0IG9mIFdlYktpdDIgdXNlcyBhIGZ1ZGdlIGZhY3RvciBvZiAxMDAwIGhlcmUgdG8gYWNjb3Vu
dCBmb3IgbWlzYWxpZ25tZW50LCBob3dldmVyLAorICAgIC8vIHRoYXQgdGVuZHMgdG8gb3ZlcmVz
dGltYXRlIHRoZSBtZW1vcnkgcXVpdGUgYSBiaXQgKDEgYnl0ZSBtaXNhbGlnbm1lbnQgfiA0OCBN
aUIgbWlzZXN0aW1hdGlvbikuCisgICAgLy8gV2UgdXNlIDEwMjQgKiAxMDIzIGZvciBub3cgdG8g
a2VlcCB0aGUgZXN0aW1hdGlvbiBlcnJvciBkb3duIHRvICsvLSB+MSBNaUIuCisgICAgdWludDY0
X3QgZnJlZVZvbHVtZVNwYWNlID0gV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGRp
c2tDYWNoZS0+Y2FjaGVEaXJlY3RvcnkoKS50b0FzY2lpKCkuY29uc3REYXRhKCkpIC8gMTAyNCAv
IDEwMjM7CisKKyAgICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2ln
bmVkIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRD
YXBhY2l0eSA9IDA7CisgICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwg
PSAwOworICAgIHVuc2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBs
b25nIHVybENhY2hlTWVtb3J5Q2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2Fj
aGVEaXNrQ2FwYWNpdHkgPSAwOworCisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVs
LCBwaHlzaWNhbE1lbW9yeSwgZnJlZVZvbHVtZVNwYWNlLAorICAgICAgICBjYWNoZVRvdGFsQ2Fw
YWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERl
Y29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKKyAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVy
bENhY2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hlRGlza0NhcGFjaXR5KTsKKworICAgIG1lbW9y
eUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVh
ZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOworICAgIG1lbW9yeUNhY2hlKCktPnNldERl
YWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRl
cnZhbCk7CisgICAgcGFnZUNhY2hlKCktPnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsK
KworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgaHlicmlkIGluLW1lbW9yeS0gYW5kIGRpc2stY2Fj
aGluZyBhcyBlLmcuIHRoZSBNYWMgcG9ydCBkb2VzLgorICAgIGRpc2tDYWNoZS0+c2V0TWF4aW11
bUNhY2hlU2l6ZShzdGF0aWNfY2FzdDxxaW50NjQ+KHVybENhY2hlRGlza0NhcGFjaXR5KSk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNl
Q2FjaGVzVG9DbGVhcikKQEAgLTY5LDYgKzk4LDEyIEBAIHN0YXRpYyB2b2lkIHBhcmVudFByb2Nl
c3NEaWVkQ2FsbGJhY2sodm9pZCopCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgbV9uZXR3b3Jr
QWNjZXNzTWFuYWdlciA9IG5ldyBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKHRoaXMpOworCisgICAg
QVNTRVJUKCFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYgIXBhcmFt
ZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgpKTsKKyAgICBRTmV0d29ya0Rpc2tDYWNo
ZSogZGlza0NhY2hlID0gbmV3IFFOZXR3b3JrRGlza0NhY2hlKCk7CisgICAgZGlza0NhY2hlLT5z
ZXRDYWNoZURpcmVjdG9yeShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgbV9u
ZXR3b3JrQWNjZXNzTWFuYWdlci0+c2V0Q2FjaGUoZGlza0NhY2hlKTsKKwogICAgIEFTU0VSVCgh
cGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzTnVsbCgpKTsKICAgICBXZWJDb3JlOjpTaGFyZWRD
b29raWVKYXJRdCogamFyID0gV2ViQ29yZTo6U2hhcmVkQ29va2llSmFyUXQ6OmNyZWF0ZShwYXJh
bWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFn
ZXItPnNldENvb2tpZUphcihqYXIpOwotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125310</attachid>
            <date>2012-02-03 05:13:33 -0800</date>
            <delta_ts>2012-02-06 06:02:45 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>0001-Qt-WK2-Compute-and-set-cache-capacities-using-the-cu.patch</filename>
            <type>text/plain</type>
            <size>25762</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">RnJvbSBmZmJiMDYyYjg4ODUxMWI5NmU0MmVkMzg2YWMwZmU0MTRlYjA1NmJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWljaGFlbD0yMEJyPUMzPUJDbmluZz89IDxt
aWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgpEYXRlOiBUaHUsIDIgRmViIDIwMTIgMTY6MzM6NTYg
KzAxMDAKU3ViamVjdDogW1BBVENIXSBbUXRdW1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNh
cGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQKIENhY2hlTW9kZWwKCmh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAoKRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50
YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24Kb2YgdGhlIEFQSSBm
b3IgdGhlIFF0IFdlYktpdCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQgbWVtb3J5IGFuZCBkaXNrIGNh
Y2hlLgoKU291cmNlL1dlYktpdDI6CiogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgooV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgoo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgoqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CihXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKFdlYktpdDo6ZGVmYXVsdERp
c2tDYWNoZURpcmVjdG9yeSk6CihXZWJLaXQpOgooV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHA6
CihXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6CihXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgoKU291cmNlL1dlYkNvcmU6
CkFkZGVkIE9TLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBmcmVl
IGRpc2sgc3BhY2UgYW5kCnRoZSBhbW91bnQgb2YgcGh5c2ljYWwgbWVtb3J5IGZvciB0aGUgUXQg
cG9ydC4KCiogVGFyZ2V0LnByaToKKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CihXZWJDb3JlKToK
KiBwbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwOiBBZGRlZC4KKFdlYkNvcmUpOgooV2ViQ29yZTo6
cGxhdGZvcm1JbmZvKToKKFdlYkNvcmU6OlBsYXRmb3JtSW5mbzo6UGxhdGZvcm1JbmZvKToKKiBw
bGF0Zm9ybS9QbGF0Zm9ybUluZm8uaDogQWRkZWQuCihXZWJDb3JlKToKKFBsYXRmb3JtSW5mbyk6
CiogcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwOiBBZGRlZC4KKFdlYkNvcmUp
OgooV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjptZW1vcnlTaXplKToKKiBwbGF0Zm9ybS9xdC9GaWxl
U3lzdGVtUXQuY3BwOgooV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKToKKFdlYkNv
cmUpOgoqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybUluZm9XaW4uY3BwOiBBZGRlZC4KKFdlYkNvcmUp
OgooV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjptZW1vcnlTaXplKToKKiBwbGF0Zm9ybS9tYWMvUGxh
dGZvcm1JbmZvTWFjLmNwcDogQWRkZWQuCihXZWJDb3JlKToKKFdlYkNvcmU6OlBsYXRmb3JtSW5m
bzo6bWVtb3J5U2l6ZSk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM1ICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAgICAgICAgICAgIHwgICA0MyArKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uaCAgICAgICAg
ICAgICB8ICAgNDggKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1JbmZvTWFjLmNwcCAgICB8ICAgNTMgKysrKysrKysrKysrKysrKysrKysKIC4u
Li9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5mb1BPU0lYLmNwcCAgIHwgICA0NyAr
KysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0
LmNwcCAgICAgICAgfCAgIDE4ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
bGF0Zm9ybUluZm9XaW4uY3BwICAgIHwgICA0NCArKysrKysrKysrKysrKysrCiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysr
CiAuLi4vU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICAgICAgICB8ICAg
IDMgKwogLi4uL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAg
fCAgICAxICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwICAg
ICAgIHwgICAxNCArKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNz
UXQuY3BwICAgICAgfCAgIDQ1ICsrKysrKysrKysrKysrKy0tCiAxNCBmaWxlcyBjaGFuZ2VkLCAz
ODEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5mb1BP
U0lYLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
bGF0Zm9ybUluZm9XaW4uY3BwCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUwYjIwMjcuLmY5ODlkYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wMi0wMiAgTWljaGFlbCBCcsO8bmluZyAgPG1p
Y2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5k
IHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAo
Tm90IGFwcGxpY2FibGUpCisKKyAgICAgICAgQWRkZWQgT1Mtc3BlY2lmaWMgaW1wbGVtZW50YXRp
b24gZm9yIHJldHJpZXZpbmcgdGhlIGZyZWUgZGlzayBzcGFjZSBhbmQKKyAgICAgICAgdGhlIGFt
b3VudCBvZiBwaHlzaWNhbCBtZW1vcnkgZm9yIHRoZSBRdCBwb3J0LgorCisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cGxhdGZvcm1JbmZvKToKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtSW5mbzo6UGxhdGZvcm1JbmZvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybUluZm8uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBs
YXRmb3JtSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1JbmZvOjptZW1vcnlTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybUluZm9XaW4uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1J
bmZvOjptZW1vcnlTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFj
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtSW5mbzo6bWVtb3J5U2l6ZSk6CisKIDIwMTItMDEtMzEgIFJvbGFuZCBTdGVpbmVyICA8cm9s
YW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgPHN0eWxlIHNjb3BlZD46IEltcHJv
dmUgc2hvcnRjdXQgY29kZSBmb3IgY2FzZXMgd2hlcmUgPHN0eWxlIHNjb3BlZD4gaXNuJ3QgdXNl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggMDkxMjlmYS4uMjY2ODQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0yMjQ0
LDYgKzIyNDQsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvRG5zUHJlZmV0Y2hIZWxw
ZXIuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9OZXR3b3JrU3RhdGVOb3RpZmllclByaXZh
dGUuaCBcCisgICAgcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmggXAogICAgIHBsYXRmb3JtL1BsYXRm
b3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaCBcCiAg
ICAgcGxhdGZvcm0vUG9wdXBNZW51LmggXApAQCAtMjgwMiw2ICsyODAzLDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgXAog
ICAgIGVkaXRpbmcvcXQvRWRpdG9yUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwIFwK
KyAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9DbGlwYm9h
cmRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0NvbnRleHRNZW51SXRlbVF0LmNwcCBcCiAgICAg
cGxhdGZvcm0vcXQvQ29udGV4dE1lbnVRdC5jcHAgXApAQCAtMjg2NCwxNSArMjg2NiwyMSBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfU01PT1RIX1NDUk9MTElORz0xKSB7CiB3aW4zMi0qfHdp
bmNlKiB7CiAgICAgSEVBREVSUyArPSBwbGF0Zm9ybS93aW4vU3lzdGVtSW5mby5oCiAgICAgU09V
UkNFUyArPSBcCisgICAgICAgIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybUluZm9XaW4uY3BwIFwKICAg
ICAgICAgcGxhdGZvcm0vd2luL1N5c3RlbUluZm8uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vd2lu
L1N5c3RlbVRpbWVXaW4uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1RyYW5z
Zm9ybWF0aW9uTWF0cml4V2luLmNwcAogfQogCi1tYWMgewotICAgIFNPVVJDRVMgKz0gXAordW5p
eCB7CisgICBtYWMgeworICAgICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBwbGF0Zm9ybS9tYWMv
UGxhdGZvcm1JbmZvTWFjLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL3RleHQvY2YvU3RyaW5nQ0Yu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vdGV4dC9jZi9TdHJpbmdJbXBsQ0YuY3BwCisgICB9IGVs
c2UgeworICAgICAgIFNPVVJDRVMgKz0gcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVgu
Y3BwCisgICB9CiB9CiAKIGhhdmVRdCg1KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVt
LmgKaW5kZXggMzNjNjQzZS4uOTM0ZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaApAQCAtMTk4LDYgKzE5OCw4IEBAIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNv
bnN0IFN0cmluZyYpOwogU3RyaW5nIGZpbGVuYW1lVG9TdHJpbmcoY29uc3QgY2hhciopOwogU3Ry
aW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcmKTsKIENTdHJpbmcgYXBwbGljYXRp
b25EaXJlY3RvcnlQYXRoKCk7CisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFFUKQogdWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqKTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2VlZjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1JbmZvLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhdGZvcm1JbmZvKiBw
bGF0Zm9ybUluZm8oKQoreworICAgIHN0YXRpYyBQbGF0Zm9ybUluZm8qIHN0YXRpY0luZm8gPSBu
ZXcgUGxhdGZvcm1JbmZvOworICAgIHJldHVybiBzdGF0aWNJbmZvOworfQorCitQbGF0Zm9ybUlu
Zm86OlBsYXRmb3JtSW5mbygpCisgICAgOiBtX21lbW9yeVNpemUoMCkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyOGE5ODQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uaApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmbmRlZiBQbGF0Zm9ybUluZm9faAorI2Rl
ZmluZSBQbGF0Zm9ybUluZm9faAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZvcm1JbmZvIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShQbGF0Zm9ybUluZm8pOworcHVibGljOgorICAgIGZyaWVuZCBQbGF0Zm9ybUlu
Zm8qIHBsYXRmb3JtSW5mbygpOworCisgICAgdWludDY0X3QgbWVtb3J5U2l6ZSgpOworCitwcml2
YXRlOgorICAgIFBsYXRmb3JtSW5mbygpOworICAgIHVpbnQ2NF90IG1fbWVtb3J5U2l6ZTsKK307
CisKK1BsYXRmb3JtSW5mbyogcGxhdGZvcm1JbmZvKCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFBsYXRmb3JtSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUluZm9NYWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjkxOGEwOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbmZv
LmgiCisKKyNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgorI2luY2x1ZGUgPG1hY2gvaG9z
dF9pbmZvLmg+CisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+CisjaW5jbHVkZSA8bWFjaC9tYWNoX2Vy
cm9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxhdGZvcm1JbmZvOjpt
ZW1vcnlTaXplKCkKK3sKKyAgICBpZiAoIW1fbWVtb3J5U2l6ZSkgeworICAgICAgICBob3N0X2Jh
c2ljX2luZm9fZGF0YV90IGhvc3RJbmZvOworICAgICAgICBtYWNoX3BvcnRfdCBob3N0ID0gbWFj
aF9ob3N0X3NlbGYoKTsKKyAgICAgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IEhP
U1RfQkFTSUNfSU5GT19DT1VOVDsKKyAgICAgICAga2Vybl9yZXR1cm5fdCByID0gaG9zdF9pbmZv
KGhvc3QsIEhPU1RfQkFTSUNfSU5GTywgKGhvc3RfaW5mb190KSZob3N0SW5mbywgJmNvdW50KTsK
KyAgICAgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgaG9zdCk7CisK
KyAgICAgICAgaWYgKHIgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICAgICAgbV9tZW1vcnlTaXpl
ID0gaG9zdEluZm8ubWF4X21lbTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9tZW1vcnlTaXplOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5mb1BPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3Bvc2l4L1BsYXRmb3JtSW5mb1BPU0lYLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lMGI4MzhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybUluZm8uaCIKKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6bWVtb3J5U2l6ZSgpCit7CisgICAgaWYgKCFt
X21lbW9yeVNpemUpIHsKKyAgICAgICAgbG9uZyBwYWdlU2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VT
SVpFKTsKKyAgICAgICAgbG9uZyBudW1iZXJPZlBhZ2VzID0gc3lzY29uZihfU0NfUEhZU19QQUdF
Uyk7CisKKyAgICAgICAgaWYgKHBhZ2VTaXplID4gMCAmJiBudW1iZXJPZlBhZ2VzID4gMCkKKyAg
ICAgICAgICAgIG1fbWVtb3J5U2l6ZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihwYWdlU2l6ZSkg
KiBzdGF0aWNfY2FzdDx1aW50NjRfdD4obnVtYmVyT2ZQYWdlcyk7CisgICAgfQorCisgICAgcmV0
dXJuIG1fbWVtb3J5U2l6ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAppbmRleCAzMjY0NGQxLi5hNjg5
NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKQEAg
LTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxRRmlsZT4KICNpbmNsdWRlIDxRRmlsZUluZm8+CiAj
aW5jbHVkZSA8UVRlbXBvcmFyeUZpbGU+CisjaW5jbHVkZSA8c3lzL3N0YXR2ZnMuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE5MCw2
ICsxOTEsMjMgQEAgbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUs
IGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luIG8KICAgICByZXR1cm4gLTE7CiB9CiAK
K3VpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKQorewor
I2lmIGRlZmluZWQoUV9PU19XSU4pCisgICAgVUxBUkdFX0lOVEVHRVIgZnJlZUJ5dGVzVG9DYWxs
ZXI7CisgICAgQk9PTCByZXN1bHQgPSBHZXREaXNrRnJlZVNwYWNlRXhXKChMUENXU1RSKXBhdGgs
ICZmcmVlQnl0ZXNUb0NhbGxlciwgMCwgMCk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJl
dHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD5mcmVlQnl0ZXNUb0NhbGxl
ci5RdWFkUGFydDsKKyNlbHNlCisgICAgc3RydWN0IHN0YXR2ZnMgdm9sdW1lSW5mbzsKKyAgICBp
ZiAoc3RhdHZmcyhwYXRoLCAmdm9sdW1lSW5mbykpCisgICAgICAgIHJldHVybiAwOworCisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfYmF2YWlsKSAqIHN0YXRp
Y19jYXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfZnJzaXplKTsKKyNlbmRpZgorfQorCiBpbnQg
d3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCkKIHsKICAgICBpZiAoaGFuZGxlICYmIGhhbmRsZS0+ZXhpc3RzKCkgJiYgaGFu
ZGxlLT5pc1dyaXRhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGxhdGZvcm1JbmZvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0
Zm9ybUluZm9XaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YjIx
MDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZv
cm1JbmZvV2luLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbmZvLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxhdGZvcm1JbmZvOjptZW1vcnlTaXplKCkKK3sK
KyAgICBpZiAoIW1fbWVtb3J5U2l6ZSkgeworICAgICAgICBNRU1PUllTVEFUVVNFWCBzdGF0ZXg7
CisgICAgICAgIHN0YXRleC5kd0xlbmd0aCA9IHNpemVvZihzdGF0ZXgpOworICAgICAgICBHbG9i
YWxNZW1vcnlTdGF0dXNFeCgmc3RhdGV4KTsKKyAgICAgICAgbV9tZW1vcnlTaXplID0gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KHN0YXRleC51bGxUb3RhbFBoeXMpOworICAgIH0KKworICAgIHJldHVy
biBtX21lbW9yeVNpemU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDkyMDE2N2MuLjE5NjFiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0w
Mi0wMiAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisKKyAg
ICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRo
ZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTczOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0
ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgdGhlIEFQSSBmb3IgdGhlIFF0
IFdlYktpdCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQgbWVtb3J5IGFuZCBkaXNrIGNhY2hlLgorCisg
ICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29u
dGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVN
b2RlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorCiAyMDEyLTAxLTMwICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJj
b3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBEaXNjb25uZWN0IHRoZSBMYXllclRyZWVI
b3N0IGZyb20gbGF5ZXJzIHdoZW4gdGhleSBnZXQgcmVtb3ZlZCBmcm9tIHRoZWlyIHBhcmVudC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCA4ZTFkMTY0Li43Yzc5OTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05OCw2
ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFURk9STShR
VCkKICAgICBlbmNvZGVyLT5lbmNvZGUoY29va2llU3RvcmFnZURpcmVjdG9yeSk7CisgICAgZW5j
b2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQpAQCAtMTk1LDYgKzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2Vi
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDNhMzc2NGQuLmM3M2RiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIxLDYgKzEyMSw3IEBAIHN0
cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZiAvLyBQTEFURk9STShX
SU4pCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7
CisgICAgU3RyaW5nIGRpc2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
Q29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwCmluZGV4IGIwZDVhYzQuLmM4ZWE4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1NywxOCBAQCBzdGF0aWMgUVN0cmluZyBk
ZWZhdWx0RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4gc19kYXRhTG9jYXRpb247CiB9CiAKK3N0
YXRpYyBTdHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3RhdGljIFN0
cmluZyBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKKworICAgIGlmICghc19kZWZhdWxEaXNr
Q2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gc19kZWZhdWxEaXNrQ2Fj
aGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSA9IFdlYkNvcmU6
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkZWZhdWx0RGF0YUxvY2F0aW9uKCksICJjYWNoZS8i
KTsKKyAgICBXZWJDb3JlOjptYWtlQWxsRGlyZWN0b3JpZXMoc19kZWZhdWxEaXNrQ2FjaGVEaXJl
Y3RvcnkpOworICAgIHJldHVybiBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKK30KKwogc3Rh
dGljIFFTdHJpbmcgc19kZWZhdWx0RGF0YWJhc2VEaXJlY3Rvcnk7CiBzdGF0aWMgUVN0cmluZyBz
X2RlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAKQEAgLTY5LDYgKzgxLDggQEAgdm9pZCBX
ZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhp
dFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2NhdGlvbigpOworICAgIHBhcmFtZXRlcnMu
ZGlza0NhY2hlRGlyZWN0b3J5ID0gZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpOworCiAjaWYg
RU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQq
IGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUodG9BUEkoZ2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkoKSkpOwogICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlk
ZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSksIFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
cXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRleCBhMmJlYWMxLi5lMDY0NzQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1
LDggKzM2LDEyIEBACiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRTmV0
d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CisjaW5jbHVk
ZSA8UU5ldHdvcmtEaXNrQ2FjaGU+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJRdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5
Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1JbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmg+CiAKICNpZiBkZWZpbmVkKFFfT1NfTUFDWCkKQEAgLTQ3LDEyICs1MiwzNiBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25z
dCBpbnQgRGVmYXVsdFBhZ2VDYWNoZUNhcGFjaXR5ID0gMjA7Ci0KLXZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7Ci0gICAgLy8gRklYTUU6
IHNlZSBidWcgNzM5MTgKLSAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBhZ2VD
YWNoZUNhcGFjaXR5KTsKKyAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9iamVj
dF9jYXN0PFFOZXR3b3JrRGlza0NhY2hlKj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2FjaGUo
KSk7CisgICAgQVNTRVJUKGRpc2tDYWNoZSk7CisKKyAgICB1aW50NjRfdCBwaHlzaWNhbE1lbW9y
eSA9IFdlYkNvcmU6OnBsYXRmb3JtSW5mbygpLT5tZW1vcnlTaXplKCkgLyAxMDI0IC8gMTAyNDsK
KworICAgIC8vIFRoZSBNYWMgcG9ydCBvZiBXZWJLaXQyIHVzZXMgYSBmdWRnZSBmYWN0b3Igb2Yg
MTAwMCBoZXJlIHRvIGFjY291bnQgZm9yIG1pc2FsaWdubWVudCwgaG93ZXZlciwKKyAgICAvLyB0
aGF0IHRlbmRzIHRvIG92ZXJlc3RpbWF0ZSB0aGUgbWVtb3J5IHF1aXRlIGEgYml0ICgxIGJ5dGUg
bWlzYWxpZ25tZW50IH4gNDggTWlCIG1pc2VzdGltYXRpb24pLgorICAgIC8vIFdlIHVzZSAxMDI0
ICogMTAyMyBmb3Igbm93IHRvIGtlZXAgdGhlIGVzdGltYXRpb24gZXJyb3IgZG93biB0byArLy0g
fjEgTWlCLgorICAgIHVpbnQ2NF90IGZyZWVWb2x1bWVTcGFjZSA9IFdlYkNvcmU6OmdldFZvbHVt
ZUZyZWVTaXplRm9yUGF0aChkaXNrQ2FjaGUtPmNhY2hlRGlyZWN0b3J5KCkudG9Bc2NpaSgpLmNv
bnN0RGF0YSgpKSAvIDEwMjQgLyAxMDIzOworCisgICAgdW5zaWduZWQgY2FjaGVUb3RhbENhcGFj
aXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1pbkRlYWRDYXBhY2l0eSA9IDA7CisgICAgdW5z
aWduZWQgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOworICAgIGRvdWJsZSBkZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsID0gMDsKKyAgICB1bnNpZ25lZCBwYWdlQ2FjaGVDYXBhY2l0eSA9
IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMDsKKyAgICB1
bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMDsKKworICAgIGNhbGN1bGF0ZUNh
Y2hlU2l6ZXMoY2FjaGVNb2RlbCwgcGh5c2ljYWxNZW1vcnksIGZyZWVWb2x1bWVTcGFjZSwKKyAg
ICAgICAgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhE
ZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsCisgICAgICAgIHBh
Z2VDYWNoZUNhcGFjaXR5LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBh
Y2l0eSk7CisKKyAgICBtZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENh
cGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKKyAgICBt
ZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNv
ZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOworICAgIHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShw
YWdlQ2FjaGVDYXBhY2l0eSk7CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGh5YnJpZCBpbi1t
ZW1vcnktIGFuZCBkaXNrLWNhY2hpbmcgYXMgZS5nLiB0aGUgTWFjIHBvcnQgZG9lcy4KKyAgICBk
aXNrQ2FjaGUtPnNldE1heGltdW1DYWNoZVNpemUoc3RhdGljX2Nhc3Q8cWludDY0Pih1cmxDYWNo
ZURpc2tDYXBhY2l0eSkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNv
dXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCkBAIC02OSw2ICs5OCwxMiBAQCBzdGF0
aWMgdm9pZCBwYXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQogewogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIgPSBuZXcgUXROZXR3b3JrQWNjZXNzTWFu
YWdlcih0aGlzKTsKKworICAgIEFTU0VSVCghcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnku
aXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc051bGwoKSk7Cisg
ICAgUU5ldHdvcmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9IG5ldyBRTmV0d29ya0Rpc2tDYWNoZSgp
OworICAgIGRpc2tDYWNoZS0+c2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5kaXNrQ2FjaGVE
aXJlY3RvcnkpOworICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPnNldENhY2hlKGRpc2tDYWNo
ZSk7CisKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0Vt
cHR5KCkgJiYgIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc051bGwoKSk7CiAg
ICAgV2ViQ29yZTo6U2hhcmVkQ29va2llSmFyUXQqIGphciA9IFdlYkNvcmU6OlNoYXJlZENvb2tp
ZUphclF0OjpjcmVhdGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBt
X25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5zZXRDb29raWVKYXIoamFyKTsKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125626</attachid>
            <date>2012-02-06 06:02:54 -0800</date>
            <delta_ts>2012-02-06 06:03:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120206150252.patch</filename>
            <type>text/plain</type>
            <size>23757</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMzdiMzdhMDU4ZjAx
ZDE0YmQ5ZjZhNTVlZDY5NDJlOWRkM2U2OS4uNzA1ZTliYzU2ODYzODk4ZjNjZDUxNDM0MGUzNGE0
ZGZjOGIwNzdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTAyICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChOb3QgYXBwbGljYWJsZSkKKworICAgICAgICBBZGRlZCBPUy1zcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZnJlZSBkaXNrIHNwYWNlIGFu
ZAorICAgICAgICB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSBmb3IgdGhlIFF0IHBvcnQu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8pOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUGxhdGZvcm1JbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9wb3NpeC9Q
bGF0Zm9ybUluZm9QT1NJWC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUluZm86Om1lbW9yeVNpemVJbkJ5dGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Vm9sdW1l
RnJlZVNpemVGb3JQYXRoKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9QbGF0Zm9ybUluZm9XaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjptZW1vcnlTaXplSW5CeXRlcyk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluZm86Om1lbW9yeVNpemVJbkJ5dGVz
KToKKwogMjAxMi0wMi0wNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiBRdCBtaW5pbWFsIGNvbXBpbGF0aW9uIGZpeCBhZnRlciBy
MTA2Nzc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGEwMTljYWVmZTgxMWYzYTcyYWRhYmQ1M2U5Yjk5NGE0ZjRk
NDkwMjcuLmU2NjcwMjgxMjNiMDJiNDJmMTk5MTI4MjBjMmVmZjUxM2UyNmE0NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0wMiAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hh
ZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNl
dCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QgcGFydCBvZiB0aGUg
aW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24KKyAg
ICAgICAgb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktpdCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQg
bWVtb3J5IGFuZCBkaXNrIGNhY2hlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEyLTAyLTA1ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
ODA5NTI1PiBXZWJLaXQy4oCZcyBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UoKSBhbHdheXMgcmV0dXJucyB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjMjRmZjAw
MzM0M2FlYjY3NDdkZDQ1MGNiYmE3NTFmYmM0YTdjN2FkLi4wYzBkZjk0ZWM3NmNmZmNiODhjNTFi
ZGI4Zjk4NjkyNjIyOTkzZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIyMzgsNiArMjIzOCw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBc
CiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9EbnNQcmVmZXRjaEhlbHBlci5oIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oIFwKKyAgICBwbGF0
Zm9ybS9QbGF0Zm9ybUluZm8uaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50Lmgg
XAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9Qb3B1
cE1lbnUuaCBcCkBAIC0yNzk2LDYgKzI3OTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBcCiAgICAgZWRpdGluZy9xdC9F
ZGl0b3JRdC5jcHAgXAogICAgIHBsYXRmb3JtL0N1cnNvci5jcHAgXAorICAgIHBsYXRmb3JtL1Bs
YXRmb3JtSW5mby5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcCBcCiAgICAg
cGxhdGZvcm0vcXQvQ29udGV4dE1lbnVJdGVtUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9Db250
ZXh0TWVudVF0LmNwcCBcCkBAIC0yODU4LDE1ICsyODYwLDIxIEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HPTEpIHsKIHdpbjMyLSp8d2luY2UqIHsKICAgICBIRUFE
RVJTICs9IHBsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmgKICAgICBTT1VSQ0VTICs9IFwKKyAgICAg
ICAgcGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5jcHAgXAogICAgICAgICBwbGF0Zm9ybS93
aW4vU3lzdGVtSW5mby5jcHAgXAogICAgICAgICBwbGF0Zm9ybS93aW4vU3lzdGVtVGltZVdpbi5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVHJhbnNmb3JtYXRpb25NYXRyaXhX
aW4uY3BwCiB9CiAKLW1hYyB7Ci0gICAgU09VUkNFUyArPSBcCit1bml4IHsKKyAgIG1hYyB7Cisg
ICAgICAgU09VUkNFUyArPSBcCisgICAgICAgIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUluZm9NYWMu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vdGV4dC9jZi9TdHJpbmdDRi5jcHAgXAogICAgICAgICBw
bGF0Zm9ybS90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAKKyAgIH0gZWxzZSB7CisgICAgICAgU09V
UkNFUyArPSBwbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUluZm9QT1NJWC5jcHAKKyAgIH0KIH0KIAog
aGF2ZVF0KDUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCAzM2M2NDNl
NmQ0YzNhMzk5MzU0MWJmMmU4NjQ5NTU4ZGIzMTgxYTNhLi45MzRkMjJjYjIwM2Y4NDI4ZDU2YjAx
MzM0M2Y2ZjA0Yzk4ODJiZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBA
IC0xOTgsNiArMTk4LDggQEAgUmV0YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3Ry
aW5nJik7CiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25zdCBjaGFyKik7CiBTdHJpbmcgZmls
ZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVj
dG9yeVBhdGgoKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCiB1
aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciopOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljZjZl
MzljNjlhOTc2YjQ4ZjA3MmZmMDY5YTA0ZWNhNzk2YWEwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUluZm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybUluZm8q
IHBsYXRmb3JtSW5mbygpCit7CisgICAgc3RhdGljIFBsYXRmb3JtSW5mbyogaW5zdGFuY2UgPSBu
ZXcgUGxhdGZvcm1JbmZvOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworUGxhdGZvcm1JbmZv
OjpQbGF0Zm9ybUluZm8oKQorICAgIDogbV9tZW1vcnlTaXplSW5CeXRlcygwKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZv
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzlhMjg1YzlkYmM5NDY5NTIwYzRjNjk5Y2I1ZDM5ZGZlZGViZGMyZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIFBsYXRm
b3JtSW5mb19oCisjZGVmaW5lIFBsYXRmb3JtSW5mb19oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUluZm8gewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtSW5mbyk7CitwdWJsaWM6CisgICAgZnJp
ZW5kIFBsYXRmb3JtSW5mbyogcGxhdGZvcm1JbmZvKCk7CisKKyAgICB1aW50NjRfdCBtZW1vcnlT
aXplSW5CeXRlcygpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtSW5mbygpOworICAgIHVpbnQ2
NF90IG1fbWVtb3J5U2l6ZUluQnl0ZXM7Cit9OworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5m
bygpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQbGF0Zm9ybUluZm9f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MDkzZDUzZmM4OWE2OTBlMmM2N2VkN2UzMGU4YTE5NmFkZTc4MGExCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01h
Yy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisjaW5jbHVkZSA8ZGlz
cGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDxtYWNoL2hvc3RfaW5mby5oPgorI2luY2x1ZGUg
PG1hY2gvbWFjaC5oPgorI2luY2x1ZGUgPG1hY2gvbWFjaF9lcnJvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6bWVtb3J5U2l6ZUluQnl0ZXMoKQor
eworICAgIGlmICghbV9tZW1vcnlTaXplSW5CeXRlcykgeworICAgICAgICBob3N0X2Jhc2ljX2lu
Zm9fZGF0YV90IGhvc3RJbmZvOworICAgICAgICBtYWNoX3BvcnRfdCBob3N0ID0gbWFjaF9ob3N0
X3NlbGYoKTsKKyAgICAgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IEhPU1RfQkFT
SUNfSU5GT19DT1VOVDsKKyAgICAgICAga2Vybl9yZXR1cm5fdCByID0gaG9zdF9pbmZvKGhvc3Qs
IEhPU1RfQkFTSUNfSU5GTywgKGhvc3RfaW5mb190KSZob3N0SW5mbywgJmNvdW50KTsKKyAgICAg
ICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgaG9zdCk7CisKKyAgICAg
ICAgaWYgKHIgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICAgICAgbV9tZW1vcnlTaXplSW5CeXRl
cyA9IGhvc3RJbmZvLm1heF9tZW07CisgICAgfQorCisgICAgcmV0dXJuIG1fbWVtb3J5U2l6ZUlu
Qnl0ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNl
YmY0MDJlMDBiMDNjODc5Zjg4OWVjN2YyY2M5ZTJmNTFhN2E3NGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUluZm9QT1NJWC5jcHAKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxhdGZvcm1JbmZvOjptZW1vcnlTaXpl
SW5CeXRlcygpCit7CisgICAgaWYgKCFtX21lbW9yeVNpemVJbkJ5dGVzKSB7CisgICAgICAgIGxv
bmcgcGFnZVNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxvbmcgbnVtYmVy
T2ZQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOworCisgICAgICAgIGlmIChwYWdlU2l6
ZSA+IDAgJiYgbnVtYmVyT2ZQYWdlcyA+IDApCisgICAgICAgICAgICBtX21lbW9yeVNpemVJbkJ5
dGVzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSAqIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihudW1iZXJPZlBhZ2VzKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9tZW1vcnlTaXplSW5C
eXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAppbmRleCAzMjY0NGQxNzhiYmQ2ZTJjOWUwZWJhM2Vl
MTRjNTQzOGYyYzc0YjFkLi5hNjg5NmUxZDVlNjUyNDFkMmVmMDFlOTU3ODE5Yjc2NDFhZjlkZGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxRRmlsZT4KICNpbmNsdWRlIDxRRmlsZUluZm8+CiAjaW5j
bHVkZSA8UVRlbXBvcmFyeUZpbGU+CisjaW5jbHVkZSA8c3lzL3N0YXR2ZnMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE5MCw2ICsx
OTEsMjMgQEAgbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxv
bmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luIG8KICAgICByZXR1cm4gLTE7CiB9CiAKK3Vp
bnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKQoreworI2lm
IGRlZmluZWQoUV9PU19XSU4pCisgICAgVUxBUkdFX0lOVEVHRVIgZnJlZUJ5dGVzVG9DYWxsZXI7
CisgICAgQk9PTCByZXN1bHQgPSBHZXREaXNrRnJlZVNwYWNlRXhXKChMUENXU1RSKXBhdGgsICZm
cmVlQnl0ZXNUb0NhbGxlciwgMCwgMCk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD5mcmVlQnl0ZXNUb0NhbGxlci5R
dWFkUGFydDsKKyNlbHNlCisgICAgc3RydWN0IHN0YXR2ZnMgdm9sdW1lSW5mbzsKKyAgICBpZiAo
c3RhdHZmcyhwYXRoLCAmdm9sdW1lSW5mbykpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfYmF2YWlsKSAqIHN0YXRpY19j
YXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfZnJzaXplKTsKKyNlbmRpZgorfQorCiBpbnQgd3Jp
dGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50
IGxlbmd0aCkKIHsKICAgICBpZiAoaGFuZGxlICYmIGhhbmRsZS0+ZXhpc3RzKCkgJiYgaGFuZGxl
LT5pc1dyaXRhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGxhdGZvcm1JbmZvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9y
bUluZm9XaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0OTc5ZjQ0ZjVkODhjMThkMDg2M2YxYTc2ZDEyYTVi
NjY2NThkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGxhdGZvcm1JbmZvV2luLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbmZvLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxhdGZvcm1JbmZvOjptZW1vcnlTaXpl
SW5CeXRlcygpCit7CisgICAgaWYgKCFtX21lbW9yeVNpemVJbkJ5dGVzKSB7CisgICAgICAgIE1F
TU9SWVNUQVRVU0VYIHN0YXRleDsKKyAgICAgICAgc3RhdGV4LmR3TGVuZ3RoID0gc2l6ZW9mKHN0
YXRleCk7CisgICAgICAgIEdsb2JhbE1lbW9yeVN0YXR1c0V4KCZzdGF0ZXgpOworICAgICAgICBt
X21lbW9yeVNpemVJbkJ5dGVzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRleC51bGxUb3Rh
bFBoeXMpOworICAgIH0KKworICAgIHJldHVybiBtX21lbW9yeVNpemVJbkJ5dGVzOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA4ZTFkMTY0ODVlMDg4ZDIy
NWU3MWVjNmQxYTRmZTdmOWVjOWEwMDVkLi43Yzc5OTVkZjI1NWNjMDJlNmMzZTUzZjkyMzgxMzJm
OWJkYjdkOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUo
Y29va2llU3RvcmFnZURpcmVjdG9yeSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURp
cmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTk1LDYg
KzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViCiAjaWYgUExBVEZPUk0oUVQpCiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDNhMzc2NGQ0NGU3Y2IwOTg2
NTQ0MzA1M2U1ZTJhYWJhZjAwYjNlNTUuLmM3M2RiOGNlNTkwNzNhMzM4MWM3ZDBkNjE1YTA1Zjk2
OGUzZWM4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIxLDYgKzEyMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgU3RyaW5nIGRp
c2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGIwZDVh
YzRiYTc0ZjFiMGYxZTIxMmM1NjU2MmUzMTA2YjhmM2Q1MjguLmM4ZWE4Y2Q4ZDE1MTMxMjNjNDY4
NzllYjU1MGM4NmUzNjFlYTIyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1NywxOCBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0
RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4gc19kYXRhTG9jYXRpb247CiB9CiAKK3N0YXRpYyBT
dHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3RhdGljIFN0cmluZyBz
X2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKKworICAgIGlmICghc19kZWZhdWxEaXNrQ2FjaGVE
aXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gc19kZWZhdWxEaXNrQ2FjaGVEaXJl
Y3Rvcnk7CisKKyAgICBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSA9IFdlYkNvcmU6OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChkZWZhdWx0RGF0YUxvY2F0aW9uKCksICJjYWNoZS8iKTsKKyAg
ICBXZWJDb3JlOjptYWtlQWxsRGlyZWN0b3JpZXMoc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3Rvcnkp
OworICAgIHJldHVybiBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKK30KKwogc3RhdGljIFFT
dHJpbmcgc19kZWZhdWx0RGF0YWJhc2VEaXJlY3Rvcnk7CiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1
bHRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAKQEAgLTY5LDYgKzgxLDggQEAgdm9pZCBXZWJDb250
ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0YXR1
cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdl
RGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2NhdGlvbigpOworICAgIHBhcmFtZXRlcnMuZGlza0Nh
Y2hlRGlyZWN0b3J5ID0gZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpOworCiAjaWYgRU5BQkxF
KEdFT0xPQ0FUSU9OKQogICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0
aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkoKSkpOwogICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9B
UEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSksIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6
cHJvdmlkZXIobG9jYXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2Vi
UHJvY2Vzc1F0LmNwcAppbmRleCBhMmJlYWMxNGJjYmRhYmIxN2IwYWQ1MmM0MjNjYWFlNTA1ZDZm
YjRmLi5lMDY0NzQzMWI0ODhhOGFlN2MyNWQxMjczY2U0NThiODdmMzVjZjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM1LDggKzM2LDEyIEBACiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxR
TmV0d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CisjaW5j
bHVkZSA8UU5ldHdvcmtEaXNrQ2FjaGU+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJRdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVt
b3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1JbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg+CiAKICNpZiBkZWZpbmVkKFFfT1NfTUFDWCkKQEAgLTQ3LDEyICs1MiwzNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBj
b25zdCBpbnQgRGVmYXVsdFBhZ2VDYWNoZUNhcGFjaXR5ID0gMjA7Ci0KLXZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCit2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7Ci0gICAgLy8gRklY
TUU6IHNlZSBidWcgNzM5MTgKLSAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBh
Z2VDYWNoZUNhcGFjaXR5KTsKKyAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9i
amVjdF9jYXN0PFFOZXR3b3JrRGlza0NhY2hlKj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2Fj
aGUoKSk7CisgICAgQVNTRVJUKGRpc2tDYWNoZSk7CisKKyAgICB1aW50NjRfdCBwaHlzaWNhbE1l
bW9yeSA9IFdlYkNvcmU6OnBsYXRmb3JtSW5mbygpLT5tZW1vcnlTaXplKCkgLyAxMDI0IC8gMTAy
NDsKKworICAgIC8vIFRoZSBNYWMgcG9ydCBvZiBXZWJLaXQyIHVzZXMgYSBmdWRnZSBmYWN0b3Ig
b2YgMTAwMCBoZXJlIHRvIGFjY291bnQgZm9yIG1pc2FsaWdubWVudCwgaG93ZXZlciwKKyAgICAv
LyB0aGF0IHRlbmRzIHRvIG92ZXJlc3RpbWF0ZSB0aGUgbWVtb3J5IHF1aXRlIGEgYml0ICgxIGJ5
dGUgbWlzYWxpZ25tZW50IH4gNDggTWlCIG1pc2VzdGltYXRpb24pLgorICAgIC8vIFdlIHVzZSAx
MDI0ICogMTAyMyBmb3Igbm93IHRvIGtlZXAgdGhlIGVzdGltYXRpb24gZXJyb3IgZG93biB0byAr
Ly0gfjEgTWlCLgorICAgIHVpbnQ2NF90IGZyZWVWb2x1bWVTcGFjZSA9IFdlYkNvcmU6OmdldFZv
bHVtZUZyZWVTaXplRm9yUGF0aChkaXNrQ2FjaGUtPmNhY2hlRGlyZWN0b3J5KCkudG9Bc2NpaSgp
LmNvbnN0RGF0YSgpKSAvIDEwMjQgLyAxMDIzOworCisgICAgdW5zaWduZWQgY2FjaGVUb3RhbENh
cGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1pbkRlYWRDYXBhY2l0eSA9IDA7CisgICAg
dW5zaWduZWQgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOworICAgIGRvdWJsZSBkZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsID0gMDsKKyAgICB1bnNpZ25lZCBwYWdlQ2FjaGVDYXBhY2l0
eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMDsKKyAg
ICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMDsKKworICAgIGNhbGN1bGF0
ZUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgcGh5c2ljYWxNZW1vcnksIGZyZWVWb2x1bWVTcGFjZSwK
KyAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVN
YXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsCisgICAgICAg
IHBhZ2VDYWNoZUNhcGFjaXR5LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tD
YXBhY2l0eSk7CisKKyAgICBtZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVh
ZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKKyAg
ICBtZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWRE
ZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOworICAgIHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0
eShwYWdlQ2FjaGVDYXBhY2l0eSk7CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGh5YnJpZCBp
bi1tZW1vcnktIGFuZCBkaXNrLWNhY2hpbmcgYXMgZS5nLiB0aGUgTWFjIHBvcnQgZG9lcy4KKyAg
ICBkaXNrQ2FjaGUtPnNldE1heGltdW1DYWNoZVNpemUoc3RhdGljX2Nhc3Q8cWludDY0Pih1cmxD
YWNoZURpc2tDYXBhY2l0eSkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJS
ZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCkBAIC02OSw2ICs5OCwxMiBAQCBz
dGF0aWMgdm9pZCBwYXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQogewogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIgPSBuZXcgUXROZXR3b3JrQWNjZXNz
TWFuYWdlcih0aGlzKTsKKworICAgIEFTU0VSVCghcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rv
cnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc051bGwoKSk7
CisgICAgUU5ldHdvcmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9IG5ldyBRTmV0d29ya0Rpc2tDYWNo
ZSgpOworICAgIGRpc2tDYWNoZS0+c2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5kaXNrQ2Fj
aGVEaXJlY3RvcnkpOworICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPnNldENhY2hlKGRpc2tD
YWNoZSk7CisKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5p
c0VtcHR5KCkgJiYgIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc051bGwoKSk7
CiAgICAgV2ViQ29yZTo6U2hhcmVkQ29va2llSmFyUXQqIGphciA9IFdlYkNvcmU6OlNoYXJlZENv
b2tpZUphclF0OjpjcmVhdGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKICAg
ICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5zZXRDb29raWVKYXIoamFyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125627</attachid>
            <date>2012-02-06 06:07:03 -0800</date>
            <delta_ts>2012-02-06 06:30:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120206150701.patch</filename>
            <type>text/plain</type>
            <size>23802</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMzdiMzdhMDU4ZjAx
ZDE0YmQ5ZjZhNTVlZDY5NDJlOWRkM2U2OS4uNzA1ZTliYzU2ODYzODk4ZjNjZDUxNDM0MGUzNGE0
ZGZjOGIwNzdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTAyICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChOb3QgYXBwbGljYWJsZSkKKworICAgICAgICBBZGRlZCBPUy1zcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZnJlZSBkaXNrIHNwYWNlIGFu
ZAorICAgICAgICB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSBmb3IgdGhlIFF0IHBvcnQu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8pOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUGxhdGZvcm1JbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9wb3NpeC9Q
bGF0Zm9ybUluZm9QT1NJWC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUluZm86Om1lbW9yeVNpemVJbkJ5dGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Vm9sdW1l
RnJlZVNpemVGb3JQYXRoKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9QbGF0Zm9ybUluZm9XaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjptZW1vcnlTaXplSW5CeXRlcyk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluZm86Om1lbW9yeVNpemVJbkJ5dGVz
KToKKwogMjAxMi0wMi0wNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiBRdCBtaW5pbWFsIGNvbXBpbGF0aW9uIGZpeCBhZnRlciBy
MTA2Nzc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGEwMTljYWVmZTgxMWYzYTcyYWRhYmQ1M2U5Yjk5NGE0ZjRk
NDkwMjcuLmU2NjcwMjgxMjNiMDJiNDJmMTk5MTI4MjBjMmVmZjUxM2UyNmE0NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0wMiAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hh
ZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNl
dCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QgcGFydCBvZiB0aGUg
aW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24KKyAg
ICAgICAgb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktpdCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQg
bWVtb3J5IGFuZCBkaXNrIGNhY2hlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEyLTAyLTA1ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
ODA5NTI1PiBXZWJLaXQy4oCZcyBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UoKSBhbHdheXMgcmV0dXJucyB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjMjRmZjAw
MzM0M2FlYjY3NDdkZDQ1MGNiYmE3NTFmYmM0YTdjN2FkLi4wYzBkZjk0ZWM3NmNmZmNiODhjNTFi
ZGI4Zjk4NjkyNjIyOTkzZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIyMzgsNiArMjIzOCw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBc
CiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9EbnNQcmVmZXRjaEhlbHBlci5oIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oIFwKKyAgICBwbGF0
Zm9ybS9QbGF0Zm9ybUluZm8uaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50Lmgg
XAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oIFwKICAgICBwbGF0Zm9ybS9Qb3B1
cE1lbnUuaCBcCkBAIC0yNzk2LDYgKzI3OTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBcCiAgICAgZWRpdGluZy9xdC9F
ZGl0b3JRdC5jcHAgXAogICAgIHBsYXRmb3JtL0N1cnNvci5jcHAgXAorICAgIHBsYXRmb3JtL1Bs
YXRmb3JtSW5mby5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcCBcCiAgICAg
cGxhdGZvcm0vcXQvQ29udGV4dE1lbnVJdGVtUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9Db250
ZXh0TWVudVF0LmNwcCBcCkBAIC0yODU4LDE1ICsyODYwLDIxIEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HPTEpIHsKIHdpbjMyLSp8d2luY2UqIHsKICAgICBIRUFE
RVJTICs9IHBsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmgKICAgICBTT1VSQ0VTICs9IFwKKyAgICAg
ICAgcGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5jcHAgXAogICAgICAgICBwbGF0Zm9ybS93
aW4vU3lzdGVtSW5mby5jcHAgXAogICAgICAgICBwbGF0Zm9ybS93aW4vU3lzdGVtVGltZVdpbi5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVHJhbnNmb3JtYXRpb25NYXRyaXhX
aW4uY3BwCiB9CiAKLW1hYyB7Ci0gICAgU09VUkNFUyArPSBcCit1bml4IHsKKyAgIG1hYyB7Cisg
ICAgICAgU09VUkNFUyArPSBcCisgICAgICAgIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUluZm9NYWMu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vdGV4dC9jZi9TdHJpbmdDRi5jcHAgXAogICAgICAgICBw
bGF0Zm9ybS90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAKKyAgIH0gZWxzZSB7CisgICAgICAgU09V
UkNFUyArPSBwbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUluZm9QT1NJWC5jcHAKKyAgIH0KIH0KIAog
aGF2ZVF0KDUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCAzM2M2NDNl
NmQ0YzNhMzk5MzU0MWJmMmU4NjQ5NTU4ZGIzMTgxYTNhLi45MzRkMjJjYjIwM2Y4NDI4ZDU2YjAx
MzM0M2Y2ZjA0Yzk4ODJiZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBA
IC0xOTgsNiArMTk4LDggQEAgUmV0YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3Ry
aW5nJik7CiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25zdCBjaGFyKik7CiBTdHJpbmcgZmls
ZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVj
dG9yeVBhdGgoKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCiB1
aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciopOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljZjZl
MzljNjlhOTc2YjQ4ZjA3MmZmMDY5YTA0ZWNhNzk2YWEwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUluZm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybUluZm8q
IHBsYXRmb3JtSW5mbygpCit7CisgICAgc3RhdGljIFBsYXRmb3JtSW5mbyogaW5zdGFuY2UgPSBu
ZXcgUGxhdGZvcm1JbmZvOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworUGxhdGZvcm1JbmZv
OjpQbGF0Zm9ybUluZm8oKQorICAgIDogbV9tZW1vcnlTaXplSW5CeXRlcygwKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZv
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzlhMjg1YzlkYmM5NDY5NTIwYzRjNjk5Y2I1ZDM5ZGZlZGViZGMyZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtSW5mby5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIFBsYXRm
b3JtSW5mb19oCisjZGVmaW5lIFBsYXRmb3JtSW5mb19oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUluZm8gewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtSW5mbyk7CitwdWJsaWM6CisgICAgZnJp
ZW5kIFBsYXRmb3JtSW5mbyogcGxhdGZvcm1JbmZvKCk7CisKKyAgICB1aW50NjRfdCBtZW1vcnlT
aXplSW5CeXRlcygpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtSW5mbygpOworICAgIHVpbnQ2
NF90IG1fbWVtb3J5U2l6ZUluQnl0ZXM7Cit9OworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5m
bygpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQbGF0Zm9ybUluZm9f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MDkzZDUzZmM4OWE2OTBlMmM2N2VkN2UzMGU4YTE5NmFkZTc4MGExCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01h
Yy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisjaW5jbHVkZSA8ZGlz
cGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDxtYWNoL2hvc3RfaW5mby5oPgorI2luY2x1ZGUg
PG1hY2gvbWFjaC5oPgorI2luY2x1ZGUgPG1hY2gvbWFjaF9lcnJvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6bWVtb3J5U2l6ZUluQnl0ZXMoKQor
eworICAgIGlmICghbV9tZW1vcnlTaXplSW5CeXRlcykgeworICAgICAgICBob3N0X2Jhc2ljX2lu
Zm9fZGF0YV90IGhvc3RJbmZvOworICAgICAgICBtYWNoX3BvcnRfdCBob3N0ID0gbWFjaF9ob3N0
X3NlbGYoKTsKKyAgICAgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IEhPU1RfQkFT
SUNfSU5GT19DT1VOVDsKKyAgICAgICAga2Vybl9yZXR1cm5fdCByID0gaG9zdF9pbmZvKGhvc3Qs
IEhPU1RfQkFTSUNfSU5GTywgKGhvc3RfaW5mb190KSZob3N0SW5mbywgJmNvdW50KTsKKyAgICAg
ICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgaG9zdCk7CisKKyAgICAg
ICAgaWYgKHIgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICAgICAgbV9tZW1vcnlTaXplSW5CeXRl
cyA9IGhvc3RJbmZvLm1heF9tZW07CisgICAgfQorCisgICAgcmV0dXJuIG1fbWVtb3J5U2l6ZUlu
Qnl0ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvUGxhdGZvcm1JbmZvUE9TSVguY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNl
YmY0MDJlMDBiMDNjODc5Zjg4OWVjN2YyY2M5ZTJmNTFhN2E3NGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUluZm9QT1NJWC5jcHAKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxhdGZvcm1JbmZvOjptZW1vcnlTaXpl
SW5CeXRlcygpCit7CisgICAgaWYgKCFtX21lbW9yeVNpemVJbkJ5dGVzKSB7CisgICAgICAgIGxv
bmcgcGFnZVNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxvbmcgbnVtYmVy
T2ZQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOworCisgICAgICAgIGlmIChwYWdlU2l6
ZSA+IDAgJiYgbnVtYmVyT2ZQYWdlcyA+IDApCisgICAgICAgICAgICBtX21lbW9yeVNpemVJbkJ5
dGVzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSAqIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihudW1iZXJPZlBhZ2VzKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9tZW1vcnlTaXplSW5C
eXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAppbmRleCAzMjY0NGQxNzhiYmQ2ZTJjOWUwZWJhM2Vl
MTRjNTQzOGYyYzc0YjFkLi5hNjg5NmUxZDVlNjUyNDFkMmVmMDFlOTU3ODE5Yjc2NDFhZjlkZGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxRRmlsZT4KICNpbmNsdWRlIDxRRmlsZUluZm8+CiAjaW5j
bHVkZSA8UVRlbXBvcmFyeUZpbGU+CisjaW5jbHVkZSA8c3lzL3N0YXR2ZnMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE5MCw2ICsx
OTEsMjMgQEAgbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxv
bmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luIG8KICAgICByZXR1cm4gLTE7CiB9CiAKK3Vp
bnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKQoreworI2lm
IGRlZmluZWQoUV9PU19XSU4pCisgICAgVUxBUkdFX0lOVEVHRVIgZnJlZUJ5dGVzVG9DYWxsZXI7
CisgICAgQk9PTCByZXN1bHQgPSBHZXREaXNrRnJlZVNwYWNlRXhXKChMUENXU1RSKXBhdGgsICZm
cmVlQnl0ZXNUb0NhbGxlciwgMCwgMCk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD5mcmVlQnl0ZXNUb0NhbGxlci5R
dWFkUGFydDsKKyNlbHNlCisgICAgc3RydWN0IHN0YXR2ZnMgdm9sdW1lSW5mbzsKKyAgICBpZiAo
c3RhdHZmcyhwYXRoLCAmdm9sdW1lSW5mbykpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfYmF2YWlsKSAqIHN0YXRpY19j
YXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfZnJzaXplKTsKKyNlbmRpZgorfQorCiBpbnQgd3Jp
dGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50
IGxlbmd0aCkKIHsKICAgICBpZiAoaGFuZGxlICYmIGhhbmRsZS0+ZXhpc3RzKCkgJiYgaGFuZGxl
LT5pc1dyaXRhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGxhdGZvcm1JbmZvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9y
bUluZm9XaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0OTc5ZjQ0ZjVkODhjMThkMDg2M2YxYTc2ZDEyYTVi
NjY2NThkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGxhdGZvcm1JbmZvV2luLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbmZvLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWludDY0X3QgUGxhdGZvcm1JbmZvOjptZW1vcnlTaXpl
SW5CeXRlcygpCit7CisgICAgaWYgKCFtX21lbW9yeVNpemVJbkJ5dGVzKSB7CisgICAgICAgIE1F
TU9SWVNUQVRVU0VYIHN0YXRleDsKKyAgICAgICAgc3RhdGV4LmR3TGVuZ3RoID0gc2l6ZW9mKHN0
YXRleCk7CisgICAgICAgIEdsb2JhbE1lbW9yeVN0YXR1c0V4KCZzdGF0ZXgpOworICAgICAgICBt
X21lbW9yeVNpemVJbkJ5dGVzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRleC51bGxUb3Rh
bFBoeXMpOworICAgIH0KKworICAgIHJldHVybiBtX21lbW9yeVNpemVJbkJ5dGVzOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA4ZTFkMTY0ODVlMDg4ZDIy
NWU3MWVjNmQxYTRmZTdmOWVjOWEwMDVkLi43Yzc5OTVkZjI1NWNjMDJlNmMzZTUzZjkyMzgxMzJm
OWJkYjdkOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05OCw2ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUo
Y29va2llU3RvcmFnZURpcmVjdG9yeSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURp
cmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTk1LDYg
KzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViCiAjaWYgUExBVEZPUk0oUVQpCiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDNhMzc2NGQ0NGU3Y2IwOTg2
NTQ0MzA1M2U1ZTJhYWJhZjAwYjNlNTUuLmM3M2RiOGNlNTkwNzNhMzM4MWM3ZDBkNjE1YTA1Zjk2
OGUzZWM4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIxLDYgKzEyMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgU3RyaW5nIGRp
c2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGIwZDVh
YzRiYTc0ZjFiMGYxZTIxMmM1NjU2MmUzMTA2YjhmM2Q1MjguLmM4ZWE4Y2Q4ZDE1MTMxMjNjNDY4
NzllYjU1MGM4NmUzNjFlYTIyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1NywxOCBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0
RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4gc19kYXRhTG9jYXRpb247CiB9CiAKK3N0YXRpYyBT
dHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3RhdGljIFN0cmluZyBz
X2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKKworICAgIGlmICghc19kZWZhdWxEaXNrQ2FjaGVE
aXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gc19kZWZhdWxEaXNrQ2FjaGVEaXJl
Y3Rvcnk7CisKKyAgICBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeSA9IFdlYkNvcmU6OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChkZWZhdWx0RGF0YUxvY2F0aW9uKCksICJjYWNoZS8iKTsKKyAg
ICBXZWJDb3JlOjptYWtlQWxsRGlyZWN0b3JpZXMoc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3Rvcnkp
OworICAgIHJldHVybiBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsKK30KKwogc3RhdGljIFFT
dHJpbmcgc19kZWZhdWx0RGF0YWJhc2VEaXJlY3Rvcnk7CiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1
bHRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAKQEAgLTY5LDYgKzgxLDggQEAgdm9pZCBXZWJDb250
ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0YXR1
cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdl
RGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2NhdGlvbigpOworICAgIHBhcmFtZXRlcnMuZGlza0Nh
Y2hlRGlyZWN0b3J5ID0gZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpOworCiAjaWYgRU5BQkxF
KEdFT0xPQ0FUSU9OKQogICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0
aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkoKSkpOwogICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9B
UEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSksIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6
cHJvdmlkZXIobG9jYXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2Vi
UHJvY2Vzc1F0LmNwcAppbmRleCBhMmJlYWMxNGJjYmRhYmIxN2IwYWQ1MmM0MjNjYWFlNTA1ZDZm
YjRmLi5iZjQ5ZTJmN2QyYjdkYjgwZGU2NTQ1YjBkMDY5MWQwMjEzY2IxZTE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM1LDggKzM2LDEyIEBACiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxR
TmV0d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CisjaW5j
bHVkZSA8UU5ldHdvcmtEaXNrQ2FjaGU+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJRdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVt
b3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1JbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg+CiAKICNpZiBkZWZpbmVkKFFfT1NfTUFDWCkKQEAgLTQ3LDEyICs1MiwzNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBj
b25zdCBpbnQgRGVmYXVsdFBhZ2VDYWNoZUNhcGFjaXR5ID0gMjA7Ci0KLXZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCit2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7Ci0gICAgLy8gRklY
TUU6IHNlZSBidWcgNzM5MTgKLSAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBh
Z2VDYWNoZUNhcGFjaXR5KTsKKyAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9i
amVjdF9jYXN0PFFOZXR3b3JrRGlza0NhY2hlKj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2Fj
aGUoKSk7CisgICAgQVNTRVJUKGRpc2tDYWNoZSk7CisKKyAgICBBU1NFUlQoV2ViQ29yZTo6cGxh
dGZvcm1JbmZvKCkpOworICAgIHVpbnQ2NF90IHBoeXNpY2FsTWVtb3J5ID0gV2ViQ29yZTo6cGxh
dGZvcm1JbmZvKCktPm1lbW9yeVNpemVJbkJ5dGVzKCkgLyAxMDI0IC8gMTAyNDsKKworICAgIC8v
IFRoZSBNYWMgcG9ydCBvZiBXZWJLaXQyIHVzZXMgYSBmdWRnZSBmYWN0b3Igb2YgMTAwMCBoZXJl
IHRvIGFjY291bnQgZm9yIG1pc2FsaWdubWVudCwgaG93ZXZlciwKKyAgICAvLyB0aGF0IHRlbmRz
IHRvIG92ZXJlc3RpbWF0ZSB0aGUgbWVtb3J5IHF1aXRlIGEgYml0ICgxIGJ5dGUgbWlzYWxpZ25t
ZW50IH4gNDggTWlCIG1pc2VzdGltYXRpb24pLgorICAgIC8vIFdlIHVzZSAxMDI0ICogMTAyMyBm
b3Igbm93IHRvIGtlZXAgdGhlIGVzdGltYXRpb24gZXJyb3IgZG93biB0byArLy0gfjEgTWlCLgor
ICAgIHVpbnQ2NF90IGZyZWVWb2x1bWVTcGFjZSA9IFdlYkNvcmU6OmdldFZvbHVtZUZyZWVTaXpl
Rm9yUGF0aChkaXNrQ2FjaGUtPmNhY2hlRGlyZWN0b3J5KCkudG9Bc2NpaSgpLmNvbnN0RGF0YSgp
KSAvIDEwMjQgLyAxMDIzOworCisgICAgdW5zaWduZWQgY2FjaGVUb3RhbENhcGFjaXR5ID0gMDsK
KyAgICB1bnNpZ25lZCBjYWNoZU1pbkRlYWRDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgY2Fj
aGVNYXhEZWFkQ2FwYWNpdHkgPSAwOworICAgIGRvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlv
bkludGVydmFsID0gMDsKKyAgICB1bnNpZ25lZCBwYWdlQ2FjaGVDYXBhY2l0eSA9IDA7CisgICAg
dW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBs
b25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMDsKKworICAgIGNhbGN1bGF0ZUNhY2hlU2l6ZXMo
Y2FjaGVNb2RlbCwgcGh5c2ljYWxNZW1vcnksIGZyZWVWb2x1bWVTcGFjZSwKKyAgICAgICAgY2Fj
aGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNp
dHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsCisgICAgICAgIHBhZ2VDYWNoZUNh
cGFjaXR5LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CisK
KyAgICBtZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBj
YWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKKyAgICBtZW1vcnlDYWNo
ZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwpOworICAgIHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShwYWdlQ2FjaGVD
YXBhY2l0eSk7CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGh5YnJpZCBpbi1tZW1vcnktIGFu
ZCBkaXNrLWNhY2hpbmcgYXMgZS5nLiB0aGUgTWFjIHBvcnQgZG9lcy4KKyAgICBkaXNrQ2FjaGUt
PnNldE1heGltdW1DYWNoZVNpemUoc3RhdGljX2Nhc3Q8cWludDY0Pih1cmxDYWNoZURpc2tDYXBh
Y2l0eSkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hl
cyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCkBAIC02OSw2ICs5OSwxMiBAQCBzdGF0aWMgdm9pZCBw
YXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAg
IG1fbmV0d29ya0FjY2Vzc01hbmFnZXIgPSBuZXcgUXROZXR3b3JrQWNjZXNzTWFuYWdlcih0aGlz
KTsKKworICAgIEFTU0VSVCghcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgp
ICYmICFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc051bGwoKSk7CisgICAgUU5ldHdv
cmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9IG5ldyBRTmV0d29ya0Rpc2tDYWNoZSgpOworICAgIGRp
c2tDYWNoZS0+c2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnkp
OworICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPnNldENhY2hlKGRpc2tDYWNoZSk7CisKICAg
ICBBU1NFUlQoIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYg
IXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc051bGwoKSk7CiAgICAgV2ViQ29y
ZTo6U2hhcmVkQ29va2llSmFyUXQqIGphciA9IFdlYkNvcmU6OlNoYXJlZENvb2tpZUphclF0Ojpj
cmVhdGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBtX25ldHdvcmtB
Y2Nlc3NNYW5hZ2VyLT5zZXRDb29raWVKYXIoamFyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125629</attachid>
            <date>2012-02-06 06:30:43 -0800</date>
            <delta_ts>2012-02-06 07:21:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120206153041.patch</filename>
            <type>text/plain</type>
            <size>23954</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMzdiMzdhMDU4ZjAx
ZDE0YmQ5ZjZhNTVlZDY5NDJlOWRkM2U2OS4uMzNhYjAxM2Q5MzJiOWUzNDI5MTgxN2YyOGNlMTFi
MDk5YTYzY2QyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTAyICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChOb3QgYXBwbGljYWJsZSkKKworICAgICAgICBBZGRlZCBPUy1zcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZnJlZSBkaXNrIHNwYWNlIGFu
ZAorICAgICAgICB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSBmb3IgdGhlIFF0IHBvcnQu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8pOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUGxhdGZvcm1JbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9wb3NpeC9Q
bGF0Zm9ybUluZm9QT1NJWC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUluZm86OnBoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluZm86OnBoeXNpY2FsTWVtb3J5U2l6ZUlu
Qnl0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUluZm9NYWMuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjpw
aHlzaWNhbE1lbW9yeVNpemVJbkJ5dGVzKToKKwogMjAxMi0wMi0wNiAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBRdCBtaW5pbWFs
IGNvbXBpbGF0aW9uIGZpeCBhZnRlciByMTA2Nzc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGEwMTljYWVmZTgx
MWYzYTcyYWRhYmQ1M2U5Yjk5NGE0ZjRkNDkwMjcuLmU2NjcwMjgxMjNiMDJiNDJmMTk5MTI4MjBj
MmVmZjUxM2UyNmE0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0wMiAg
TWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisKKyAgICAgICAg
W1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJy
ZW50IENhY2hlTW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFy
ZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktp
dCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQgbWVtb3J5IGFuZCBkaXNrIGNhY2hlLgorCisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorCiAyMDEyLTAyLTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwODA5NTI1PiBXZWJLaXQy4oCZcyBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSBhbHdheXMgcmV0dXJucyB0cnVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQppbmRleCBjMjRmZjAwMzM0M2FlYjY3NDdkZDQ1MGNiYmE3NTFmYmM0YTdjN2Fk
Li4wYzBkZjk0ZWM3NmNmZmNiODhjNTFiZGI4Zjk4NjkyNjIyOTkzZWMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
QEAgLTIyMzgsNiArMjIzOCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9EbnNQcmVm
ZXRjaEhlbHBlci5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZS5oIFwKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluZm8uaCBcCiAgICAgcGxhdGZv
cm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2lu
dC5oIFwKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCkBAIC0yNzk2LDYgKzI3OTcsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmNwcCBcCiAgICAgZWRpdGluZy9xdC9FZGl0b3JRdC5jcHAgXAogICAgIHBsYXRmb3JtL0N1cnNv
ci5jcHAgXAorICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAgXAogICAgIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvQ29udGV4dE1lbnVJdGVtUXQuY3Bw
IFwKICAgICBwbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcCBcCkBAIC0yODU4LDE1ICsyODYw
LDIxIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HPTEpIHsKIHdp
bjMyLSp8d2luY2UqIHsKICAgICBIRUFERVJTICs9IHBsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmgK
ICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgcGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS93aW4vU3lzdGVtSW5mby5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS93aW4vU3lzdGVtVGltZVdpbi5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vVHJhbnNmb3JtYXRpb25NYXRyaXhXaW4uY3BwCiB9CiAKLW1hYyB7Ci0gICAgU09VUkNFUyAr
PSBcCit1bml4IHsKKyAgIG1hYyB7CisgICAgICAgU09VUkNFUyArPSBcCisgICAgICAgIHBsYXRm
b3JtL21hYy9QbGF0Zm9ybUluZm9NYWMuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vdGV4dC9jZi9T
dHJpbmdDRi5jcHAgXAogICAgICAgICBwbGF0Zm9ybS90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAK
KyAgIH0gZWxzZSB7CisgICAgICAgU09VUkNFUyArPSBwbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUlu
Zm9QT1NJWC5jcHAKKyAgIH0KIH0KIAogaGF2ZVF0KDUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uaAppbmRleCAzM2M2NDNlNmQ0YzNhMzk5MzU0MWJmMmU4NjQ5NTU4ZGIzMTgxYTNh
Li45MzRkMjJjYjIwM2Y4NDI4ZDU2YjAxMzM0M2Y2ZjA0Yzk4ODJiZDRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNiArMTk4LDggQEAgUmV0YWluUHRyPENGVVJM
UmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhj
b25zdCBjaGFyKik7CiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwog
Q1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oUVQpCiB1aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgo
Y29uc3QgY2hhciopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUlu
Zm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgyZDVkYjEzNDNmMzJlNTlhZjQzN2U5MGVhYmI5ODA2ODdhMjEy
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUlu
Zm8uY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUluZm8uaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5mbygpCit7CisgICAgc3RhdGljIFBs
YXRmb3JtSW5mbyogaW5zdGFuY2UgPSBuZXcgUGxhdGZvcm1JbmZvOworICAgIHJldHVybiBpbnN0
YW5jZTsKK30KKworUGxhdGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8oKQorICAgIDogbV9waHlzaWNh
bE1lbW9yeVNpemVJbkJ5dGVzKDApCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDc5NDZjM2Qy
Y2UzOTM0Y2Y3OTM3M2IyYWQ4ZmNkOWM0NmZmMDc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgUGxhdGZvcm1JbmZvX2gKKyNkZWZpbmUgUGxhdGZv
cm1JbmZvX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFBsYXRmb3JtSW5mbyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
UGxhdGZvcm1JbmZvKTsKK3B1YmxpYzoKKyAgICBmcmllbmQgUGxhdGZvcm1JbmZvKiBwbGF0Zm9y
bUluZm8oKTsKKworICAgIHVpbnQ2NF90IHBoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMoKTsKKwor
cHJpdmF0ZToKKyAgICBQbGF0Zm9ybUluZm8oKTsKKyAgICB1aW50NjRfdCBtX3BoeXNpY2FsTWVt
b3J5U2l6ZUluQnl0ZXM7Cit9OworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5mbygpOworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQbGF0Zm9ybUluZm9faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MGUzYWRmZTBmODI2NmU1YjExMGVkNDc4MjkwOTMwNTEyODQzMGQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlz
cGF0Y2guaD4KKyNpbmNsdWRlIDxtYWNoL2hvc3RfaW5mby5oPgorI2luY2x1ZGUgPG1hY2gvbWFj
aC5oPgorI2luY2x1ZGUgPG1hY2gvbWFjaF9lcnJvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6cGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlcygpCit7
CisgICAgaWYgKCFtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgaG9zdF9i
YXNpY19pbmZvX2RhdGFfdCBob3N0SW5mbzsKKyAgICAgICAgbWFjaF9wb3J0X3QgaG9zdCA9IG1h
Y2hfaG9zdF9zZWxmKCk7CisgICAgICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgY291bnQgPSBI
T1NUX0JBU0lDX0lORk9fQ09VTlQ7CisgICAgICAgIGtlcm5fcmV0dXJuX3QgciA9IGhvc3RfaW5m
byhob3N0LCBIT1NUX0JBU0lDX0lORk8sIChob3N0X2luZm9fdCkmaG9zdEluZm8sICZjb3VudCk7
CisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGhvc3QpOwor
CisgICAgICAgIGlmIChyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgICAgIG1fcGh5c2ljYWxN
ZW1vcnlTaXplSW5CeXRlcyA9IGhvc3RJbmZvLm1heF9tZW07CisgICAgfQorCisgICAgcmV0dXJu
IG1fcGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUlu
Zm9QT1NJWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUluZm9Q
T1NJWC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5N2IwMGNlNjQwMzRmNDY0NGEzMjkxZTAzYzdkNjM5NjYz
YWQ0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1Bs
YXRmb3JtSW5mb1BPU0lYLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbmZvLmgiCisK
KyNpbmNsdWRlIDx1bmlzdGQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1aW50NjRfdCBQ
bGF0Zm9ybUluZm86OnBoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMoKQoreworICAgIGlmICghbV9w
aHlzaWNhbE1lbW9yeVNpemVJbkJ5dGVzKSB7CisgICAgICAgIGxvbmcgcGFnZVNpemUgPSBzeXNj
b25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxvbmcgbnVtYmVyT2ZQYWdlcyA9IHN5c2NvbmYo
X1NDX1BIWVNfUEFHRVMpOworCisgICAgICAgIGlmIChwYWdlU2l6ZSA+IDAgJiYgbnVtYmVyT2ZQ
YWdlcyA+IDApCisgICAgICAgICAgICBtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG51bWJl
ck9mUGFnZXMpOworICAgIH0KKworICAgIHJldHVybiBtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0
ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKaW5kZXggMzI2NDRkMTc4YmJkNmUyYzllMGViYTNlZTE0
YzU0MzhmMmM3NGIxZC4uYTY4OTZlMWQ1ZTY1MjQxZDJlZjAxZTk1NzgxOWI3NjQxYWY5ZGRlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSA8UUZpbGU+CiAjaW5jbHVkZSA8UUZpbGVJbmZvPgogI2luY2x1
ZGUgPFFUZW1wb3JhcnlGaWxlPgorI2luY2x1ZGUgPHN5cy9zdGF0dmZzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTAsNiArMTkx
LDIzIEBAIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25n
IGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbiBvCiAgICAgcmV0dXJuIC0xOwogfQogCit1aW50
NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkKK3sKKyNpZiBk
ZWZpbmVkKFFfT1NfV0lOKQorICAgIFVMQVJHRV9JTlRFR0VSIGZyZWVCeXRlc1RvQ2FsbGVyOwor
ICAgIEJPT0wgcmVzdWx0ID0gR2V0RGlza0ZyZWVTcGFjZUV4VygoTFBDV1NUUilwYXRoLCAmZnJl
ZUJ5dGVzVG9DYWxsZXIsIDAsIDApOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+ZnJlZUJ5dGVzVG9DYWxsZXIuUXVh
ZFBhcnQ7CisjZWxzZQorICAgIHN0cnVjdCBzdGF0dmZzIHZvbHVtZUluZm87CisgICAgaWYgKHN0
YXR2ZnMocGF0aCwgJnZvbHVtZUluZm8pKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1aW50NjRfdD4odm9sdW1lSW5mby5mX2JhdmFpbCkgKiBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4odm9sdW1lSW5mby5mX2Zyc2l6ZSk7CisjZW5kaWYKK30KKwogaW50IHdyaXRl
VG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgpCiB7CiAgICAgaWYgKGhhbmRsZSAmJiBoYW5kbGUtPmV4aXN0cygpICYmIGhhbmRsZS0+
aXNXcml0YWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtSW5mb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1J
bmZvV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTRkM2NmNWU4M2NkYjVjZTI4ODBjNWUzMjg5YzI4NGZm
NDljOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtSW5mb1dpbi5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6cGh5c2ljYWxNZW1v
cnlTaXplSW5CeXRlcygpCit7CisgICAgaWYgKCFtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMp
IHsKKyAgICAgICAgTUVNT1JZU1RBVFVTRVggc3RhdGV4OworICAgICAgICBzdGF0ZXguZHdMZW5n
dGggPSBzaXplb2Yoc3RhdGV4KTsKKyAgICAgICAgR2xvYmFsTWVtb3J5U3RhdHVzRXgoJnN0YXRl
eCk7CisgICAgICAgIG1fcGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlcyA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihzdGF0ZXgudWxsVG90YWxQaHlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9waHlz
aWNhbE1lbW9yeVNpemVJbkJ5dGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAppbmRleCA4ZTFkMTY0ODVlMDg4ZDIyNWU3MWVjNmQxYTRmZTdmOWVjOWEwMDVkLi43
Yzc5OTVkZjI1NWNjMDJlNmMzZTUzZjkyMzgxMzJmOWJkYjdkOTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC05OCw2ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUoY29va2llU3RvcmFnZURpcmVjdG9yeSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTk1LDYgKzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1l
dGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDNhMzc2NGQ0NGU3Y2IwOTg2NTQ0MzA1M2U1ZTJhYWJhZjAwYjNlNTUuLmM3
M2RiOGNlNTkwNzNhMzM4MWM3ZDBkNjE1YTA1Zjk2OGUzZWM4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIx
LDYgKzEyMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRp
ZiAvLyBQTEFURk9STShXSU4pCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0
b3JhZ2VEaXJlY3Rvcnk7CisgICAgU3RyaW5nIGRpc2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGIwZDVhYzRiYTc0ZjFiMGYxZTIxMmM1NjU2MmUzMTA2
YjhmM2Q1MjguLmM4ZWE4Y2Q4ZDE1MTMxMjNjNDY4NzllYjU1MGM4NmUzNjFlYTIyNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1
NywxOCBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4g
c19kYXRhTG9jYXRpb247CiB9CiAKK3N0YXRpYyBTdHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVj
dG9yeSgpCit7CisgICAgc3RhdGljIFN0cmluZyBzX2RlZmF1bERpc2tDYWNoZURpcmVjdG9yeTsK
KworICAgIGlmICghc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bERpc2tD
YWNoZURpcmVjdG9yeSA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkZWZhdWx0
RGF0YUxvY2F0aW9uKCksICJjYWNoZS8iKTsKKyAgICBXZWJDb3JlOjptYWtlQWxsRGlyZWN0b3Jp
ZXMoc19kZWZhdWxEaXNrQ2FjaGVEaXJlY3RvcnkpOworICAgIHJldHVybiBzX2RlZmF1bERpc2tD
YWNoZURpcmVjdG9yeTsKK30KKwogc3RhdGljIFFTdHJpbmcgc19kZWZhdWx0RGF0YWJhc2VEaXJl
Y3Rvcnk7CiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAK
QEAgLTY5LDYgKzgxLDggQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0
ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7
CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2Nh
dGlvbigpOworICAgIHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5ID0gZGVmYXVsdERpc2tD
YWNoZURpcmVjdG9yeSgpOworCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHN0YXRpYyBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOwogICAgIFdLR2Vv
bG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHko
KSksIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRleCBhMmJlYWMx
NGJjYmRhYmIxN2IwYWQ1MmM0MjNjYWFlNTA1ZDZmYjRmLi4wYTlmNjNjZDc2YzViMTQ2OWUxYWQ5
NDA3NjIwZmYzZDU4ZDgyMTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9X
ZWJQcm9jZXNzUXQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDggKzM2LDEyIEBACiAjaW5jbHVkZSA8
UUNvcmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5j
bHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CisjaW5jbHVkZSA8UU5ldHdvcmtEaXNrQ2FjaGU+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJRdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5
c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1JbmZvLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAKICNpZiBkZWZpbmVkKFFf
T1NfTUFDWCkKQEAgLTQ3LDEyICs1MiwzNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25zdCBpbnQgRGVmYXVsdFBhZ2VDYWNoZUNh
cGFjaXR5ID0gMjA7Ci0KLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1v
ZGVsIGNhY2hlTW9kZWwpCiB7Ci0gICAgLy8gRklYTUU6IHNlZSBidWcgNzM5MTgKLSAgICBwYWdl
Q2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBhZ2VDYWNoZUNhcGFjaXR5KTsKKyAgICBRTmV0
d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9iamVjdF9jYXN0PFFOZXR3b3JrRGlza0NhY2hl
Kj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2FjaGUoKSk7CisgICAgQVNTRVJUKGRpc2tDYWNo
ZSk7CisKKyAgICBBU1NFUlQoV2ViQ29yZTo6cGxhdGZvcm1JbmZvKCkpOworICAgIHVpbnQ2NF90
IHBoeXNpY2FsTWVtb3J5ID0gV2ViQ29yZTo6cGxhdGZvcm1JbmZvKCktPnBoeXNpY2FsTWVtb3J5
U2l6ZUluQnl0ZXMoKSAvIDEwMjQgLyAxMDI0OworCisgICAgLy8gVGhlIE1hYyBwb3J0IG9mIFdl
YktpdDIgdXNlcyBhIGZ1ZGdlIGZhY3RvciBvZiAxMDAwIGhlcmUgdG8gYWNjb3VudCBmb3IgbWlz
YWxpZ25tZW50LCBob3dldmVyLAorICAgIC8vIHRoYXQgdGVuZHMgdG8gb3ZlcmVzdGltYXRlIHRo
ZSBtZW1vcnkgcXVpdGUgYSBiaXQgKDEgYnl0ZSBtaXNhbGlnbm1lbnQgfiA0OCBNaUIgbWlzZXN0
aW1hdGlvbikuCisgICAgLy8gV2UgdXNlIDEwMjQgKiAxMDIzIGZvciBub3cgdG8ga2VlcCB0aGUg
ZXN0aW1hdGlvbiBlcnJvciBkb3duIHRvICsvLSB+MSBNaUIuCisgICAgdWludDY0X3QgZnJlZVZv
bHVtZVNwYWNlID0gV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGRpc2tDYWNoZS0+
Y2FjaGVEaXJlY3RvcnkoKS50b0FzY2lpKCkuY29uc3REYXRhKCkpIC8gMTAyNCAvIDEwMjM7CisK
KyAgICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGNhY2hl
TWluRGVhZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9
IDA7CisgICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOworICAg
IHVuc2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENh
Y2hlTWVtb3J5Q2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVEaXNrQ2Fw
YWNpdHkgPSAwOworCisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBwaHlzaWNh
bE1lbW9yeSwgZnJlZVZvbHVtZVNwYWNlLAorICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNh
Y2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRh
RGVsZXRpb25JbnRlcnZhbCwKKyAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENhY2hlTWVt
b3J5Q2FwYWNpdHksIHVybENhY2hlRGlza0NhcGFjaXR5KTsKKworICAgIG1lbW9yeUNhY2hlKCkt
PnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5
LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOworICAgIG1lbW9yeUNhY2hlKCktPnNldERlYWREZWNvZGVk
RGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7Cisg
ICAgcGFnZUNhY2hlKCktPnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKKworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgaHlicmlkIGluLW1lbW9yeS0gYW5kIGRpc2stY2FjaGluZyBhcyBl
LmcuIHRoZSBNYWMgcG9ydCBkb2VzLgorICAgIGRpc2tDYWNoZS0+c2V0TWF4aW11bUNhY2hlU2l6
ZShzdGF0aWNfY2FzdDxxaW50NjQ+KHVybENhY2hlRGlza0NhcGFjaXR5KSk7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9D
bGVhcikKQEAgLTY5LDYgKzk5LDEyIEBAIHN0YXRpYyB2b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2Fs
bGJhY2sodm9pZCopCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFu
YWdlciA9IG5ldyBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKHRoaXMpOworCisgICAgQVNTRVJUKCFw
YXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYgIXBhcmFtZXRlcnMuZGlz
a0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgpKTsKKyAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0Nh
Y2hlID0gbmV3IFFOZXR3b3JrRGlza0NhY2hlKCk7CisgICAgZGlza0NhY2hlLT5zZXRDYWNoZURp
cmVjdG9yeShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgbV9uZXR3b3JrQWNj
ZXNzTWFuYWdlci0+c2V0Q2FjaGUoZGlza0NhY2hlKTsKKwogICAgIEFTU0VSVCghcGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlRGlyZWN0b3J5LmlzTnVsbCgpKTsKICAgICBXZWJDb3JlOjpTaGFyZWRDb29raWVKYXJR
dCogamFyID0gV2ViQ29yZTo6U2hhcmVkQ29va2llSmFyUXQ6OmNyZWF0ZShwYXJhbWV0ZXJzLmNv
b2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPnNldENv
b2tpZUphcihqYXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125640</attachid>
            <date>2012-02-06 07:21:22 -0800</date>
            <delta_ts>2012-02-06 09:04:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120206162121.patch</filename>
            <type>text/plain</type>
            <size>24201</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMzdiMzdhMDU4ZjAx
ZDE0YmQ5ZjZhNTVlZDY5NDJlOWRkM2U2OS4uMzNhYjAxM2Q5MzJiOWUzNDI5MTgxN2YyOGNlMTFi
MDk5YTYzY2QyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTAyICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChOb3QgYXBwbGljYWJsZSkKKworICAgICAgICBBZGRlZCBPUy1zcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZnJlZSBkaXNrIHNwYWNlIGFu
ZAorICAgICAgICB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSBmb3IgdGhlIFF0IHBvcnQu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8pOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUGxhdGZvcm1JbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9wb3NpeC9Q
bGF0Zm9ybUluZm9QT1NJWC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUluZm86OnBoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUluZm86OnBoeXNpY2FsTWVtb3J5U2l6ZUlu
Qnl0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUluZm9NYWMuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1JbmZvOjpw
aHlzaWNhbE1lbW9yeVNpemVJbkJ5dGVzKToKKwogMjAxMi0wMi0wNiAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBRdCBtaW5pbWFs
IGNvbXBpbGF0aW9uIGZpeCBhZnRlciByMTA2Nzc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGEwMTljYWVmZTgx
MWYzYTcyYWRhYmQ1M2U5Yjk5NGE0ZjRkNDkwMjcuLmU2NjcwMjgxMjNiMDJiNDJmMTk5MTI4MjBj
MmVmZjUxM2UyNmE0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0wMiAg
TWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CisKKyAgICAgICAg
W1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBjdXJy
ZW50IENhY2hlTW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXBzIGFy
ZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgdGhlIEFQSSBmb3IgdGhlIFF0IFdlYktp
dCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQgbWVtb3J5IGFuZCBkaXNrIGNhY2hlLgorCisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorCiAyMDEyLTAyLTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwODA5NTI1PiBXZWJLaXQy4oCZcyBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSBhbHdheXMgcmV0dXJucyB0cnVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQppbmRleCBjMjRmZjAwMzM0M2FlYjY3NDdkZDQ1MGNiYmE3NTFmYmM0YTdjN2Fk
Li4wYzBkZjk0ZWM3NmNmZmNiODhjNTFiZGI4Zjk4NjkyNjIyOTkzZWMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
QEAgLTIyMzgsNiArMjIzOCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9xdC9EbnNQcmVm
ZXRjaEhlbHBlci5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZS5oIFwKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybUluZm8uaCBcCiAgICAgcGxhdGZv
cm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2lu
dC5oIFwKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCkBAIC0yNzk2LDYgKzI3OTcsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmNwcCBcCiAgICAgZWRpdGluZy9xdC9FZGl0b3JRdC5jcHAgXAogICAgIHBsYXRmb3JtL0N1cnNv
ci5jcHAgXAorICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5mby5jcHAgXAogICAgIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvQ29udGV4dE1lbnVJdGVtUXQuY3Bw
IFwKICAgICBwbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcCBcCkBAIC0yODU4LDE1ICsyODYw
LDIxIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HPTEpIHsKIHdp
bjMyLSp8d2luY2UqIHsKICAgICBIRUFERVJTICs9IHBsYXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmgK
ICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgcGxhdGZvcm0vd2luL1BsYXRmb3JtSW5mb1dpbi5j
cHAgXAogICAgICAgICBwbGF0Zm9ybS93aW4vU3lzdGVtSW5mby5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS93aW4vU3lzdGVtVGltZVdpbi5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vVHJhbnNmb3JtYXRpb25NYXRyaXhXaW4uY3BwCiB9CiAKLW1hYyB7Ci0gICAgU09VUkNFUyAr
PSBcCit1bml4IHsKKyAgIG1hYyB7CisgICAgICAgU09VUkNFUyArPSBcCisgICAgICAgIHBsYXRm
b3JtL21hYy9QbGF0Zm9ybUluZm9NYWMuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vdGV4dC9jZi9T
dHJpbmdDRi5jcHAgXAogICAgICAgICBwbGF0Zm9ybS90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAK
KyAgIH0gZWxzZSB7CisgICAgICAgU09VUkNFUyArPSBwbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUlu
Zm9QT1NJWC5jcHAKKyAgIH0KIH0KIAogaGF2ZVF0KDUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uaAppbmRleCAzM2M2NDNlNmQ0YzNhMzk5MzU0MWJmMmU4NjQ5NTU4ZGIzMTgxYTNh
Li45MzRkMjJjYjIwM2Y4NDI4ZDU2YjAxMzM0M2Y2ZjA0Yzk4ODJiZDRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNiArMTk4LDggQEAgUmV0YWluUHRyPENGVVJM
UmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhj
b25zdCBjaGFyKik7CiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwog
Q1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oUVQpCiB1aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgo
Y29uc3QgY2hhciopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUlu
Zm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgyZDVkYjEzNDNmMzJlNTlhZjQzN2U5MGVhYmI5ODA2ODdhMjEy
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUlu
Zm8uY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUluZm8uaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5mbygpCit7CisgICAgc3RhdGljIFBs
YXRmb3JtSW5mbyogaW5zdGFuY2UgPSBuZXcgUGxhdGZvcm1JbmZvOworICAgIHJldHVybiBpbnN0
YW5jZTsKK30KKworUGxhdGZvcm1JbmZvOjpQbGF0Zm9ybUluZm8oKQorICAgIDogbV9waHlzaWNh
bE1lbW9yeVNpemVJbkJ5dGVzKDApCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDc5NDZjM2Qy
Y2UzOTM0Y2Y3OTM3M2IyYWQ4ZmNkOWM0NmZmMDc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1JbmZvLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgUGxhdGZvcm1JbmZvX2gKKyNkZWZpbmUgUGxhdGZv
cm1JbmZvX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFBsYXRmb3JtSW5mbyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
UGxhdGZvcm1JbmZvKTsKK3B1YmxpYzoKKyAgICBmcmllbmQgUGxhdGZvcm1JbmZvKiBwbGF0Zm9y
bUluZm8oKTsKKworICAgIHVpbnQ2NF90IHBoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMoKTsKKwor
cHJpdmF0ZToKKyAgICBQbGF0Zm9ybUluZm8oKTsKKyAgICB1aW50NjRfdCBtX3BoeXNpY2FsTWVt
b3J5U2l6ZUluQnl0ZXM7Cit9OworCitQbGF0Zm9ybUluZm8qIHBsYXRmb3JtSW5mbygpOworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQbGF0Zm9ybUluZm9faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1JbmZvTWFjLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MGUzYWRmZTBmODI2NmU1YjExMGVkNDc4MjkwOTMwNTEyODQzMGQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtSW5mb01hYy5jcHAKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCisjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlz
cGF0Y2guaD4KKyNpbmNsdWRlIDxtYWNoL2hvc3RfaW5mby5oPgorI2luY2x1ZGUgPG1hY2gvbWFj
aC5oPgorI2luY2x1ZGUgPG1hY2gvbWFjaF9lcnJvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6cGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlcygpCit7
CisgICAgaWYgKCFtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgaG9zdF9i
YXNpY19pbmZvX2RhdGFfdCBob3N0SW5mbzsKKyAgICAgICAgbWFjaF9wb3J0X3QgaG9zdCA9IG1h
Y2hfaG9zdF9zZWxmKCk7CisgICAgICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgY291bnQgPSBI
T1NUX0JBU0lDX0lORk9fQ09VTlQ7CisgICAgICAgIGtlcm5fcmV0dXJuX3QgciA9IGhvc3RfaW5m
byhob3N0LCBIT1NUX0JBU0lDX0lORk8sIChob3N0X2luZm9fdCkmaG9zdEluZm8sICZjb3VudCk7
CisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGhvc3QpOwor
CisgICAgICAgIGlmIChyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgICAgIG1fcGh5c2ljYWxN
ZW1vcnlTaXplSW5CeXRlcyA9IGhvc3RJbmZvLm1heF9tZW07CisgICAgfQorCisgICAgcmV0dXJu
IG1fcGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUlu
Zm9QT1NJWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9QbGF0Zm9ybUluZm9Q
T1NJWC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5N2IwMGNlNjQwMzRmNDY0NGEzMjkxZTAzYzdkNjM5NjYz
YWQ0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1Bs
YXRmb3JtSW5mb1BPU0lYLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1JbmZvLmgiCisK
KyNpbmNsdWRlIDx1bmlzdGQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1aW50NjRfdCBQ
bGF0Zm9ybUluZm86OnBoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMoKQoreworICAgIGlmICghbV9w
aHlzaWNhbE1lbW9yeVNpemVJbkJ5dGVzKSB7CisgICAgICAgIGxvbmcgcGFnZVNpemUgPSBzeXNj
b25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxvbmcgbnVtYmVyT2ZQYWdlcyA9IHN5c2NvbmYo
X1NDX1BIWVNfUEFHRVMpOworCisgICAgICAgIGlmIChwYWdlU2l6ZSA+IDAgJiYgbnVtYmVyT2ZQ
YWdlcyA+IDApCisgICAgICAgICAgICBtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG51bWJl
ck9mUGFnZXMpOworICAgIH0KKworICAgIHJldHVybiBtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0
ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKaW5kZXggMzI2NDRkMTc4YmJkNmUyYzllMGViYTNlZTE0
YzU0MzhmMmM3NGIxZC4uYTY4OTZlMWQ1ZTY1MjQxZDJlZjAxZTk1NzgxOWI3NjQxYWY5ZGRlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSA8UUZpbGU+CiAjaW5jbHVkZSA8UUZpbGVJbmZvPgogI2luY2x1
ZGUgPFFUZW1wb3JhcnlGaWxlPgorI2luY2x1ZGUgPHN5cy9zdGF0dmZzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTAsNiArMTkx
LDIzIEBAIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25n
IGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbiBvCiAgICAgcmV0dXJuIC0xOwogfQogCit1aW50
NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkKK3sKKyNpZiBk
ZWZpbmVkKFFfT1NfV0lOKQorICAgIFVMQVJHRV9JTlRFR0VSIGZyZWVCeXRlc1RvQ2FsbGVyOwor
ICAgIEJPT0wgcmVzdWx0ID0gR2V0RGlza0ZyZWVTcGFjZUV4VygoTFBDV1NUUilwYXRoLCAmZnJl
ZUJ5dGVzVG9DYWxsZXIsIDAsIDApOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+ZnJlZUJ5dGVzVG9DYWxsZXIuUXVh
ZFBhcnQ7CisjZWxzZQorICAgIHN0cnVjdCBzdGF0dmZzIHZvbHVtZUluZm87CisgICAgaWYgKHN0
YXR2ZnMocGF0aCwgJnZvbHVtZUluZm8pKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1aW50NjRfdD4odm9sdW1lSW5mby5mX2JhdmFpbCkgKiBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4odm9sdW1lSW5mby5mX2Zyc2l6ZSk7CisjZW5kaWYKK30KKwogaW50IHdyaXRl
VG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW5ndGgpCiB7CiAgICAgaWYgKGhhbmRsZSAmJiBoYW5kbGUtPmV4aXN0cygpICYmIGhhbmRsZS0+
aXNXcml0YWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtSW5mb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1J
bmZvV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTRkM2NmNWU4M2NkYjVjZTI4ODBjNWUzMjg5YzI4NGZm
NDljOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtSW5mb1dpbi5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtSW5mby5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VpbnQ2NF90IFBsYXRmb3JtSW5mbzo6cGh5c2ljYWxNZW1v
cnlTaXplSW5CeXRlcygpCit7CisgICAgaWYgKCFtX3BoeXNpY2FsTWVtb3J5U2l6ZUluQnl0ZXMp
IHsKKyAgICAgICAgTUVNT1JZU1RBVFVTRVggc3RhdGV4OworICAgICAgICBzdGF0ZXguZHdMZW5n
dGggPSBzaXplb2Yoc3RhdGV4KTsKKyAgICAgICAgR2xvYmFsTWVtb3J5U3RhdHVzRXgoJnN0YXRl
eCk7CisgICAgICAgIG1fcGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlcyA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihzdGF0ZXgudWxsVG90YWxQaHlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9waHlz
aWNhbE1lbW9yeVNpemVJbkJ5dGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAppbmRleCA4ZTFkMTY0ODVlMDg4ZDIyNWU3MWVjNmQxYTRmZTdmOWVjOWEwMDVkLi43
Yzc5OTVkZjI1NWNjMDJlNmMzZTUzZjkyMzgxMzJmOWJkYjdkOTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC05OCw2ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUoY29va2llU3RvcmFnZURpcmVjdG9yeSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTk1LDYgKzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1l
dGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDNhMzc2NGQ0NGU3Y2IwOTg2NTQ0MzA1M2U1ZTJhYWJhZjAwYjNlNTUuLmM3
M2RiOGNlNTkwNzNhMzM4MWM3ZDBkNjE1YTA1Zjk2OGUzZWM4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIx
LDYgKzEyMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRp
ZiAvLyBQTEFURk9STShXSU4pCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0
b3JhZ2VEaXJlY3Rvcnk7CisgICAgU3RyaW5nIGRpc2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGIwZDVhYzRiYTc0ZjFiMGYxZTIxMmM1NjU2MmUzMTA2
YjhmM2Q1MjguLjc0ZTMyMWNiYTI2NGYwNzhiMzhhMjUzNzc4YTk1ODhiYjIwMzM4ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1
NywxOCBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4g
c19kYXRhTG9jYXRpb247CiB9CiAKK3N0YXRpYyBTdHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVj
dG9yeSgpCit7CisgICAgc3RhdGljIFN0cmluZyBzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3Rvcnk7
CisKKyAgICBpZiAoIXNfZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bHRE
aXNrQ2FjaGVEaXJlY3RvcnkgPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGVm
YXVsdERhdGFMb2NhdGlvbigpLCAiY2FjaGUvIik7CisgICAgV2ViQ29yZTo6bWFrZUFsbERpcmVj
dG9yaWVzKHNfZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIHNfZGVmYXVs
dERpc2tDYWNoZURpcmVjdG9yeTsKK30KKwogc3RhdGljIFFTdHJpbmcgc19kZWZhdWx0RGF0YWJh
c2VEaXJlY3Rvcnk7CiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3Rv
cnk7CiAKQEAgLTY5LDYgKzgxLDggQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBx
UmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3Rh
dHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVsdERh
dGFMb2NhdGlvbigpOworICAgIHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5ID0gZGVmYXVs
dERpc2tDYWNoZURpcmVjdG9yeSgpOworCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHN0
YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOwogICAg
IFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkoKSksIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRleCBh
MmJlYWMxNGJjYmRhYmIxN2IwYWQ1MmM0MjNjYWFlNTA1ZDZmYjRmLi42ZmNhMTc5YzIwMGUyZDYy
NDE2M2RjNGJiY2FiN2VmNjc3YWNmNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDggKzM2LDEyIEBACiAjaW5j
bHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+
CiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CisjaW5jbHVkZSA8UU5ldHdvcmtEaXNrQ2Fj
aGU+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJRdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1JbmZvLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAKICNpZiBkZWZp
bmVkKFFfT1NfTUFDWCkKQEAgLTQ3LDEyICs1MiwzOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25zdCBpbnQgRGVmYXVsdFBhZ2VD
YWNoZUNhcGFjaXR5ID0gMjA7Ci0KLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1v
ZGVsKENhY2hlTW9kZWwpCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChD
YWNoZU1vZGVsIGNhY2hlTW9kZWwpCiB7Ci0gICAgLy8gRklYTUU6IHNlZSBidWcgNzM5MTgKLSAg
ICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkoRGVmYXVsdFBhZ2VDYWNoZUNhcGFjaXR5KTsKKyAg
ICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9iamVjdF9jYXN0PFFOZXR3b3JrRGlz
a0NhY2hlKj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2FjaGUoKSk7CisgICAgQVNTRVJUKGRp
c2tDYWNoZSk7CisKKyAgICBBU1NFUlQoV2ViQ29yZTo6cGxhdGZvcm1JbmZvKCkpOworICAgIHVp
bnQ2NF90IHBoeXNpY2FsTWVtb3J5ID0gV2ViQ29yZTo6cGxhdGZvcm1JbmZvKCktPnBoeXNpY2Fs
TWVtb3J5U2l6ZUluQnl0ZXMoKSAvIDEwMjQgLyAxMDI0OworCisgICAgLy8gVGhlIE1hYyBwb3J0
IG9mIFdlYktpdDIgdXNlcyBhIGZ1ZGdlIGZhY3RvciBvZiAxMDAwIGhlcmUgdG8gYWNjb3VudCBm
b3IgbWlzYWxpZ25tZW50LCBob3dldmVyLAorICAgIC8vIHRoYXQgdGVuZHMgdG8gb3ZlcmVzdGlt
YXRlIHRoZSBtZW1vcnkgcXVpdGUgYSBiaXQgKDEgYnl0ZSBtaXNhbGlnbm1lbnQgfiA0OCBNaUIg
bWlzZXN0aW1hdGlvbikuCisgICAgLy8gV2UgdXNlIDEwMjQgKiAxMDIzIGZvciBub3cgdG8ga2Vl
cCB0aGUgZXN0aW1hdGlvbiBlcnJvciBkb3duIHRvICsvLSB+MSBNaUIuCisgICAgdWludDY0X3Qg
ZnJlZVZvbHVtZVNwYWNlID0gV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGRpc2tD
YWNoZS0+Y2FjaGVEaXJlY3RvcnkoKS50b0FzY2lpKCkuY29uc3REYXRhKCkpIC8gMTAyNCAvIDEw
MjM7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGlzZWQgdG8g
MCBiZWNhdXNlIFdlYlByb2Nlc3M6OmNhbGN1bGF0ZUNhY2hlU2l6ZXMgbWlnaHQgbm90CisgICAg
Ly8gc2V0IHRoZW0gaW4gc29tZSByYXJlIGNhc2VzLgorICAgIHVuc2lnbmVkIGNhY2hlVG90YWxD
YXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgY2FjaGVNaW5EZWFkQ2FwYWNpdHkgPSAwOworICAg
IHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKKyAgICBkb3VibGUgZGVhZERlY29k
ZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7CisgICAgdW5zaWduZWQgcGFnZUNhY2hlQ2FwYWNp
dHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IDA7Cisg
ICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDA7CisKKyAgICBjYWxjdWxh
dGVDYWNoZVNpemVzKGNhY2hlTW9kZWwsIHBoeXNpY2FsTWVtb3J5LCBmcmVlVm9sdW1lU3BhY2Us
CisgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hl
TWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLAorICAgICAg
ICBwYWdlQ2FjaGVDYXBhY2l0eSwgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSwgdXJsQ2FjaGVEaXNr
Q2FwYWNpdHkpOworCisgICAgbWVtb3J5Q2FjaGUoKS0+c2V0Q2FwYWNpdGllcyhjYWNoZU1pbkRl
YWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90YWxDYXBhY2l0eSk7Cisg
ICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChkZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKTsKKyAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNp
dHkocGFnZUNhY2hlQ2FwYWNpdHkpOworCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBoeWJyaWQg
aW4tbWVtb3J5LSBhbmQgZGlzay1jYWNoaW5nIGFzIGUuZy4gdGhlIE1hYyBwb3J0IGRvZXMuCisg
ICAgZGlza0NhY2hlLT5zZXRNYXhpbXVtQ2FjaGVTaXplKHN0YXRpY19jYXN0PHFpbnQ2ND4odXJs
Q2FjaGVEaXNrQ2FwYWNpdHkpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFy
UmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyKQpAQCAtNjksNiArMTAxLDEzIEBA
IHN0YXRpYyB2b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2FsbGJhY2sodm9pZCopCiB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFuYWdlciA9IG5ldyBRdE5ldHdvcmtBY2Nl
c3NNYW5hZ2VyKHRoaXMpOworCisgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVj
dG9yeS5pc0VtcHR5KCkgJiYgIXBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgp
KTsKKyAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gbmV3IFFOZXR3b3JrRGlza0Nh
Y2hlKCk7CisgICAgZGlza0NhY2hlLT5zZXRDYWNoZURpcmVjdG9yeShwYXJhbWV0ZXJzLmRpc2tD
YWNoZURpcmVjdG9yeSk7CisgICAgLy8gVGhlIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIgdGFrZXMg
b3duZXJzaGlwIG9mIHRoZSBkaXNrQ2FjaGUgb2JqZWN0IHVwb24gdGhlIGZvbGxvd2luZyBjYWxs
LgorICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXItPnNldENhY2hlKGRpc2tDYWNoZSk7CisKICAg
ICBBU1NFUlQoIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYg
IXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc051bGwoKSk7CiAgICAgV2ViQ29y
ZTo6U2hhcmVkQ29va2llSmFyUXQqIGphciA9IFdlYkNvcmU6OlNoYXJlZENvb2tpZUphclF0Ojpj
cmVhdGUocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKICAgICBtX25ldHdvcmtB
Y2Nlc3NNYW5hZ2VyLT5zZXRDb29raWVKYXIoamFyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125660</attachid>
            <date>2012-02-06 09:05:06 -0800</date>
            <delta_ts>2012-02-07 04:10:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120206180504.patch</filename>
            <type>text/plain</type>
            <size>12352</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMzdiMzdhMDU4ZjAx
ZDE0YmQ5ZjZhNTVlZDY5NDJlOWRkM2U2OS4uZTljOTZlMTEzMjA0Y2RhZDJkMmUwN2M0ZmNlYmVk
ZTkyN2Q1YTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTAyICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChOb3QgYXBwbGljYWJsZSkKKworICAgICAgICBBZGRlZCBPUy1zcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZnJlZSBkaXNrIHNwYWNlLgor
CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldFZvbHVtZUZyZWVTaXplRm9yUGF0aCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0w
Mi0wNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLiBRdCBtaW5pbWFsIGNvbXBpbGF0aW9uIGZpeCBhZnRlciByMTA2Nzc3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IGEwMTljYWVmZTgxMWYzYTcyYWRhYmQ1M2U5Yjk5NGE0ZjRkNDkwMjcuLmI4ZDUw
YmRlMTA5Yzc4NDZmNTA5OGIyODhhZTE0ZWE5OTczNDAyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOCBAQAorMjAxMi0wMi0wMiAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bu
b2tpYS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBh
Y2l0aWVzIHVzaW5nIHRoZSBjdXJyZW50IENhY2hlTW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QgcGFydCBvZiB0aGUgaW1wbGVtZW50YXRp
b24uIFRoZSBuZXh0IHN0ZXBzIGFyZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgdGhl
IEFQSSBmb3IgdGhlIFF0IFdlYktpdCAyIHBvcnQgYW5kIHRoZSBoeWJyaWQgbWVtb3J5IGFuZCBk
aXNrIGNhY2hlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdERpc2tD
YWNoZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBoeXNpY2FsTWVtb3J5
U2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMTItMDItMDUgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA4MDk1
MjU+IFdlYktpdDLigJlzIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZSgpIGFsd2F5cyByZXR1cm5zIHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaAppbmRleCAzM2M2NDNlNmQ0YzNhMzk5MzU0MWJmMmU4NjQ5NTU4ZGIzMTgxYTNhLi45MzRk
MjJjYjIwM2Y4NDI4ZDU2YjAxMzM0M2Y2ZjA0Yzk4ODJiZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNiArMTk4LDggQEAgUmV0YWluUHRyPENGVVJMUmVmPiBw
YXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25zdCBj
aGFyKik7CiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwogQ1N0cmlu
ZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oUVQpCiB1aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3Qg
Y2hhciopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0ZpbGVTeXN0ZW1RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVt
UXQuY3BwCmluZGV4IDMyNjQ0ZDE3OGJiZDZlMmM5ZTBlYmEzZWUxNGM1NDM4ZjJjNzRiMWQuLmE2
ODk2ZTFkNWU2NTI0MWQyZWYwMWU5NTc4MTliNzY0MWFmOWRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgPFFGaWxlPgogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRVGVtcG9yYXJ5Rmls
ZT4KKyNpbmNsdWRlIDxzeXMvc3RhdHZmcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTkwLDYgKzE5MSwyMyBAQCBsb25nIGxvbmcg
c2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwgRmls
ZVNlZWtPcmlnaW4gbwogICAgIHJldHVybiAtMTsKIH0KIAordWludDY0X3QgZ2V0Vm9sdW1lRnJl
ZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpCit7CisjaWYgZGVmaW5lZChRX09TX1dJTikK
KyAgICBVTEFSR0VfSU5URUdFUiBmcmVlQnl0ZXNUb0NhbGxlcjsKKyAgICBCT09MIHJlc3VsdCA9
IEdldERpc2tGcmVlU3BhY2VFeFcoKExQQ1dTVFIpcGF0aCwgJmZyZWVCeXRlc1RvQ2FsbGVyLCAw
LCAwKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVpbnQ2NF90PmZyZWVCeXRlc1RvQ2FsbGVyLlF1YWRQYXJ0OworI2Vsc2UKKyAg
ICBzdHJ1Y3Qgc3RhdHZmcyB2b2x1bWVJbmZvOworICAgIGlmIChzdGF0dmZzKHBhdGgsICZ2b2x1
bWVJbmZvKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHZvbHVtZUluZm8uZl9iYXZhaWwpICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZvbHVt
ZUluZm8uZl9mcnNpemUpOworI2VuZGlmCit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZp
bGVIYW5kbGUgaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGlm
IChoYW5kbGUgJiYgaGFuZGxlLT5leGlzdHMoKSAmJiBoYW5kbGUtPmlzV3JpdGFibGUoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAppbmRleCA4ZTFkMTY0ODVlMDg4ZDIyNWU3MWVjNmQxYTRmZTdmOWVjOWEwMDVkLi43
Yzc5OTVkZjI1NWNjMDJlNmMzZTUzZjkyMzgxMzJmOWJkYjdkOTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC05OCw2ICs5OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUoY29va2llU3RvcmFnZURpcmVjdG9yeSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTk1LDYgKzE5Niw4IEBAIGJvb2wgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgV2ViCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1l
dGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDNhMzc2NGQ0NGU3Y2IwOTg2NTQ0MzA1M2U1ZTJhYWJhZjAwYjNlNTUuLmM3
M2RiOGNlNTkwNzNhMzM4MWM3ZDBkNjE1YTA1Zjk2OGUzZWM4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIx
LDYgKzEyMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRp
ZiAvLyBQTEFURk9STShXSU4pCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgU3RyaW5nIGNvb2tpZVN0
b3JhZ2VEaXJlY3Rvcnk7CisgICAgU3RyaW5nIGRpc2tDYWNoZURpcmVjdG9yeTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGIwZDVhYzRiYTc0ZjFiMGYxZTIxMmM1NjU2MmUzMTA2
YjhmM2Q1MjguLjc0ZTMyMWNiYTI2NGYwNzhiMzhhMjUzNzc4YTk1ODhiYjIwMzM4ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCkBAIC01Nyw2ICs1
NywxOCBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0RGF0YUxvY2F0aW9uKCkKICAgICByZXR1cm4g
c19kYXRhTG9jYXRpb247CiB9CiAKK3N0YXRpYyBTdHJpbmcgZGVmYXVsdERpc2tDYWNoZURpcmVj
dG9yeSgpCit7CisgICAgc3RhdGljIFN0cmluZyBzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3Rvcnk7
CisKKyAgICBpZiAoIXNfZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3Rvcnk7CisKKyAgICBzX2RlZmF1bHRE
aXNrQ2FjaGVEaXJlY3RvcnkgPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGVm
YXVsdERhdGFMb2NhdGlvbigpLCAiY2FjaGUvIik7CisgICAgV2ViQ29yZTo6bWFrZUFsbERpcmVj
dG9yaWVzKHNfZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIHNfZGVmYXVs
dERpc2tDYWNoZURpcmVjdG9yeTsKK30KKwogc3RhdGljIFFTdHJpbmcgc19kZWZhdWx0RGF0YWJh
c2VEaXJlY3Rvcnk7CiBzdGF0aWMgUVN0cmluZyBzX2RlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3Rv
cnk7CiAKQEAgLTY5LDYgKzgxLDggQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBx
UmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3Rh
dHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVsdERh
dGFMb2NhdGlvbigpOworICAgIHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5ID0gZGVmYXVs
dERpc2tDYWNoZURpcmVjdG9yeSgpOworCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHN0
YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOwogICAg
IFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkoKSksIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRleCBh
MmJlYWMxNGJjYmRhYmIxN2IwYWQ1MmM0MjNjYWFlNTA1ZDZmYjRmLi5iZGFjOWY1ZmJlNWQ1YTgy
MjI3ZTE1NGNmNjRmNDhlNDE4MjQ1NWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDI0ICszNiw5NCBAQAogI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
PgogI2luY2x1ZGUgPFFOZXR3b3JrQ29va2llSmFyPgorI2luY2x1ZGUgPFFOZXR3b3JrRGlza0Nh
Y2hlPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyUXQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaD4KIAogI2lmIGRlZmluZWQoUV9PU19NQUNYKQogI2luY2x1ZGUgPGRpc3BhdGNo
L2Rpc3BhdGNoLmg+CisjaW5jbHVkZSA8bWFjaC9ob3N0X2luZm8uaD4KKyNpbmNsdWRlIDxtYWNo
L21hY2guaD4KKyNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KKyNlbGlmIGRlZmluZWQoUV9P
U19XSU4pCisKKyNlbHNlCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3QgaW50
IERlZmF1bHRQYWdlQ2FjaGVDYXBhY2l0eSA9IDIwOworc3RhdGljIHVpbnQ2NF90IHBoeXNpY2Fs
TWVtb3J5U2l6ZUluQnl0ZXMoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBwaHlzaWNhbE1lbW9y
eVNpemUgPSAwOworCisgICAgaWYgKCFwaHlzaWNhbE1lbW9yeVNpemUpIHsKKyNpZiBkZWZpbmVk
KFFfT1NfTUFDWCkKKyAgICAgICAgaG9zdF9iYXNpY19pbmZvX2RhdGFfdCBob3N0SW5mbzsKKyAg
ICAgICAgbWFjaF9wb3J0X3QgaG9zdCA9IG1hY2hfaG9zdF9zZWxmKCk7CisgICAgICAgIG1hY2hf
bXNnX3R5cGVfbnVtYmVyX3QgY291bnQgPSBIT1NUX0JBU0lDX0lORk9fQ09VTlQ7CisgICAgICAg
IGtlcm5fcmV0dXJuX3QgciA9IGhvc3RfaW5mbyhob3N0LCBIT1NUX0JBU0lDX0lORk8sIChob3N0
X2luZm9fdCkmaG9zdEluZm8sICZjb3VudCk7CisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIGhvc3QpOworCisgICAgICAgIGlmIChyID09IEtFUk5fU1VDQ0VT
UykKKyAgICAgICAgICAgIHBoeXNpY2FsTWVtb3J5U2l6ZSA9IGhvc3RJbmZvLm1heF9tZW07CisK
KyNlbGlmIGRlZmluZWQoUV9PU19XSU4pCisgICAgICAgIE1FTU9SWVNUQVRVU0VYIHN0YXRleDsK
KyAgICAgICAgc3RhdGV4LmR3TGVuZ3RoID0gc2l6ZW9mKHN0YXRleCk7CisgICAgICAgIEdsb2Jh
bE1lbW9yeVN0YXR1c0V4KCZzdGF0ZXgpOworICAgICAgICBwaHlzaWNhbE1lbW9yeVNpemUgPSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGV4LnVsbFRvdGFsUGh5cyk7CisKKyNlbHNlCisgICAg
ICAgIGxvbmcgcGFnZVNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxvbmcg
bnVtYmVyT2ZQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOwogCi12b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKQorICAgICAgICBpZiAocGFnZVNp
emUgPiAwICYmIG51bWJlck9mUGFnZXMgPiAwKQorICAgICAgICAgICAgcGh5c2ljYWxNZW1vcnlT
aXplID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSAqIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihudW1iZXJPZlBhZ2VzKTsKKworI2VuZGlmCisgICAgfQorICAgIHJldHVybiBwaHlzaWNh
bE1lbW9yeVNpemU7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVs
KENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKIHsKLSAgICAvLyBGSVhNRTogc2VlIGJ1ZyA3MzkxOAot
ICAgIHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShEZWZhdWx0UGFnZUNhY2hlQ2FwYWNpdHkpOwor
ICAgIFFOZXR3b3JrRGlza0NhY2hlKiBkaXNrQ2FjaGUgPSBxb2JqZWN0X2Nhc3Q8UU5ldHdvcmtE
aXNrQ2FjaGUqPihtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5jYWNoZSgpKTsKKyAgICBBU1NFUlQo
ZGlza0NhY2hlKTsKKworICAgIEFTU0VSVChXZWJDb3JlOjpwbGF0Zm9ybUluZm8oKSk7CisgICAg
dWludDY0X3QgcGh5c2ljYWxNZW1vcnlTaXplSW5NZWdhYnl0ZXMgPSBwaHlzaWNhbE1lbW9yeVNp
emVJbkJ5dGVzKCkgLyAxMDI0IC8gMTAyNDsKKworICAgIC8vIFRoZSBNYWMgcG9ydCBvZiBXZWJL
aXQyIHVzZXMgYSBmdWRnZSBmYWN0b3Igb2YgMTAwMCBoZXJlIHRvIGFjY291bnQgZm9yIG1pc2Fs
aWdubWVudCwgaG93ZXZlciwKKyAgICAvLyB0aGF0IHRlbmRzIHRvIG92ZXJlc3RpbWF0ZSB0aGUg
bWVtb3J5IHF1aXRlIGEgYml0ICgxIGJ5dGUgbWlzYWxpZ25tZW50IH4gNDggTWlCIG1pc2VzdGlt
YXRpb24pLgorICAgIC8vIFdlIHVzZSAxMDI0ICogMTAyMyBmb3Igbm93IHRvIGtlZXAgdGhlIGVz
dGltYXRpb24gZXJyb3IgZG93biB0byArLy0gfjEgTWlCLgorICAgIHVpbnQ2NF90IGZyZWVWb2x1
bWVTcGFjZSA9IFdlYkNvcmU6OmdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChkaXNrQ2FjaGUtPmNh
Y2hlRGlyZWN0b3J5KCkudG9Bc2NpaSgpLmNvbnN0RGF0YSgpKSAvIDEwMjQgLyAxMDIzOworCisg
ICAgLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIGluaXRpYWxpc2VkIHRvIDAgYmVjYXVz
ZSBXZWJQcm9jZXNzOjpjYWxjdWxhdGVDYWNoZVNpemVzIG1pZ2h0IG5vdAorICAgIC8vIHNldCB0
aGVtIGluIHNvbWUgcmFyZSBjYXNlcy4KKyAgICB1bnNpZ25lZCBjYWNoZVRvdGFsQ2FwYWNpdHkg
PSAwOworICAgIHVuc2lnbmVkIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25l
ZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7CisgICAgZG91YmxlIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwgPSAwOworICAgIHVuc2lnbmVkIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsK
KyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlTWVtb3J5Q2FwYWNpdHkgPSAwOworICAgIHVuc2ln
bmVkIGxvbmcgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSAwOworCisgICAgY2FsY3VsYXRlQ2FjaGVT
aXplcyhjYWNoZU1vZGVsLCBwaHlzaWNhbE1lbW9yeVNpemVJbk1lZ2FieXRlcywgZnJlZVZvbHVt
ZVNwYWNlLAorICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5
LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwK
KyAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENhY2hlTWVtb3J5Q2FwYWNpdHksIHVybENh
Y2hlRGlza0NhcGFjaXR5KTsKKworICAgIG1lbW9yeUNhY2hlKCktPnNldENhcGFjaXRpZXMoY2Fj
aGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNp
dHkpOworICAgIG1lbW9yeUNhY2hlKCktPnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7CisgICAgcGFnZUNhY2hlKCktPnNl
dENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKKworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
aHlicmlkIGluLW1lbW9yeS0gYW5kIGRpc2stY2FjaGluZyBhcyBlLmcuIHRoZSBNYWMgcG9ydCBk
b2VzLgorICAgIGRpc2tDYWNoZS0+c2V0TWF4aW11bUNhY2hlU2l6ZShzdGF0aWNfY2FzdDxxaW50
NjQ+KHVybENhY2hlRGlza0NhcGFjaXR5KSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVhcikKQEAgLTY5LDYgKzE0
MCwxMyBAQCBzdGF0aWMgdm9pZCBwYXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQogewogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIgPSBuZXcgUXROZXR3
b3JrQWNjZXNzTWFuYWdlcih0aGlzKTsKKworICAgIEFTU0VSVCghcGFyYW1ldGVycy5kaXNrQ2Fj
aGVEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5p
c051bGwoKSk7CisgICAgUU5ldHdvcmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9IG5ldyBRTmV0d29y
a0Rpc2tDYWNoZSgpOworICAgIGRpc2tDYWNoZS0+c2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVy
cy5kaXNrQ2FjaGVEaXJlY3RvcnkpOworICAgIC8vIFRoZSBtX25ldHdvcmtBY2Nlc3NNYW5hZ2Vy
IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZGlza0NhY2hlIG9iamVjdCB1cG9uIHRoZSBmb2xsb3dp
bmcgY2FsbC4KKyAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5zZXRDYWNoZShkaXNrQ2FjaGUp
OworCiAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0
eSgpICYmICFwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNOdWxsKCkpOwogICAg
IFdlYkNvcmU6OlNoYXJlZENvb2tpZUphclF0KiBqYXIgPSBXZWJDb3JlOjpTaGFyZWRDb29raWVK
YXJRdDo6Y3JlYXRlKHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeSk7CiAgICAgbV9u
ZXR3b3JrQWNjZXNzTWFuYWdlci0+c2V0Q29va2llSmFyKGphcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125809</attachid>
            <date>2012-02-07 04:10:20 -0800</date>
            <delta_ts>2012-02-07 04:11:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120207131018.patch</filename>
            <type>text/plain</type>
            <size>1311</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyYzI0ZDAwMjFjYjAy
Y2QxNGNkMzdlNTYyNzUxY2UyODE4ODVjMS4uNmNmNDQ2YWFjNmM1NDM5YzZiMzkzMmJkNTQwYTU5
YzRmM2JjZWJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDE3IEBACiAgICAgICAgIFtRdF1bV0sy
XSBDb21wdXRlIGFuZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNo
ZU1vZGVsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzkxOAogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gKGJ1aWxkIGZpeCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9GaWxlU3lz
dGVtUXQuY3BwOgorCisyMDEyLTAyLTA3ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVu
aW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hl
IGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQgQ2FjaGVNb2RlbAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTgKKwogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KIAogICAgICAgICBObyBuZXcgdGVzdHMu
IChOb3QgYXBwbGljYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0ZpbGVTeXN0ZW1RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVt
UXQuY3BwCmluZGV4IGE2ODk2ZTFkNWU2NTI0MWQyZWYwMWU5NTc4MTliNzY0MWFmOWRkZTUuLmFh
ODFjMWM2MDZkMDY5MzYzYTJhYWM1MzViNmExMDhmNDJmNmRiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcApAQCAtMzksNyArMzksOSBAQAogI2luY2x1
ZGUgPFFGaWxlPgogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRVGVtcG9yYXJ5Rmls
ZT4KKyNpZiBkZWZpbmVkKFFfT1NfV0lOKQogI2luY2x1ZGUgPHN5cy9zdGF0dmZzLmg+CisjZW5k
aWYKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125810</attachid>
            <date>2012-02-07 04:15:30 -0800</date>
            <delta_ts>2012-02-07 05:11:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120207131528.patch</filename>
            <type>text/plain</type>
            <size>1312</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkyYzI0ZDAwMjFjYjAy
Y2QxNGNkMzdlNTYyNzUxY2UyODE4ODVjMS4uNmNmNDQ2YWFjNmM1NDM5YzZiMzkzMmJkNTQwYTU5
YzRmM2JjZWJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDE3IEBACiAgICAgICAgIFtRdF1bV0sy
XSBDb21wdXRlIGFuZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNo
ZU1vZGVsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzkxOAogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gKGJ1aWxkIGZpeCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9GaWxlU3lz
dGVtUXQuY3BwOgorCisyMDEyLTAyLTA3ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVu
aW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hl
IGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQgQ2FjaGVNb2RlbAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTgKKwogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KIAogICAgICAgICBObyBuZXcgdGVzdHMu
IChOb3QgYXBwbGljYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0ZpbGVTeXN0ZW1RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVt
UXQuY3BwCmluZGV4IGE2ODk2ZTFkNWU2NTI0MWQyZWYwMWU5NTc4MTliNzY0MWFmOWRkZTUuLmJl
NjdkZWEzYzAxODM2NGM4NzE4OTQ0ODc0MjQ4MTBiNjcxMjBkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcApAQCAtMzksNyArMzksOSBAQAogI2luY2x1
ZGUgPFFGaWxlPgogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRVGVtcG9yYXJ5Rmls
ZT4KKyNpZiAhZGVmaW5lZChRX09TX1dJTikKICNpbmNsdWRlIDxzeXMvc3RhdHZmcy5oPgorI2Vu
ZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125821</attachid>
            <date>2012-02-07 05:11:51 -0800</date>
            <delta_ts>2012-02-07 07:33:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120207141149.patch</filename>
            <type>text/plain</type>
            <size>1988</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQ5NDJhYWFlMjY5MzE1
NTkzYWY0NWZhYTAwYTk5YTQ0MjNmY2FjNS4uNzYxYjMxY2JmYmM0YmMxNTBmY2M1ODcxOWFhYjEx
NzE5MDM2N2Y0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTA3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChidWlsZCBmaXgpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9GaWxl
U3lzdGVtUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRo
KToKKwogMjAxMi0wMi0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNjkwOS4KQEAgLTU3LDYg
KzY5LDE3IEBACiAgICAgICAgIFtRdF1bV0syXSBDb21wdXRlIGFuZCBzZXQgY2FjaGUgY2FwYWNp
dGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNoZU1vZGVsCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKGJ1aWxkIGZpeCkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwOgorCisyMDEyLTAyLTA3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKwogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4KIAogICAgICAgICBObyBuZXcgdGVzdHMuIChOb3QgYXBwbGljYWJsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwCmluZGV4IGJlNjdkZWEzYzAxODM2NGM4
NzE4OTQ0ODc0MjQ4MTBiNjcxMjBkMWIuLjQ2MjM3NDg0YmJhMmM1YTAxYTdjY2ZmOTM0ZjZlNzJh
N2VkNWU2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0
ZW1RdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNw
cApAQCAtMjAwLDcgKzIwMCw3IEBAIHVpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChj
b25zdCBjaGFyKiBwYXRoKQogICAgIEJPT0wgcmVzdWx0ID0gR2V0RGlza0ZyZWVTcGFjZUV4Vygo
TFBDV1NUUilwYXRoLCAmZnJlZUJ5dGVzVG9DYWxsZXIsIDAsIDApOwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+ZnJl
ZUJ5dGVzVG9DYWxsZXIuUXVhZFBhcnQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90
PihmcmVlQnl0ZXNUb0NhbGxlci5RdWFkUGFydCk7CiAjZWxzZQogICAgIHN0cnVjdCBzdGF0dmZz
IHZvbHVtZUluZm87CiAgICAgaWYgKHN0YXR2ZnMocGF0aCwgJnZvbHVtZUluZm8pKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125843</attachid>
            <date>2012-02-07 07:33:59 -0800</date>
            <delta_ts>2012-02-08 06:23:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120207163357.patch</filename>
            <type>text/plain</type>
            <size>1507</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2QxMDM4Y2E2YWExMWUw
ODJkNjM4YjgyZTkxYWZlNDM5ZTgxMmJjOS4uZTkxYzBhYzQwNzhjMzg0NDEyNjRjMDVmMTdlMzZm
MmI2OWY4ZTA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTA3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgUXQgZGVidWcgYnVp
bGRzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOiBSZW1vdmVkIGZh
dWx0eSBBU1NFUlQuCisKIDIwMTItMDItMDMgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEFkZCB0aGUgY29tcG9uZW50Q29tcGxldGUg
bWV0aG9kIHRvIFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
cXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJv
Y2Vzc1F0LmNwcAppbmRleCBiZGFjOWY1ZmJlNWQ1YTgyMjI3ZTE1NGNmNjRmNDhlNDE4MjQ1NWU2
Li4wZTY5YzFkNjIzMmIyYmQzOGFkOWFhYTc1YjhjZjVkOTJjOTU4M2Y1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC05Niw3ICs5Niw2IEBA
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVN
b2RlbCkKICAgICBRTmV0d29ya0Rpc2tDYWNoZSogZGlza0NhY2hlID0gcW9iamVjdF9jYXN0PFFO
ZXR3b3JrRGlza0NhY2hlKj4obV9uZXR3b3JrQWNjZXNzTWFuYWdlci0+Y2FjaGUoKSk7CiAgICAg
QVNTRVJUKGRpc2tDYWNoZSk7CiAKLSAgICBBU1NFUlQoV2ViQ29yZTo6cGxhdGZvcm1JbmZvKCkp
OwogICAgIHVpbnQ2NF90IHBoeXNpY2FsTWVtb3J5U2l6ZUluTWVnYWJ5dGVzID0gcGh5c2ljYWxN
ZW1vcnlTaXplSW5CeXRlcygpIC8gMTAyNCAvIDEwMjQ7CiAKICAgICAvLyBUaGUgTWFjIHBvcnQg
b2YgV2ViS2l0MiB1c2VzIGEgZnVkZ2UgZmFjdG9yIG9mIDEwMDAgaGVyZSB0byBhY2NvdW50IGZv
ciBtaXNhbGlnbm1lbnQsIGhvd2V2ZXIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126072</attachid>
            <date>2012-02-08 06:23:36 -0800</date>
            <delta_ts>2012-02-08 07:17:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120208152334.patch</filename>
            <type>text/plain</type>
            <size>3313</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjM0ZGMzODY5MDQwNzY3
Y2M5MzAzOTEwMTdjODlkZDExZTNlNjMxZC4uYTU0Yjg3N2VlZmJkMTc1MWNjOGFhYTcxYmY4NjU5
MjUwZTQxODZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTA4ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6V2ViQ29udGV4dCk6IFNldCBkZWZhdWx0IGNhY2hlTW9kZWwgZm9yIFFUIHBsYXRmb3JtIHRv
CisgICAgICAgIENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlci4KKwogMjAxMi0wMi0wOCAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV0sy
XSBlbmFibGUtd2ViYXVkaW8gV2ViU2V0dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCmluZGV4IDIzY2E1NmJlNmJhMTM5Y2FlYThjZmYwNDQzNDUwNjg1NTE4YWQ1ZDIu
LjdjMDlmMWZmMjE0ZmMyMDY1YmNlZDZkZmViNmYyOTczMjg1ZTNkMzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTEyMiw3ICsxMjIsMTEgQEAgV2ViQ29udGV4
dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25zdCBTdHJpbmcmIGlu
amVjdGVkQnVuZGxlUGEKICAgICAsIG1fdmlzaXRlZExpbmtQcm92aWRlcih0aGlzKQogICAgICwg
bV9hbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChmYWxzZSkKICAgICAsIG1fc2hvdWxkVXNl
Rm9udFNtb290aGluZyh0cnVlKQorI2lmIFBMQVRGT1JNKFFUKQorICAgICwgbV9jYWNoZU1vZGVs
KENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3NlcikKKyNlbHNlCiAgICAgLCBtX2NhY2hlTW9kZWwo
Q2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKQorI2VuZGlmCiAgICAgLCBtX21lbW9yeVNhbXBsZXJF
bmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwoMTQwMC4wKQogICAg
ICwgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiY2U0N2UxMGNjMzg1ZWIwODEyYTdmODcz
YTY0YWUxMDg2ZmY1NGNhLi40ZDI3NDgyOGM5NzExNTY0ZThlZTNjMDE3NjhjMzhkZmQ5Y2NmNWZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMDggIE1pY2hhZWwgQnLDvG5pbmcgIDxt
aWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBDb21wdXRlIGFu
ZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNoZU1vZGVsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vcXQt
d2syL1NraXBwZWQ6IFVuc2tpcCB0ZXN0cyBza2lwcGVkIGZvciByZWdyZXNzaW9uIGZyb20gcjEw
NjkyMC4KKwogMjAxMi0wMi0wOCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KIAogICAgICAgICBTVkdMb2FkIGV2ZW50IGZpcmVzIHRvbyBlYXJseQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC13azIvU2tpcHBlZAppbmRleCA0MzRjMDg5MjUzZDNmNzExNWY3NThiMjQ3NmZhMjI0
M2QyNTE3N2U4Li4zNDI2ODExOTMxYTljZjY3NzY4YTk1NTRhN2IwZjFlYjc0ZWEzOTE0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZApAQCAtNDIyLDE2ICs0MjIsMyBAQCBodHRwL3Rl
c3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbAogZmFzdC9oaXN0b3J5
L2Zvcm0tc3VibWl0LWluLWZyYW1lLXZpYS1vbmNsaWNrLmh0bWwKIGZhc3QvaGlzdG9yeS9mb3Jt
LXN1Ym1pdC1pbi1mcmFtZS5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvc3RhdGUtb2JqZWN0LXNl
Y3VyaXR5LWV4Y2VwdGlvbi5odG1sCi0KLSMgUkVHUkVTU0lPTihyMTA2OTIwKSAtIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAotY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRtbAotZmFzdC9ldmVudHMvcGFnZWhpZGUtdGlt
ZW91dC5odG1sCi1mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13
aXRoLWZyYW1lcy5odG1sCi1mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNh
Y2hlZC5odG1sCi1mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1vbi1kYXRhLXVybHMuaHRt
bAotZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwKLWh0dHAvdGVzdHMvY2FjaGUvcG9z
dC1yZWRpcmVjdC1nZXQucGhwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3hoci1jb3JzLXJlZGlyZWN0
Lmh0bWwKLWh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYW5kLXJlZGly
ZWN0cy5odG1sCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXVuc2Fm
ZS1yZWRpcmVjdC5odG1sCi1zdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNvbG9yLWZpbGwtZnJvbS1i
eS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126079</attachid>
            <date>2012-02-08 07:17:15 -0800</date>
            <delta_ts>2012-06-07 04:46:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120208161713.patch</filename>
            <type>text/plain</type>
            <size>3337</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjM0ZGMzODY5MDQwNzY3
Y2M5MzAzOTEwMTdjODlkZDExZTNlNjMxZC4uNjA2YjU3NzE1NTBlMDVjZThmZDMxZjc0ZWRjOGJl
M2U0YTUzODZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTA4ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6IFNldCBkZWZhdWx0IGNhY2hlTW9kZWwgZm9yIFF0
IHBsYXRmb3JtIHRvCisgICAgICAgIENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlci4KKwogMjAx
Mi0wMi0wOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV0syXSBlbmFibGUtd2ViYXVkaW8gV2ViU2V0dGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDIzY2E1NmJlNmJhMTM5Y2FlYThjZmYwNDQzNDUw
Njg1NTE4YWQ1ZDIuLjdjMDlmMWZmMjE0ZmMyMDY1YmNlZDZkZmViNmYyOTczMjg1ZTNkMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTEyMiw3ICsxMjIsMTEg
QEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25z
dCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGEKICAgICAsIG1fdmlzaXRlZExpbmtQcm92aWRlcih0
aGlzKQogICAgICwgbV9hbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChmYWxzZSkKICAgICAs
IG1fc2hvdWxkVXNlRm9udFNtb290aGluZyh0cnVlKQorI2lmIFBMQVRGT1JNKFFUKQorICAgICwg
bV9jYWNoZU1vZGVsKENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3NlcikKKyNlbHNlCiAgICAgLCBt
X2NhY2hlTW9kZWwoQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKQorI2VuZGlmCiAgICAgLCBtX21l
bW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwo
MTQwMC4wKQogICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiY2U0N2UxMGNjMzg1
ZWIwODEyYTdmODczYTY0YWUxMDg2ZmY1NGNhLi4xYWM3MGNkY2RhZDEyM2YwMjQwYmU2MzA3OWZl
N2E0MGFlMGYxZjY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMDggIE1pY2hhZWwg
QnLDvG5pbmcgIDxtaWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0sy
XSBDb21wdXRlIGFuZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNo
ZU1vZGVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgor
CisgICAgICAgICogcGxhdGZvcm0vcXQtd2syL1NraXBwZWQ6IFVuc2tpcCB0ZXN0cyBza2lwcGVk
IGZvciByZWdyZXNzaW9uIGZyb20gcjEwNjkyMC4KKwogMjAxMi0wMi0wOCAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBTVkdMb2FkIGV2ZW50IGZp
cmVzIHRvbyBlYXJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZAppbmRleCA0MzRjMDg5
MjUzZDNmNzExNWY3NThiMjQ3NmZhMjI0M2QyNTE3N2U4Li4zNDI2ODExOTMxYTljZjY3NzY4YTk1
NTRhN2IwZjFlYjc0ZWEzOTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13
azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvU2tpcHBlZApAQCAt
NDIyLDE2ICs0MjIsMyBAQCBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2Fs
bGJhY2suaHRtbAogZmFzdC9oaXN0b3J5L2Zvcm0tc3VibWl0LWluLWZyYW1lLXZpYS1vbmNsaWNr
Lmh0bWwKIGZhc3QvaGlzdG9yeS9mb3JtLXN1Ym1pdC1pbi1mcmFtZS5odG1sCiBodHRwL3Rlc3Rz
L2xvYWRpbmcvc3RhdGUtb2JqZWN0LXNlY3VyaXR5LWV4Y2VwdGlvbi5odG1sCi0KLSMgUkVHUkVT
U0lPTihyMTA2OTIwKSAtIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MzkxOAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLm1vZGlmeS5pbWFnZTEuaHRtbAot
ZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sCi1mYXN0L2V2ZW50cy9wYWdlc2hvdy1w
YWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCi1mYXN0L2V2ZW50cy9wYWdl
c2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCi1mYXN0L2hhcm5lc3MvcGFnZS1jYWNo
ZS1jcmFzaC1vbi1kYXRhLXVybHMuaHRtbAotZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0
bWwKLWh0dHAvdGVzdHMvY2FjaGUvcG9zdC1yZWRpcmVjdC1nZXQucGhwCi1odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hoci1jb3JzLXJlZGlyZWN0Lmh0bWwKLWh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
YWNjZXNzLWNvbnRyb2wtYW5kLXJlZGlyZWN0cy5odG1sCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3htbGh0dHByZXF1ZXN0LXVuc2FmZS1yZWRpcmVjdC5odG1sCi1zdmcvYW5pbWF0aW9ucy9h
bmltYXRlLWNvbG9yLWZpbGwtZnJvbS1ieS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146254</attachid>
            <date>2012-06-07 04:46:15 -0700</date>
            <delta_ts>2012-06-11 02:40:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120607134614.patch</filename>
            <type>text/plain</type>
            <size>12132</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRmOWIwYWM1NGE5Nzc1
OGJkM2Y0ODdmMGU2ZWRmYjYxMDY5ZGYxMi4uNjRmM2E1MTc3MDk2ZDFlNmM2OWVkOTNjYmM1MTdh
ZGQwOTQ0NDRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTA3ICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgbmVlZGVkIC8gYXBwbGljYWJsZSAodXNpbmcgb3BlcmF0aW5nIHN5c3Rl
bSBmdW5jdGlvbmFsaXR5KS4KKworICAgICAgICBBZGRlZCBtZXRob2QgdG8gcmVhZCBmcmVlIGZp
bGUgc3lzdGVtIHNwYWNlIGZvciBhIHBhdGggdG8gc3VwcG9ydCBjYWNoZSBtb2RlbAorICAgICAg
ICBpbXBsZW1lbnRhdGlvbiBpbiBRdCBXSyAyLgorCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5
c3RlbS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRmlsZVN5
c3RlbVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFZvbHVtZUZyZWVTaXplRm9yUGF0aCk6
IEFkZGVkIGZvciBRdCBwb3J0cy4KKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA2LTA2ICBU
b3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBG
aXggYSBmZXcgc3BlbGxpbmcgbWlzdGFrZXMgaW4gSWNvbkRhdGFiYXNlIGxvZ2dpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBlNTZhYWEzNDkyM2ViMmMyNGQxMDFkOWI2NmExNDgxZWI5NGU0MGZmLi42ZmFiMjRh
NTFmNzE3M2JmMWI4Y2EyNmZhMzM4YzQxZDc5MjhiODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjggQEAKKzIwMTItMDYtMDcgIE1pY2hhZWwgQnLDvG5pbmcgIDxtaWNoYWVsLmJydW5pbmdAbm9r
aWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBDb21wdXRlIGFuZCBzZXQgY2FjaGUgY2FwYWNp
dGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNoZU1vZGVsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGltcGxlbWVudGF0aW9uIG9mIGNhY2hlIG1v
ZGVsIGZvciBRdCBXSyAyIHBvcnQgaW5jbHVkaW5nIHN1cHBvcnRpbmcKKyAgICAgICAgZnVuY3Rp
b25hbGl0eSBzdWNoIGFzIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycyBhbmQgZGVmYXVs
dCB2YWx1ZXMKKyAgICAgICAgZm9yIGRpc2sgY2FjaGUgZGlyZWN0b3JpZXMuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6cGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEy
LTA2LTA2ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KIAog
ICAgICAgICBbUXRdW1dLMl0gQWRkIHByZWZlcnJlZE1pbmltdW1Db250ZW50c1dpZHRoIHRvIHRo
ZSB2aWV3cG9ydCBpbmZvIGluIE1pbmlCcm93c2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5oCmluZGV4IDIxZWNlMTEyMWYzMTdkYmJmZWQzYWU5MTEwODc5MDFlZTBkMWM3MTQuLmNj
MDViMDJjMWNmODgyMWUzYzAxMTA0ZDI2ODI3MTY4NTBkNTVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTIwNSw2ICsyMDUsOCBAQCBTdHJpbmcgZmlsZW5hbWVUb1N0
cmluZyhjb25zdCBjaGFyKik7CiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmlu
ZyYpOwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVk
UmVzb3VyY2VzUGF0aCgpOworI2VuZGlmCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShR
VCkKIHVpbnQ2NF90IGdldFZvbHVtZUZyZWVTaXplRm9yUGF0aChjb25zdCBjaGFyKik7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKaW5kZXgg
OWE4MDExNDE3ZjI5ODI0MGU1NzA0MDZlMmQ1MDg0NTcxNzgxNDc4OS4uNjI3OTgzY2ZhN2I1ZWFk
MTUxYmQxZDViOTUzNDg1YzI2MTE1NzFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9GaWxlU3lzdGVtUXQuY3BwCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSA8UUZpbGU+CiAj
aW5jbHVkZSA8UUZpbGVJbmZvPgogI2luY2x1ZGUgPFFUZW1wb3JhcnlGaWxlPgorI2lmICFkZWZp
bmVkKFFfT1NfV0lORE9XUykKKyNpbmNsdWRlIDxzeXMvc3RhdHZmcy5oPgorI2VuZGlmCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMDIs
NiArMjA1LDI0IEBAIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
LCBsb25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbiBvCiAgICAgcmV0dXJuIC0xOwogfQog
Cit1aW50NjRfdCBnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkKK3sK
KyNpZiBkZWZpbmVkKFFfT1NfV0lOKQorICAgIFVMQVJHRV9JTlRFR0VSIGZyZWVCeXRlc1RvQ2Fs
bGVyOworICAgIEJPT0wgcmVzdWx0ID0gR2V0RGlza0ZyZWVTcGFjZUV4VygoTFBDV1NUUilwYXRo
LCAmZnJlZUJ5dGVzVG9DYWxsZXIsIDAsIDApOworICAgIGlmICghcmVzdWx0KQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZyZWVCeXRlc1RvQ2Fs
bGVyLlF1YWRQYXJ0KTsKKyNlbHNlCisgICAgc3RydWN0IHN0YXR2ZnMgdm9sdW1lSW5mbzsKKyAg
ICBpZiAoc3RhdHZmcyhwYXRoLCAmdm9sdW1lSW5mbykpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfYmF2YWlsKSAqIHN0
YXRpY19jYXN0PHVpbnQ2NF90Pih2b2x1bWVJbmZvLmZfZnJzaXplKTsKKyNlbmRpZgorfQorCisK
IGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGlmIChoYW5kbGUgJiYgaGFuZGxlLT5leGlzdHMoKSAm
JiBoYW5kbGUtPmlzV3JpdGFibGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBhY2JmYjNlNmQzNDU1OTkw
MjExMTlkM2JmN2IxMmMyMzU1YmY5NjUxLi5iNDFlNjRiODIzZDJmZWQ5OGE5ZmQ5ZDE4MWZlNDUy
YjE0ZTM4YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uCiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICBlbmNvZGVyLT5lbmNvZGUo
Y29va2llU3RvcmFnZURpcmVjdG9yeSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURp
cmVjdG9yeSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUo
TEVHQUNZX05PVElGSUNBVElPTlMpCkBAIC0xOTIsNiArMTkzLDggQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBXZWIKICNpZiBQTEFURk9STShRVCkKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJh
bWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2OGZmNThjMmJl
ZWY4NjY2MTc5N2JmYTAzODhiMGE2ODNmZDk2YzgxLi42YWJjNWVjODY5YTdkZThiMTcwZDJlNTc3
NDA5YTI5NzVjMTQ3MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBzdHJ1Y3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQogI2lm
IFBMQVRGT1JNKFFUKQogICAgIFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5OworICAgIFN0
cmluZyBkaXNrQ2FjaGVEaXJlY3Rvcnk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IDVkYTk3Y2IxMmI2Yjc4Y2Q5OTk4YWEx
ZjdmMjkzOGU0N2EzMjJkN2YuLjY3NmVjYjQ3YTc3MDBkNDlkNTQzNjRjYWJhZTMyMDYyMTNhY2Jl
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCkBA
IC01OSw2ICs1OSwxOCBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0RGF0YUxvY2F0aW9uKCkKIHN0
YXRpYyBRU3RyaW5nIHNfZGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5Owogc3RhdGljIFFTdHJpbmcg
c19kZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5OwogCitzdGF0aWMgU3RyaW5nIGRlZmF1bHRE
aXNrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIHN0YXRpYyBTdHJpbmcgc19kZWZhdWx0RGlza0Nh
Y2hlRGlyZWN0b3J5OworCisgICAgaWYgKCFzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3RvcnkuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gc19kZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5OworCisg
ICAgc19kZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5ID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KGRlZmF1bHREYXRhTG9jYXRpb24oKSwgImNhY2hlLyIpOworICAgIFdlYkNvcmU6
Om1ha2VBbGxEaXJlY3RvcmllcyhzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3RvcnkpOworICAgIHJl
dHVybiBzX2RlZmF1bHREaXNrQ2FjaGVEaXJlY3Rvcnk7Cit9CisKIFN0cmluZyBXZWJDb250ZXh0
OjphcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y2Fj
aGVTdG9yYWdlKCkuY2FjaGVEaXJlY3RvcnkoKTsKQEAgLTY4LDYgKzgwLDcgQEAgdm9pZCBXZWJD
b250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0
YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2NhdGlvbigpOworICAgIHBhcmFtZXRlcnMuZGlz
a0NhY2hlRGlyZWN0b3J5ID0gZGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpOwogI2lmIEVOQUJM
RShHRU9MT0NBVElPTikKICAgICBzdGF0aWMgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBsb2Nh
dGlvbiA9IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKHRvQVBJKGdlb2xvY2F0aW9u
TWFuYWdlclByb3h5KCkpKTsKICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKHRv
QVBJKGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkpLCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6
OnByb3ZpZGVyKGxvY2F0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dl
YlByb2Nlc3NRdC5jcHAKaW5kZXggYTJiZWFjMTRiY2JkYWJiMTdiMGFkNTJjNDIzY2FhZTUwNWQ2
ZmI0Zi4uMjY4YzRiMDkzNGUyMzhmMTA0MDA1MTNhNDE1ODNmNTczZDBmZGM0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcApAQCAtMzUsMjQgKzM1
LDkzIEBACiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRTmV0d29ya0Fj
Y2Vzc01hbmFnZXI+CiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CisjaW5jbHVkZSA8UU5l
dHdvcmtEaXNrQ2FjaGU+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXJRdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oPgogCiAjaWYgZGVmaW5lZChRX09TX01BQ1gpCiAjaW5jbHVk
ZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDxtYWNoL2hvc3RfaW5mby5oPgorI2lu
Y2x1ZGUgPG1hY2gvbWFjaC5oPgorI2luY2x1ZGUgPG1hY2gvbWFjaF9lcnJvci5oPgorI2VsaWYg
IWRlZmluZWQoUV9PU19XSU4pCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3Qg
aW50IERlZmF1bHRQYWdlQ2FjaGVDYXBhY2l0eSA9IDIwOworc3RhdGljIHVpbnQ2NF90IHBoeXNp
Y2FsTWVtb3J5U2l6ZUluQnl0ZXMoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBwaHlzaWNhbE1l
bW9yeVNpemUgPSAwOworCisgICAgaWYgKCFwaHlzaWNhbE1lbW9yeVNpemUpIHsKKyNpZiBkZWZp
bmVkKFFfT1NfTUFDWCkKKyAgICAgICAgaG9zdF9iYXNpY19pbmZvX2RhdGFfdCBob3N0SW5mbzsK
KyAgICAgICAgbWFjaF9wb3J0X3QgaG9zdCA9IG1hY2hfaG9zdF9zZWxmKCk7CisgICAgICAgIG1h
Y2hfbXNnX3R5cGVfbnVtYmVyX3QgY291bnQgPSBIT1NUX0JBU0lDX0lORk9fQ09VTlQ7CisgICAg
ICAgIGtlcm5fcmV0dXJuX3QgciA9IGhvc3RfaW5mbyhob3N0LCBIT1NUX0JBU0lDX0lORk8sICho
b3N0X2luZm9fdCkmaG9zdEluZm8sICZjb3VudCk7CisgICAgICAgIG1hY2hfcG9ydF9kZWFsbG9j
YXRlKG1hY2hfdGFza19zZWxmKCksIGhvc3QpOworCisgICAgICAgIGlmIChyID09IEtFUk5fU1VD
Q0VTUykKKyAgICAgICAgICAgIHBoeXNpY2FsTWVtb3J5U2l6ZSA9IGhvc3RJbmZvLm1heF9tZW07
CisKKyNlbGlmIGRlZmluZWQoUV9PU19XSU4pCisgICAgICAgIE1FTU9SWVNUQVRVU0VYIHN0YXRl
eDsKKyAgICAgICAgc3RhdGV4LmR3TGVuZ3RoID0gc2l6ZW9mKHN0YXRleCk7CisgICAgICAgIEds
b2JhbE1lbW9yeVN0YXR1c0V4KCZzdGF0ZXgpOworICAgICAgICBwaHlzaWNhbE1lbW9yeVNpemUg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGV4LnVsbFRvdGFsUGh5cyk7CisKKyNlbHNlCisg
ICAgICAgIGxvbmcgcGFnZVNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgICAgICAgIGxv
bmcgbnVtYmVyT2ZQYWdlcyA9IHN5c2NvbmYoX1NDX1BIWVNfUEFHRVMpOworCisgICAgICAgIGlm
IChwYWdlU2l6ZSA+IDAgJiYgbnVtYmVyT2ZQYWdlcyA+IDApCisgICAgICAgICAgICBwaHlzaWNh
bE1lbW9yeVNpemUgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpICogc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG51bWJlck9mUGFnZXMpOworCisjZW5kaWYKKyAgICB9CisgICAgcmV0dXJu
IHBoeXNpY2FsTWVtb3J5U2l6ZTsKK30KIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENh
Y2hlTW9kZWwoQ2FjaGVNb2RlbCkKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1v
ZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKIHsKLSAgICAvLyBGSVhNRTogc2VlIGJ1ZyA3Mzkx
OAotICAgIHBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShEZWZhdWx0UGFnZUNhY2hlQ2FwYWNpdHkp
OworICAgIFFOZXR3b3JrRGlza0NhY2hlKiBkaXNrQ2FjaGUgPSBxb2JqZWN0X2Nhc3Q8UU5ldHdv
cmtEaXNrQ2FjaGUqPihtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5jYWNoZSgpKTsKKyAgICBBU1NF
UlQoZGlza0NhY2hlKTsKKworICAgIHVpbnQ2NF90IHBoeXNpY2FsTWVtb3J5U2l6ZUluTWVnYWJ5
dGVzID0gcGh5c2ljYWxNZW1vcnlTaXplSW5CeXRlcygpIC8gMTAyNCAvIDEwMjQ7CisKKyAgICAv
LyBUaGUgTWFjIHBvcnQgb2YgV2ViS2l0MiB1c2VzIGEgZnVkZ2UgZmFjdG9yIG9mIDEwMDAgaGVy
ZSB0byBhY2NvdW50IGZvciBtaXNhbGlnbm1lbnQsIGhvd2V2ZXIsCisgICAgLy8gdGhhdCB0ZW5k
cyB0byBvdmVyZXN0aW1hdGUgdGhlIG1lbW9yeSBxdWl0ZSBhIGJpdCAoMSBieXRlIG1pc2FsaWdu
bWVudCB+IDQ4IE1pQiBtaXNlc3RpbWF0aW9uKS4KKyAgICAvLyBXZSB1c2UgMTAyNCAqIDEwMjMg
Zm9yIG5vdyB0byBrZWVwIHRoZSBlc3RpbWF0aW9uIGVycm9yIGRvd24gdG8gKy8tIH4xIE1pQi4K
KyAgICB1aW50NjRfdCBmcmVlVm9sdW1lU3BhY2UgPSBXZWJDb3JlOjpnZXRWb2x1bWVGcmVlU2l6
ZUZvclBhdGgoZGlza0NhY2hlLT5jYWNoZURpcmVjdG9yeSgpLnRvQXNjaWkoKS5jb25zdERhdGEo
KSkgLyAxMDI0IC8gMTAyMzsKKworICAgIC8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBp
bml0aWFsaXNlZCB0byAwIGJlY2F1c2UgV2ViUHJvY2Vzczo6Y2FsY3VsYXRlQ2FjaGVTaXplcyBt
aWdodCBub3QKKyAgICAvLyBzZXQgdGhlbSBpbiBzb21lIHJhcmUgY2FzZXMuCisgICAgdW5zaWdu
ZWQgY2FjaGVUb3RhbENhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1pbkRlYWRDYXBh
Y2l0eSA9IDA7CisgICAgdW5zaWduZWQgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOworICAgIGRv
dWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsID0gMDsKKyAgICB1bnNpZ25lZCBw
YWdlQ2FjaGVDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9yeUNh
cGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMDsK
KworICAgIGNhbGN1bGF0ZUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgcGh5c2ljYWxNZW1vcnlTaXpl
SW5NZWdhYnl0ZXMsIGZyZWVWb2x1bWVTcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNh
Y2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFj
aXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLAorICAgICAgICAgICAgICAgICAg
ICAgICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENhY2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hl
RGlza0NhcGFjaXR5KTsKKworICAgIGRpc2tDYWNoZS0+c2V0TWF4aW11bUNhY2hlU2l6ZSh1cmxD
YWNoZURpc2tDYXBhY2l0eSk7CisKKyAgICBtZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNh
Y2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFj
aXR5KTsKKyAgICBtZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOworCisgICAgcGFnZUNhY2hlKCkt
PnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKKworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgaHlicmlkIGluLW1lbW9yeS0gYW5kIGRpc2stY2FjaGluZyBhcyBlLmcuIHRoZSBNYWMgcG9y
dCBkb2VzLgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hl
cyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIpCkBAIC03NSw2ICsxNDQsMTIgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMKICAgICAvLyBEbyBub3QgbGV0IFFOZXR3b3JrQWNjZXNzTWFuYWdlciBkZWxl
dGUgdGhlIGphci4KICAgICBqYXItPnNldFBhcmVudCgwKTsKIAorICAgIEFTU0VSVCghcGFyYW1l
dGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmRpc2tDYWNo
ZURpcmVjdG9yeS5pc051bGwoKSk7CisgICAgUU5ldHdvcmtEaXNrQ2FjaGUqIGRpc2tDYWNoZSA9
IG5ldyBRTmV0d29ya0Rpc2tDYWNoZSgpOworICAgIGRpc2tDYWNoZS0+c2V0Q2FjaGVEaXJlY3Rv
cnkocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkpOworICAgIC8vIFRoZSBtX25ldHdvcmtB
Y2Nlc3NNYW5hZ2VyIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZGlza0NhY2hlIG9iamVjdCB1cG9u
IHRoZSBmb2xsb3dpbmcgY2FsbC4KKyAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyLT5zZXRDYWNo
ZShkaXNrQ2FjaGUpOworCiAjaWYgZGVmaW5lZChRX09TX01BQ1gpCiAgICAgcGlkX3QgcHBpZCA9
IGdldHBwaWQoKTsKICAgICBkaXNwYXRjaF9xdWV1ZV90IHF1ZXVlID0gZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146819</attachid>
            <date>2012-06-11 02:41:14 -0700</date>
            <delta_ts>2012-06-11 03:09:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73918-20120611114113.patch</filename>
            <type>text/plain</type>
            <size>1240</size>
            <attacher name="Michael Brüning">michael.bruning</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRmM2E1MTc3MDk2ZDFl
NmM2OWVkOTNjYmM1MTdhZGQwOTQ0NDRkMC4uMjU5ZjljMGQ5ODNkNWE5YjZkNWJkM2U1NjEyZjNk
Y2Y2ZTMwMDk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTExICBNaWNo
YWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gQ29tcHV0ZSBhbmQgc2V0IGNhY2hlIGNhcGFjaXRpZXMgdXNpbmcgdGhlIGN1cnJlbnQg
Q2FjaGVNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM5MTgKKworICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgYWRkZWQgYXMgdGhpcyBpcyBhIGJ1aWxkIGZpeC4KKworICAgICAgICAqIHBsYXRm
b3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHA6CisKIDIwMTItMDYtMDcgIE1pY2hhZWwgQnLDvG5pbmcg
IDxtaWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0syXSBDb21wdXRl
IGFuZCBzZXQgY2FjaGUgY2FwYWNpdGllcyB1c2luZyB0aGUgY3VycmVudCBDYWNoZU1vZGVsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAppbmRleCA2Mjc5ODNj
ZmE3YjVlYWQxNTFiZDFkNWI5NTM0ODVjMjYxMTU3MWI3Li41MDRhZDgwNjIwNTdmOGU2MjUyYTU3
OGFmZjQzNjk2Y2Q0ZDk1ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9GaWxlU3lzdGVtUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVT
eXN0ZW1RdC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlIDxRRmlsZT4KICNpbmNsdWRl
IDxRRmlsZUluZm8+CiAjaW5jbHVkZSA8UVRlbXBvcmFyeUZpbGU+Ci0jaWYgIWRlZmluZWQoUV9P
U19XSU5ET1dTKQorI2lmICFkZWZpbmVkKFFfT1NfV0lOKQogI2luY2x1ZGUgPHN5cy9zdGF0dmZz
Lmg+CiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>