<?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>81332</bug_id>
          
          <creation_ts>2012-03-16 04:41:54 -0700</creation_ts>
          <short_desc>Cache support for OpenTypeVerticalData</short_desc>
          <delta_ts>2012-08-01 18:27:17 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Windows 7</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>81326</dependson>
          <blocked>48459</blocked>
    
    <blocked>51450</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Koji Ishii">kojii</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bashi</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>rakuco</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>580383</commentid>
    <comment_count>0</comment_count>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-03-16 04:41:54 -0700</bug_when>
    <thetext>Vertical flow-related data read from OpenType fonts are per-OpenType font, and there&apos;s no class in WebKit that represents an OpenType font file instance. SimpleFontData and PlatformFontData are created per size and so forth, so creating OpenTypeVerticalData instance (see bug 81326) per SimpleFontData or PlatformFontData wastes memory.

This bug is for patches all platforms that use OpenTypeVerticalData can share. Patches only for CGWin is in bug 48459.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580733</commentid>
    <comment_count>1</comment_count>
      <attachid>132330</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-03-16 11:40:11 -0700</bug_when>
    <thetext>Created attachment 132330
Cache support for OpenTypeVerticalData (in progress)

This patch requires bug 81326 applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587688</commentid>
    <comment_count>2</comment_count>
      <attachid>133797</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-03-26 07:02:18 -0700</bug_when>
    <thetext>Created attachment 133797
Cache support for OpenTypeVerticalData (done except ChangeLog)

I&apos;ve got a feedback to my private build that we should ignore leading &quot;@&quot; in the font name so that existing pages won&apos;t break. The fix was incorporated into this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593044</commentid>
    <comment_count>3</comment_count>
      <attachid>135002</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-01 09:05:00 -0700</bug_when>
    <thetext>Created attachment 135002
Cache support for OpenTypeVerticalData

Rather large changes since the last patch:
* Started using ENABLE_OPENTYPE_VERTICAL flag because #if&apos;s have started to spread around
* Changed how we collect unused OpenTypeVerticalData for more efficient way
* A few more cleanups and fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593050</commentid>
    <comment_count>4</comment_count>
      <attachid>135005</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-01 10:23:28 -0700</bug_when>
    <thetext>Created attachment 135005
Cache support for OpenTypeVerticalData

The last touch to support non-OpenType fonts (though Apple Windows port doesn&apos;t seem to support non-OpenType/TrueType fonts)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603590</commentid>
    <comment_count>5</comment_count>
      <attachid>135005</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-04-16 17:09:01 -0700</bug_when>
    <thetext>Comment on attachment 135005
Cache support for OpenTypeVerticalData

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

Drive-by comments.

This patch adds massive #ifdefs and I don&apos;t think it&apos;s a good idea. I think most code added to FontCache can be placed in Source/WebCore/platform/graphics/opentype. For example, you can create a singleton class that manages OpenTypeVerticalData cache or can add static functions to OpenTypeVerticalData. This way you can remove most of #ifdefs except for the one in FontCache::purgeInactiveFontData(). (I&apos;m not sure this function is the right place to do mark &amp; sweep unused verticalData)

&gt; Source/WebCore/platform/graphics/FontCache.cpp:195
&gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(1)), checkingAlternateName);

I recommend removing all &quot;@&quot;s in the front name before to avoid unnecessary recursion.

&gt; Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h:61
&gt; +    bool m_inFontCache : 1;

Why this filed is a bit-field?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604093</commentid>
    <comment_count>6</comment_count>
      <attachid>137552</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-17 09:52:00 -0700</bug_when>
    <thetext>Created attachment 137552
reflected changes from Kenichi&apos;s review (removed bit-field)

Two changes from the previous patch:
* Changed bit-field to normal field
* Brought &quot;Reviewed by...&quot; to before description as in review comments in bug 81389</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604549</commentid>
    <comment_count>7</comment_count>
      <attachid>135005</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-17 18:52:08 -0700</bug_when>
    <thetext>Comment on attachment 135005
Cache support for OpenTypeVerticalData

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

&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:195
&gt;&gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(1)), checkingAlternateName);
&gt; 
&gt; I recommend removing all &quot;@&quot;s in the front name before to avoid unnecessary recursion.

While I agree with you as a general comment, in this specific case, family name having two or more leading &apos;@&apos; is very unlikely. If that assumption stands, I suppose this code runs more efficient than removing all leading &apos;@&apos; before the call. I can&apos;t do it without adding cycles on single case, can I, or do you think I&apos;m assuming too much?

&gt;&gt; Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h:61
&gt;&gt; +    bool m_inFontCache : 1;
&gt; 
&gt; Why this filed is a bit-field?

Ah, right, it doesn&apos;t save any for now. I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604557</commentid>
    <comment_count>8</comment_count>
      <attachid>135005</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-04-17 19:48:58 -0700</bug_when>
    <thetext>Comment on attachment 135005
Cache support for OpenTypeVerticalData

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:195
&gt;&gt;&gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(1)), checkingAlternateName);
&gt;&gt; 
&gt;&gt; I recommend removing all &quot;@&quot;s in the front name before to avoid unnecessary recursion.
&gt; 
&gt; While I agree with you as a general comment, in this specific case, family name having two or more leading &apos;@&apos; is very unlikely. If that assumption stands, I suppose this code runs more efficient than removing all leading &apos;@&apos; before the call. I can&apos;t do it without adding cycles on single case, can I, or do you think I&apos;m assuming too much?

I concerned malicious inputs like &quot;@@@.......&quot;. If my understanding is correct, familyName comes from user input. Does the spec (or implementation) limit the length of font name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604563</commentid>
    <comment_count>9</comment_count>
      <attachid>135005</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-17 20:29:45 -0700</bug_when>
    <thetext>Comment on attachment 135005
Cache support for OpenTypeVerticalData

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:195
&gt;&gt;&gt;&gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(1)), checkingAlternateName);
&gt;&gt;&gt; 
&gt;&gt;&gt; I recommend removing all &quot;@&quot;s in the front name before to avoid unnecessary recursion.
&gt;&gt; 
&gt;&gt; While I agree with you as a general comment, in this specific case, family name having two or more leading &apos;@&apos; is very unlikely. If that assumption stands, I suppose this code runs more efficient than removing all leading &apos;@&apos; before the call. I can&apos;t do it without adding cycles on single case, can I, or do you think I&apos;m assuming too much?
&gt; 
&gt; I concerned malicious inputs like &quot;@@@.......&quot;. If my understanding is correct, familyName comes from user input. Does the spec (or implementation) limit the length of font name?

You&apos;re correct and we need to work either way. The point I&apos;m making is which scenario we want our code optimized for. The current code runs better on single case and worse on more. Your proposal make the code better for multiple case by adding slightly additional code on single case. I think we shouldn&apos;t try to run fast or efficiently against malicious input, especially if doing so adds cost to the normal code path. I agree that we shouldn&apos;t crash though. Is this agreeable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604594</commentid>
    <comment_count>10</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-04-17 22:20:04 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt; You&apos;re correct and we need to work either way. The point I&apos;m making is which scenario we want our code optimized for. The current code runs better on single case and worse on more. Your proposal make the code better for multiple case by adding slightly additional code on single case. I think we shouldn&apos;t try to run fast or efficiently against malicious input, especially if doing so adds cost to the normal code path. I agree that we shouldn&apos;t crash though. Is this agreeable?

I should have described what I concerned more precisely. I didn&apos;t mean that we should make the code fast for malicious and rare inputs. If you believe the code won&apos;t cause crash, then I have no objection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604605</commentid>
    <comment_count>11</comment_count>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-17 23:05:12 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; 
&gt; &gt; You&apos;re correct and we need to work either way. The point I&apos;m making is which scenario we want our code optimized for. The current code runs better on single case and worse on more. Your proposal make the code better for multiple case by adding slightly additional code on single case. I think we shouldn&apos;t try to run fast or efficiently against malicious input, especially if doing so adds cost to the normal code path. I agree that we shouldn&apos;t crash though. Is this agreeable?
&gt; 
&gt; I should have described what I concerned more precisely. I didn&apos;t mean that we should make the code fast for malicious and rare inputs. If you believe the code won&apos;t cause crash, then I have no objection.

Thank you for the clarification. It just makes another recursive call on malicious input, which isn&apos;t convertible to tail recursion due to requiring destructor unfortunately. It shouldn&apos;t crash unless we run out of stack.

I actually tried to write code to do that with loops without adding cycles to the normal code path, but I didn&apos;t get it done, so this looks the best way to go to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605385</commentid>
    <comment_count>12</comment_count>
      <attachid>137841</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-04-18 22:52:30 -0700</bug_when>
    <thetext>Created attachment 137841
Changed how it removes leading &quot;@&quot; from family name

Sorry for back and forth but after more thoughts, I found one of my claim was invalid.　There are 3 cases here:
1. No leading &quot;@&quot;
2. One leading &quot;@&quot;
3. Two or more leading &quot;@&quot;
99% of the cases run the code for 1. Within the rest of 1%, 99% run the code for 2.
So adding machine cycles to case 1 in order to make case 3 faster doesn&apos;t make sense, but adding to case 2 isn&apos;t a big deal, especially if it can save from stack overflow on really huge number of leading &quot;@&quot;.
I was mistaken between case 1　and 2, sorry about that, and now the new patch uses a loop within case 2 to remove the leading &quot;@&quot;. Thank you for the review to find this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665015</commentid>
    <comment_count>13</comment_count>
      <attachid>137841</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-09 11:22:00 -0700</bug_when>
    <thetext>Comment on attachment 137841
Changed how it removes leading &quot;@&quot; from family name

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

&gt; Source/WebCore/platform/graphics/FontCache.cpp:196
&gt; +        for (unsigned c = familyName.length(); i &lt; c &amp;&amp; familyName[i] == &apos;@&apos;; ++i) { }

This code is going to remove all @&apos;s at the beginning.
Also, please don&apos;t use one-letter variable like &quot;c&quot;. length will be better.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:197
&gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(i)), checkingAlternateName);

I would have renamed familyName to something else like passedFamilyName, and did:
const AtomicString&amp; familyName = stripLeadingVerticalFlowFlag(familyName);
where stripLeadingVerticalFlowFlag is an inline function that strips the leading &apos;@&apos; in Windows and no-op on other platforms.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:237
&gt; +typedef HashMap&lt;AtomicString, OpenTypeVerticalData*&gt; FontVerticalDataCache;
&gt; +
&gt; +static FontVerticalDataCache* gFontVerticalDataCache = 0;

We typically use DEFINE_STATIC_LOCAL and declare these variables inside a function.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:251
&gt; +    OpenTypeVerticalData* verticalData = new OpenTypeVerticalData(platformData);

We should probably use OwnPtr in the future. Although we might want to stick with new/delete for now since the rest of the file uses that pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665016</commentid>
    <comment_count>14</comment_count>
      <attachid>137841</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-09 11:22:02 -0700</bug_when>
    <thetext>Comment on attachment 137841
Changed how it removes leading &quot;@&quot; from family name

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

&gt; Source/WebCore/platform/graphics/FontCache.cpp:196
&gt; +        for (unsigned c = familyName.length(); i &lt; c &amp;&amp; familyName[i] == &apos;@&apos;; ++i) { }

This code is going to remove all @&apos;s at the beginning.
Also, please don&apos;t use one-letter variable like &quot;c&quot;. length will be better.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:197
&gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(i)), checkingAlternateName);

I would have renamed familyName to something else like passedFamilyName, and did:
const AtomicString&amp; familyName = stripLeadingVerticalFlowFlag(familyName);
where stripLeadingVerticalFlowFlag is an inline function that strips the leading &apos;@&apos; in Windows and no-op on other platforms.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:237
&gt; +typedef HashMap&lt;AtomicString, OpenTypeVerticalData*&gt; FontVerticalDataCache;
&gt; +
&gt; +static FontVerticalDataCache* gFontVerticalDataCache = 0;

We typically use DEFINE_STATIC_LOCAL and declare these variables inside a function.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:251
&gt; +    OpenTypeVerticalData* verticalData = new OpenTypeVerticalData(platformData);

We should probably use OwnPtr in the future. Although we might want to stick with new/delete for now since the rest of the file uses that pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670204</commentid>
    <comment_count>15</comment_count>
      <attachid>152501</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-16 02:37:24 -0700</bug_when>
    <thetext>Created attachment 152501
Reflected changes from rniwa&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670229</commentid>
    <comment_count>16</comment_count>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-16 04:02:53 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; Source/WebCore/platform/graphics/FontCache.cpp:197
&gt; &gt; +        return getCachedFontPlatformData(fontDescription, AtomicString(familyName.impl()-&gt;substring(i)), checkingAlternateName);
&gt; 
&gt; I would have renamed familyName to something else like passedFamilyName, and did:
&gt; const AtomicString&amp; familyName = stripLeadingVerticalFlowFlag(familyName);
&gt; where stripLeadingVerticalFlowFlag is an inline function that strips the leading &apos;@&apos; in Windows and no-op on other platforms.

I tried inline function, but returning const AtomicString&amp; of locally created object crashes, so I followed your advice but the code lives within the function.


&gt; &gt; Source/WebCore/platform/graphics/FontCache.cpp:237
&gt; &gt; +typedef HashMap&lt;AtomicString, OpenTypeVerticalData*&gt; FontVerticalDataCache;
&gt; &gt; +
&gt; &gt; +static FontVerticalDataCache* gFontVerticalDataCache = 0;
&gt; 
&gt; We typically use DEFINE_STATIC_LOCAL and declare these variables inside a function.

Thanks for the advise, changed to follow the pattern.


&gt; &gt; Source/WebCore/platform/graphics/FontCache.cpp:251
&gt; &gt; +    OpenTypeVerticalData* verticalData = new OpenTypeVerticalData(platformData);
&gt; 
&gt; We should probably use OwnPtr in the future. Although we might want to stick with
&gt; new/delete for now since the rest of the file uses that pattern.

Yeah, that was what I thought. Glad to know you thought the same way.

The updated patch is uploaded and passed EWS, appreciate your support to go further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673900</commentid>
    <comment_count>17</comment_count>
      <attachid>152501</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-19 14:08:11 -0700</bug_when>
    <thetext>Comment on attachment 152501
Reflected changes from rniwa&apos;s review

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

&gt; Source/WebCore/platform/graphics/FontCache.cpp:40
&gt; +#if ENABLE(OPENTYPE_VERTICAL)
&gt; +#include &quot;OpenTypeVerticalData.h&quot;
&gt; +#endif

In WebKit, it&apos;s more common to put the #if ENABLE check in the .h file and unconditionally include the .h file everywhere.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:234
&gt; +typedef HashMap&lt;AtomicString, OpenTypeVerticalData*&gt; FontVerticalDataCache;

Can this be HashMap&lt;AtomicString, OwnPtr&lt;OpenTypeVerticalData&gt; &gt; ?

&gt; Source/WebCore/platform/graphics/FontCache.cpp:446
&gt; +        for (size_t i = 0, count = keysToRemove.size(); i &lt; count; ++i)
&gt; +            delete fontVerticalDataCache.take(keysToRemove[i]);

I see. We remove entries from fontVerticalDataCache when they are removed from gFontDataCache.  This seems really inefficient. Can we mark the keys for removal or just delete them directly when we&apos;re removing entries from gFontDataCache?

&gt; Source/WebCore/platform/graphics/FontCache.h:54
&gt; +#if ENABLE(OPENTYPE_VERTICAL)
&gt; +class OpenTypeVerticalData;
&gt; +#endif

You don&apos;t need the #if here. It should be safe to forward declare something that is unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674368</commentid>
    <comment_count>18</comment_count>
      <attachid>152501</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-20 02:29:21 -0700</bug_when>
    <thetext>Comment on attachment 152501
Reflected changes from rniwa&apos;s review

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

&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:40
&gt;&gt; +#endif
&gt; 
&gt; In WebKit, it&apos;s more common to put the #if ENABLE check in the .h file and unconditionally include the .h file everywhere.

Thanks, I&apos;ll change this.

&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:234
&gt;&gt; +typedef HashMap&lt;AtomicString, OpenTypeVerticalData*&gt; FontVerticalDataCache;
&gt; 
&gt; Can this be HashMap&lt;AtomicString, OwnPtr&lt;OpenTypeVerticalData&gt; &gt; ?

Yes, I can. As Ryosuke pointed out above, I just chose consistency with other parts of this file, whichever works for me. It might related with another feedback below though.

&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:446
&gt;&gt; +            delete fontVerticalDataCache.take(keysToRemove[i]);
&gt; 
&gt; I see. We remove entries from fontVerticalDataCache when they are removed from gFontDataCache.  This seems really inefficient. Can we mark the keys for removal or just delete them directly when we&apos;re removing entries from gFontDataCache?

gFontDataCache contains one for each font instance (one instance for a specific style/size/etc.) while FontVerticalDataCache contains instances  one for each font file, so many SimpleFontData share single instance of FontVerticalData.

I can ref count if you prefer. That makes marking unnecessary, but ref counting doesn&apos;t seem to work well with caching to me. I can keep one ref from the cache and sweep entries where refcount == 1. I can make the weak reference cache and cleanup entries where refcount == 0. Either way, the current ref counting doesn&apos;t expose refcount directly (if I&apos;m not mistaken) so I need to add a public API to RefPtr class to do this.

I chose GC because:
1. The rest of font cache code uses GC rather than ref counting.
2. As above, the current ref counting and caching doesn&apos;t work well without adding at least one public API to ref counting class.
3. This portion of the code runs only if FontVerticalDataCache has at least one entry. It only occurs when vertical flow is used, and the font is East Asian or author uses text-orientation:upright, so it doesn&apos;t add cost to the normal code path.

I understand most of WebKit code prefers ref counting, if font cache using GC isn&apos;t intentional and should be changed in near future, I can try to rewrite using ref counting. But then this portion is inconsistent with other parts of font cache.

Can you tell me what you think?

&gt;&gt; Source/WebCore/platform/graphics/FontCache.h:54
&gt;&gt; +#endif
&gt; 
&gt; You don&apos;t need the #if here. It should be safe to forward declare something that is unused.

Ok, I&apos;ll remove it. Thanks for the advise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674654</commentid>
    <comment_count>19</comment_count>
      <attachid>152501</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-20 09:50:10 -0700</bug_when>
    <thetext>Comment on attachment 152501
Reflected changes from rniwa&apos;s review

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:446
&gt;&gt;&gt; +            delete fontVerticalDataCache.take(keysToRemove[i]);
&gt;&gt; 
&gt;&gt; I see. We remove entries from fontVerticalDataCache when they are removed from gFontDataCache.  This seems really inefficient. Can we mark the keys for removal or just delete them directly when we&apos;re removing entries from gFontDataCache?
&gt; 
&gt; gFontDataCache contains one for each font instance (one instance for a specific style/size/etc.) while FontVerticalDataCache contains instances  one for each font file, so many SimpleFontData share single instance of FontVerticalData.
&gt; 
&gt; I can ref count if you prefer. That makes marking unnecessary, but ref counting doesn&apos;t seem to work well with caching to me. I can keep one ref from the cache and sweep entries where refcount == 1. I can make the weak reference cache and cleanup entries where refcount == 0. Either way, the current ref counting doesn&apos;t expose refcount directly (if I&apos;m not mistaken) so I need to add a public API to RefPtr class to do this.
&gt; 
&gt; I chose GC because:
&gt; 1. The rest of font cache code uses GC rather than ref counting.
&gt; 2. As above, the current ref counting and caching doesn&apos;t work well without adding at least one public API to ref counting class.
&gt; 3. This portion of the code runs only if FontVerticalDataCache has at least one entry. It only occurs when vertical flow is used, and the font is East Asian or author uses text-orientation:upright, so it doesn&apos;t add cost to the normal code path.
&gt; 
&gt; I understand most of WebKit code prefers ref counting, if font cache using GC isn&apos;t intentional and should be changed in near future, I can try to rewrite using ref counting. But then this portion is inconsistent with other parts of font cache.
&gt; 
&gt; Can you tell me what you think?

Ref counting sounds even slower (more work overall, although it would be spread out more).  It seems slow to have to walk gFontDataCache an extra time, but I can&apos;t think of a way to avoid this so using GC here is OK.  In the worse case, we also walk fontVerticalDataCache 3 times, but I guess this will often be only a few entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675340</commentid>
    <comment_count>20</comment_count>
      <attachid>152501</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-22 13:29:17 -0700</bug_when>
    <thetext>Comment on attachment 152501
Reflected changes from rniwa&apos;s review

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/FontCache.cpp:446
&gt;&gt;&gt;&gt; +            delete fontVerticalDataCache.take(keysToRemove[i]);
&gt;&gt;&gt; 
&gt;&gt;&gt; I see. We remove entries from fontVerticalDataCache when they are removed from gFontDataCache.  This seems really inefficient. Can we mark the keys for removal or just delete them directly when we&apos;re removing entries from gFontDataCache?
&gt;&gt; 
&gt;&gt; gFontDataCache contains one for each font instance (one instance for a specific style/size/etc.) while FontVerticalDataCache contains instances  one for each font file, so many SimpleFontData share single instance of FontVerticalData.
&gt;&gt; 
&gt;&gt; I can ref count if you prefer. That makes marking unnecessary, but ref counting doesn&apos;t seem to work well with caching to me. I can keep one ref from the cache and sweep entries where refcount == 1. I can make the weak reference cache and cleanup entries where refcount == 0. Either way, the current ref counting doesn&apos;t expose refcount directly (if I&apos;m not mistaken) so I need to add a public API to RefPtr class to do this.
&gt;&gt; 
&gt;&gt; I chose GC because:
&gt;&gt; 1. The rest of font cache code uses GC rather than ref counting.
&gt;&gt; 2. As above, the current ref counting and caching doesn&apos;t work well without adding at least one public API to ref counting class.
&gt;&gt; 3. This portion of the code runs only if FontVerticalDataCache has at least one entry. It only occurs when vertical flow is used, and the font is East Asian or author uses text-orientation:upright, so it doesn&apos;t add cost to the normal code path.
&gt;&gt; 
&gt;&gt; I understand most of WebKit code prefers ref counting, if font cache using GC isn&apos;t intentional and should be changed in near future, I can try to rewrite using ref counting. But then this portion is inconsistent with other parts of font cache.
&gt;&gt; 
&gt;&gt; Can you tell me what you think?
&gt; 
&gt; Ref counting sounds even slower (more work overall, although it would be spread out more).  It seems slow to have to walk gFontDataCache an extra time, but I can&apos;t think of a way to avoid this so using GC here is OK.  In the worse case, we also walk fontVerticalDataCache 3 times, but I guess this will often be only a few entries.

Yeah, agreed. Thanks for your opinion. I&apos;ll upload the modified patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675341</commentid>
    <comment_count>21</comment_count>
      <attachid>153703</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-22 13:30:15 -0700</bug_when>
    <thetext>Created attachment 153703
Reflected items from Tony&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675342</commentid>
    <comment_count>22</comment_count>
      <attachid>153703</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-22 13:35:43 -0700</bug_when>
    <thetext>Comment on attachment 153703
Reflected items from Tony&apos;s review

Attachment 153703 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13323031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675343</commentid>
    <comment_count>23</comment_count>
      <attachid>153703</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-22 13:36:44 -0700</bug_when>
    <thetext>Comment on attachment 153703
Reflected items from Tony&apos;s review

Attachment 153703 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13308896</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675344</commentid>
    <comment_count>24</comment_count>
      <attachid>153703</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-22 13:39:15 -0700</bug_when>
    <thetext>Comment on attachment 153703
Reflected items from Tony&apos;s review

Attachment 153703 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13311904</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675345</commentid>
    <comment_count>25</comment_count>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-22 13:46:57 -0700</bug_when>
    <thetext>Removing #if ENABLE(OPENTYPE_VERTICAL) for #include &quot;OpenTypeVerticalData.h&quot; breaks qt and efl build. I need to look into how not to break them without using #if ENABLE(OPENTYPE_VERTICAL).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675789</commentid>
    <comment_count>26</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-23 10:14:12 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Removing #if ENABLE(OPENTYPE_VERTICAL) for #include &quot;OpenTypeVerticalData.h&quot; breaks qt and efl build. I need to look into how not to break them without using #if ENABLE(OPENTYPE_VERTICAL).

You need to make sure platform/graphics/opentype is in the include path for the Qt and Efl ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681432</commentid>
    <comment_count>27</comment_count>
      <attachid>155133</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-28 09:25:13 -0700</bug_when>
    <thetext>Created attachment 155133
Try to fix qt build from the last change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681437</commentid>
    <comment_count>28</comment_count>
      <attachid>155134</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-28 10:04:18 -0700</bug_when>
    <thetext>Created attachment 155134
Resolved merge conflict in the previous patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681440</commentid>
    <comment_count>29</comment_count>
      <attachid>155134</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-28 10:20:07 -0700</bug_when>
    <thetext>Comment on attachment 155134
Resolved merge conflict in the previous patch

Attachment 155134 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13375923</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681448</commentid>
    <comment_count>30</comment_count>
      <attachid>155134</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-28 11:15:19 -0700</bug_when>
    <thetext>Comment on attachment 155134
Resolved merge conflict in the previous patch

Attachment 155134 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13381265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681508</commentid>
    <comment_count>31</comment_count>
      <attachid>155153</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-28 20:10:41 -0700</bug_when>
    <thetext>Created attachment 155153
Still struggling to fix build after #ifdef for a #include was removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681510</commentid>
    <comment_count>32</comment_count>
      <attachid>155153</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-28 20:18:55 -0700</bug_when>
    <thetext>Comment on attachment 155153
Still struggling to fix build after #ifdef for a #include was removed

Attachment 155153 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13380725</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681511</commentid>
    <comment_count>33</comment_count>
      <attachid>155153</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-28 20:20:55 -0700</bug_when>
    <thetext>Comment on attachment 155153
Still struggling to fix build after #ifdef for a #include was removed

Attachment 155153 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13390002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681541</commentid>
    <comment_count>34</comment_count>
      <attachid>155164</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-29 03:02:32 -0700</bug_when>
    <thetext>Created attachment 155164
Yet another try to add a new file to Qt build

bashi suggested me that Target.pri is the file Qt uses to build, and as I read it, I found it includes WebCore.pri which defines INCLUDEPATH, so I fixed that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681642</commentid>
    <comment_count>35</comment_count>
      <attachid>155164</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-29 18:54:12 -0700</bug_when>
    <thetext>Comment on attachment 155164
Yet another try to add a new file to Qt build

Reflected items from Tony&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682889</commentid>
    <comment_count>36</comment_count>
      <attachid>155164</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-31 03:11:32 -0700</bug_when>
    <thetext>Comment on attachment 155164
Yet another try to add a new file to Qt build

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

&gt; Source/WebCore/GNUmakefile.list.am:3409
&gt; +	Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h \

nit: Case-sensitive dictionary order.

&gt; Source/WebCore/Target.pri:2094
&gt; +    platform/graphics/opentype/OpenTypeVerticalData.h \

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682948</commentid>
    <comment_count>37</comment_count>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-31 05:31:59 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 155164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155164&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/GNUmakefile.list.am:3409
&gt; &gt; +	Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h \
&gt; 
&gt; nit: Case-sensitive dictionary order.
&gt; 
&gt; &gt; Source/WebCore/Target.pri:2094
&gt; &gt; +    platform/graphics/opentype/OpenTypeVerticalData.h \
&gt; 
&gt; Ditto.

Are you sure about this? I&apos;m ok with either, but the rest of the files look case-insensitive dictionary order to me; &quot;Float&quot; comes after &quot;filter&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682958</commentid>
    <comment_count>38</comment_count>
      <attachid>155164</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-31 05:52:53 -0700</bug_when>
    <thetext>Comment on attachment 155164
Yet another try to add a new file to Qt build

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

&gt;&gt;&gt; Source/WebCore/GNUmakefile.list.am:3409
&gt;&gt;&gt; +	Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h \
&gt;&gt; 
&gt;&gt; nit: Case-sensitive dictionary order.
&gt; 
&gt; Are you sure about this? I&apos;m ok with either, but the rest of the files look case-insensitive dictionary order to me; &quot;Float&quot; comes after &quot;filter&quot;.

Looks like GNUmakefile.list.am is inconsistent about ordering. See platform/graphics/cairo for example. I&apos;m ok if you won&apos;t add further files under platform/graphics/opentype/, but I want to see files under opentype/ at the same place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682963</commentid>
    <comment_count>39</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-07-31 05:59:01 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 155164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155164&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/GNUmakefile.list.am:3409
&gt; &gt;&gt;&gt; +	Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h \
&gt; &gt;&gt; 
&gt; &gt;&gt; nit: Case-sensitive dictionary order.
&gt; &gt; 
&gt; &gt; Are you sure about this? I&apos;m ok with either, but the rest of the files look case-insensitive dictionary order to me; &quot;Float&quot; comes after &quot;filter&quot;.
&gt; 
&gt; Looks like GNUmakefile.list.am is inconsistent about ordering. See platform/graphics/cairo for example. I&apos;m ok if you won&apos;t add further files under platform/graphics/opentype/, but I want to see files under opentype/ at the same place.

Don&apos;t mind. I looked the entire of the file and realized you are right in general.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683527</commentid>
    <comment_count>40</comment_count>
      <attachid>155164</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-31 15:28:48 -0700</bug_when>
    <thetext>Comment on attachment 155164
Yet another try to add a new file to Qt build

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

I think this is OK to land.

It&apos;s a bit unfortunate that it&apos;s a completely separate cache and makes FontCache.cpp more complex even though it&apos;s only going to be used on Windows, but I don&apos;t know of a better place for it.

It would be awesome if you did a follow up patch to switch the whole file to using OwnPtrs instead of new/delete.

&gt; Source/WebCore/platform/graphics/FontCache.cpp:192
&gt; +    const AtomicString&amp; familyName = passedFamilyName.isEmpty() || passedFamilyName[0] != &apos;@&apos; ?

Nit: I would include parentheses around the the ternary condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683606</commentid>
    <comment_count>41</comment_count>
      <attachid>155668</attachid>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-31 16:22:15 -0700</bug_when>
    <thetext>Created attachment 155668
Included parentheses around the the ternary condition

The only diff from the last patch is to include parentheses around the the ternary condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683608</commentid>
    <comment_count>42</comment_count>
      <attachid>155164</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 16:23:21 -0700</bug_when>
    <thetext>Comment on attachment 155164
Yet another try to add a new file to Qt build

Cleared Tony Chang&apos;s review+ from obsolete attachment 155164 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683620</commentid>
    <comment_count>43</comment_count>
    <who name="Koji Ishii">kojii</who>
    <bug_when>2012-07-31 16:32:57 -0700</bug_when>
    <thetext>&gt; (From update of attachment 155164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155164&amp;action=review
&gt; 
&gt; I think this is OK to land.
&gt; 
&gt; It&apos;s a bit unfortunate that it&apos;s a completely separate cache and makes FontCache.cpp more complex even though it&apos;s only going to be used on Windows, but I don&apos;t know of a better place for it.

Yeah, agreed. I actually was surprised by finding there&apos;s no cache per font file in WebKit today. I guess there will be such needs from other than vertical flow on Windows and I hope the code can be re-used in such instances.

&gt; It would be awesome if you did a follow up patch to switch the whole file to using OwnPtrs instead of new/delete.

I entered bug 92808. I&apos;ll be working on bug 51450 first, but I&apos;ll also try to submit a patch for 92808.

&gt; &gt; Source/WebCore/platform/graphics/FontCache.cpp:192
&gt; &gt; +    const AtomicString&amp; familyName = passedFamilyName.isEmpty() || passedFamilyName[0] != &apos;@&apos; ?
&gt; 
&gt; Nit: I would include parentheses around the the ternary condition.

Submitted updated patch that fixes this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683772</commentid>
    <comment_count>44</comment_count>
      <attachid>155668</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 19:38:16 -0700</bug_when>
    <thetext>Comment on attachment 155668
Included parentheses around the the ternary condition

Rejecting attachment 155668 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:
Merge conflict in LayoutTests/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [chromium] Use the event bounding box when constructing a PlatformEvent::GestureTap

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.

Full output: http://queues.webkit.org/results/13401630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684846</commentid>
    <comment_count>45</comment_count>
      <attachid>155668</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-01 18:27:06 -0700</bug_when>
    <thetext>Comment on attachment 155668
Included parentheses around the the ternary condition

Clearing flags on attachment: 155668

Committed r124397: &lt;http://trac.webkit.org/changeset/124397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684847</commentid>
    <comment_count>46</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-01 18:27:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132330</attachid>
            <date>2012-03-16 11:40:11 -0700</date>
            <delta_ts>2012-03-26 07:02:18 -0700</delta_ts>
            <desc>Cache support for OpenTypeVerticalData (in progress)</desc>
            <filename>81332-1.patch</filename>
            <type>text/plain</type>
            <size>6002</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4
IDQ3ZjI1MWMuLjIyMjdjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmNwcApAQCAtMzUsOCArMzUsMTIgQEAKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdl
VHJlZU5vZGUuaCIKKyNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKKyNpbmNsdWRlICJPcGVu
VHlwZVZlcnRpY2FsRGF0YS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0yMTYsNiArMjIwLDMz
IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lm
IFBMQVRGT1JNKFdJTikgJiYgVVNFKENHKQordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgT3BlblR5
cGVWZXJ0aWNhbERhdGEqPiBGb250VmVydGljYWxEYXRhQ2FjaGU7CisKK3N0YXRpYyBGb250VmVy
dGljYWxEYXRhQ2FjaGUqIGdGb250VmVydGljYWxEYXRhQ2FjaGUgPSAwOworCitPcGVuVHlwZVZl
cnRpY2FsRGF0YSogRm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYgcGxhdGZvcm1EYXRhKQoreworICAgIGlmICghZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSkK
KyAgICAgICAgZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IG5ldyBGb250VmVydGljYWxEYXRhQ2Fj
aGU7CisKKyAgICBjb25zdCBTdHJpbmcmIGtleSA9IHBsYXRmb3JtRGF0YS5mb250RmlsZUtleSgp
OworICAgIGlmIChrZXkuaXNOdWxsKCkgfHwga2V5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciByZXN1bHQgPSBnRm9udFZl
cnRpY2FsRGF0YUNhY2hlLT5maW5kKGtleSk7CisgICAgaWYgKHJlc3VsdCAhPSBnRm9udFZlcnRp
Y2FsRGF0YUNhY2hlLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKS0+c2Vjb25k
OworCisgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9IG5ldyBPcGVuVHlw
ZVZlcnRpY2FsRGF0YShwbGF0Zm9ybURhdGEpOworICAgIGlmICghdmVydGljYWxEYXRhLT5pc09w
ZW5UeXBlKCkpIHsKKyAgICAgICAgZGVsZXRlIHZlcnRpY2FsRGF0YTsKKyAgICAgICAgdmVydGlj
YWxEYXRhID0gMDsKKyAgICB9CisgICAgZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+c2V0KGtleSwg
dmVydGljYWxEYXRhKTsKKyAgICByZXR1cm4gdmVydGljYWxEYXRhOworfQorI2VuZGlmCisKIHN0
cnVjdCBGb250RGF0YUNhY2hlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKQogICAgIHsKQEAgLTM3OSw2ICs0MTAs
MjMgQEAgdm9pZCBGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YShpbnQgY291bnQpCiAg
ICAgICAgIHNpemVfdCBrZXlzVG9SZW1vdmVDb3VudCA9IGtleXNUb1JlbW92ZS5zaXplKCk7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5c1RvUmVtb3ZlQ291bnQ7ICsraSkKICAg
ICAgICAgICAgIGRlbGV0ZSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT50YWtlKGtleXNUb1JlbW92
ZVtpXSk7CisKKyNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKKyAgICAgICAgaWYgKGtleXNU
b1JlbW92ZUNvdW50ICYmIGdGb250VmVydGljYWxEYXRhQ2FjaGUpIHsKKyAgICAgICAgICAgIEhh
c2hTZXQ8U3RyaW5nPiBmaWxlS2V5c1RvUmVtb3ZlOworICAgICAgICAgICAgRm9udFZlcnRpY2Fs
RGF0YUNhY2hlOjppdGVyYXRvciB2ZXJ0aWNhbERhdGFFbmQgPSBnRm9udFZlcnRpY2FsRGF0YUNh
Y2hlLT5lbmQoKTsKKyAgICAgICAgICAgIGZvciAoRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVy
YXRvciB2ZXJ0aWNhbERhdGEgPSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5iZWdpbigpOyB2ZXJ0
aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkKKyAgICAgICAgICAg
ICAgICBmaWxlS2V5c1RvUmVtb3ZlLmFkZCh2ZXJ0aWNhbERhdGEtPmZpcnN0KTsKKyAgICAgICAg
ICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0b3IgcGxhdGZvcm1EYXRhRW5kID0gZ0Zv
bnRQbGF0Zm9ybURhdGFDYWNoZS0+ZW5kKCk7CisgICAgICAgICAgICBmb3IgKEZvbnRQbGF0Zm9y
bURhdGFDYWNoZTo6aXRlcmF0b3IgcGxhdGZvcm1EYXRhID0gZ0ZvbnRQbGF0Zm9ybURhdGFDYWNo
ZS0+YmVnaW4oKTsgcGxhdGZvcm1EYXRhICE9IHBsYXRmb3JtRGF0YUVuZDsgKytwbGF0Zm9ybURh
dGEpIHsKKyAgICAgICAgICAgICAgICBpZiAocGxhdGZvcm1EYXRhLT5zZWNvbmQpCisgICAgICAg
ICAgICAgICAgICAgIGZpbGVLZXlzVG9SZW1vdmUucmVtb3ZlKHBsYXRmb3JtRGF0YS0+c2Vjb25k
LT5mb250RmlsZUtleSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEhhc2hTZXQ8U3Ry
aW5nPjo6aXRlcmF0b3Iga2V5RW5kID0gZmlsZUtleXNUb1JlbW92ZS5lbmQoKTsKKyAgICAgICAg
ICAgIGZvciAoSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBrZXkgPSBmaWxlS2V5c1RvUmVtb3Zl
LmJlZ2luKCk7IGtleSAhPSBrZXlFbmQ7ICsra2V5KQorICAgICAgICAgICAgICAgIGRlbGV0ZSBn
Rm9udFZlcnRpY2FsRGF0YUNhY2hlLT50YWtlKCprZXkpOworICAgICAgICB9CisjZW5kaWYKICAg
ICB9CiAKICAgICBpc1B1cmdpbmcgPSBmYWxzZTsKQEAgLTQ4Myw2ICs1MzEsMTQgQEAgdm9pZCBG
b250Q2FjaGU6OmludmFsaWRhdGUoKQogICAgICAgICBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0g
bmV3IEZvbnRQbGF0Zm9ybURhdGFDYWNoZTsKICAgICB9CiAKKyNpZiBQTEFURk9STShXSU4pICYm
IFVTRShDRykKKyAgICBpZiAoZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSkgeworICAgICAgICBkZWxl
dGVBbGxWYWx1ZXMoKmdGb250VmVydGljYWxEYXRhQ2FjaGUpOworICAgICAgICBkZWxldGUgZ0Zv
bnRWZXJ0aWNhbERhdGFDYWNoZTsKKyAgICAgICAgZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IG5l
dyBGb250VmVydGljYWxEYXRhQ2FjaGU7CisgICAgfQorI2VuZGlmCisKICAgICBnR2VuZXJhdGlv
bisrOwogCiAgICAgVmVjdG9yPFJlZlB0cjxGb250U2VsZWN0b3I+ID4gY2xpZW50czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggZWQzOTliYi4u
ODQ3MDAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKQEAgLTQ5LDYgKzQ5LDkgQEAgY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEZvbnRE
YXRhOwogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgRm9udFNlbGVjdG9yOworI2lmIFBM
QVRGT1JNKFdJTikgJiYgVVNFKENHKQorY2xhc3MgT3BlblR5cGVWZXJ0aWNhbERhdGE7CisjZW5k
aWYKIGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250Q2FjaGUgewpAQCAtMTA0LDYg
KzEwNywxMCBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhRnJvbURlc2Ny
aXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRSZXRhaW4sIGNv
bnN0IExPR0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpCisgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEq
IGdldFZlcnRpY2FsRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBGb250Q2FjaGUoKTsKICAgICB+Rm9udENhY2hlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggYTQx
ZTVmZi4uYTY4NzMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRQbGF0Zm9ybURhdGEuaApAQCAtNjksNiArNjksNyBAQCB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBfX0NURm9udCogQ1RGb250UmVmOwogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKSAmJiBPUyhEQVJXSU4pCiAjaW5jbHVkZSAiQ3Jvc3NQcm9jZXNzRm9udExvYWRpbmcuaCIg
IApAQCAtMjc3LDYgKzI3OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICNpZiBQTEFURk9STShXSU4p
ICYmIFVTRShDRykKKyAgICBjb25zdCBTdHJpbmcmIGZvbnRGaWxlS2V5KCkgY29uc3QgeyByZXR1
cm4gbV9mb250RmlsZUtleTsgfQogICAgIHZvaWQqIG9wZW5UeXBlVGFibGUodWludDMyX3QgdGFi
bGUsIHNpemVfdCogPSAwKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gUGFzc093
blB0cjxUPiBvcGVuVHlwZVRhYmxlKHVpbnQzMl90IHRhYmxlLCBzaXplX3QqIHNpemUgPSAwKSBj
b25zdAogICAgIHsKQEAgLTM1MSw2ICszNTMsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lz
Q29sb3JCaXRtYXBGb250OwogCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpCisgICAgU3Ry
aW5nIG1fZm9udEZpbGVLZXk7CisjZW5kaWYKICNpZiBQTEFURk9STShXSU4pCiAgICAgYm9vbCBt
X3VzZUdESTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwCmluZGV4IDMyNjc3ZmUuLmI3
MWU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250UGxhdGZvcm1EYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKQEAgLTY1LDYgKzY1LDkgQEAgRm9udFBs
YXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShIRk9OVCBmb250LCBmbG9hdCBzaXplLCBib29s
IGJvbGQsIGJvb2wgb2JsaXEKIAogICAgICAgICBHZXRPdXRsaW5lVGV4dE1ldHJpY3NXKGhkYywg
YnVmZmVyU2l6ZSwgbWV0cmljcyk7CiAgICAgICAgIFdDSEFSKiBmYWNlTmFtZSA9IChXQ0hBUiop
KCh1aW50cHRyX3QpbWV0cmljcyArICh1aW50cHRyX3QpbWV0cmljcy0+b3RtcEZhY2VOYW1lKTsK
KyNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKKyAgICAgICAgbV9mb250RmlsZUtleSA9IGZh
Y2VOYW1lOworI2VuZGlmCiAKICAgICAgICAgcGxhdGZvcm1EYXRhSW5pdChmb250LCBzaXplLCBo
ZGMsIGZhY2VOYW1lKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133797</attachid>
            <date>2012-03-26 07:02:18 -0700</date>
            <delta_ts>2012-04-01 09:05:00 -0700</delta_ts>
            <desc>Cache support for OpenTypeVerticalData (done except ChangeLog)</desc>
            <filename>81332-2.patch</filename>
            <type>text/plain</type>
            <size>6709</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4
IDQ3ZjI1MWMuLmM1YzNiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmNwcApAQCAtMzUsOCArMzUsMTIgQEAKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdl
VHJlZU5vZGUuaCIKKyNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKKyNpbmNsdWRlICJPcGVu
VHlwZVZlcnRpY2FsRGF0YS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0xODMsNiArMTg3LDEz
IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNF
KENHKQorICAgIC8vIExlYWRpbmcgIkAiIGluIHRoZSBmb250IG5hbWUgZW5hYmxlcyBXaW5kb3dz
IHZlcnRpY2FsIGZsb3cgZmxhZyBmb3IgdGhlIGZvbnQuCisgICAgLy8gQmVjYXVzZSB3ZSBkbyB2
ZXJ0aWNhbCBmbG93IGJ5IG91cnNlbHZlcywgd2UgZG9uJ3Qgd2FudCB0aGUgZmxhZyB0dXJuZWQg
b24gZm9yIGFueSBmb250cy4KKyAgICBpZiAoIWZhbWlseU5hbWUuaXNFbXB0eSgpICYmIGZhbWls
eU5hbWVbMF0gPT0gJ0AnKQorICAgICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0
YShmb250RGVzY3JpcHRpb24sIEF0b21pY1N0cmluZyhmYW1pbHlOYW1lLmltcGwoKS0+c3Vic3Ry
aW5nKDEpKSwgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKTsKKyNlbmRpZgorCiAgICAgaWYgKCFnRm9u
dFBsYXRmb3JtRGF0YUNhY2hlKSB7CiAgICAgICAgIGdGb250UGxhdGZvcm1EYXRhQ2FjaGUgPSBu
ZXcgRm9udFBsYXRmb3JtRGF0YUNhY2hlOwogICAgICAgICBwbGF0Zm9ybUluaXQoKTsKQEAgLTIx
Niw2ICsyMjcsMzMgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm8KICAgICByZXR1cm4gcmVzdWx0
OwogfQogCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpCit0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBPcGVuVHlwZVZlcnRpY2FsRGF0YSo+IEZvbnRWZXJ0aWNhbERhdGFDYWNoZTsKKworc3Rh
dGljIEZvbnRWZXJ0aWNhbERhdGFDYWNoZSogZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IDA7CisK
K09wZW5UeXBlVmVydGljYWxEYXRhKiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBG
b250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEpCit7CisgICAgaWYgKCFnRm9udFZlcnRpY2Fs
RGF0YUNhY2hlKQorICAgICAgICBnRm9udFZlcnRpY2FsRGF0YUNhY2hlID0gbmV3IEZvbnRWZXJ0
aWNhbERhdGFDYWNoZTsKKworICAgIGNvbnN0IFN0cmluZyYga2V5ID0gcGxhdGZvcm1EYXRhLmZv
bnRGaWxlS2V5KCk7CisgICAgaWYgKGtleS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOwor
ICAgIEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgcmVzdWx0ID0gZ0ZvbnRWZXJ0aWNh
bERhdGFDYWNoZS0+ZmluZChrZXkpOworICAgIGlmIChyZXN1bHQgIT0gZ0ZvbnRWZXJ0aWNhbERh
dGFDYWNoZS0+ZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCktPnNlY29uZDsKKwor
ICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNhbERhdGEgPSBuZXcgT3BlblR5cGVWZXJ0
aWNhbERhdGEocGxhdGZvcm1EYXRhKTsKKyAgICBpZiAoIXZlcnRpY2FsRGF0YS0+aXNPcGVuVHlw
ZSgpKSB7CisgICAgICAgIGRlbGV0ZSB2ZXJ0aWNhbERhdGE7CisgICAgICAgIHZlcnRpY2FsRGF0
YSA9IDA7CisgICAgfQorICAgIGdGb250VmVydGljYWxEYXRhQ2FjaGUtPnNldChrZXksIHZlcnRp
Y2FsRGF0YSk7CisgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKK30KKyNlbmRpZgorCiBzdHJ1Y3Qg
Rm9udERhdGFDYWNoZUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEZv
bnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkKICAgICB7CkBAIC0zNzksNiArNDE3LDIzIEBA
IHZvaWQgRm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEoaW50IGNvdW50KQogICAgICAg
ICBzaXplX3Qga2V5c1RvUmVtb3ZlQ291bnQgPSBrZXlzVG9SZW1vdmUuc2l6ZSgpOwogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXNUb1JlbW92ZUNvdW50OyArK2kpCiAgICAgICAg
ICAgICBkZWxldGUgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+dGFrZShrZXlzVG9SZW1vdmVbaV0p
OworCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpCisgICAgICAgIGlmIChrZXlzVG9SZW1v
dmVDb3VudCAmJiBnRm9udFZlcnRpY2FsRGF0YUNhY2hlKSB7CisgICAgICAgICAgICBIYXNoU2V0
PFN0cmluZz4gZmlsZUtleXNUb1JlbW92ZTsKKyAgICAgICAgICAgIEZvbnRWZXJ0aWNhbERhdGFD
YWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhRW5kID0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+
ZW5kKCk7CisgICAgICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3Ig
dmVydGljYWxEYXRhID0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+YmVnaW4oKTsgdmVydGljYWxE
YXRhICE9IHZlcnRpY2FsRGF0YUVuZDsgKyt2ZXJ0aWNhbERhdGEpCisgICAgICAgICAgICAgICAg
ZmlsZUtleXNUb1JlbW92ZS5hZGQodmVydGljYWxEYXRhLT5maXJzdCk7CisgICAgICAgICAgICBG
b250UGxhdGZvcm1EYXRhQ2FjaGU6Oml0ZXJhdG9yIHBsYXRmb3JtRGF0YUVuZCA9IGdGb250UGxh
dGZvcm1EYXRhQ2FjaGUtPmVuZCgpOworICAgICAgICAgICAgZm9yIChGb250UGxhdGZvcm1EYXRh
Q2FjaGU6Oml0ZXJhdG9yIHBsYXRmb3JtRGF0YSA9IGdGb250UGxhdGZvcm1EYXRhQ2FjaGUtPmJl
Z2luKCk7IHBsYXRmb3JtRGF0YSAhPSBwbGF0Zm9ybURhdGFFbmQ7ICsrcGxhdGZvcm1EYXRhKSB7
CisgICAgICAgICAgICAgICAgaWYgKHBsYXRmb3JtRGF0YS0+c2Vjb25kKQorICAgICAgICAgICAg
ICAgICAgICBmaWxlS2V5c1RvUmVtb3ZlLnJlbW92ZShwbGF0Zm9ybURhdGEtPnNlY29uZC0+Zm9u
dEZpbGVLZXkoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBIYXNoU2V0PFN0cmluZz46
Oml0ZXJhdG9yIGtleUVuZCA9IGZpbGVLZXlzVG9SZW1vdmUuZW5kKCk7CisgICAgICAgICAgICBm
b3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3Iga2V5ID0gZmlsZUtleXNUb1JlbW92ZS5iZWdp
bigpOyBrZXkgIT0ga2V5RW5kOyArK2tleSkKKyAgICAgICAgICAgICAgICBkZWxldGUgZ0ZvbnRW
ZXJ0aWNhbERhdGFDYWNoZS0+dGFrZSgqa2V5KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQog
CiAgICAgaXNQdXJnaW5nID0gZmFsc2U7CkBAIC00ODMsNiArNTM4LDE0IEBAIHZvaWQgRm9udENh
Y2hlOjppbnZhbGlkYXRlKCkKICAgICAgICAgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZSA9IG5ldyBG
b250UGxhdGZvcm1EYXRhQ2FjaGU7CiAgICAgfQogCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0Uo
Q0cpCisgICAgaWYgKGdGb250VmVydGljYWxEYXRhQ2FjaGUpIHsKKyAgICAgICAgZGVsZXRlQWxs
VmFsdWVzKCpnRm9udFZlcnRpY2FsRGF0YUNhY2hlKTsKKyAgICAgICAgZGVsZXRlIGdGb250VmVy
dGljYWxEYXRhQ2FjaGU7CisgICAgICAgIGdGb250VmVydGljYWxEYXRhQ2FjaGUgPSBuZXcgRm9u
dFZlcnRpY2FsRGF0YUNhY2hlOworICAgIH0KKyNlbmRpZgorCiAgICAgZ0dlbmVyYXRpb24rKzsK
IAogICAgIFZlY3RvcjxSZWZQdHI8Rm9udFNlbGVjdG9yPiA+IGNsaWVudHM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCmluZGV4IDg5ZTcxZDAuLjI2YzUz
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBA
IC00OSw2ICs0OSw5IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBGb250RGF0YTsK
IGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZvbnRTZWxlY3RvcjsKKyNpZiBQTEFURk9S
TShXSU4pICYmIFVTRShDRykKK2NsYXNzIE9wZW5UeXBlVmVydGljYWxEYXRhOworI2VuZGlmCiBj
bGFzcyBTaW1wbGVGb250RGF0YTsKIAogY2xhc3MgRm9udENhY2hlIHsKQEAgLTEwNCw2ICsxMDcs
MTAgQEAgcHVibGljOgogICAgIFNpbXBsZUZvbnREYXRhKiBmb250RGF0YUZyb21EZXNjcmlwdGlv
bkFuZExvZ0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkUmV0YWluLCBjb25zdCBM
T0dGT05UJiBmb250LCB3Y2hhcl90KiBvdXRGb250RmFtaWx5TmFtZSk7CiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKFdJTikgJiYgVVNFKENHKQorICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiBnZXRW
ZXJ0aWNhbERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgRm9udENhY2hlKCk7CiAgICAgfkZvbnRDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IGVhNTQzMDcu
LmVlMjQ4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250UGxhdGZvcm1EYXRhLmgKQEAgLTY5LDYgKzY5LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19DVEZvbnQqIENURm9udFJlZjsKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkg
JiYgT1MoREFSV0lOKQogI2luY2x1ZGUgIkNyb3NzUHJvY2Vzc0ZvbnRMb2FkaW5nLmgiICAKQEAg
LTI3OCw2ICsyNzksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBV
U0UoQ0cpCisgICAgY29uc3QgU3RyaW5nJiBmb250RmlsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9udEZpbGVLZXk7IH0KICAgICBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gb3BlblR5cGVUYWJs
ZSh1aW50MzJfdCB0YWJsZSkgY29uc3Q7CiAjZW5kaWYKIApAQCAtMzQwLDYgKzM0Miw5IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1faXNDb2xvckJpdG1hcEZvbnQ7CiAKKyNpZiBQTEFURk9STShX
SU4pICYmIFVTRShDRykKKyAgICBTdHJpbmcgbV9mb250RmlsZUtleTsKKyNlbmRpZgogI2lmIFBM
QVRGT1JNKFdJTikKICAgICBib29sIG1fdXNlR0RJOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdp
bi5jcHAKaW5kZXggMTA4MWRlOS4uNDAwYTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcApA
QCAtNjYsNiArNjYsOSBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEhGT05U
IGZvbnQsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcQogCiAgICAgICAgIEdldE91
dGxpbmVUZXh0TWV0cmljc1coaGRjLCBidWZmZXJTaXplLCBtZXRyaWNzKTsKICAgICAgICAgV0NI
QVIqIGZhY2VOYW1lID0gKFdDSEFSKikoKHVpbnRwdHJfdCltZXRyaWNzICsgKHVpbnRwdHJfdClt
ZXRyaWNzLT5vdG1wRmFjZU5hbWUpOworI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENHKQorICAg
ICAgICBtX2ZvbnRGaWxlS2V5ID0gZmFjZU5hbWU7CisjZW5kaWYKIAogICAgICAgICBwbGF0Zm9y
bURhdGFJbml0KGZvbnQsIHNpemUsIGhkYywgZmFjZU5hbWUpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135002</attachid>
            <date>2012-04-01 09:05:00 -0700</date>
            <delta_ts>2012-04-01 10:23:28 -0700</delta_ts>
            <desc>Cache support for OpenTypeVerticalData</desc>
            <filename>81332-5.patch</filename>
            <type>text/plain</type>
            <size>8348</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzM5ZmJiLi5kZGUyY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDQtMDEgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIEZvbnRDYWNoZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcwor
ICAgICAgICBpbnN0YW5jZXMgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAg
ICAgICAgV2UgbmVlZCBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250
IGZpbGUsIGFuZCB3ZSBkb24ndAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGlu
c3RhbmNlcyB0b2RheS4KKworICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3Qg
ZW5hYmxlZCBmb3IgYW55IHBsYXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNu
J3Qgb24gYW55IGNvZGUgcGF0aC4KKworICAgICAgICBBcHBsZSBXaW5kb3dzIHBvcnQgKGJ1ZyA0
ODQ1OSkgaXMgZ29pbmcgdG8gdXNlIHRoaXMgY29kZSwgYW5kCisgICAgICAgIHByb2JhYmx5IENo
cm9taXVtICg1MTQ1MCwgNjkyODIpIGFzIHdlbGwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSByZXF1aXJlZC4gTm8gYmVo
YXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURh
dGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNhYmxlIFdpbmRvd3MgZmVh
dHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2FjaGVkIE9wZW5UeXBlVmVy
dGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUgb25lLgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEpOiBQdXJnZSBpbmFjdGl2
ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBkdW1teSBpbXBsZW1lbnRh
dGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oOiBBZGRlZCBtX2lu
Rm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVuVHlwZVZlcnRpY2FsRGF0
YSk6CisKIDIwMTItMDMtMzAgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CiAKICAg
ICAgICAgVmVydGljYWwgYWx0ZXJuYXRlIGdseXBoIChHU1VCKSBzdXBwb3J0IGZvciBPcGVuVHlw
ZVZlcnRpY2FsRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5jcHAKaW5kZXggNDdmMjUxYy4uODM3Mzk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zNSwxMCArMzUsMTQgQEAKICNpbmNs
dWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwp
CisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldl
YktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xODMsNiArMTg3LDE0IEBA
IEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShP
UEVOVFlQRV9WRVJUSUNBTCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUgZm9udCBuYW1lIGVu
YWJsZXMgV2luZG93cyB2ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250LgorICAgIC8vIEJl
Y2F1c2Ugd2UgZG8gdmVydGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRvbid0IHdhbnQgdG8g
dXNlIHRoZSBXaW5kb3dzIGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJkcyAiQCIgcmVnYXJk
bGVzcyBvZiB0aGUgb3JpZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVoYXZpb3IuCisgICAg
aWYgKCFmYW1pbHlOYW1lLmlzRW1wdHkoKSAmJiBmYW1pbHlOYW1lWzBdID09ICdAJykKKyAgICAg
ICAgcmV0dXJuIGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2NyaXB0aW9uLCBBdG9t
aWNTdHJpbmcoZmFtaWx5TmFtZS5pbXBsKCktPnN1YnN0cmluZygxKSksIGNoZWNraW5nQWx0ZXJu
YXRlTmFtZSk7CisjZW5kaWYKKwogICAgIGlmICghZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZSkgewog
ICAgICAgICBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0gbmV3IEZvbnRQbGF0Zm9ybURhdGFDYWNo
ZTsKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CkBAIC0yMTYsNiArMjI4LDMzIEBAIEZvbnRQbGF0
Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmIEVOQUJMRShPUEVO
VFlQRV9WRVJUSUNBTCkKK3R5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIE9wZW5UeXBlVmVy
dGljYWxEYXRhKj4gRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCitzdGF0aWMgRm9udFZlcnRpY2Fs
RGF0YUNhY2hlKiBnRm9udFZlcnRpY2FsRGF0YUNhY2hlID0gMDsKKworT3BlblR5cGVWZXJ0aWNh
bERhdGEqIEZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKGNvbnN0IEF0b21pY1N0cmluZyYga2V5
LCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEpCit7CisgICAgaWYgKGtleS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGdGb250VmVydGljYWxEYXRh
Q2FjaGUpIHsKKyAgICAgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciByZXN1bHQg
PSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5maW5kKGtleSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+ZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gcmVz
dWx0LmdldCgpLT5zZWNvbmQ7CisgICAgfSBlbHNlCisgICAgICAgIGdGb250VmVydGljYWxEYXRh
Q2FjaGUgPSBuZXcgRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCisgICAgT3BlblR5cGVWZXJ0aWNh
bERhdGEqIHZlcnRpY2FsRGF0YSA9IG5ldyBPcGVuVHlwZVZlcnRpY2FsRGF0YShwbGF0Zm9ybURh
dGEpOworICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpIHsKKyAgICAgICAgZGVs
ZXRlIHZlcnRpY2FsRGF0YTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gMDsKKyAgICB9CisgICAg
Z0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+c2V0KGtleSwgdmVydGljYWxEYXRhKTsKKyAgICByZXR1
cm4gdmVydGljYWxEYXRhOworfQorI2VuZGlmCisKIHN0cnVjdCBGb250RGF0YUNhY2hlS2V5SGFz
aCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxh
dGZvcm1EYXRhKQogICAgIHsKQEAgLTM4MSw2ICs0MjAsMjkgQEAgdm9pZCBGb250Q2FjaGU6OnB1
cmdlSW5hY3RpdmVGb250RGF0YShpbnQgY291bnQpCiAgICAgICAgICAgICBkZWxldGUgZ0ZvbnRQ
bGF0Zm9ybURhdGFDYWNoZS0+dGFrZShrZXlzVG9SZW1vdmVbaV0pOwogICAgIH0KIAorI2lmIEVO
QUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBpZiAoZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSkg
eworICAgICAgICAvLyBNYXJrICYgc3dlZXAgdW51c2VkIHZlcnRpY2FsRGF0YQorICAgICAgICBG
b250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YUVuZCA9IGdGb250VmVy
dGljYWxEYXRhQ2FjaGUtPmVuZCgpOworICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNo
ZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+YmVnaW4o
KTsgdmVydGljYWxEYXRhICE9IHZlcnRpY2FsRGF0YUVuZDsgKyt2ZXJ0aWNhbERhdGEpCisgICAg
ICAgICAgICB2ZXJ0aWNhbERhdGEtPnNlY29uZC0+bV9pbkZvbnRDYWNoZSA9IGZhbHNlOworICAg
ICAgICBGb250RGF0YUNhY2hlOjppdGVyYXRvciBmb250RGF0YUVuZCA9IGdGb250RGF0YUNhY2hl
LT5lbmQoKTsKKyAgICAgICAgZm9yIChGb250RGF0YUNhY2hlOjppdGVyYXRvciBmb250RGF0YSA9
IGdGb250RGF0YUNhY2hlLT5iZWdpbigpOyBmb250RGF0YSAhPSBmb250RGF0YUVuZDsgKytmb250
RGF0YSkgeworICAgICAgICAgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9
IGNvbnN0X2Nhc3Q8T3BlblR5cGVWZXJ0aWNhbERhdGEqPihmb250RGF0YS0+c2Vjb25kLmZpcnN0
LT52ZXJ0aWNhbERhdGEoKSk7CisgICAgICAgICAgICBpZiAodmVydGljYWxEYXRhKQorICAgICAg
ICAgICAgICAgIHZlcnRpY2FsRGF0YS0+bV9pbkZvbnRDYWNoZSA9IHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4ga2V5c1RvUmVtb3ZlOworICAgICAgICBrZXlz
VG9SZW1vdmUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5z
aXplKCkpOworICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVy
dGljYWxEYXRhID0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+YmVnaW4oKTsgdmVydGljYWxEYXRh
ICE9IHZlcnRpY2FsRGF0YUVuZDsgKyt2ZXJ0aWNhbERhdGEpIHsKKyAgICAgICAgICAgIGlmICgh
dmVydGljYWxEYXRhLT5zZWNvbmQtPm1faW5Gb250Q2FjaGUpCisgICAgICAgICAgICAgICAga2V5
c1RvUmVtb3ZlLmFwcGVuZCh2ZXJ0aWNhbERhdGEtPmZpcnN0KTsKKyAgICAgICAgfQorICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBrZXlzVG9SZW1vdmUuc2l6ZSgpOyBpIDwgY291
bnQ7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT50YWtl
KGtleXNUb1JlbW92ZVtpXSk7CisgICAgfQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBmYWxz
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApp
bmRleCA4OWU3MWQwLi5lN2VhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaApAQCAtNDksNiArNDksOSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRh
OwogY2xhc3MgRm9udERhdGE7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250U2Vs
ZWN0b3I7CisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorY2xhc3MgT3BlblR5cGVWZXJ0
aWNhbERhdGE7CisjZW5kaWYKIGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250Q2Fj
aGUgewpAQCAtMTA0LDYgKzEwNywxMCBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEqIGZv
bnREYXRhRnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBT
aG91bGRSZXRhaW4sIGNvbnN0IExPR0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1pbHlO
YW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIE9wZW5U
eXBlVmVydGljYWxEYXRhKiBnZXRWZXJ0aWNhbERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiwgY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRm9udENhY2hl
KCk7CiAgICAgfkZvbnRDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKaW5kZXggZmQyZmZjYi4uN2FjMGVkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCkBAIC0z
MSw2ICszMSw5IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR2x5cGhNZXRy
aWNzTWFwLmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BF
TlRZUEVfVkVSVElDQUwpCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRp
ZgogI2luY2x1ZGUgIlR5cGVzZXR0aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTg4LDYgKzkxLDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgflNpbXBsZUZvbnREYXRhKCk7CiAKICAgICBjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YTsgfQor
I2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBjb25zdCBPcGVuVHlwZVZlcnRpY2Fs
RGF0YSogdmVydGljYWxEYXRhKCkgY29uc3QgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogaW1wbGVt
ZW50CisjZW5kaWYKIAogICAgIFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKICAgICBTaW1wbGVGb250RGF0YSogZW1waGFzaXNN
YXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2Fs
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5
cGVWZXJ0aWNhbERhdGEuaAppbmRleCBmMDczOTU3Li43ZDYyZDU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5U
eXBlVmVydGljYWxEYXRhLmgKQEAgLTU2LDYgKzU2LDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8
aW50MTZfdD4gbV90b3BTaWRlQmVhcmluZ3M7CiAgICAgaW50MTZfdCBtX2RlZmF1bHRWZXJ0T3Jp
Z2luWTsKICAgICBIYXNoTWFwPEdseXBoLCBpbnQxNl90PiBtX3ZlcnRPcmlnaW5ZOworCisgICAg
ZnJpZW5kIGNsYXNzIEZvbnRDYWNoZTsKKyAgICBib29sIG1faW5Gb250Q2FjaGUgOiAxOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135005</attachid>
            <date>2012-04-01 10:23:28 -0700</date>
            <delta_ts>2012-04-17 20:29:44 -0700</delta_ts>
            <desc>Cache support for OpenTypeVerticalData</desc>
            <filename>81332-6.patch</filename>
            <type>text/plain</type>
            <size>8555</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzM5ZmJiLi41ZjUxOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDQtMDEgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIEZvbnRDYWNoZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcwor
ICAgICAgICBpbnN0YW5jZXMgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAg
ICAgICAgV2UgbmVlZCBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250
IGZpbGUsIGFuZCB3ZSBkb24ndAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGlu
c3RhbmNlcyB0b2RheS4KKworICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3Qg
ZW5hYmxlZCBmb3IgYW55IHBsYXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNu
J3Qgb24gYW55IGNvZGUgcGF0aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdv
aW5nCisgICAgICAgIHRvIHVzZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0
NTAsIDY5MjgyKSBhcyB3ZWxsLgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVG
b250RGF0YS5oIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSByZXF1aXJl
ZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQ
bGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNhYmxlIFdp
bmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2FjaGVkIE9w
ZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUgb25lLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEpOiBQdXJn
ZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBkdW1teSBp
bXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oOiBB
ZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVuVHlwZVZl
cnRpY2FsRGF0YSk6CisKIDIwMTItMDMtMzAgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5j
b20+CiAKICAgICAgICAgVmVydGljYWwgYWx0ZXJuYXRlIGdseXBoIChHU1VCKSBzdXBwb3J0IGZv
ciBPcGVuVHlwZVZlcnRpY2FsRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggNDdmMjUxYy4uMTBjNDYxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zNSwxMCArMzUsMTQg
QEAKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVf
VkVSVElDQUwpCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xODMsNiAr
MTg3LDE0IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHlOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1MpICYm
IEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUgZm9u
dCBuYW1lIGVuYWJsZXMgV2luZG93cyB2ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250Lgor
ICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVydGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRvbid0
IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dzIGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJkcyAi
QCIgcmVnYXJkbGVzcyBvZiB0aGUgb3JpZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVoYXZp
b3IuCisgICAgaWYgKCFmYW1pbHlOYW1lLmlzRW1wdHkoKSAmJiBmYW1pbHlOYW1lWzBdID09ICdA
JykKKyAgICAgICAgcmV0dXJuIGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2NyaXB0
aW9uLCBBdG9taWNTdHJpbmcoZmFtaWx5TmFtZS5pbXBsKCktPnN1YnN0cmluZygxKSksIGNoZWNr
aW5nQWx0ZXJuYXRlTmFtZSk7CisjZW5kaWYKKwogICAgIGlmICghZ0ZvbnRQbGF0Zm9ybURhdGFD
YWNoZSkgewogICAgICAgICBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0gbmV3IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZTsKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CkBAIC0yMTYsNiArMjI4LDMzIEBA
IEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmIEVO
QUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKK3R5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIE9w
ZW5UeXBlVmVydGljYWxEYXRhKj4gRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCitzdGF0aWMgRm9u
dFZlcnRpY2FsRGF0YUNhY2hlKiBnRm9udFZlcnRpY2FsRGF0YUNhY2hlID0gMDsKKworT3BlblR5
cGVWZXJ0aWNhbERhdGEqIEZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKGNvbnN0IEF0b21pY1N0
cmluZyYga2V5LCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEpCit7CisgICAg
aWYgKGtleS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGdGb250VmVy
dGljYWxEYXRhQ2FjaGUpIHsKKyAgICAgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRv
ciByZXN1bHQgPSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5maW5kKGtleSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+ZW5kKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LmdldCgpLT5zZWNvbmQ7CisgICAgfSBlbHNlCisgICAgICAgIGdGb250VmVy
dGljYWxEYXRhQ2FjaGUgPSBuZXcgRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCisgICAgT3BlblR5
cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9IG5ldyBPcGVuVHlwZVZlcnRpY2FsRGF0YShw
bGF0Zm9ybURhdGEpOworICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpIHsKKyAg
ICAgICAgZGVsZXRlIHZlcnRpY2FsRGF0YTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gMDsgLy8g
UHV0IDAgaW4gY2FjaGUgdG8gbWFyayB0aGF0IHRoaXMgaXNuJ3QgYW4gT3BlblR5cGUgZm9udC4K
KyAgICB9CisgICAgZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+c2V0KGtleSwgdmVydGljYWxEYXRh
KTsKKyAgICByZXR1cm4gdmVydGljYWxEYXRhOworfQorI2VuZGlmCisKIHN0cnVjdCBGb250RGF0
YUNhY2hlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRm9udFBsYXRm
b3JtRGF0YSYgcGxhdGZvcm1EYXRhKQogICAgIHsKQEAgLTM4MSw2ICs0MjAsMzEgQEAgdm9pZCBG
b250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YShpbnQgY291bnQpCiAgICAgICAgICAgICBk
ZWxldGUgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+dGFrZShrZXlzVG9SZW1vdmVbaV0pOwogICAg
IH0KIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBpZiAoZ0ZvbnRWZXJ0aWNh
bERhdGFDYWNoZSkgeworICAgICAgICAvLyBNYXJrICYgc3dlZXAgdW51c2VkIHZlcnRpY2FsRGF0
YQorICAgICAgICBGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YUVu
ZCA9IGdGb250VmVydGljYWxEYXRhQ2FjaGUtPmVuZCgpOworICAgICAgICBmb3IgKEZvbnRWZXJ0
aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZ0ZvbnRWZXJ0aWNhbERhdGFD
YWNoZS0+YmVnaW4oKTsgdmVydGljYWxEYXRhICE9IHZlcnRpY2FsRGF0YUVuZDsgKyt2ZXJ0aWNh
bERhdGEpIHsKKyAgICAgICAgICAgIGlmICh2ZXJ0aWNhbERhdGEtPnNlY29uZCkKKyAgICAgICAg
ICAgICAgICB2ZXJ0aWNhbERhdGEtPnNlY29uZC0+bV9pbkZvbnRDYWNoZSA9IGZhbHNlOworICAg
ICAgICB9CisgICAgICAgIEZvbnREYXRhQ2FjaGU6Oml0ZXJhdG9yIGZvbnREYXRhRW5kID0gZ0Zv
bnREYXRhQ2FjaGUtPmVuZCgpOworICAgICAgICBmb3IgKEZvbnREYXRhQ2FjaGU6Oml0ZXJhdG9y
IGZvbnREYXRhID0gZ0ZvbnREYXRhQ2FjaGUtPmJlZ2luKCk7IGZvbnREYXRhICE9IGZvbnREYXRh
RW5kOyArK2ZvbnREYXRhKSB7CisgICAgICAgICAgICBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVy
dGljYWxEYXRhID0gY29uc3RfY2FzdDxPcGVuVHlwZVZlcnRpY2FsRGF0YSo+KGZvbnREYXRhLT5z
ZWNvbmQuZmlyc3QtPnZlcnRpY2FsRGF0YSgpKTsKKyAgICAgICAgICAgIGlmICh2ZXJ0aWNhbERh
dGEpCisgICAgICAgICAgICAgICAgdmVydGljYWxEYXRhLT5tX2luRm9udENhY2hlID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBrZXlzVG9SZW1vdmU7Cisg
ICAgICAgIGtleXNUb1JlbW92ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGdGb250VmVydGljYWxE
YXRhQ2FjaGUtPnNpemUoKSk7CisgICAgICAgIGZvciAoRm9udFZlcnRpY2FsRGF0YUNhY2hlOjpp
dGVyYXRvciB2ZXJ0aWNhbERhdGEgPSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5iZWdpbigpOyB2
ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkgeworICAgICAg
ICAgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPnNlY29uZCB8fCAhdmVydGljYWxEYXRhLT5zZWNvbmQt
Pm1faW5Gb250Q2FjaGUpCisgICAgICAgICAgICAgICAga2V5c1RvUmVtb3ZlLmFwcGVuZCh2ZXJ0
aWNhbERhdGEtPmZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwg
Y291bnQgPSBrZXlzVG9SZW1vdmUuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAg
IGRlbGV0ZSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT50YWtlKGtleXNUb1JlbW92ZVtpXSk7Cisg
ICAgfQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCA4OWU3MWQwLi5lN2VhZGUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAt
NDksNiArNDksOSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgRm9udERhdGE7CiBj
bGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250U2VsZWN0b3I7CisjaWYgRU5BQkxFKE9Q
RU5UWVBFX1ZFUlRJQ0FMKQorY2xhc3MgT3BlblR5cGVWZXJ0aWNhbERhdGE7CisjZW5kaWYKIGNs
YXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250Q2FjaGUgewpAQCAtMTA0LDYgKzEwNywx
MCBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhRnJvbURlc2NyaXB0aW9u
QW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRSZXRhaW4sIGNvbnN0IExP
R0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiBnZXRW
ZXJ0aWNhbERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRm9udENhY2hlKCk7CiAgICAgfkZvbnRDYWNoZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRh
LmgKaW5kZXggZmQyZmZjYi4uN2FjMGVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCkBAIC0zMSw2ICszMSw5IEBACiAjaW5jbHVk
ZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR2x5cGhNZXRyaWNzTWFwLmgiCiAjaW5jbHVkZSAi
R2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisjaW5j
bHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlR5cGVzZXR0
aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KQEAgLTg4LDYgKzkxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNpbXBs
ZUZvbnREYXRhKCk7CiAKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEo
KSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YTsgfQorI2lmIEVOQUJMRShPUEVOVFlQRV9W
RVJUSUNBTCkKKyAgICBjb25zdCBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhKCkg
Y29uc3QgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogaW1wbGVtZW50CisjZW5kaWYKIAogICAgIFNp
bXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKSBj
b25zdDsKICAgICBTaW1wbGVGb250RGF0YSogZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaAppbmRl
eCBmMDczOTU3Li43ZDYyZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKQEAg
LTU2LDYgKzU2LDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8aW50MTZfdD4gbV90b3BTaWRlQmVh
cmluZ3M7CiAgICAgaW50MTZfdCBtX2RlZmF1bHRWZXJ0T3JpZ2luWTsKICAgICBIYXNoTWFwPEds
eXBoLCBpbnQxNl90PiBtX3ZlcnRPcmlnaW5ZOworCisgICAgZnJpZW5kIGNsYXNzIEZvbnRDYWNo
ZTsKKyAgICBib29sIG1faW5Gb250Q2FjaGUgOiAxOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137552</attachid>
            <date>2012-04-17 09:52:00 -0700</date>
            <delta_ts>2012-04-18 22:52:30 -0700</delta_ts>
            <desc>reflected changes from Kenichi&apos;s review (removed bit-field)</desc>
            <filename>81332-7.patch</filename>
            <type>text/plain</type>
            <size>8609</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3OWQ4Yjc4Li4wNTQ0NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDQtMDEgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZvbnRDYWNo
ZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0YW5jZXMg
dGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVlZCBvbmUg
aW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3ZSBkb24n
dAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2RheS4KKwor
ICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3IgYW55IHBs
YXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNvZGUgcGF0
aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAgIHRvIHVz
ZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBhcyB3ZWxs
LgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdpbGwgYmUg
aW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSByZXF1aXJl
ZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQ
bGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNhYmxlIFdp
bmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2FjaGVkIE9w
ZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUgb25lLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEpOiBQdXJn
ZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBkdW1teSBp
bXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oOiBB
ZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVuVHlwZVZl
cnRpY2FsRGF0YSk6CisKIDIwMTItMDMtMzAgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5j
b20+CiAKICAgICAgICAgVmVydGljYWwgYWx0ZXJuYXRlIGdseXBoIChHU1VCKSBzdXBwb3J0IGZv
ciBPcGVuVHlwZVZlcnRpY2FsRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggNDdmMjUxYy4uMTBjNDYxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zNSwxMCArMzUsMTQg
QEAKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVf
VkVSVElDQUwpCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xODMsNiAr
MTg3LDE0IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHlOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1MpICYm
IEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUgZm9u
dCBuYW1lIGVuYWJsZXMgV2luZG93cyB2ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250Lgor
ICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVydGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRvbid0
IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dzIGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJkcyAi
QCIgcmVnYXJkbGVzcyBvZiB0aGUgb3JpZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVoYXZp
b3IuCisgICAgaWYgKCFmYW1pbHlOYW1lLmlzRW1wdHkoKSAmJiBmYW1pbHlOYW1lWzBdID09ICdA
JykKKyAgICAgICAgcmV0dXJuIGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2NyaXB0
aW9uLCBBdG9taWNTdHJpbmcoZmFtaWx5TmFtZS5pbXBsKCktPnN1YnN0cmluZygxKSksIGNoZWNr
aW5nQWx0ZXJuYXRlTmFtZSk7CisjZW5kaWYKKwogICAgIGlmICghZ0ZvbnRQbGF0Zm9ybURhdGFD
YWNoZSkgewogICAgICAgICBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0gbmV3IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZTsKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CkBAIC0yMTYsNiArMjI4LDMzIEBA
IEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmIEVO
QUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKK3R5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIE9w
ZW5UeXBlVmVydGljYWxEYXRhKj4gRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCitzdGF0aWMgRm9u
dFZlcnRpY2FsRGF0YUNhY2hlKiBnRm9udFZlcnRpY2FsRGF0YUNhY2hlID0gMDsKKworT3BlblR5
cGVWZXJ0aWNhbERhdGEqIEZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKGNvbnN0IEF0b21pY1N0
cmluZyYga2V5LCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEpCit7CisgICAg
aWYgKGtleS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGdGb250VmVy
dGljYWxEYXRhQ2FjaGUpIHsKKyAgICAgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRv
ciByZXN1bHQgPSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5maW5kKGtleSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+ZW5kKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LmdldCgpLT5zZWNvbmQ7CisgICAgfSBlbHNlCisgICAgICAgIGdGb250VmVy
dGljYWxEYXRhQ2FjaGUgPSBuZXcgRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCisgICAgT3BlblR5
cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9IG5ldyBPcGVuVHlwZVZlcnRpY2FsRGF0YShw
bGF0Zm9ybURhdGEpOworICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpIHsKKyAg
ICAgICAgZGVsZXRlIHZlcnRpY2FsRGF0YTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gMDsgLy8g
UHV0IDAgaW4gY2FjaGUgdG8gbWFyayB0aGF0IHRoaXMgaXNuJ3QgYW4gT3BlblR5cGUgZm9udC4K
KyAgICB9CisgICAgZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+c2V0KGtleSwgdmVydGljYWxEYXRh
KTsKKyAgICByZXR1cm4gdmVydGljYWxEYXRhOworfQorI2VuZGlmCisKIHN0cnVjdCBGb250RGF0
YUNhY2hlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRm9udFBsYXRm
b3JtRGF0YSYgcGxhdGZvcm1EYXRhKQogICAgIHsKQEAgLTM4MSw2ICs0MjAsMzEgQEAgdm9pZCBG
b250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YShpbnQgY291bnQpCiAgICAgICAgICAgICBk
ZWxldGUgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+dGFrZShrZXlzVG9SZW1vdmVbaV0pOwogICAg
IH0KIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBpZiAoZ0ZvbnRWZXJ0aWNh
bERhdGFDYWNoZSkgeworICAgICAgICAvLyBNYXJrICYgc3dlZXAgdW51c2VkIHZlcnRpY2FsRGF0
YQorICAgICAgICBGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YUVu
ZCA9IGdGb250VmVydGljYWxEYXRhQ2FjaGUtPmVuZCgpOworICAgICAgICBmb3IgKEZvbnRWZXJ0
aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZ0ZvbnRWZXJ0aWNhbERhdGFD
YWNoZS0+YmVnaW4oKTsgdmVydGljYWxEYXRhICE9IHZlcnRpY2FsRGF0YUVuZDsgKyt2ZXJ0aWNh
bERhdGEpIHsKKyAgICAgICAgICAgIGlmICh2ZXJ0aWNhbERhdGEtPnNlY29uZCkKKyAgICAgICAg
ICAgICAgICB2ZXJ0aWNhbERhdGEtPnNlY29uZC0+bV9pbkZvbnRDYWNoZSA9IGZhbHNlOworICAg
ICAgICB9CisgICAgICAgIEZvbnREYXRhQ2FjaGU6Oml0ZXJhdG9yIGZvbnREYXRhRW5kID0gZ0Zv
bnREYXRhQ2FjaGUtPmVuZCgpOworICAgICAgICBmb3IgKEZvbnREYXRhQ2FjaGU6Oml0ZXJhdG9y
IGZvbnREYXRhID0gZ0ZvbnREYXRhQ2FjaGUtPmJlZ2luKCk7IGZvbnREYXRhICE9IGZvbnREYXRh
RW5kOyArK2ZvbnREYXRhKSB7CisgICAgICAgICAgICBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVy
dGljYWxEYXRhID0gY29uc3RfY2FzdDxPcGVuVHlwZVZlcnRpY2FsRGF0YSo+KGZvbnREYXRhLT5z
ZWNvbmQuZmlyc3QtPnZlcnRpY2FsRGF0YSgpKTsKKyAgICAgICAgICAgIGlmICh2ZXJ0aWNhbERh
dGEpCisgICAgICAgICAgICAgICAgdmVydGljYWxEYXRhLT5tX2luRm9udENhY2hlID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBrZXlzVG9SZW1vdmU7Cisg
ICAgICAgIGtleXNUb1JlbW92ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGdGb250VmVydGljYWxE
YXRhQ2FjaGUtPnNpemUoKSk7CisgICAgICAgIGZvciAoRm9udFZlcnRpY2FsRGF0YUNhY2hlOjpp
dGVyYXRvciB2ZXJ0aWNhbERhdGEgPSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5iZWdpbigpOyB2
ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkgeworICAgICAg
ICAgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPnNlY29uZCB8fCAhdmVydGljYWxEYXRhLT5zZWNvbmQt
Pm1faW5Gb250Q2FjaGUpCisgICAgICAgICAgICAgICAga2V5c1RvUmVtb3ZlLmFwcGVuZCh2ZXJ0
aWNhbERhdGEtPmZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwg
Y291bnQgPSBrZXlzVG9SZW1vdmUuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAg
IGRlbGV0ZSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT50YWtlKGtleXNUb1JlbW92ZVtpXSk7Cisg
ICAgfQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCA4OWU3MWQwLi5lN2VhZGUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAt
NDksNiArNDksOSBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgRm9udERhdGE7CiBj
bGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250U2VsZWN0b3I7CisjaWYgRU5BQkxFKE9Q
RU5UWVBFX1ZFUlRJQ0FMKQorY2xhc3MgT3BlblR5cGVWZXJ0aWNhbERhdGE7CisjZW5kaWYKIGNs
YXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250Q2FjaGUgewpAQCAtMTA0LDYgKzEwNywx
MCBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhRnJvbURlc2NyaXB0aW9u
QW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRSZXRhaW4sIGNvbnN0IExP
R0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiBnZXRW
ZXJ0aWNhbERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRm9udENhY2hlKCk7CiAgICAgfkZvbnRDYWNoZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRh
LmgKaW5kZXggNDA5MDc3Zi4uYmJmMDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCkBAIC0zMSw2ICszMSw5IEBACiAjaW5jbHVk
ZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR2x5cGhNZXRyaWNzTWFwLmgiCiAjaW5jbHVkZSAi
R2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisjaW5j
bHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlR5cGVzZXR0
aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KQEAgLTkyLDYgKzk1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNpbXBs
ZUZvbnREYXRhKCk7CiAKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEo
KSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YTsgfQorI2lmIEVOQUJMRShPUEVOVFlQRV9W
RVJUSUNBTCkKKyAgICBjb25zdCBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhKCkg
Y29uc3QgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogaW1wbGVtZW50CisjZW5kaWYKIAogICAgIFNp
bXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKSBj
b25zdDsKICAgICBTaW1wbGVGb250RGF0YSogZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaAppbmRl
eCBmMDczOTU3Li40MDE1MDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKQEAg
LTU2LDYgKzU2LDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8aW50MTZfdD4gbV90b3BTaWRlQmVh
cmluZ3M7CiAgICAgaW50MTZfdCBtX2RlZmF1bHRWZXJ0T3JpZ2luWTsKICAgICBIYXNoTWFwPEds
eXBoLCBpbnQxNl90PiBtX3ZlcnRPcmlnaW5ZOworCisgICAgZnJpZW5kIGNsYXNzIEZvbnRDYWNo
ZTsKKyAgICBib29sIG1faW5Gb250Q2FjaGU7IC8vIGZvciBtYXJrICYgc3dlZXAgaW4gRm9udENh
Y2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEoKQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137841</attachid>
            <date>2012-04-18 22:52:30 -0700</date>
            <delta_ts>2012-07-16 02:37:24 -0700</delta_ts>
            <desc>Changed how it removes leading &quot;@&quot; from family name</desc>
            <filename>81332-8.patch</filename>
            <type>text/plain</type>
            <size>8731</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NGY5ZjFkLi4zNTEzMTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDQtMDEgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZvbnRDYWNo
ZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0YW5jZXMg
dGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVlZCBvbmUg
aW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3ZSBkb24n
dAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2RheS4KKwor
ICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3IgYW55IHBs
YXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNvZGUgcGF0
aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAgIHRvIHVz
ZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBhcyB3ZWxs
LgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdpbGwgYmUg
aW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSByZXF1aXJl
ZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQ
bGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNhYmxlIFdp
bmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2FjaGVkIE9w
ZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUgb25lLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEpOiBQdXJn
ZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBkdW1teSBp
bXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oOiBB
ZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVuVHlwZVZl
cnRpY2FsRGF0YSk6CisKIDIwMTItMDMtMzAgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5j
b20+CiAKICAgICAgICAgVmVydGljYWwgYWx0ZXJuYXRlIGdseXBoIChHU1VCKSBzdXBwb3J0IGZv
ciBPcGVuVHlwZVZlcnRpY2FsRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggNDdmMjUxYy4uNTczOTllZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zNSwxMCArMzUsMTQg
QEAKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVf
VkVSVElDQUwpCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xODMsNiAr
MTg3LDE3IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHlOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1MpICYm
IEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUgZm9u
dCBuYW1lIGVuYWJsZXMgV2luZG93cyB2ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250Lgor
ICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVydGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRvbid0
IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dzIGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJkcyAi
QCIgcmVnYXJkbGVzcyBvZiB0aGUgb3JpZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVoYXZp
b3IuCisgICAgaWYgKCFmYW1pbHlOYW1lLmlzRW1wdHkoKSAmJiBmYW1pbHlOYW1lWzBdID09ICdA
JykgeworICAgICAgICB1bnNpZ25lZCBpID0gMTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBjID0g
ZmFtaWx5TmFtZS5sZW5ndGgoKTsgaSA8IGMgJiYgZmFtaWx5TmFtZVtpXSA9PSAnQCc7ICsraSkg
eyB9CisgICAgICAgIHJldHVybiBnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlw
dGlvbiwgQXRvbWljU3RyaW5nKGZhbWlseU5hbWUuaW1wbCgpLT5zdWJzdHJpbmcoaSkpLCBjaGVj
a2luZ0FsdGVybmF0ZU5hbWUpOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKCFnRm9udFBsYXRm
b3JtRGF0YUNhY2hlKSB7CiAgICAgICAgIGdGb250UGxhdGZvcm1EYXRhQ2FjaGUgPSBuZXcgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlOwogICAgICAgICBwbGF0Zm9ybUluaXQoKTsKQEAgLTIxNiw2ICsy
MzEsMzMgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm8KICAgICByZXR1cm4gcmVzdWx0OwogfQog
CisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQordHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0
cmluZywgT3BlblR5cGVWZXJ0aWNhbERhdGEqPiBGb250VmVydGljYWxEYXRhQ2FjaGU7CisKK3N0
YXRpYyBGb250VmVydGljYWxEYXRhQ2FjaGUqIGdGb250VmVydGljYWxEYXRhQ2FjaGUgPSAwOwor
CitPcGVuVHlwZVZlcnRpY2FsRGF0YSogRm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEoY29uc3Qg
QXRvbWljU3RyaW5nJiBrZXksIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkK
K3sKKyAgICBpZiAoa2V5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAo
Z0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSkgeworICAgICAgICBGb250VmVydGljYWxEYXRhQ2FjaGU6
Oml0ZXJhdG9yIHJlc3VsdCA9IGdGb250VmVydGljYWxEYXRhQ2FjaGUtPmZpbmQoa2V5KTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPSBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5lbmQoKSkKKyAgICAg
ICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCktPnNlY29uZDsKKyAgICB9IGVsc2UKKyAgICAgICAg
Z0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IG5ldyBGb250VmVydGljYWxEYXRhQ2FjaGU7CisKKyAg
ICBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhID0gbmV3IE9wZW5UeXBlVmVydGlj
YWxEYXRhKHBsYXRmb3JtRGF0YSk7CisgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPmlzT3BlblR5cGUo
KSkgeworICAgICAgICBkZWxldGUgdmVydGljYWxEYXRhOworICAgICAgICB2ZXJ0aWNhbERhdGEg
PSAwOyAvLyBQdXQgMCBpbiBjYWNoZSB0byBtYXJrIHRoYXQgdGhpcyBpc24ndCBhbiBPcGVuVHlw
ZSBmb250LgorICAgIH0KKyAgICBnRm9udFZlcnRpY2FsRGF0YUNhY2hlLT5zZXQoa2V5LCB2ZXJ0
aWNhbERhdGEpOworICAgIHJldHVybiB2ZXJ0aWNhbERhdGE7Cit9CisjZW5kaWYKKwogc3RydWN0
IEZvbnREYXRhQ2FjaGVLZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBG
b250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEpCiAgICAgewpAQCAtMzgxLDYgKzQyMywzMSBA
QCB2b2lkIEZvbnRDYWNoZTo6cHVyZ2VJbmFjdGl2ZUZvbnREYXRhKGludCBjb3VudCkKICAgICAg
ICAgICAgIGRlbGV0ZSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT50YWtlKGtleXNUb1JlbW92ZVtp
XSk7CiAgICAgfQogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIGlmIChnRm9u
dFZlcnRpY2FsRGF0YUNhY2hlKSB7CisgICAgICAgIC8vIE1hcmsgJiBzd2VlcCB1bnVzZWQgdmVy
dGljYWxEYXRhCisgICAgICAgIEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGlj
YWxEYXRhRW5kID0gZ0ZvbnRWZXJ0aWNhbERhdGFDYWNoZS0+ZW5kKCk7CisgICAgICAgIGZvciAo
Rm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciB2ZXJ0aWNhbERhdGEgPSBnRm9udFZlcnRp
Y2FsRGF0YUNhY2hlLT5iZWdpbigpOyB2ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyAr
K3ZlcnRpY2FsRGF0YSkgeworICAgICAgICAgICAgaWYgKHZlcnRpY2FsRGF0YS0+c2Vjb25kKQor
ICAgICAgICAgICAgICAgIHZlcnRpY2FsRGF0YS0+c2Vjb25kLT5tX2luRm9udENhY2hlID0gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgICAgRm9udERhdGFDYWNoZTo6aXRlcmF0b3IgZm9udERhdGFF
bmQgPSBnRm9udERhdGFDYWNoZS0+ZW5kKCk7CisgICAgICAgIGZvciAoRm9udERhdGFDYWNoZTo6
aXRlcmF0b3IgZm9udERhdGEgPSBnRm9udERhdGFDYWNoZS0+YmVnaW4oKTsgZm9udERhdGEgIT0g
Zm9udERhdGFFbmQ7ICsrZm9udERhdGEpIHsKKyAgICAgICAgICAgIE9wZW5UeXBlVmVydGljYWxE
YXRhKiB2ZXJ0aWNhbERhdGEgPSBjb25zdF9jYXN0PE9wZW5UeXBlVmVydGljYWxEYXRhKj4oZm9u
dERhdGEtPnNlY29uZC5maXJzdC0+dmVydGljYWxEYXRhKCkpOworICAgICAgICAgICAgaWYgKHZl
cnRpY2FsRGF0YSkKKyAgICAgICAgICAgICAgICB2ZXJ0aWNhbERhdGEtPm1faW5Gb250Q2FjaGUg
PSB0cnVlOworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IGtleXNUb1Jl
bW92ZTsKKyAgICAgICAga2V5c1RvUmVtb3ZlLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZ0ZvbnRW
ZXJ0aWNhbERhdGFDYWNoZS0+c2l6ZSgpKTsKKyAgICAgICAgZm9yIChGb250VmVydGljYWxEYXRh
Q2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YSA9IGdGb250VmVydGljYWxEYXRhQ2FjaGUtPmJl
Z2luKCk7IHZlcnRpY2FsRGF0YSAhPSB2ZXJ0aWNhbERhdGFFbmQ7ICsrdmVydGljYWxEYXRhKSB7
CisgICAgICAgICAgICBpZiAoIXZlcnRpY2FsRGF0YS0+c2Vjb25kIHx8ICF2ZXJ0aWNhbERhdGEt
PnNlY29uZC0+bV9pbkZvbnRDYWNoZSkKKyAgICAgICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBw
ZW5kKHZlcnRpY2FsRGF0YS0+Zmlyc3QpOworICAgICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwLCBjb3VudCA9IGtleXNUb1JlbW92ZS5zaXplKCk7IGkgPCBjb3VudDsgKytpKQorICAg
ICAgICAgICAgZGVsZXRlIGdGb250VmVydGljYWxEYXRhQ2FjaGUtPnRha2Uoa2V5c1RvUmVtb3Zl
W2ldKTsKKyAgICB9CisjZW5kaWYKKwogICAgIGlzUHVyZ2luZyA9IGZhbHNlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCmluZGV4IDg5ZTcxZDAu
LmU3ZWFkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCkBAIC00OSw2ICs0OSw5IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBGb250
RGF0YTsKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZvbnRTZWxlY3RvcjsKKyNpZiBF
TkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCitjbGFzcyBPcGVuVHlwZVZlcnRpY2FsRGF0YTsKKyNl
bmRpZgogY2xhc3MgU2ltcGxlRm9udERhdGE7CiAKIGNsYXNzIEZvbnRDYWNoZSB7CkBAIC0xMDQs
NiArMTA3LDEwIEBAIHB1YmxpYzoKICAgICBTaW1wbGVGb250RGF0YSogZm9udERhdGFGcm9tRGVz
Y3JpcHRpb25BbmRMb2dGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIFNob3VsZFJldGFpbiwg
Y29uc3QgTE9HRk9OVCYgZm9udCwgd2NoYXJfdCogb3V0Rm9udEZhbWlseU5hbWUpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisgICAgT3BlblR5cGVWZXJ0aWNhbERh
dGEqIGdldFZlcnRpY2FsRGF0YShjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBGb250UGxhdGZv
cm1EYXRhJik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBGb250Q2FjaGUoKTsKICAgICB+Rm9u
dENhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aW1wbGVGb250RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxl
Rm9udERhdGEuaAppbmRleCA0MDkwNzdmLi5iYmYwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTMxLDYgKzMxLDkgQEAK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNp
bmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNB
TCkKKyNpbmNsdWRlICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
VHlwZXNldHRpbmdGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgpAQCAtOTIsNiArOTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+U2ltcGxlRm9udERhdGEoKTsKIAogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRm
b3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhOyB9CisjaWYgRU5BQkxFKE9Q
RU5UWVBFX1ZFUlRJQ0FMKQorICAgIGNvbnN0IE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNh
bERhdGEoKSBjb25zdCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyNlbmRpZgog
CiAgICAgU2ltcGxlRm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYpIGNvbnN0OwogICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0
YS5oCmluZGV4IGYwNzM5NTcuLjQwMTUwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERh
dGEuaApAQCAtNTYsNiArNTYsOSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxpbnQxNl90PiBtX3Rv
cFNpZGVCZWFyaW5nczsKICAgICBpbnQxNl90IG1fZGVmYXVsdFZlcnRPcmlnaW5ZOwogICAgIEhh
c2hNYXA8R2x5cGgsIGludDE2X3Q+IG1fdmVydE9yaWdpblk7CisKKyAgICBmcmllbmQgY2xhc3Mg
Rm9udENhY2hlOworICAgIGJvb2wgbV9pbkZvbnRDYWNoZTsgLy8gZm9yIG1hcmsgJiBzd2VlcCBp
biBGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YSgpCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152501</attachid>
            <date>2012-07-16 02:37:24 -0700</date>
            <delta_ts>2012-07-22 13:30:15 -0700</delta_ts>
            <desc>Reflected changes from rniwa&apos;s review</desc>
            <filename>81332-9.patch</filename>
            <type>text/plain</type>
            <size>9127</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZTA2MTFmLi5kNWU1ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDctMTYgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZvbnRDYWNo
ZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0YW5jZXMg
dGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVlZCBvbmUg
aW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3ZSBkb24n
dAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2RheS4KKwor
ICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3IgYW55IHBs
YXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNvZGUgcGF0
aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAgIHRvIHVz
ZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBhcyB3ZWxs
LgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdpbGwgYmUg
aW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSByZXF1aXJl
ZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQ
bGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNhYmxlIFdp
bmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2FjaGVkIE9w
ZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUgb25lLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEpOiBQdXJn
ZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBkdW1teSBp
bXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oOiBB
ZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVuVHlwZVZl
cnRpY2FsRGF0YSk6CisKIDIwMTItMDctMTUgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5j
b20+CiAKICAgICAgICAgVmVydGljYWwgYWx0ZXJuYXRlIGdseXBoIChHU1VCKSBzdXBwb3J0IGZv
ciBPcGVuVHlwZVZlcnRpY2FsRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggNDdmMjUxYy4uMWY1NmRlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zNSwxMCArMzUsMTQg
QEAKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUoT1BFTlRZUEVf
VkVSVElDQUwpCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xNzksMTAg
KzE4MywyMCBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhbHRlcm5hdGVGYW1pbHlOYW1l
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkKICAgICByZXR1cm4gZW1wdHlBdG9tOwog
fQogCi1Gb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgZmFtaWx5TmFtZSwKK0ZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVk
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHBhc3NlZEZhbWlseU5hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjaGVja2luZ0FsdGVybmF0
ZU5hbWUpCiB7CisjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQor
ICAgIC8vIExlYWRpbmcgIkAiIGluIHRoZSBmb250IG5hbWUgZW5hYmxlcyBXaW5kb3dzIHZlcnRp
Y2FsIGZsb3cgZmxhZyBmb3IgdGhlIGZvbnQuCisgICAgLy8gQmVjYXVzZSB3ZSBkbyB2ZXJ0aWNh
bCBmbG93IGJ5IG91cnNlbHZlcywgd2UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIFdpbmRvd3MgZmVh
dHVyZS4KKyAgICAvLyBJRSBkaXNyZWdhcmRzICJAIiByZWdhcmRsZXNzIG9mIHRoZSBvcmllbnRh
dG9pbiwgc28gd2UgZm9sbG93IHRoZSBiZWhhdmlvci4KKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGZhbWlseU5hbWUgPSBwYXNzZWRGYW1pbHlOYW1lLmlzRW1wdHkoKSB8fCBwYXNzZWRGYW1pbHlO
YW1lWzBdICE9ICdAJyA/CisgICAgICAgIHBhc3NlZEZhbWlseU5hbWUgOiBBdG9taWNTdHJpbmco
cGFzc2VkRmFtaWx5TmFtZS5pbXBsKCktPnN1YnN0cmluZygxKSk7CisjZWxzZQorICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSA9IHBhc3NlZEZhbWlseU5hbWU7CisjZW5kaWYKKwog
ICAgIGlmICghZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZSkgewogICAgICAgICBnRm9udFBsYXRmb3Jt
RGF0YUNhY2hlID0gbmV3IEZvbnRQbGF0Zm9ybURhdGFDYWNoZTsKICAgICAgICAgcGxhdGZvcm1J
bml0KCk7CkBAIC0yMTYsNiArMjMwLDMyIEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6
Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKK3R5cGVk
ZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIE9wZW5UeXBlVmVydGljYWxEYXRhKj4gRm9udFZlcnRp
Y2FsRGF0YUNhY2hlOworCitGb250VmVydGljYWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFD
YWNoZUluc3RhbmNlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRWZXJ0aWNhbERh
dGFDYWNoZSwgZm9udFZlcnRpY2FsRGF0YUNhY2hlLCAoKSk7CisgICAgcmV0dXJuIGZvbnRWZXJ0
aWNhbERhdGFDYWNoZTsKK30KKworT3BlblR5cGVWZXJ0aWNhbERhdGEqIEZvbnRDYWNoZTo6Z2V0
VmVydGljYWxEYXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrZXksIGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmIHBsYXRmb3JtRGF0YSkKK3sKKyAgICBGb250VmVydGljYWxEYXRhQ2FjaGUmIGZvbnRWZXJ0
aWNhbERhdGFDYWNoZSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3RhbmNlKCk7CisgICAgRm9u
dFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciByZXN1bHQgPSBmb250VmVydGljYWxEYXRhQ2Fj
aGUuZmluZChrZXkpOworICAgIGlmIChyZXN1bHQgIT0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmVu
ZCgpKQorICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpLT5zZWNvbmQ7CisKKyAgICBPcGVuVHlw
ZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhID0gbmV3IE9wZW5UeXBlVmVydGljYWxEYXRhKHBs
YXRmb3JtRGF0YSk7CisgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPmlzT3BlblR5cGUoKSkgeworICAg
ICAgICBkZWxldGUgdmVydGljYWxEYXRhOworICAgICAgICB2ZXJ0aWNhbERhdGEgPSAwOyAvLyBQ
dXQgMCBpbiBjYWNoZSB0byBtYXJrIHRoYXQgdGhpcyBpc24ndCBhbiBPcGVuVHlwZSBmb250Lgor
ICAgIH0KKyAgICBmb250VmVydGljYWxEYXRhQ2FjaGUuc2V0KGtleSwgdmVydGljYWxEYXRhKTsK
KyAgICByZXR1cm4gdmVydGljYWxEYXRhOworfQorI2VuZGlmCisKIHN0cnVjdCBGb250RGF0YUNh
Y2hlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYgcGxhdGZvcm1EYXRhKQogICAgIHsKQEAgLTM4MSw2ICs0MjEsMzIgQEAgdm9pZCBGb250
Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YShpbnQgY291bnQpCiAgICAgICAgICAgICBkZWxl
dGUgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+dGFrZShrZXlzVG9SZW1vdmVbaV0pOwogICAgIH0K
IAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBGb250VmVydGljYWxEYXRhQ2Fj
aGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3RhbmNl
KCk7CisgICAgaWYgKCFmb250VmVydGljYWxEYXRhQ2FjaGUuaXNFbXB0eSgpKSB7CisgICAgICAg
IC8vIE1hcmsgJiBzd2VlcCB1bnVzZWQgdmVydGljYWxEYXRhCisgICAgICAgIEZvbnRWZXJ0aWNh
bERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhRW5kID0gZm9udFZlcnRpY2FsRGF0YUNh
Y2hlLmVuZCgpOworICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3Ig
dmVydGljYWxEYXRhID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmJlZ2luKCk7IHZlcnRpY2FsRGF0
YSAhPSB2ZXJ0aWNhbERhdGFFbmQ7ICsrdmVydGljYWxEYXRhKSB7CisgICAgICAgICAgICBpZiAo
dmVydGljYWxEYXRhLT5zZWNvbmQpCisgICAgICAgICAgICAgICAgdmVydGljYWxEYXRhLT5zZWNv
bmQtPm1faW5Gb250Q2FjaGUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBGb250RGF0YUNh
Y2hlOjppdGVyYXRvciBmb250RGF0YUVuZCA9IGdGb250RGF0YUNhY2hlLT5lbmQoKTsKKyAgICAg
ICAgZm9yIChGb250RGF0YUNhY2hlOjppdGVyYXRvciBmb250RGF0YSA9IGdGb250RGF0YUNhY2hl
LT5iZWdpbigpOyBmb250RGF0YSAhPSBmb250RGF0YUVuZDsgKytmb250RGF0YSkgeworICAgICAg
ICAgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9IGNvbnN0X2Nhc3Q8T3Bl
blR5cGVWZXJ0aWNhbERhdGEqPihmb250RGF0YS0+c2Vjb25kLmZpcnN0LT52ZXJ0aWNhbERhdGEo
KSk7CisgICAgICAgICAgICBpZiAodmVydGljYWxEYXRhKQorICAgICAgICAgICAgICAgIHZlcnRp
Y2FsRGF0YS0+bV9pbkZvbnRDYWNoZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9y
PEZvbnRGaWxlS2V5PiBrZXlzVG9SZW1vdmU7CisgICAgICAgIGtleXNUb1JlbW92ZS5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5zaXplKCkpOworICAgICAgICBm
b3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZm9udFZl
cnRpY2FsRGF0YUNhY2hlLmJlZ2luKCk7IHZlcnRpY2FsRGF0YSAhPSB2ZXJ0aWNhbERhdGFFbmQ7
ICsrdmVydGljYWxEYXRhKSB7CisgICAgICAgICAgICBpZiAoIXZlcnRpY2FsRGF0YS0+c2Vjb25k
IHx8ICF2ZXJ0aWNhbERhdGEtPnNlY29uZC0+bV9pbkZvbnRDYWNoZSkKKyAgICAgICAgICAgICAg
ICBrZXlzVG9SZW1vdmUuYXBwZW5kKHZlcnRpY2FsRGF0YS0+Zmlyc3QpOworICAgICAgICB9Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGtleXNUb1JlbW92ZS5zaXplKCk7IGkg
PCBjb3VudDsgKytpKQorICAgICAgICAgICAgZGVsZXRlIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS50
YWtlKGtleXNUb1JlbW92ZVtpXSk7CisgICAgfQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAppbmRleCA5MDYzY2E3Li41YjRhNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNDksNiArNDksOSBAQCBjbGFzcyBGb250UGxhdGZvcm1E
YXRhOwogY2xhc3MgRm9udERhdGE7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250
U2VsZWN0b3I7CisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorY2xhc3MgT3BlblR5cGVW
ZXJ0aWNhbERhdGE7CisjZW5kaWYKIGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250
Q2FjaGUgewpAQCAtMTA0LDYgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEq
IGZvbnREYXRhRnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
LCBTaG91bGRSZXRhaW4sIGNvbnN0IExPR0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1p
bHlOYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIHR5
cGVkZWYgQXRvbWljU3RyaW5nIEZvbnRGaWxlS2V5OworICAgIE9wZW5UeXBlVmVydGljYWxEYXRh
KiBnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBjb25zdCBGb250UGxhdGZvcm1E
YXRhJik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBGb250Q2FjaGUoKTsKICAgICB+Rm9udENh
Y2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuaAppbmRleCA2ZmM5MThhLi4yYWI3MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNp
bmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNpbmNs
dWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkK
KyNpbmNsdWRlICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiVHlw
ZXNldHRpbmdGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgpAQCAtOTIsNiArOTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
U2ltcGxlRm9udERhdGEoKTsKIAogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3Jt
RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhOyB9CisjaWYgRU5BQkxFKE9QRU5U
WVBFX1ZFUlRJQ0FMKQorICAgIGNvbnN0IE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNhbERh
dGEoKSBjb25zdCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyNlbmRpZgogCiAg
ICAgU2ltcGxlRm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYpIGNvbnN0OwogICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5o
CmluZGV4IGYwNzM5NTcuLjQwMTUwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEu
aApAQCAtNTYsNiArNTYsOSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxpbnQxNl90PiBtX3RvcFNp
ZGVCZWFyaW5nczsKICAgICBpbnQxNl90IG1fZGVmYXVsdFZlcnRPcmlnaW5ZOwogICAgIEhhc2hN
YXA8R2x5cGgsIGludDE2X3Q+IG1fdmVydE9yaWdpblk7CisKKyAgICBmcmllbmQgY2xhc3MgRm9u
dENhY2hlOworICAgIGJvb2wgbV9pbkZvbnRDYWNoZTsgLy8gZm9yIG1hcmsgJiBzd2VlcCBpbiBG
b250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YSgpCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153703</attachid>
            <date>2012-07-22 13:30:15 -0700</date>
            <delta_ts>2012-07-28 09:25:13 -0700</delta_ts>
            <desc>Reflected items from Tony&apos;s review</desc>
            <filename>81332-10.patch</filename>
            <type>text/plain</type>
            <size>9325</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTU4NThkLi5kNzI2ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDctMTYgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZvbnRDYWNo
ZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0YW5jZXMg
dGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVlZCBvbmUg
aW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3ZSBkb24n
dAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2RheS4KKwor
ICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3IgYW55IHBs
YXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNvZGUgcGF0
aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAgIHRvIHVz
ZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBhcyB3ZWxs
LgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdpbGwgYmUg
aW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSByZXF1aXJl
ZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQ
bGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNhYmxlIFdp
bmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2FjaGVkIE9w
ZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUgb25lLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEpOiBQdXJn
ZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBkdW1teSBp
bXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oOiBB
ZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVuVHlwZVZl
cnRpY2FsRGF0YSk6CisKIDIwMTItMDctMjEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQ2xlYW51cCBUZXh0RW5jb2RpbmcgVVNFKFhYWF9VTklDT0RF
KSBtYWNyb3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwCmluZGV4IDQ3ZjI1MWMuLjA3OWI0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAi
Rm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIK
ICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTc5
LDEwICsxODEsMjAgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYWx0ZXJuYXRlRmFtaWx5
TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUpCiAgICAgcmV0dXJuIGVtcHR5QXRv
bTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseU5hbWUsCitGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENh
Y2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzZWRGYW1pbHlOYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2hlY2tpbmdBbHRl
cm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNB
TCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUgZm9udCBuYW1lIGVuYWJsZXMgV2luZG93cyB2
ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250LgorICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVy
dGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dz
IGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJkcyAiQCIgcmVnYXJkbGVzcyBvZiB0aGUgb3Jp
ZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVoYXZpb3IuCisgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBmYW1pbHlOYW1lID0gcGFzc2VkRmFtaWx5TmFtZS5pc0VtcHR5KCkgfHwgcGFzc2VkRmFt
aWx5TmFtZVswXSAhPSAnQCcgPworICAgICAgICBwYXNzZWRGYW1pbHlOYW1lIDogQXRvbWljU3Ry
aW5nKHBhc3NlZEZhbWlseU5hbWUuaW1wbCgpLT5zdWJzdHJpbmcoMSkpOworI2Vsc2UKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUgPSBwYXNzZWRGYW1pbHlOYW1lOworI2VuZGlm
CisKICAgICBpZiAoIWdGb250UGxhdGZvcm1EYXRhQ2FjaGUpIHsKICAgICAgICAgZ0ZvbnRQbGF0
Zm9ybURhdGFDYWNoZSA9IG5ldyBGb250UGxhdGZvcm1EYXRhQ2FjaGU7CiAgICAgICAgIHBsYXRm
b3JtSW5pdCgpOwpAQCAtMjE2LDYgKzIyOCwzMiBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2Fj
aGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCit0
eXBlZGVmIEhhc2hNYXA8Rm9udENhY2hlOjpGb250RmlsZUtleSwgT3duUHRyPE9wZW5UeXBlVmVy
dGljYWxEYXRhPj4gRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCitGb250VmVydGljYWxEYXRhQ2Fj
aGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3RhbmNlKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEZvbnRWZXJ0aWNhbERhdGFDYWNoZSwgZm9udFZlcnRpY2FsRGF0YUNhY2hlLCAoKSk7
CisgICAgcmV0dXJuIGZvbnRWZXJ0aWNhbERhdGFDYWNoZTsKK30KKworT3BlblR5cGVWZXJ0aWNh
bERhdGEqIEZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrZXks
IGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkKK3sKKyAgICBGb250VmVydGlj
YWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNo
ZUluc3RhbmNlKCk7CisgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciByZXN1bHQg
PSBmb250VmVydGljYWxEYXRhQ2FjaGUuZmluZChrZXkpOworICAgIGlmIChyZXN1bHQgIT0gZm9u
dFZlcnRpY2FsRGF0YUNhY2hlLmVuZCgpKQorICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpLT5z
ZWNvbmQuZ2V0KCk7CisKKyAgICBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhID0g
bmV3IE9wZW5UeXBlVmVydGljYWxEYXRhKHBsYXRmb3JtRGF0YSk7CisgICAgaWYgKCF2ZXJ0aWNh
bERhdGEtPmlzT3BlblR5cGUoKSkgeworICAgICAgICBkZWxldGUgdmVydGljYWxEYXRhOworICAg
ICAgICB2ZXJ0aWNhbERhdGEgPSAwOyAvLyBQdXQgMCBpbiBjYWNoZSB0byBtYXJrIHRoYXQgdGhp
cyBpc24ndCBhbiBPcGVuVHlwZSBmb250LgorICAgIH0KKyAgICBmb250VmVydGljYWxEYXRhQ2Fj
aGUuc2V0KGtleSwgYWRvcHRQdHIodmVydGljYWxEYXRhKSk7CisgICAgcmV0dXJuIHZlcnRpY2Fs
RGF0YTsKK30KKyNlbmRpZgorCiBzdHJ1Y3QgRm9udERhdGFDYWNoZUtleUhhc2ggewogICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkK
ICAgICB7CkBAIC0zODEsNiArNDE5LDMyIEBAIHZvaWQgRm9udENhY2hlOjpwdXJnZUluYWN0aXZl
Rm9udERhdGEoaW50IGNvdW50KQogICAgICAgICAgICAgZGVsZXRlIGdGb250UGxhdGZvcm1EYXRh
Q2FjaGUtPnRha2Uoa2V5c1RvUmVtb3ZlW2ldKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoT1BFTlRZ
UEVfVkVSVElDQUwpCisgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlJiBmb250VmVydGljYWxEYXRh
Q2FjaGUgPSBmb250VmVydGljYWxEYXRhQ2FjaGVJbnN0YW5jZSgpOworICAgIGlmICghZm9udFZl
cnRpY2FsRGF0YUNhY2hlLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBNYXJrICYgc3dlZXAgdW51
c2VkIHZlcnRpY2FsRGF0YQorICAgICAgICBGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9y
IHZlcnRpY2FsRGF0YUVuZCA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5lbmQoKTsKKyAgICAgICAg
Zm9yIChGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YSA9IGZvbnRW
ZXJ0aWNhbERhdGFDYWNoZS5iZWdpbigpOyB2ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5k
OyArK3ZlcnRpY2FsRGF0YSkgeworICAgICAgICAgICAgaWYgKHZlcnRpY2FsRGF0YS0+c2Vjb25k
KQorICAgICAgICAgICAgICAgIHZlcnRpY2FsRGF0YS0+c2Vjb25kLT5tX2luRm9udENhY2hlID0g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgRm9udERhdGFDYWNoZTo6aXRlcmF0b3IgZm9udERh
dGFFbmQgPSBnRm9udERhdGFDYWNoZS0+ZW5kKCk7CisgICAgICAgIGZvciAoRm9udERhdGFDYWNo
ZTo6aXRlcmF0b3IgZm9udERhdGEgPSBnRm9udERhdGFDYWNoZS0+YmVnaW4oKTsgZm9udERhdGEg
IT0gZm9udERhdGFFbmQ7ICsrZm9udERhdGEpIHsKKyAgICAgICAgICAgIE9wZW5UeXBlVmVydGlj
YWxEYXRhKiB2ZXJ0aWNhbERhdGEgPSBjb25zdF9jYXN0PE9wZW5UeXBlVmVydGljYWxEYXRhKj4o
Zm9udERhdGEtPnNlY29uZC5maXJzdC0+dmVydGljYWxEYXRhKCkpOworICAgICAgICAgICAgaWYg
KHZlcnRpY2FsRGF0YSkKKyAgICAgICAgICAgICAgICB2ZXJ0aWNhbERhdGEtPm1faW5Gb250Q2Fj
aGUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxGb250RmlsZUtleT4ga2V5c1Rv
UmVtb3ZlOworICAgICAgICBrZXlzVG9SZW1vdmUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmb250
VmVydGljYWxEYXRhQ2FjaGUuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChGb250VmVydGljYWxEYXRh
Q2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5iZWdp
bigpOyB2ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkgewor
ICAgICAgICAgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPnNlY29uZCB8fCAhdmVydGljYWxEYXRhLT5z
ZWNvbmQtPm1faW5Gb250Q2FjaGUpCisgICAgICAgICAgICAgICAga2V5c1RvUmVtb3ZlLmFwcGVu
ZCh2ZXJ0aWNhbERhdGEtPmZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMCwgY291bnQgPSBrZXlzVG9SZW1vdmUuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKKyAgICAg
ICAgICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS50YWtlKGtleXNUb1JlbW92ZVtpXSk7CisgICAg
fQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBjNzFlNDFmLi44NThkYjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNDks
NiArNDksNyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgRm9udERhdGE7CiBjbGFz
cyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250U2VsZWN0b3I7CitjbGFzcyBPcGVuVHlwZVZl
cnRpY2FsRGF0YTsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250Q2FjaGUgewpA
QCAtMTA0LDYgKzEwNSwxMSBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEqIGZvbnREYXRh
RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRS
ZXRhaW4sIGNvbnN0IExPR0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIHR5cGVkZWYgQXRv
bWljU3RyaW5nIEZvbnRGaWxlS2V5OworICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiBnZXRWZXJ0
aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBjb25zdCBGb250UGxhdGZvcm1EYXRhJik7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBGb250Q2FjaGUoKTsKICAgICB+Rm9udENhY2hlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaApp
bmRleCA0MjVjZjczLi4zNDUyZDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNpbmNsdWRlICJHbHlw
aFBhZ2VUcmVlTm9kZS5oIgorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyNpbmNsdWRl
ICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiVHlwZXNldHRpbmdG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgpAQCAtODgsNiArOTEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2ltcGxlRm9u
dERhdGEoKTsKIAogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhOyB9CisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJ
Q0FMKQorICAgIGNvbnN0IE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNhbERhdGEoKSBjb25z
dCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyNlbmRpZgogCiAgICAgU2ltcGxl
Rm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0
OwogICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oCmluZGV4IGYw
NzM5NTcuLjM0Y2NlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaApAQCAtMjUs
NiArMjUsOCBAQAogI2lmbmRlZiBPcGVuVHlwZVZlcnRpY2FsRGF0YV9oCiAjZGVmaW5lIE9wZW5U
eXBlVmVydGljYWxEYXRhX2gKIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKwogI2lu
Y2x1ZGUgIkdseXBoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC01Niw4ICs1OCwxMyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxpbnQxNl90
PiBtX3RvcFNpZGVCZWFyaW5nczsKICAgICBpbnQxNl90IG1fZGVmYXVsdFZlcnRPcmlnaW5ZOwog
ICAgIEhhc2hNYXA8R2x5cGgsIGludDE2X3Q+IG1fdmVydE9yaWdpblk7CisKKyAgICBmcmllbmQg
Y2xhc3MgRm9udENhY2hlOworICAgIGJvb2wgbV9pbkZvbnRDYWNoZTsgLy8gZm9yIG1hcmsgJiBz
d2VlcCBpbiBGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YSgpCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisK
ICNlbmRpZiAvLyBPcGVuVHlwZVZlcnRpY2FsRGF0YV9oCg==
</data>
<flag name="commit-queue"
          id="162721"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155133</attachid>
            <date>2012-07-28 09:25:13 -0700</date>
            <delta_ts>2012-07-28 10:04:18 -0700</delta_ts>
            <desc>Try to fix qt build from the last change</desc>
            <filename>81332-11.patch</filename>
            <type>text/plain</type>
            <size>9888</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODlkNDUwMi4uNGQ0MWYwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTQ4LDYgKzQ4LDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcyIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dy
YXBoaWNzL29wZW50eXBlIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyIK
ICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDcxNTg1OGQuLmQ3MjZkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAx
Mi0wNy0xNiAgS29qaSBJc2hpaSAgPGtvamlpc2hpQGdtYWlsLmNvbT4KKworICAgICAgICBDYWNo
ZSBzdXBwb3J0IGZvciBPcGVuVHlwZVZlcnRpY2FsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgRm9udENhY2hlIHRvIGNh
Y2hlIE9wZW5UeXBlVmVydGljYWxEYXRhIGNsYXNzCisgICAgICAgIGluc3RhbmNlcyB0aGF0IHdh
cyBpbnRyb2R1Y2VkIGluIGJ1ZyA4MTMyNi4KKworICAgICAgICBXZSBuZWVkIG9uZSBpbnN0YW5j
ZSBvZiB0aGUgY2xhc3MgcGVyIE9wZW5UeXBlIGZvbnQgZmlsZSwgYW5kIHdlIGRvbid0CisgICAg
ICAgIGhhdmUgYSBjbGFzcyB0byBob2xkIHN1Y2ggaW5zdGFuY2VzIHRvZGF5LgorCisgICAgICAg
IEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCBpc24ndCBlbmFibGVkIGZvciBhbnkgcGxhdGZvcm1z
IHlldCwgc28gdGhpcworICAgICAgICBwYXRjaCBpc24ndCBvbiBhbnkgY29kZSBwYXRoLiBBcHBs
ZSBXaW5kb3dzIHBvcnQgKGJ1ZyA0ODQ1OSkgaXMgZ29pbmcKKyAgICAgICAgdG8gdXNlIHRoaXMg
Y29kZSwgYW5kIHByb2JhYmx5IENocm9taXVtICg1MTQ1MCwgNjkyODIpIGFzIHdlbGwuCisKKyAg
ICAgICAgIkZJWE1FIiBjb21tZW50IGluIFNpbXBsZUZvbnREYXRhLmggd2lsbCBiZSBpbXBsZW1l
bnRlZCBpbiA0ODQ1OS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXJlIHJlcXVpcmVkLiBObyBi
ZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3Jt
RGF0YSk6IElnbm9yZSBsZWFkaW5nICJAIiBvbiBXaW5kb3dzIHRvIGRpc2FibGUgV2luZG93cyBm
ZWF0dXJlIGZvciB2ZXJ0aWNhbCBmbG93LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YSk6IEdldCBjYWNoZWQgT3BlblR5cGVW
ZXJ0aWNhbERhdGEgZnJvbSBGb250UGxhdGZvcm1EYXRhLCBvciBjcmV0ZSBvbmUuCisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YSk6IFB1cmdlIGluYWN0
aXZlIE9wZW5UeXBlVmVydGljYWxEYXRhLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaDoKKyAgICAgICAgKFNpbXBsZUZvbnREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjp2ZXJ0aWNhbERhdGEpOiBBIGR1bW15IGltcGxlbWVu
dGF0aW9uIGZvciBwdXJnZUluYWN0aXZlRm9udERhdGEoKSB0byB3b3JrLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmg6IEFkZGVkIG1f
aW5Gb250Q2FjaGUgZm9yIG1hcmsgJiBzd2VlcC4KKyAgICAgICAgKE9wZW5UeXBlVmVydGljYWxE
YXRhKToKKwogMjAxMi0wNy0yMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBDbGVhbnVwIFRleHRFbmNvZGluZyBVU0UoWFhYX1VOSUNPREUpIG1hY3Jv
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5k
ZXggNDdmMjUxYy4uMDc5YjRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zNSwxMCArMzUsMTIgQEAKICNpbmNsdWRlICJGb250UGxh
dGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiR2x5cGhQ
YWdlVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgogI2luY2x1
ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xNzksMTAgKzE4
MSwyMCBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhbHRlcm5hdGVGYW1pbHlOYW1lKGNv
bnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkKICAgICByZXR1cm4gZW1wdHlBdG9tOwogfQog
Ci1Gb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5TmFtZSwKK0ZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9u
dFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHBhc3NlZEZhbWlseU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5h
bWUpCiB7CisjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAg
IC8vIExlYWRpbmcgIkAiIGluIHRoZSBmb250IG5hbWUgZW5hYmxlcyBXaW5kb3dzIHZlcnRpY2Fs
IGZsb3cgZmxhZyBmb3IgdGhlIGZvbnQuCisgICAgLy8gQmVjYXVzZSB3ZSBkbyB2ZXJ0aWNhbCBm
bG93IGJ5IG91cnNlbHZlcywgd2UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIFdpbmRvd3MgZmVhdHVy
ZS4KKyAgICAvLyBJRSBkaXNyZWdhcmRzICJAIiByZWdhcmRsZXNzIG9mIHRoZSBvcmllbnRhdG9p
biwgc28gd2UgZm9sbG93IHRoZSBiZWhhdmlvci4KKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseU5hbWUgPSBwYXNzZWRGYW1pbHlOYW1lLmlzRW1wdHkoKSB8fCBwYXNzZWRGYW1pbHlOYW1l
WzBdICE9ICdAJyA/CisgICAgICAgIHBhc3NlZEZhbWlseU5hbWUgOiBBdG9taWNTdHJpbmcocGFz
c2VkRmFtaWx5TmFtZS5pbXBsKCktPnN1YnN0cmluZygxKSk7CisjZWxzZQorICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5TmFtZSA9IHBhc3NlZEZhbWlseU5hbWU7CisjZW5kaWYKKwogICAg
IGlmICghZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZSkgewogICAgICAgICBnRm9udFBsYXRmb3JtRGF0
YUNhY2hlID0gbmV3IEZvbnRQbGF0Zm9ybURhdGFDYWNoZTsKICAgICAgICAgcGxhdGZvcm1Jbml0
KCk7CkBAIC0yMTYsNiArMjI4LDMyIEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0
Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKK3R5cGVkZWYg
SGFzaE1hcDxGb250Q2FjaGU6OkZvbnRGaWxlS2V5LCBPd25QdHI8T3BlblR5cGVWZXJ0aWNhbERh
dGE+PiBGb250VmVydGljYWxEYXRhQ2FjaGU7CisKK0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSYgZm9u
dFZlcnRpY2FsRGF0YUNhY2hlSW5zdGFuY2UoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Rm9udFZlcnRpY2FsRGF0YUNhY2hlLCBmb250VmVydGljYWxEYXRhQ2FjaGUsICgpKTsKKyAgICBy
ZXR1cm4gZm9udFZlcnRpY2FsRGF0YUNhY2hlOworfQorCitPcGVuVHlwZVZlcnRpY2FsRGF0YSog
Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmIGtleSwgY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKQoreworICAgIEZvbnRWZXJ0aWNhbERhdGFD
YWNoZSYgZm9udFZlcnRpY2FsRGF0YUNhY2hlID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlSW5zdGFu
Y2UoKTsKKyAgICBGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHJlc3VsdCA9IGZvbnRW
ZXJ0aWNhbERhdGFDYWNoZS5maW5kKGtleSk7CisgICAgaWYgKHJlc3VsdCAhPSBmb250VmVydGlj
YWxEYXRhQ2FjaGUuZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCktPnNlY29uZC5n
ZXQoKTsKKworICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNhbERhdGEgPSBuZXcgT3Bl
blR5cGVWZXJ0aWNhbERhdGEocGxhdGZvcm1EYXRhKTsKKyAgICBpZiAoIXZlcnRpY2FsRGF0YS0+
aXNPcGVuVHlwZSgpKSB7CisgICAgICAgIGRlbGV0ZSB2ZXJ0aWNhbERhdGE7CisgICAgICAgIHZl
cnRpY2FsRGF0YSA9IDA7IC8vIFB1dCAwIGluIGNhY2hlIHRvIG1hcmsgdGhhdCB0aGlzIGlzbid0
IGFuIE9wZW5UeXBlIGZvbnQuCisgICAgfQorICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5zZXQo
a2V5LCBhZG9wdFB0cih2ZXJ0aWNhbERhdGEpKTsKKyAgICByZXR1cm4gdmVydGljYWxEYXRhOwor
fQorI2VuZGlmCisKIHN0cnVjdCBGb250RGF0YUNhY2hlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVu
c2lnbmVkIGhhc2goY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKQogICAgIHsK
QEAgLTM4MSw2ICs0MTksMzIgQEAgdm9pZCBGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0
YShpbnQgY291bnQpCiAgICAgICAgICAgICBkZWxldGUgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+
dGFrZShrZXlzVG9SZW1vdmVbaV0pOwogICAgIH0KIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJU
SUNBTCkKKyAgICBGb250VmVydGljYWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9
IGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3RhbmNlKCk7CisgICAgaWYgKCFmb250VmVydGljYWxE
YXRhQ2FjaGUuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIE1hcmsgJiBzd2VlcCB1bnVzZWQgdmVy
dGljYWxEYXRhCisgICAgICAgIEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGlj
YWxEYXRhRW5kID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmVuZCgpOworICAgICAgICBmb3IgKEZv
bnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZm9udFZlcnRpY2Fs
RGF0YUNhY2hlLmJlZ2luKCk7IHZlcnRpY2FsRGF0YSAhPSB2ZXJ0aWNhbERhdGFFbmQ7ICsrdmVy
dGljYWxEYXRhKSB7CisgICAgICAgICAgICBpZiAodmVydGljYWxEYXRhLT5zZWNvbmQpCisgICAg
ICAgICAgICAgICAgdmVydGljYWxEYXRhLT5zZWNvbmQtPm1faW5Gb250Q2FjaGUgPSBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgICBGb250RGF0YUNhY2hlOjppdGVyYXRvciBmb250RGF0YUVuZCA9
IGdGb250RGF0YUNhY2hlLT5lbmQoKTsKKyAgICAgICAgZm9yIChGb250RGF0YUNhY2hlOjppdGVy
YXRvciBmb250RGF0YSA9IGdGb250RGF0YUNhY2hlLT5iZWdpbigpOyBmb250RGF0YSAhPSBmb250
RGF0YUVuZDsgKytmb250RGF0YSkgeworICAgICAgICAgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEq
IHZlcnRpY2FsRGF0YSA9IGNvbnN0X2Nhc3Q8T3BlblR5cGVWZXJ0aWNhbERhdGEqPihmb250RGF0
YS0+c2Vjb25kLmZpcnN0LT52ZXJ0aWNhbERhdGEoKSk7CisgICAgICAgICAgICBpZiAodmVydGlj
YWxEYXRhKQorICAgICAgICAgICAgICAgIHZlcnRpY2FsRGF0YS0+bV9pbkZvbnRDYWNoZSA9IHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yPEZvbnRGaWxlS2V5PiBrZXlzVG9SZW1vdmU7
CisgICAgICAgIGtleXNUb1JlbW92ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGZvbnRWZXJ0aWNh
bERhdGFDYWNoZS5zaXplKCkpOworICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6
aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmJlZ2luKCk7IHZl
cnRpY2FsRGF0YSAhPSB2ZXJ0aWNhbERhdGFFbmQ7ICsrdmVydGljYWxEYXRhKSB7CisgICAgICAg
ICAgICBpZiAoIXZlcnRpY2FsRGF0YS0+c2Vjb25kIHx8ICF2ZXJ0aWNhbERhdGEtPnNlY29uZC0+
bV9pbkZvbnRDYWNoZSkKKyAgICAgICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBwZW5kKHZlcnRp
Y2FsRGF0YS0+Zmlyc3QpOworICAgICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBj
b3VudCA9IGtleXNUb1JlbW92ZS5zaXplKCk7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAgICAg
Zm9udFZlcnRpY2FsRGF0YUNhY2hlLnRha2Uoa2V5c1RvUmVtb3ZlW2ldKTsKKyAgICB9CisjZW5k
aWYKKwogICAgIGlzUHVyZ2luZyA9IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCmluZGV4IGM3MWU0MWYuLjg1OGRiMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBAIC00OSw2ICs0OSw3
IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBGb250RGF0YTsKIGNsYXNzIEZvbnRE
ZXNjcmlwdGlvbjsKIGNsYXNzIEZvbnRTZWxlY3RvcjsKK2NsYXNzIE9wZW5UeXBlVmVydGljYWxE
YXRhOwogY2xhc3MgU2ltcGxlRm9udERhdGE7CiAKIGNsYXNzIEZvbnRDYWNoZSB7CkBAIC0xMDQs
NiArMTA1LDExIEBAIHB1YmxpYzoKICAgICBTaW1wbGVGb250RGF0YSogZm9udERhdGFGcm9tRGVz
Y3JpcHRpb25BbmRMb2dGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIFNob3VsZFJldGFpbiwg
Y29uc3QgTE9HRk9OVCYgZm9udCwgd2NoYXJfdCogb3V0Rm9udEZhbWlseU5hbWUpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisgICAgdHlwZWRlZiBBdG9taWNTdHJp
bmcgRm9udEZpbGVLZXk7CisgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEqIGdldFZlcnRpY2FsRGF0
YShjb25zdCBGb250RmlsZUtleSYsIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKKyNlbmRpZgor
CiBwcml2YXRlOgogICAgIEZvbnRDYWNoZSgpOwogICAgIH5Gb250Q2FjaGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCmluZGV4IDQy
NWNmNzMuLjM0NTJkMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaApAQCAtMzEsNiArMzEsOSBAQAogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkdseXBoTWV0cmljc01hcC5oIgogI2luY2x1ZGUgIkdseXBoUGFnZVRy
ZWVOb2RlLmgiCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorI2luY2x1ZGUgIk9wZW5U
eXBlVmVydGljYWxEYXRhLmgiCisjZW5kaWYKICNpbmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1cmVz
LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CkBAIC04OCw2ICs5MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TaW1wbGVGb250RGF0YSgp
OwogCiAgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybURhdGE7IH0KKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisg
ICAgY29uc3QgT3BlblR5cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0gLy8gRklYTUU6IGltcGxlbWVudAorI2VuZGlmCiAKICAgICBTaW1wbGVGb250RGF0
YSogc21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAg
U2ltcGxlRm9udERhdGEqIGVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKaW5kZXggZjA3Mzk1Ny4u
MzRjY2VlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oCkBAIC0yNSw2ICsyNSw4
IEBACiAjaWZuZGVmIE9wZW5UeXBlVmVydGljYWxEYXRhX2gKICNkZWZpbmUgT3BlblR5cGVWZXJ0
aWNhbERhdGFfaAogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorCiAjaW5jbHVkZSAi
R2x5cGguaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTU2LDggKzU4LDEzIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPGludDE2X3Q+IG1fdG9w
U2lkZUJlYXJpbmdzOwogICAgIGludDE2X3QgbV9kZWZhdWx0VmVydE9yaWdpblk7CiAgICAgSGFz
aE1hcDxHbHlwaCwgaW50MTZfdD4gbV92ZXJ0T3JpZ2luWTsKKworICAgIGZyaWVuZCBjbGFzcyBG
b250Q2FjaGU7CisgICAgYm9vbCBtX2luRm9udENhY2hlOyAvLyBmb3IgbWFyayAmIHN3ZWVwIGlu
IEZvbnRDYWNoZTo6cHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKwogI2VuZGlm
IC8vIE9wZW5UeXBlVmVydGljYWxEYXRhX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155134</attachid>
            <date>2012-07-28 10:04:18 -0700</date>
            <delta_ts>2012-07-28 20:10:41 -0700</delta_ts>
            <desc>Resolved merge conflict in the previous patch</desc>
            <filename>81332-11.patch</filename>
            <type>text/plain</type>
            <size>9895</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzg1MzYwMi4uMDVlMWNhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSIKICAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enoiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkOTczOTIzLi5jOWNkN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTItMDctMTYgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisK
KyAgICAgICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZv
bnRDYWNoZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0
YW5jZXMgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVl
ZCBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3
ZSBkb24ndAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2Rh
eS4KKworICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3Ig
YW55IHBsYXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNv
ZGUgcGF0aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAg
IHRvIHVzZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBh
cyB3ZWxsLgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdp
bGwgYmUgaW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSBy
ZXF1aXJlZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hl
ZEZvbnRQbGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNh
YmxlIFdpbmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2Fj
aGVkIE9wZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUg
b25lLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEp
OiBQdXJnZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBk
dW1teSBpbXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0
YS5oOiBBZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVu
VHlwZVZlcnRpY2FsRGF0YSk6CisKIDIwMTItMDctMjggIFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3
NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFtDbGFtcF0gc3VwcG9ydCBpbiBiaW5kaW5nIGdl
bmVyYXRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwCmluZGV4IDQ3ZjI1MWMuLjA3OWI0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAi
Rm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIK
ICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTc5
LDEwICsxODEsMjAgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYWx0ZXJuYXRlRmFtaWx5
TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUpCiAgICAgcmV0dXJuIGVtcHR5QXRv
bTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseU5hbWUsCitGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENh
Y2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzZWRGYW1pbHlOYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2hlY2tpbmdBbHRl
cm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNB
TCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUgZm9udCBuYW1lIGVuYWJsZXMgV2luZG93cyB2
ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250LgorICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVy
dGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dz
IGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJkcyAiQCIgcmVnYXJkbGVzcyBvZiB0aGUgb3Jp
ZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVoYXZpb3IuCisgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBmYW1pbHlOYW1lID0gcGFzc2VkRmFtaWx5TmFtZS5pc0VtcHR5KCkgfHwgcGFzc2VkRmFt
aWx5TmFtZVswXSAhPSAnQCcgPworICAgICAgICBwYXNzZWRGYW1pbHlOYW1lIDogQXRvbWljU3Ry
aW5nKHBhc3NlZEZhbWlseU5hbWUuaW1wbCgpLT5zdWJzdHJpbmcoMSkpOworI2Vsc2UKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUgPSBwYXNzZWRGYW1pbHlOYW1lOworI2VuZGlm
CisKICAgICBpZiAoIWdGb250UGxhdGZvcm1EYXRhQ2FjaGUpIHsKICAgICAgICAgZ0ZvbnRQbGF0
Zm9ybURhdGFDYWNoZSA9IG5ldyBGb250UGxhdGZvcm1EYXRhQ2FjaGU7CiAgICAgICAgIHBsYXRm
b3JtSW5pdCgpOwpAQCAtMjE2LDYgKzIyOCwzMiBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2Fj
aGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCit0
eXBlZGVmIEhhc2hNYXA8Rm9udENhY2hlOjpGb250RmlsZUtleSwgT3duUHRyPE9wZW5UeXBlVmVy
dGljYWxEYXRhPj4gRm9udFZlcnRpY2FsRGF0YUNhY2hlOworCitGb250VmVydGljYWxEYXRhQ2Fj
aGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3RhbmNlKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEZvbnRWZXJ0aWNhbERhdGFDYWNoZSwgZm9udFZlcnRpY2FsRGF0YUNhY2hlLCAoKSk7
CisgICAgcmV0dXJuIGZvbnRWZXJ0aWNhbERhdGFDYWNoZTsKK30KKworT3BlblR5cGVWZXJ0aWNh
bERhdGEqIEZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrZXks
IGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkKK3sKKyAgICBGb250VmVydGlj
YWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNo
ZUluc3RhbmNlKCk7CisgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciByZXN1bHQg
PSBmb250VmVydGljYWxEYXRhQ2FjaGUuZmluZChrZXkpOworICAgIGlmIChyZXN1bHQgIT0gZm9u
dFZlcnRpY2FsRGF0YUNhY2hlLmVuZCgpKQorICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpLT5z
ZWNvbmQuZ2V0KCk7CisKKyAgICBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhID0g
bmV3IE9wZW5UeXBlVmVydGljYWxEYXRhKHBsYXRmb3JtRGF0YSk7CisgICAgaWYgKCF2ZXJ0aWNh
bERhdGEtPmlzT3BlblR5cGUoKSkgeworICAgICAgICBkZWxldGUgdmVydGljYWxEYXRhOworICAg
ICAgICB2ZXJ0aWNhbERhdGEgPSAwOyAvLyBQdXQgMCBpbiBjYWNoZSB0byBtYXJrIHRoYXQgdGhp
cyBpc24ndCBhbiBPcGVuVHlwZSBmb250LgorICAgIH0KKyAgICBmb250VmVydGljYWxEYXRhQ2Fj
aGUuc2V0KGtleSwgYWRvcHRQdHIodmVydGljYWxEYXRhKSk7CisgICAgcmV0dXJuIHZlcnRpY2Fs
RGF0YTsKK30KKyNlbmRpZgorCiBzdHJ1Y3QgRm9udERhdGFDYWNoZUtleUhhc2ggewogICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkK
ICAgICB7CkBAIC0zODEsNiArNDE5LDMyIEBAIHZvaWQgRm9udENhY2hlOjpwdXJnZUluYWN0aXZl
Rm9udERhdGEoaW50IGNvdW50KQogICAgICAgICAgICAgZGVsZXRlIGdGb250UGxhdGZvcm1EYXRh
Q2FjaGUtPnRha2Uoa2V5c1RvUmVtb3ZlW2ldKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoT1BFTlRZ
UEVfVkVSVElDQUwpCisgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlJiBmb250VmVydGljYWxEYXRh
Q2FjaGUgPSBmb250VmVydGljYWxEYXRhQ2FjaGVJbnN0YW5jZSgpOworICAgIGlmICghZm9udFZl
cnRpY2FsRGF0YUNhY2hlLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBNYXJrICYgc3dlZXAgdW51
c2VkIHZlcnRpY2FsRGF0YQorICAgICAgICBGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9y
IHZlcnRpY2FsRGF0YUVuZCA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5lbmQoKTsKKyAgICAgICAg
Zm9yIChGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YSA9IGZvbnRW
ZXJ0aWNhbERhdGFDYWNoZS5iZWdpbigpOyB2ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5k
OyArK3ZlcnRpY2FsRGF0YSkgeworICAgICAgICAgICAgaWYgKHZlcnRpY2FsRGF0YS0+c2Vjb25k
KQorICAgICAgICAgICAgICAgIHZlcnRpY2FsRGF0YS0+c2Vjb25kLT5tX2luRm9udENhY2hlID0g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgRm9udERhdGFDYWNoZTo6aXRlcmF0b3IgZm9udERh
dGFFbmQgPSBnRm9udERhdGFDYWNoZS0+ZW5kKCk7CisgICAgICAgIGZvciAoRm9udERhdGFDYWNo
ZTo6aXRlcmF0b3IgZm9udERhdGEgPSBnRm9udERhdGFDYWNoZS0+YmVnaW4oKTsgZm9udERhdGEg
IT0gZm9udERhdGFFbmQ7ICsrZm9udERhdGEpIHsKKyAgICAgICAgICAgIE9wZW5UeXBlVmVydGlj
YWxEYXRhKiB2ZXJ0aWNhbERhdGEgPSBjb25zdF9jYXN0PE9wZW5UeXBlVmVydGljYWxEYXRhKj4o
Zm9udERhdGEtPnNlY29uZC5maXJzdC0+dmVydGljYWxEYXRhKCkpOworICAgICAgICAgICAgaWYg
KHZlcnRpY2FsRGF0YSkKKyAgICAgICAgICAgICAgICB2ZXJ0aWNhbERhdGEtPm1faW5Gb250Q2Fj
aGUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIFZlY3RvcjxGb250RmlsZUtleT4ga2V5c1Rv
UmVtb3ZlOworICAgICAgICBrZXlzVG9SZW1vdmUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmb250
VmVydGljYWxEYXRhQ2FjaGUuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChGb250VmVydGljYWxEYXRh
Q2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5iZWdp
bigpOyB2ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkgewor
ICAgICAgICAgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPnNlY29uZCB8fCAhdmVydGljYWxEYXRhLT5z
ZWNvbmQtPm1faW5Gb250Q2FjaGUpCisgICAgICAgICAgICAgICAga2V5c1RvUmVtb3ZlLmFwcGVu
ZCh2ZXJ0aWNhbERhdGEtPmZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMCwgY291bnQgPSBrZXlzVG9SZW1vdmUuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKKyAgICAg
ICAgICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS50YWtlKGtleXNUb1JlbW92ZVtpXSk7CisgICAg
fQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBjNzFlNDFmLi44NThkYjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNDks
NiArNDksNyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgRm9udERhdGE7CiBjbGFz
cyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250U2VsZWN0b3I7CitjbGFzcyBPcGVuVHlwZVZl
cnRpY2FsRGF0YTsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBGb250Q2FjaGUgewpA
QCAtMTA0LDYgKzEwNSwxMSBAQCBwdWJsaWM6CiAgICAgU2ltcGxlRm9udERhdGEqIGZvbnREYXRh
RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRS
ZXRhaW4sIGNvbnN0IExPR0ZPTlQmIGZvbnQsIHdjaGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIHR5cGVkZWYgQXRv
bWljU3RyaW5nIEZvbnRGaWxlS2V5OworICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiBnZXRWZXJ0
aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBjb25zdCBGb250UGxhdGZvcm1EYXRhJik7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBGb250Q2FjaGUoKTsKICAgICB+Rm9udENhY2hlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaApp
bmRleCA0MjVjZjczLi4zNDUyZDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJHbHlwaE1ldHJpY3NNYXAuaCIKICNpbmNsdWRlICJHbHlw
aFBhZ2VUcmVlTm9kZS5oIgorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyNpbmNsdWRl
ICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiVHlwZXNldHRpbmdG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgpAQCAtODgsNiArOTEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2ltcGxlRm9u
dERhdGEoKTsKIAogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhOyB9CisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJ
Q0FMKQorICAgIGNvbnN0IE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNhbERhdGEoKSBjb25z
dCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyNlbmRpZgogCiAgICAgU2ltcGxl
Rm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0
OwogICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oCmluZGV4IGYw
NzM5NTcuLjM0Y2NlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaApAQCAtMjUs
NiArMjUsOCBAQAogI2lmbmRlZiBPcGVuVHlwZVZlcnRpY2FsRGF0YV9oCiAjZGVmaW5lIE9wZW5U
eXBlVmVydGljYWxEYXRhX2gKIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKwogI2lu
Y2x1ZGUgIkdseXBoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC01Niw4ICs1OCwxMyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxpbnQxNl90
PiBtX3RvcFNpZGVCZWFyaW5nczsKICAgICBpbnQxNl90IG1fZGVmYXVsdFZlcnRPcmlnaW5ZOwog
ICAgIEhhc2hNYXA8R2x5cGgsIGludDE2X3Q+IG1fdmVydE9yaWdpblk7CisKKyAgICBmcmllbmQg
Y2xhc3MgRm9udENhY2hlOworICAgIGJvb2wgbV9pbkZvbnRDYWNoZTsgLy8gZm9yIG1hcmsgJiBz
d2VlcCBpbiBGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YSgpCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisK
ICNlbmRpZiAvLyBPcGVuVHlwZVZlcnRpY2FsRGF0YV9oCg==
</data>
<flag name="commit-queue"
          id="164534"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155153</attachid>
            <date>2012-07-28 20:10:41 -0700</date>
            <delta_ts>2012-07-29 03:02:32 -0700</delta_ts>
            <desc>Still struggling to fix build after #ifdef for a #include was removed</desc>
            <filename>81332-12.patch</filename>
            <type>text/plain</type>
            <size>11177</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">Y29tbWl0IGE2MWZkNDI5ZTFlMWFmOTg1ODJlYjg3NTczNzBhZDhmNzRiMTk3N2UKQXV0aG9yOiBL
b2ppIElzaGlpIDxrb2ppaXNoaUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IE1hciAyMiAwOTo1ODoz
MyAyMDEyICswOTAwCgogICAgODEzMzIgRm9udCBjYWNoZSBzdXBwb3J0cyBPcGVuVHlwZVZlcnRp
Y2FsRGF0YQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzg1MzYwMi4uMDVlMWNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2Fy
bSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enoiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2JtcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOTczOTIzLi5jOWNkN2E0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMDctMTYgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFp
bC5jb20+CisKKyAgICAgICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIEZvbnRDYWNoZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAg
ICAgICBpbnN0YW5jZXMgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAg
ICAgV2UgbmVlZCBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZp
bGUsIGFuZCB3ZSBkb24ndAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3Rh
bmNlcyB0b2RheS4KKworICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5h
YmxlZCBmb3IgYW55IHBsYXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qg
b24gYW55IGNvZGUgcGF0aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5n
CisgICAgICAgIHRvIHVzZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAs
IDY5MjgyKSBhcyB3ZWxsLgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250
RGF0YS5oIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIGFyZSByZXF1aXJlZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93
cyB0byBkaXNhYmxlIFdpbmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEp
OiBHZXQgY2FjaGVkIE9wZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwg
b3IgY3JldGUgb25lLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZl
Rm9udERhdGEpOiBQdXJnZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1w
bGVGb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxE
YXRhKTogQSBkdW1teSBpbXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkg
dG8gd29yay4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZl
cnRpY2FsRGF0YS5oOiBBZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAg
ICAgIChPcGVuVHlwZVZlcnRpY2FsRGF0YSk6CisKIDIwMTItMDctMjggIFZpbmVldCBDaGF1ZGhh
cnkgIDxyZ2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFtDbGFtcF0gc3VwcG9ydCBpbiBi
aW5kaW5nIGdlbmVyYXRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ0N2Y2
MDguLjc1N2UzMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0MDYsNiAr
MzQwNiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BhdGguaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNh
bFN0YXRlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAwZTkwOGViLi5mYTM0YTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTIwOTEsNiArMjA5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFBvaW50SGFzaC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggXAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BhdGguaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCA0N2YyNTFjLi4wNzliNGUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAg
LTM1LDEwICszNSwxMiBAQAogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRl
ICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgorI2luY2x1
ZGUgIk9wZW5UeXBlVmVydGljYWxEYXRhLmgiCiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZhbWlseU5h
bWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTE3OSwxMCArMTgxLDIwIEBAIHN0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIGFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHlOYW1lKQogICAgIHJldHVybiBlbXB0eUF0b207CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEqIEZv
bnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLAorRm9udFBs
YXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcGFzc2Vk
RmFtaWx5TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKIHsKKyNpZiBPUyhXSU5ET1dT
KSAmJiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisgICAgLy8gTGVhZGluZyAiQCIgaW4gdGhl
IGZvbnQgbmFtZSBlbmFibGVzIFdpbmRvd3MgdmVydGljYWwgZmxvdyBmbGFnIGZvciB0aGUgZm9u
dC4KKyAgICAvLyBCZWNhdXNlIHdlIGRvIHZlcnRpY2FsIGZsb3cgYnkgb3Vyc2VsdmVzLCB3ZSBk
b24ndCB3YW50IHRvIHVzZSB0aGUgV2luZG93cyBmZWF0dXJlLgorICAgIC8vIElFIGRpc3JlZ2Fy
ZHMgIkAiIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWVudGF0b2luLCBzbyB3ZSBmb2xsb3cgdGhlIGJl
aGF2aW9yLgorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSA9IHBhc3NlZEZhbWls
eU5hbWUuaXNFbXB0eSgpIHx8IHBhc3NlZEZhbWlseU5hbWVbMF0gIT0gJ0AnID8KKyAgICAgICAg
cGFzc2VkRmFtaWx5TmFtZSA6IEF0b21pY1N0cmluZyhwYXNzZWRGYW1pbHlOYW1lLmltcGwoKS0+
c3Vic3RyaW5nKDEpKTsKKyNlbHNlCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1l
ID0gcGFzc2VkRmFtaWx5TmFtZTsKKyNlbmRpZgorCiAgICAgaWYgKCFnRm9udFBsYXRmb3JtRGF0
YUNhY2hlKSB7CiAgICAgICAgIGdGb250UGxhdGZvcm1EYXRhQ2FjaGUgPSBuZXcgRm9udFBsYXRm
b3JtRGF0YUNhY2hlOwogICAgICAgICBwbGF0Zm9ybUluaXQoKTsKQEAgLTIxNiw2ICsyMjgsMzIg
QEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCisjaWYg
RU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQordHlwZWRlZiBIYXNoTWFwPEZvbnRDYWNoZTo6Rm9u
dEZpbGVLZXksIE93blB0cjxPcGVuVHlwZVZlcnRpY2FsRGF0YT4+IEZvbnRWZXJ0aWNhbERhdGFD
YWNoZTsKKworRm9udFZlcnRpY2FsRGF0YUNhY2hlJiBmb250VmVydGljYWxEYXRhQ2FjaGVJbnN0
YW5jZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250VmVydGljYWxEYXRhQ2FjaGUs
IGZvbnRWZXJ0aWNhbERhdGFDYWNoZSwgKCkpOworICAgIHJldHVybiBmb250VmVydGljYWxEYXRh
Q2FjaGU7Cit9CisKK09wZW5UeXBlVmVydGljYWxEYXRhKiBGb250Q2FjaGU6OmdldFZlcnRpY2Fs
RGF0YShjb25zdCBGb250RmlsZUtleSYga2V5LCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0
Zm9ybURhdGEpCit7CisgICAgRm9udFZlcnRpY2FsRGF0YUNhY2hlJiBmb250VmVydGljYWxEYXRh
Q2FjaGUgPSBmb250VmVydGljYWxEYXRhQ2FjaGVJbnN0YW5jZSgpOworICAgIEZvbnRWZXJ0aWNh
bERhdGFDYWNoZTo6aXRlcmF0b3IgcmVzdWx0ID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmZpbmQo
a2V5KTsKKyAgICBpZiAocmVzdWx0ICE9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKS0+c2Vjb25kLmdldCgpOworCisgICAgT3BlblR5cGVW
ZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9IG5ldyBPcGVuVHlwZVZlcnRpY2FsRGF0YShwbGF0
Zm9ybURhdGEpOworICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpIHsKKyAgICAg
ICAgZGVsZXRlIHZlcnRpY2FsRGF0YTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gMDsgLy8gUHV0
IDAgaW4gY2FjaGUgdG8gbWFyayB0aGF0IHRoaXMgaXNuJ3QgYW4gT3BlblR5cGUgZm9udC4KKyAg
ICB9CisgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hlLnNldChrZXksIGFkb3B0UHRyKHZlcnRpY2Fs
RGF0YSkpOworICAgIHJldHVybiB2ZXJ0aWNhbERhdGE7Cit9CisjZW5kaWYKKwogc3RydWN0IEZv
bnREYXRhQ2FjaGVLZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEpCiAgICAgewpAQCAtMzgxLDYgKzQxOSwzMiBAQCB2
b2lkIEZvbnRDYWNoZTo6cHVyZ2VJbmFjdGl2ZUZvbnREYXRhKGludCBjb3VudCkKICAgICAgICAg
ICAgIGRlbGV0ZSBnRm9udFBsYXRmb3JtRGF0YUNhY2hlLT50YWtlKGtleXNUb1JlbW92ZVtpXSk7
CiAgICAgfQogCisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIEZvbnRWZXJ0aWNh
bERhdGFDYWNoZSYgZm9udFZlcnRpY2FsRGF0YUNhY2hlID0gZm9udFZlcnRpY2FsRGF0YUNhY2hl
SW5zdGFuY2UoKTsKKyAgICBpZiAoIWZvbnRWZXJ0aWNhbERhdGFDYWNoZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgLy8gTWFyayAmIHN3ZWVwIHVudXNlZCB2ZXJ0aWNhbERhdGEKKyAgICAgICAgRm9u
dFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciB2ZXJ0aWNhbERhdGFFbmQgPSBmb250VmVydGlj
YWxEYXRhQ2FjaGUuZW5kKCk7CisgICAgICAgIGZvciAoRm9udFZlcnRpY2FsRGF0YUNhY2hlOjpp
dGVyYXRvciB2ZXJ0aWNhbERhdGEgPSBmb250VmVydGljYWxEYXRhQ2FjaGUuYmVnaW4oKTsgdmVy
dGljYWxEYXRhICE9IHZlcnRpY2FsRGF0YUVuZDsgKyt2ZXJ0aWNhbERhdGEpIHsKKyAgICAgICAg
ICAgIGlmICh2ZXJ0aWNhbERhdGEtPnNlY29uZCkKKyAgICAgICAgICAgICAgICB2ZXJ0aWNhbERh
dGEtPnNlY29uZC0+bV9pbkZvbnRDYWNoZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIEZv
bnREYXRhQ2FjaGU6Oml0ZXJhdG9yIGZvbnREYXRhRW5kID0gZ0ZvbnREYXRhQ2FjaGUtPmVuZCgp
OworICAgICAgICBmb3IgKEZvbnREYXRhQ2FjaGU6Oml0ZXJhdG9yIGZvbnREYXRhID0gZ0ZvbnRE
YXRhQ2FjaGUtPmJlZ2luKCk7IGZvbnREYXRhICE9IGZvbnREYXRhRW5kOyArK2ZvbnREYXRhKSB7
CisgICAgICAgICAgICBPcGVuVHlwZVZlcnRpY2FsRGF0YSogdmVydGljYWxEYXRhID0gY29uc3Rf
Y2FzdDxPcGVuVHlwZVZlcnRpY2FsRGF0YSo+KGZvbnREYXRhLT5zZWNvbmQuZmlyc3QtPnZlcnRp
Y2FsRGF0YSgpKTsKKyAgICAgICAgICAgIGlmICh2ZXJ0aWNhbERhdGEpCisgICAgICAgICAgICAg
ICAgdmVydGljYWxEYXRhLT5tX2luRm9udENhY2hlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICBWZWN0b3I8Rm9udEZpbGVLZXk+IGtleXNUb1JlbW92ZTsKKyAgICAgICAga2V5c1RvUmVtb3Zl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZm9udFZlcnRpY2FsRGF0YUNhY2hlLnNpemUoKSk7Cisg
ICAgICAgIGZvciAoRm9udFZlcnRpY2FsRGF0YUNhY2hlOjppdGVyYXRvciB2ZXJ0aWNhbERhdGEg
PSBmb250VmVydGljYWxEYXRhQ2FjaGUuYmVnaW4oKTsgdmVydGljYWxEYXRhICE9IHZlcnRpY2Fs
RGF0YUVuZDsgKyt2ZXJ0aWNhbERhdGEpIHsKKyAgICAgICAgICAgIGlmICghdmVydGljYWxEYXRh
LT5zZWNvbmQgfHwgIXZlcnRpY2FsRGF0YS0+c2Vjb25kLT5tX2luRm9udENhY2hlKQorICAgICAg
ICAgICAgICAgIGtleXNUb1JlbW92ZS5hcHBlbmQodmVydGljYWxEYXRhLT5maXJzdCk7CisgICAg
ICAgIH0KKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0ga2V5c1RvUmVtb3ZlLnNp
emUoKTsgaSA8IGNvdW50OyArK2kpCisgICAgICAgICAgICBmb250VmVydGljYWxEYXRhQ2FjaGUu
dGFrZShrZXlzVG9SZW1vdmVbaV0pOworICAgIH0KKyNlbmRpZgorCiAgICAgaXNQdXJnaW5nID0g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKaW5kZXggYzcxZTQxZi4uODU4ZGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRm9udFBsYXRmb3Jt
RGF0YTsKIGNsYXNzIEZvbnREYXRhOwogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgRm9u
dFNlbGVjdG9yOworY2xhc3MgT3BlblR5cGVWZXJ0aWNhbERhdGE7CiBjbGFzcyBTaW1wbGVGb250
RGF0YTsKIAogY2xhc3MgRm9udENhY2hlIHsKQEAgLTEwNCw2ICsxMDUsMTEgQEAgcHVibGljOgog
ICAgIFNpbXBsZUZvbnREYXRhKiBmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkUmV0YWluLCBjb25zdCBMT0dGT05UJiBmb250LCB3
Y2hhcl90KiBvdXRGb250RmFtaWx5TmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPUEVOVFlQ
RV9WRVJUSUNBTCkKKyAgICB0eXBlZGVmIEF0b21pY1N0cmluZyBGb250RmlsZUtleTsKKyAgICBP
cGVuVHlwZVZlcnRpY2FsRGF0YSogZ2V0VmVydGljYWxEYXRhKGNvbnN0IEZvbnRGaWxlS2V5Jiwg
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRm9udENh
Y2hlKCk7CiAgICAgfkZvbnRDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKaW5kZXggNDI1Y2Y3My4uMzQ1MmQwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCkBA
IC0zMSw2ICszMSw5IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR2x5cGhN
ZXRyaWNzTWFwLmgiCiAjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKyNpZiBFTkFCTEUo
T1BFTlRZUEVfVkVSVElDQUwpCisjaW5jbHVkZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIlR5cGVzZXR0aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTg4LDYgKzkxLDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgflNpbXBsZUZvbnREYXRhKCk7CiAKICAgICBjb25zdCBGb250UGxh
dGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YTsg
fQorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBjb25zdCBPcGVuVHlwZVZlcnRp
Y2FsRGF0YSogdmVydGljYWxEYXRhKCkgY29uc3QgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogaW1w
bGVtZW50CisjZW5kaWYKIAogICAgIFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKICAgICBTaW1wbGVGb250RGF0YSogZW1waGFz
aXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRp
Y2FsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVWZXJ0aWNhbERhdGEuaAppbmRleCBmMDczOTU3Li4zNGNjZWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2Fs
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmgKQEAgLTI1LDYgKzI1LDggQEAKICNpZm5kZWYgT3BlblR5cGVW
ZXJ0aWNhbERhdGFfaAogI2RlZmluZSBPcGVuVHlwZVZlcnRpY2FsRGF0YV9oCiAKKyNpZiBFTkFC
TEUoT1BFTlRZUEVfVkVSVElDQUwpCisKICNpbmNsdWRlICJHbHlwaC5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTYsOCArNTgsMTMgQEAg
cHJpdmF0ZToKICAgICBWZWN0b3I8aW50MTZfdD4gbV90b3BTaWRlQmVhcmluZ3M7CiAgICAgaW50
MTZfdCBtX2RlZmF1bHRWZXJ0T3JpZ2luWTsKICAgICBIYXNoTWFwPEdseXBoLCBpbnQxNl90PiBt
X3ZlcnRPcmlnaW5ZOworCisgICAgZnJpZW5kIGNsYXNzIEZvbnRDYWNoZTsKKyAgICBib29sIG1f
aW5Gb250Q2FjaGU7IC8vIGZvciBtYXJrICYgc3dlZXAgaW4gRm9udENhY2hlOjpwdXJnZUluYWN0
aXZlRm9udERhdGEoKQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8g
RU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorCiAjZW5kaWYgLy8gT3BlblR5cGVWZXJ0aWNhbERh
dGFfaAo=
</data>
<flag name="commit-queue"
          id="164545"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155164</attachid>
            <date>2012-07-29 03:02:32 -0700</date>
            <delta_ts>2012-07-31 16:23:20 -0700</delta_ts>
            <desc>Yet another try to add a new file to Qt build</desc>
            <filename>81332-13.patch</filename>
            <type>text/plain</type>
            <size>11518</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzg1MzYwMi4uMDVlMWNhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSIKICAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enoiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkOTczOTIzLi5jOWNkN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTItMDctMTYgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisK
KyAgICAgICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZv
bnRDYWNoZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0
YW5jZXMgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVl
ZCBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3
ZSBkb24ndAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2Rh
eS4KKworICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3Ig
YW55IHBsYXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNv
ZGUgcGF0aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAg
IHRvIHVzZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBh
cyB3ZWxsLgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdp
bGwgYmUgaW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSBy
ZXF1aXJlZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hl
ZEZvbnRQbGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNh
YmxlIFdpbmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2Fj
aGVkIE9wZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUg
b25lLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEp
OiBQdXJnZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBk
dW1teSBpbXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0
YS5oOiBBZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVu
VHlwZVZlcnRpY2FsRGF0YSk6CisKIDIwMTItMDctMjggIFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3
NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFtDbGFtcF0gc3VwcG9ydCBpbiBiaW5kaW5nIGdl
bmVyYXRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ0N2Y2MDguLjc1N2Uz
MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0MDYsNiArMzQwNiw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUv
T3BlblR5cGVWZXJ0aWNhbERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCAwZTkwOGViLi5mYTM0YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIw
OTEsNiArMjA5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBv
aW50SGFzaC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50
eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGgu
aCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDUxM2QyNjEuLmMw
YTYzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC01Nyw2ICs1Nyw3IEBAIElOQ0xVREVQQVRIICs9IFwK
ICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBcCiAgICAgJCRTT1VS
Q0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtIFwKICAgICAkJFNPVVJDRV9ESVIv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIFwKKyAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUgXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9xdCBc
CiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIFwKICAgICAkJFNP
VVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4IDQ3ZjI1MWMuLjA3OWI0ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAt
MzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUg
IkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaW5jbHVk
ZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFt
ZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTc5LDEwICsxODEsMjAgQEAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgYWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eU5hbWUpCiAgICAgcmV0dXJuIGVtcHR5QXRvbTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSogRm9u
dENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUsCitGb250UGxh
dGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzZWRG
YW1pbHlOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1Mp
ICYmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUg
Zm9udCBuYW1lIGVuYWJsZXMgV2luZG93cyB2ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250
LgorICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVydGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRv
bid0IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dzIGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJk
cyAiQCIgcmVnYXJkbGVzcyBvZiB0aGUgb3JpZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVo
YXZpb3IuCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lID0gcGFzc2VkRmFtaWx5
TmFtZS5pc0VtcHR5KCkgfHwgcGFzc2VkRmFtaWx5TmFtZVswXSAhPSAnQCcgPworICAgICAgICBw
YXNzZWRGYW1pbHlOYW1lIDogQXRvbWljU3RyaW5nKHBhc3NlZEZhbWlseU5hbWUuaW1wbCgpLT5z
dWJzdHJpbmcoMSkpOworI2Vsc2UKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUg
PSBwYXNzZWRGYW1pbHlOYW1lOworI2VuZGlmCisKICAgICBpZiAoIWdGb250UGxhdGZvcm1EYXRh
Q2FjaGUpIHsKICAgICAgICAgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZSA9IG5ldyBGb250UGxhdGZv
cm1EYXRhQ2FjaGU7CiAgICAgICAgIHBsYXRmb3JtSW5pdCgpOwpAQCAtMjE2LDYgKzIyOCwzMiBA
QCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBF
TkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCit0eXBlZGVmIEhhc2hNYXA8Rm9udENhY2hlOjpGb250
RmlsZUtleSwgT3duUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPj4gRm9udFZlcnRpY2FsRGF0YUNh
Y2hlOworCitGb250VmVydGljYWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3Rh
bmNlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRWZXJ0aWNhbERhdGFDYWNoZSwg
Zm9udFZlcnRpY2FsRGF0YUNhY2hlLCAoKSk7CisgICAgcmV0dXJuIGZvbnRWZXJ0aWNhbERhdGFD
YWNoZTsKK30KKworT3BlblR5cGVWZXJ0aWNhbERhdGEqIEZvbnRDYWNoZTo6Z2V0VmVydGljYWxE
YXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrZXksIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRm
b3JtRGF0YSkKK3sKKyAgICBGb250VmVydGljYWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFD
YWNoZSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZUluc3RhbmNlKCk7CisgICAgRm9udFZlcnRpY2Fs
RGF0YUNhY2hlOjppdGVyYXRvciByZXN1bHQgPSBmb250VmVydGljYWxEYXRhQ2FjaGUuZmluZChr
ZXkpOworICAgIGlmIChyZXN1bHQgIT0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmVuZCgpKQorICAg
ICAgICByZXR1cm4gcmVzdWx0LmdldCgpLT5zZWNvbmQuZ2V0KCk7CisKKyAgICBPcGVuVHlwZVZl
cnRpY2FsRGF0YSogdmVydGljYWxEYXRhID0gbmV3IE9wZW5UeXBlVmVydGljYWxEYXRhKHBsYXRm
b3JtRGF0YSk7CisgICAgaWYgKCF2ZXJ0aWNhbERhdGEtPmlzT3BlblR5cGUoKSkgeworICAgICAg
ICBkZWxldGUgdmVydGljYWxEYXRhOworICAgICAgICB2ZXJ0aWNhbERhdGEgPSAwOyAvLyBQdXQg
MCBpbiBjYWNoZSB0byBtYXJrIHRoYXQgdGhpcyBpc24ndCBhbiBPcGVuVHlwZSBmb250LgorICAg
IH0KKyAgICBmb250VmVydGljYWxEYXRhQ2FjaGUuc2V0KGtleSwgYWRvcHRQdHIodmVydGljYWxE
YXRhKSk7CisgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKK30KKyNlbmRpZgorCiBzdHJ1Y3QgRm9u
dERhdGFDYWNoZUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEZvbnRQ
bGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkKICAgICB7CkBAIC0zODEsNiArNDE5LDMyIEBAIHZv
aWQgRm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEoaW50IGNvdW50KQogICAgICAgICAg
ICAgZGVsZXRlIGdGb250UGxhdGZvcm1EYXRhQ2FjaGUtPnRha2Uoa2V5c1RvUmVtb3ZlW2ldKTsK
ICAgICB9CiAKKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisgICAgRm9udFZlcnRpY2Fs
RGF0YUNhY2hlJiBmb250VmVydGljYWxEYXRhQ2FjaGUgPSBmb250VmVydGljYWxEYXRhQ2FjaGVJ
bnN0YW5jZSgpOworICAgIGlmICghZm9udFZlcnRpY2FsRGF0YUNhY2hlLmlzRW1wdHkoKSkgewor
ICAgICAgICAvLyBNYXJrICYgc3dlZXAgdW51c2VkIHZlcnRpY2FsRGF0YQorICAgICAgICBGb250
VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YUVuZCA9IGZvbnRWZXJ0aWNh
bERhdGFDYWNoZS5lbmQoKTsKKyAgICAgICAgZm9yIChGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0
ZXJhdG9yIHZlcnRpY2FsRGF0YSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5iZWdpbigpOyB2ZXJ0
aWNhbERhdGEgIT0gdmVydGljYWxEYXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkgeworICAgICAgICAg
ICAgaWYgKHZlcnRpY2FsRGF0YS0+c2Vjb25kKQorICAgICAgICAgICAgICAgIHZlcnRpY2FsRGF0
YS0+c2Vjb25kLT5tX2luRm9udENhY2hlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgRm9u
dERhdGFDYWNoZTo6aXRlcmF0b3IgZm9udERhdGFFbmQgPSBnRm9udERhdGFDYWNoZS0+ZW5kKCk7
CisgICAgICAgIGZvciAoRm9udERhdGFDYWNoZTo6aXRlcmF0b3IgZm9udERhdGEgPSBnRm9udERh
dGFDYWNoZS0+YmVnaW4oKTsgZm9udERhdGEgIT0gZm9udERhdGFFbmQ7ICsrZm9udERhdGEpIHsK
KyAgICAgICAgICAgIE9wZW5UeXBlVmVydGljYWxEYXRhKiB2ZXJ0aWNhbERhdGEgPSBjb25zdF9j
YXN0PE9wZW5UeXBlVmVydGljYWxEYXRhKj4oZm9udERhdGEtPnNlY29uZC5maXJzdC0+dmVydGlj
YWxEYXRhKCkpOworICAgICAgICAgICAgaWYgKHZlcnRpY2FsRGF0YSkKKyAgICAgICAgICAgICAg
ICB2ZXJ0aWNhbERhdGEtPm1faW5Gb250Q2FjaGUgPSB0cnVlOworICAgICAgICB9CisgICAgICAg
IFZlY3RvcjxGb250RmlsZUtleT4ga2V5c1RvUmVtb3ZlOworICAgICAgICBrZXlzVG9SZW1vdmUu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmb250VmVydGljYWxEYXRhQ2FjaGUuc2l6ZSgpKTsKKyAg
ICAgICAgZm9yIChGb250VmVydGljYWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHZlcnRpY2FsRGF0YSA9
IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5iZWdpbigpOyB2ZXJ0aWNhbERhdGEgIT0gdmVydGljYWxE
YXRhRW5kOyArK3ZlcnRpY2FsRGF0YSkgeworICAgICAgICAgICAgaWYgKCF2ZXJ0aWNhbERhdGEt
PnNlY29uZCB8fCAhdmVydGljYWxEYXRhLT5zZWNvbmQtPm1faW5Gb250Q2FjaGUpCisgICAgICAg
ICAgICAgICAga2V5c1RvUmVtb3ZlLmFwcGVuZCh2ZXJ0aWNhbERhdGEtPmZpcnN0KTsKKyAgICAg
ICAgfQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBrZXlzVG9SZW1vdmUuc2l6
ZSgpOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS50
YWtlKGtleXNUb1JlbW92ZVtpXSk7CisgICAgfQorI2VuZGlmCisKICAgICBpc1B1cmdpbmcgPSBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAppbmRleCBjNzFlNDFmLi44NThkYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBGb250UGxhdGZvcm1E
YXRhOwogY2xhc3MgRm9udERhdGE7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250
U2VsZWN0b3I7CitjbGFzcyBPcGVuVHlwZVZlcnRpY2FsRGF0YTsKIGNsYXNzIFNpbXBsZUZvbnRE
YXRhOwogCiBjbGFzcyBGb250Q2FjaGUgewpAQCAtMTA0LDYgKzEwNSwxMSBAQCBwdWJsaWM6CiAg
ICAgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhRnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRSZXRhaW4sIGNvbnN0IExPR0ZPTlQmIGZvbnQsIHdj
aGFyX3QqIG91dEZvbnRGYW1pbHlOYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9QRU5UWVBF
X1ZFUlRJQ0FMKQorICAgIHR5cGVkZWYgQXRvbWljU3RyaW5nIEZvbnRGaWxlS2V5OworICAgIE9w
ZW5UeXBlVmVydGljYWxEYXRhKiBnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBj
b25zdCBGb250UGxhdGZvcm1EYXRhJik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBGb250Q2Fj
aGUoKTsKICAgICB+Rm9udENhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAppbmRleCA0MjVjZjczLi4zNDUyZDAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAg
LTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHbHlwaE1l
dHJpY3NNYXAuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgorI2lmIEVOQUJMRShP
UEVOVFlQRV9WRVJUSUNBTCkKKyNpbmNsdWRlICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiVHlwZXNldHRpbmdGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtODgsNiArOTEsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U2ltcGxlRm9udERhdGEoKTsKIAogICAgIGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhOyB9
CisjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorICAgIGNvbnN0IE9wZW5UeXBlVmVydGlj
YWxEYXRhKiB2ZXJ0aWNhbERhdGEoKSBjb25zdCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBpbXBs
ZW1lbnQKKyNlbmRpZgogCiAgICAgU2ltcGxlRm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwogICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNp
c01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGlj
YWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVu
VHlwZVZlcnRpY2FsRGF0YS5oCmluZGV4IGYwNzM5NTcuLjM0Y2NlZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVWZXJ0aWNhbERhdGEuaApAQCAtMjUsNiArMjUsOCBAQAogI2lmbmRlZiBPcGVuVHlwZVZl
cnRpY2FsRGF0YV9oCiAjZGVmaW5lIE9wZW5UeXBlVmVydGljYWxEYXRhX2gKIAorI2lmIEVOQUJM
RShPUEVOVFlQRV9WRVJUSUNBTCkKKwogI2luY2x1ZGUgIkdseXBoLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Niw4ICs1OCwxMyBAQCBw
cml2YXRlOgogICAgIFZlY3RvcjxpbnQxNl90PiBtX3RvcFNpZGVCZWFyaW5nczsKICAgICBpbnQx
Nl90IG1fZGVmYXVsdFZlcnRPcmlnaW5ZOwogICAgIEhhc2hNYXA8R2x5cGgsIGludDE2X3Q+IG1f
dmVydE9yaWdpblk7CisKKyAgICBmcmllbmQgY2xhc3MgRm9udENhY2hlOworICAgIGJvb2wgbV9p
bkZvbnRDYWNoZTsgLy8gZm9yIG1hcmsgJiBzd2VlcCBpbiBGb250Q2FjaGU6OnB1cmdlSW5hY3Rp
dmVGb250RGF0YSgpCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBF
TkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisKICNlbmRpZiAvLyBPcGVuVHlwZVZlcnRpY2FsRGF0
YV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155668</attachid>
            <date>2012-07-31 16:22:15 -0700</date>
            <delta_ts>2012-08-01 18:27:06 -0700</delta_ts>
            <desc>Included parentheses around the the ternary condition</desc>
            <filename>81332-14.patch</filename>
            <type>text/plain</type>
            <size>11520</size>
            <attacher name="Koji Ishii">kojii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzg1MzYwMi4uMDVlMWNhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSIKICAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enoiCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkOTczOTIzLi5jOWNkN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTItMDctMTYgIEtvamkgSXNoaWkgIDxrb2ppaXNoaUBnbWFpbC5jb20+CisK
KyAgICAgICAgQ2FjaGUgc3VwcG9ydCBmb3IgT3BlblR5cGVWZXJ0aWNhbERhdGEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIEZv
bnRDYWNoZSB0byBjYWNoZSBPcGVuVHlwZVZlcnRpY2FsRGF0YSBjbGFzcworICAgICAgICBpbnN0
YW5jZXMgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiBidWcgODEzMjYuCisKKyAgICAgICAgV2UgbmVl
ZCBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHBlciBPcGVuVHlwZSBmb250IGZpbGUsIGFuZCB3
ZSBkb24ndAorICAgICAgICBoYXZlIGEgY2xhc3MgdG8gaG9sZCBzdWNoIGluc3RhbmNlcyB0b2Rh
eS4KKworICAgICAgICBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgaXNuJ3QgZW5hYmxlZCBmb3Ig
YW55IHBsYXRmb3JtcyB5ZXQsIHNvIHRoaXMKKyAgICAgICAgcGF0Y2ggaXNuJ3Qgb24gYW55IGNv
ZGUgcGF0aC4gQXBwbGUgV2luZG93cyBwb3J0IChidWcgNDg0NTkpIGlzIGdvaW5nCisgICAgICAg
IHRvIHVzZSB0aGlzIGNvZGUsIGFuZCBwcm9iYWJseSBDaHJvbWl1bSAoNTE0NTAsIDY5MjgyKSBh
cyB3ZWxsLgorCisgICAgICAgICJGSVhNRSIgY29tbWVudCBpbiBTaW1wbGVGb250RGF0YS5oIHdp
bGwgYmUgaW1wbGVtZW50ZWQgaW4gNDg0NTkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSBy
ZXF1aXJlZC4gTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldENhY2hl
ZEZvbnRQbGF0Zm9ybURhdGEpOiBJZ25vcmUgbGVhZGluZyAiQCIgb24gV2luZG93cyB0byBkaXNh
YmxlIFdpbmRvd3MgZmVhdHVyZSBmb3IgdmVydGljYWwgZmxvdy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEpOiBHZXQgY2Fj
aGVkIE9wZW5UeXBlVmVydGljYWxEYXRhIGZyb20gRm9udFBsYXRmb3JtRGF0YSwgb3IgY3JldGUg
b25lLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwdXJnZUluYWN0aXZlRm9udERhdGEp
OiBQdXJnZSBpbmFjdGl2ZSBPcGVuVHlwZVZlcnRpY2FsRGF0YS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgIChTaW1wbGVGb250RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmVydGljYWxEYXRhKTogQSBk
dW1teSBpbXBsZW1lbnRhdGlvbiBmb3IgcHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkgdG8gd29yay4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0
YS5oOiBBZGRlZCBtX2luRm9udENhY2hlIGZvciBtYXJrICYgc3dlZXAuCisgICAgICAgIChPcGVu
VHlwZVZlcnRpY2FsRGF0YSk6CisKIDIwMTItMDctMjggIFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3
NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFtDbGFtcF0gc3VwcG9ydCBpbiBiaW5kaW5nIGdl
bmVyYXRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ0N2Y2MDguLjc1N2Uz
MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0MDYsNiArMzQwNiw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUv
T3BlblR5cGVWZXJ0aWNhbERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0aC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCAwZTkwOGViLi5mYTM0YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIw
OTEsNiArMjA5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBv
aW50SGFzaC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50
eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGgu
aCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDUxM2QyNjEuLmMw
YTYzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC01Nyw2ICs1Nyw3IEBAIElOQ0xVREVQQVRIICs9IFwK
ICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBcCiAgICAgJCRTT1VS
Q0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtIFwKICAgICAkJFNPVVJDRV9ESVIv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIFwKKyAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUgXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9xdCBc
CiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIFwKICAgICAkJFNP
VVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4IDQ3ZjI1MWMuLmI0NjI2M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAt
MzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUg
IkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaW5jbHVk
ZSAiT3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFt
ZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTc5LDEwICsxODEsMjAgQEAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgYWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eU5hbWUpCiAgICAgcmV0dXJuIGVtcHR5QXRvbTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSogRm9u
dENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUsCitGb250UGxh
dGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzZWRG
YW1pbHlOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogeworI2lmIE9TKFdJTkRPV1Mp
ICYmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICAvLyBMZWFkaW5nICJAIiBpbiB0aGUg
Zm9udCBuYW1lIGVuYWJsZXMgV2luZG93cyB2ZXJ0aWNhbCBmbG93IGZsYWcgZm9yIHRoZSBmb250
LgorICAgIC8vIEJlY2F1c2Ugd2UgZG8gdmVydGljYWwgZmxvdyBieSBvdXJzZWx2ZXMsIHdlIGRv
bid0IHdhbnQgdG8gdXNlIHRoZSBXaW5kb3dzIGZlYXR1cmUuCisgICAgLy8gSUUgZGlzcmVnYXJk
cyAiQCIgcmVnYXJkbGVzcyBvZiB0aGUgb3JpZW50YXRvaW4sIHNvIHdlIGZvbGxvdyB0aGUgYmVo
YXZpb3IuCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lID0gKHBhc3NlZEZhbWls
eU5hbWUuaXNFbXB0eSgpIHx8IHBhc3NlZEZhbWlseU5hbWVbMF0gIT0gJ0AnKSA/CisgICAgICAg
IHBhc3NlZEZhbWlseU5hbWUgOiBBdG9taWNTdHJpbmcocGFzc2VkRmFtaWx5TmFtZS5pbXBsKCkt
PnN1YnN0cmluZygxKSk7CisjZWxzZQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFt
ZSA9IHBhc3NlZEZhbWlseU5hbWU7CisjZW5kaWYKKwogICAgIGlmICghZ0ZvbnRQbGF0Zm9ybURh
dGFDYWNoZSkgewogICAgICAgICBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0gbmV3IEZvbnRQbGF0
Zm9ybURhdGFDYWNoZTsKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CkBAIC0yMTYsNiArMjI4LDMy
IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lm
IEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKK3R5cGVkZWYgSGFzaE1hcDxGb250Q2FjaGU6OkZv
bnRGaWxlS2V5LCBPd25QdHI8T3BlblR5cGVWZXJ0aWNhbERhdGE+PiBGb250VmVydGljYWxEYXRh
Q2FjaGU7CisKK0ZvbnRWZXJ0aWNhbERhdGFDYWNoZSYgZm9udFZlcnRpY2FsRGF0YUNhY2hlSW5z
dGFuY2UoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoRm9udFZlcnRpY2FsRGF0YUNhY2hl
LCBmb250VmVydGljYWxEYXRhQ2FjaGUsICgpKTsKKyAgICByZXR1cm4gZm9udFZlcnRpY2FsRGF0
YUNhY2hlOworfQorCitPcGVuVHlwZVZlcnRpY2FsRGF0YSogRm9udENhY2hlOjpnZXRWZXJ0aWNh
bERhdGEoY29uc3QgRm9udEZpbGVLZXkmIGtleSwgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxh
dGZvcm1EYXRhKQoreworICAgIEZvbnRWZXJ0aWNhbERhdGFDYWNoZSYgZm9udFZlcnRpY2FsRGF0
YUNhY2hlID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlSW5zdGFuY2UoKTsKKyAgICBGb250VmVydGlj
YWxEYXRhQ2FjaGU6Oml0ZXJhdG9yIHJlc3VsdCA9IGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5maW5k
KGtleSk7CisgICAgaWYgKHJlc3VsdCAhPSBmb250VmVydGljYWxEYXRhQ2FjaGUuZW5kKCkpCisg
ICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCktPnNlY29uZC5nZXQoKTsKKworICAgIE9wZW5UeXBl
VmVydGljYWxEYXRhKiB2ZXJ0aWNhbERhdGEgPSBuZXcgT3BlblR5cGVWZXJ0aWNhbERhdGEocGxh
dGZvcm1EYXRhKTsKKyAgICBpZiAoIXZlcnRpY2FsRGF0YS0+aXNPcGVuVHlwZSgpKSB7CisgICAg
ICAgIGRlbGV0ZSB2ZXJ0aWNhbERhdGE7CisgICAgICAgIHZlcnRpY2FsRGF0YSA9IDA7IC8vIFB1
dCAwIGluIGNhY2hlIHRvIG1hcmsgdGhhdCB0aGlzIGlzbid0IGFuIE9wZW5UeXBlIGZvbnQuCisg
ICAgfQorICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5zZXQoa2V5LCBhZG9wdFB0cih2ZXJ0aWNh
bERhdGEpKTsKKyAgICByZXR1cm4gdmVydGljYWxEYXRhOworfQorI2VuZGlmCisKIHN0cnVjdCBG
b250RGF0YUNhY2hlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKQogICAgIHsKQEAgLTM4MSw2ICs0MTksMzIgQEAg
dm9pZCBGb250Q2FjaGU6OnB1cmdlSW5hY3RpdmVGb250RGF0YShpbnQgY291bnQpCiAgICAgICAg
ICAgICBkZWxldGUgZ0ZvbnRQbGF0Zm9ybURhdGFDYWNoZS0+dGFrZShrZXlzVG9SZW1vdmVbaV0p
OwogICAgIH0KIAorI2lmIEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKyAgICBGb250VmVydGlj
YWxEYXRhQ2FjaGUmIGZvbnRWZXJ0aWNhbERhdGFDYWNoZSA9IGZvbnRWZXJ0aWNhbERhdGFDYWNo
ZUluc3RhbmNlKCk7CisgICAgaWYgKCFmb250VmVydGljYWxEYXRhQ2FjaGUuaXNFbXB0eSgpKSB7
CisgICAgICAgIC8vIE1hcmsgJiBzd2VlcCB1bnVzZWQgdmVydGljYWxEYXRhCisgICAgICAgIEZv
bnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRhRW5kID0gZm9udFZlcnRp
Y2FsRGF0YUNhY2hlLmVuZCgpOworICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6
aXRlcmF0b3IgdmVydGljYWxEYXRhID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmJlZ2luKCk7IHZl
cnRpY2FsRGF0YSAhPSB2ZXJ0aWNhbERhdGFFbmQ7ICsrdmVydGljYWxEYXRhKSB7CisgICAgICAg
ICAgICBpZiAodmVydGljYWxEYXRhLT5zZWNvbmQpCisgICAgICAgICAgICAgICAgdmVydGljYWxE
YXRhLT5zZWNvbmQtPm1faW5Gb250Q2FjaGUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBG
b250RGF0YUNhY2hlOjppdGVyYXRvciBmb250RGF0YUVuZCA9IGdGb250RGF0YUNhY2hlLT5lbmQo
KTsKKyAgICAgICAgZm9yIChGb250RGF0YUNhY2hlOjppdGVyYXRvciBmb250RGF0YSA9IGdGb250
RGF0YUNhY2hlLT5iZWdpbigpOyBmb250RGF0YSAhPSBmb250RGF0YUVuZDsgKytmb250RGF0YSkg
eworICAgICAgICAgICAgT3BlblR5cGVWZXJ0aWNhbERhdGEqIHZlcnRpY2FsRGF0YSA9IGNvbnN0
X2Nhc3Q8T3BlblR5cGVWZXJ0aWNhbERhdGEqPihmb250RGF0YS0+c2Vjb25kLmZpcnN0LT52ZXJ0
aWNhbERhdGEoKSk7CisgICAgICAgICAgICBpZiAodmVydGljYWxEYXRhKQorICAgICAgICAgICAg
ICAgIHZlcnRpY2FsRGF0YS0+bV9pbkZvbnRDYWNoZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgVmVjdG9yPEZvbnRGaWxlS2V5PiBrZXlzVG9SZW1vdmU7CisgICAgICAgIGtleXNUb1JlbW92
ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5zaXplKCkpOwor
ICAgICAgICBmb3IgKEZvbnRWZXJ0aWNhbERhdGFDYWNoZTo6aXRlcmF0b3IgdmVydGljYWxEYXRh
ID0gZm9udFZlcnRpY2FsRGF0YUNhY2hlLmJlZ2luKCk7IHZlcnRpY2FsRGF0YSAhPSB2ZXJ0aWNh
bERhdGFFbmQ7ICsrdmVydGljYWxEYXRhKSB7CisgICAgICAgICAgICBpZiAoIXZlcnRpY2FsRGF0
YS0+c2Vjb25kIHx8ICF2ZXJ0aWNhbERhdGEtPnNlY29uZC0+bV9pbkZvbnRDYWNoZSkKKyAgICAg
ICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBwZW5kKHZlcnRpY2FsRGF0YS0+Zmlyc3QpOworICAg
ICAgICB9CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGtleXNUb1JlbW92ZS5z
aXplKCk7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnRha2Uoa2V5c1RvUmVtb3ZlW2ldKTsKKyAgICB9CisjZW5kaWYKKwogICAgIGlzUHVyZ2luZyA9
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCmluZGV4IGM3MWU0MWYuLjg1OGRiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEZvbnRQbGF0Zm9y
bURhdGE7CiBjbGFzcyBGb250RGF0YTsKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIEZv
bnRTZWxlY3RvcjsKK2NsYXNzIE9wZW5UeXBlVmVydGljYWxEYXRhOwogY2xhc3MgU2ltcGxlRm9u
dERhdGE7CiAKIGNsYXNzIEZvbnRDYWNoZSB7CkBAIC0xMDQsNiArMTA1LDExIEBAIHB1YmxpYzoK
ICAgICBTaW1wbGVGb250RGF0YSogZm9udERhdGFGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYsIFNob3VsZFJldGFpbiwgY29uc3QgTE9HRk9OVCYgZm9udCwg
d2NoYXJfdCogb3V0Rm9udEZhbWlseU5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BFTlRZ
UEVfVkVSVElDQUwpCisgICAgdHlwZWRlZiBBdG9taWNTdHJpbmcgRm9udEZpbGVLZXk7CisgICAg
T3BlblR5cGVWZXJ0aWNhbERhdGEqIGdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtleSYs
IGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIEZvbnRD
YWNoZSgpOwogICAgIH5Gb250Q2FjaGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCmluZGV4IDQyNWNmNzMuLjM0NTJkMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaApA
QCAtMzEsNiArMzEsOSBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdseXBo
TWV0cmljc01hcC5oIgogI2luY2x1ZGUgIkdseXBoUGFnZVRyZWVOb2RlLmgiCisjaWYgRU5BQkxF
KE9QRU5UWVBFX1ZFUlRJQ0FMKQorI2luY2x1ZGUgIk9wZW5UeXBlVmVydGljYWxEYXRhLmgiCisj
ZW5kaWYKICNpbmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC04OCw2ICs5MSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TaW1wbGVGb250RGF0YSgpOwogCiAgICAgY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURhdGE7
IH0KKyNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCisgICAgY29uc3QgT3BlblR5cGVWZXJ0
aWNhbERhdGEqIHZlcnRpY2FsRGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0gLy8gRklYTUU6IGlt
cGxlbWVudAorI2VuZGlmCiAKICAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgU2ltcGxlRm9udERhdGEqIGVtcGhh
c2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0
aWNhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmgKaW5kZXggZjA3Mzk1Ny4uMzRjY2VlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNh
bERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9P
cGVuVHlwZVZlcnRpY2FsRGF0YS5oCkBAIC0yNSw2ICsyNSw4IEBACiAjaWZuZGVmIE9wZW5UeXBl
VmVydGljYWxEYXRhX2gKICNkZWZpbmUgT3BlblR5cGVWZXJ0aWNhbERhdGFfaAogCisjaWYgRU5B
QkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQorCiAjaW5jbHVkZSAiR2x5cGguaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTU2LDggKzU4LDEzIEBA
IHByaXZhdGU6CiAgICAgVmVjdG9yPGludDE2X3Q+IG1fdG9wU2lkZUJlYXJpbmdzOwogICAgIGlu
dDE2X3QgbV9kZWZhdWx0VmVydE9yaWdpblk7CiAgICAgSGFzaE1hcDxHbHlwaCwgaW50MTZfdD4g
bV92ZXJ0T3JpZ2luWTsKKworICAgIGZyaWVuZCBjbGFzcyBGb250Q2FjaGU7CisgICAgYm9vbCBt
X2luRm9udENhY2hlOyAvLyBmb3IgbWFyayAmIHN3ZWVwIGluIEZvbnRDYWNoZTo6cHVyZ2VJbmFj
dGl2ZUZvbnREYXRhKCkKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8v
IEVOQUJMRShPUEVOVFlQRV9WRVJUSUNBTCkKKwogI2VuZGlmIC8vIE9wZW5UeXBlVmVydGljYWxE
YXRhX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>