<?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>90673</bug_id>
          
          <creation_ts>2012-07-06 03:04:59 -0700</creation_ts>
          <short_desc>Avoid querying the font cache for the zero-width space glyph</short_desc>
          <delta_ts>2023-10-20 07:37:42 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pierre Rossi">pierre.rossi</reporter>
          <assigned_to name="Pierre Rossi">pierre.rossi</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fantasai.bugs</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>663980</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-07-06 03:04:59 -0700</bug_when>
    <thetext>Avoid querying the font cache for the zero-width space glyph</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663983</commentid>
    <comment_count>1</comment_count>
      <attachid>151046</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-07-06 03:23:04 -0700</bug_when>
    <thetext>Created attachment 151046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663984</commentid>
    <comment_count>2</comment_count>
      <attachid>151046</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-06 03:33:16 -0700</bug_when>
    <thetext>Comment on attachment 151046
Patch

Attachment 151046 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13155238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663989</commentid>
    <comment_count>3</comment_count>
      <attachid>151046</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-06 03:46:41 -0700</bug_when>
    <thetext>Comment on attachment 151046
Patch

Attachment 151046 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13152338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663990</commentid>
    <comment_count>4</comment_count>
      <attachid>151046</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-06 03:47:32 -0700</bug_when>
    <thetext>Comment on attachment 151046
Patch

Attachment 151046 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13152335</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664073</commentid>
    <comment_count>5</comment_count>
      <attachid>151046</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-06 06:34:50 -0700</bug_when>
    <thetext>Comment on attachment 151046
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        We can bypass a large part of this and rely directly on
&gt; +        the character value.

Could you please explain why this is an improvement? How did you assess performance impact?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664117</commentid>
    <comment_count>6</comment_count>
      <attachid>151046</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-07-06 08:04:00 -0700</bug_when>
    <thetext>Comment on attachment 151046
Patch

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

I&apos;m going to try to clarify this ChangeLog entry in the next iteration, along with the necessary build fixes the EWS pointed out.

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        the character value.
&gt; 
&gt; Could you please explain why this is an improvement? How did you assess performance impact?

The part that I believe to be an improvement is that it doesn&apos;t rely on each port&apos;s implementation of FontCache::getFontDataForCharacters() in the case of ZWSP. The example of the Qt port, where the mechanism used to get the glyph index for a given character becomes moot for ZWSP made me wonder why we need to store this particular glyph index in the first place.
I didn&apos;t bother to test things performance-wise to be honest, since it didn&apos;t seem to me this change could have a negative impact, but I can be proven wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664151</commentid>
    <comment_count>7</comment_count>
      <attachid>151095</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-07-06 09:45:46 -0700</bug_when>
    <thetext>Created attachment 151095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664159</commentid>
    <comment_count>8</comment_count>
      <attachid>151095</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-06 10:02:25 -0700</bug_when>
    <thetext>Comment on attachment 151095
Patch

Attachment 151095 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13146444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664169</commentid>
    <comment_count>9</comment_count>
      <attachid>151095</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-06 10:14:37 -0700</bug_when>
    <thetext>Comment on attachment 151095
Patch

Attachment 151095 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13140540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664198</commentid>
    <comment_count>10</comment_count>
      <attachid>151102</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-07-06 10:49:33 -0700</bug_when>
    <thetext>Created attachment 151102
Patch

Some more blind build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664239</commentid>
    <comment_count>11</comment_count>
      <attachid>151102</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-06 13:05:54 -0700</bug_when>
    <thetext>Comment on attachment 151102
Patch

Attachment 151102 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13154387</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667786</commentid>
    <comment_count>12</comment_count>
      <attachid>151959</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-07-12 08:18:51 -0700</bug_when>
    <thetext>Created attachment 151959
Patch

Rebased patch, since the previous patch seems to have had trouble applying on the chromium EWS bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1986419</commentid>
    <comment_count>13</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2023-10-20 07:37:42 -0700</bug_when>
    <thetext>@Myles &amp; @Elika - is this applicable anymore?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151046</attachid>
            <date>2012-07-06 03:23:04 -0700</date>
            <delta_ts>2012-07-06 09:45:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90673-20120706122444.patch</filename>
            <type>text/plain</type>
            <size>17434</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNmODc5NTIwYWE0Y2Q5
NGEzZjBlNjczMmZiMDRiYzliNjY4NzM2ZS4uZGIxNDY1MmE0NTc4ZTBlYmZlOTkyZTNhMGMyMTM3
MTgxMDFkMGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA3LTA2ICBQaWVy
cmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgorCisgICAgICAgIEF2b2lkIHF1ZXJ5
aW5nIHRoZSBmb250IGNhY2hlIGZvciB0aGUgemVyby13aWR0aCBzcGFjZSBnbHlwaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NzMKKworICAgICAg
ICBIYW5kbGluZyBvZiB6ZXJvLXdpZHRoIHNwYWNlcyAob3IgY2hhcmFjdGVycyB0aGF0IHNob3Vs
ZCBiZQorICAgICAgICB0cmVhdGVkIGFzIHN1Y2gpIGN1cnJlbnRseSByZWxpZXMgb24gZ2V0dGlu
ZyB0aGUgZ2x5cGggaW5kZXgKKyAgICAgICAgZnJvbSB0aGUgZm9udCBjYWNoZSBzbyB0aGF0IGl0
IGNhbiBsYXRlciBvbiBiZSBpZGVudGlmaWVkCisgICAgICAgIHRvIGFsbG93IGZvciBhbiBlYXJs
eSByZXR1cm4uCisgICAgICAgIFdlIGNhbiBieXBhc3MgYSBsYXJnZSBwYXJ0IG9mIHRoaXMgYW5k
IHJlbHkgZGlyZWN0bHkgb24KKyAgICAgICAgdGhlIGNoYXJhY3RlciB2YWx1ZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRo
aXMgY2hhbmdlIGlzIGEgcmVmYWN0b3JpbmcKKyAgICAgICAgb2YgdGhlIGludGVybmFscywgbm8g
YmVoYXZpb3VyIGNoYW5nZSBpcyBleHBlY3RlZC4KKyAgICAgICAgU29tZSBhc3NlcnRpb25zIHdl
cmUgbWFkZSB3aGVyZSBkZWVtZWQgcmVsZXZhbnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojp0cmVhdEFzWmVyb1dpZHRoU3Bh
Y2UpOiBBZGp1c3QgdGhlIHNlbWFudGljcyBvZiB0cmVhdEFzWmVyb1dpZHRoU3BhY2UKKyAgICAg
ICAgICAgIGEgY2hhcmFjdGVyIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyB6d3NwIGlmIGl0J3Mg
YWxyZWFkeSB0cmVhdGVkIGFzIGEgc3BhY2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmdseXBoRGF0YUFuZFBh
Z2VGb3JDaGFyYWN0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRy
ZWVOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoUGFnZVRyZWVOb2RlOjppbml0aWFs
aXplUGFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3Bw
OiBSZW1vdmUgdGhlIHplcm9XaWR0aFNwYWNlR2x5cGggbWVtYmVyLgorICAgICAgICAoV2ViQ29y
ZTo6U2ltcGxlRm9udERhdGE6OlNpbXBsZUZvbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtR2x5cGhJbml0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oOiBEaXR0by4KKyAgICAg
ICAgKFNpbXBsZUZvbnREYXRhKToKKyAgICAgICAgKFplcm9XaWR0aEZvbnREYXRhKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpaZXJvV2lkdGhGb250RGF0YTo6Ym91bmRzRm9yR2x5cGgpOgor
ICAgICAgICAoV2ViQ29yZTo6WmVyb1dpZHRoRm9udERhdGE6OndpZHRoRm9yR2x5cGgpOgorICAg
ICAgICAoV2ViQ29yZTo6WmVyb1dpZHRoRm9udERhdGE6Omluc3RhbmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUZvbnREYXRhOjpib3VuZHNGb3JHbHlwaCk6CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9y
OjphZHZhbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1E
YXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1E
YXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9TaW1wbGVGb250RGF0YVF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5
cGgpOiBSZW1vdmUgdGhlIHdvcmthcm91bmQgaW50cm9kdWNlZCBwcmV2aW91c2x5LgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmdseXBoRGF0YUZvckNoYXJh
Y3Rlcik6CisgICAgICAgICogc3ZnL1NWR0ZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZvbnREYXRhOjppbml0aWFsaXplRm9udERhdGEpOgorICAgICAgICAqIHN2Zy9TVkdHbHlw
aE1hcC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhNYXA6OmNvbGxlY3RHbHlwaHNGb3JT
dHJpbmcpOgorCiAyMDEyLTA3LTA0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIxODEzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCmluZGV4IGQ4MDY2MGRhNDhlYzNhZWRk
ZWQ1ZjA5ZGI2YWVhNDcwNDIyNzU0NmIuLjNhOTQ4MmJlNGMwNjc2MWJkMzIyYTk0YjczN2Y4MjNj
Y2JlYzY2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTI0
MSw3ICsyNDEsNyBAQCBwdWJsaWM6CiAKICAgICBGb250U2VsZWN0b3IqIGZvbnRTZWxlY3Rvcigp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIHRyZWF0QXNTcGFjZShVQ2hhciBjKSB7IHJldHVybiBj
ID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXG4nIHx8IGMgPT0gbm9CcmVha1NwYWNlOyB9
Ci0gICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9XaWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJu
IHRyZWF0QXNaZXJvV2lkdGhTcGFjZUluQ29tcGxleFNjcmlwdChjKSB8fCBjID09IDB4MjAwYyB8
fCBjID09IDB4MjAwZDsgfQorICAgIHN0YXRpYyBib29sIHRyZWF0QXNaZXJvV2lkdGhTcGFjZShV
Q2hhciBjKSB7IHJldHVybiAhdHJlYXRBc1NwYWNlKGMpICYmICh0cmVhdEFzWmVyb1dpZHRoU3Bh
Y2VJbkNvbXBsZXhTY3JpcHQoYykgfHwgYyA9PSAweDIwMGMgfHwgYyA9PSAweDIwMGQpOyB9CiAg
ICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9XaWR0aFNwYWNlSW5Db21wbGV4U2NyaXB0KFVDaGFy
IGMpIHsgcmV0dXJuIGMgPCAweDIwIHx8IChjID49IDB4N0YgJiYgYyA8IDB4QTApIHx8IGMgPT0g
c29mdEh5cGhlbiB8fCBjID09IHplcm9XaWR0aFNwYWNlIHx8IChjID49IDB4MjAwZSAmJiBjIDw9
IDB4MjAwZikgfHwgKGMgPj0gMHgyMDJhICYmIGMgPD0gMHgyMDJlKSB8fCBjID09IHplcm9XaWR0
aE5vQnJlYWtTcGFjZSB8fCBjID09IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyOyB9CiAgICAg
c3RhdGljIGJvb2wgY2FuUmVjZWl2ZVRleHRFbXBoYXNpcyhVQ2hhcjMyIGMpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAppbmRleCAz
YWUwYWQ1ODFjMjMyNDMzZjRjMWUwOGJlNDgzNGFhMWYwNDIyNzA2Li4xYjIwMmUwNDg1NWQzMTIw
OTYxODEzYzI1OTZjMzhmM2JhMTVmY2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKQEAgLTc3LDYgKzc3LDkgQEAgc3RkOjpwYWly
PEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gRm9udDo6Z2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3Rl
cihVQ2hhcjMyIGMsIGIKICAgICAgICAgICAgIG1fZm9udExpc3QtPm1fcGFnZVplcm8gPSBub2Rl
OwogICAgIH0KIAorICAgIGlmICh0cmVhdEFzWmVyb1dpZHRoU3BhY2UoYykpCisgICAgICAgIHJl
dHVybiBtYWtlX3BhaXIoR2x5cGhEYXRhKC0xICwgWmVyb1dpZHRoRm9udERhdGE6Omluc3RhbmNl
KCkpLCBub2RlLT5wYWdlKCkpOworCiAgICAgR2x5cGhQYWdlKiBwYWdlID0gMDsKICAgICBpZiAo
dmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CiAgICAgICAgIC8vIEZhc3Rlc3QgbG9vcCwgZm9y
IHRoZSBjb21tb24gY2FzZSAobm9ybWFsIHZhcmlhbnQpLgpAQCAtMTk4LDYgKzIwMSw3IEBAIHN0
ZDo6cGFpcjxHbHlwaERhdGEsIEdseXBoUGFnZSo+IEZvbnQ6OmdseXBoRGF0YUFuZFBhZ2VGb3JD
aGFyYWN0ZXIoVUNoYXIzMiBjLCBiCiAgICAgICAgIGNvZGVVbml0c1sxXSA9IFUxNl9UUkFJTChj
KTsKICAgICAgICAgY29kZVVuaXRzTGVuZ3RoID0gMjsKICAgICB9CisgICAgQVNTRVJUKCF0cmVh
dEFzWmVyb1dpZHRoU3BhY2UoYykpOwogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBjaGFyYWN0
ZXJGb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRGb250RGF0YUZvckNoYXJhY3RlcnMoKnRoaXMs
IGNvZGVVbml0cywgY29kZVVuaXRzTGVuZ3RoKTsKICAgICBpZiAoY2hhcmFjdGVyRm9udERhdGEp
IHsKICAgICAgICAgaWYgKGNoYXJhY3RlckZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5vcmllbnRh
dGlvbigpID09IFZlcnRpY2FsICYmICFjaGFyYWN0ZXJGb250RGF0YS0+aGFzVmVydGljYWxHbHlw
aHMoKSAmJiBpc0NKS0lkZW9ncmFwaE9yU3ltYm9sKGMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCmluZGV4IDg3ZTkz
ZmQ5OGZmOGRlZjA5NDgxNmE1MjQzNGU5MDA1ZTg5OTk1OWQuLmM2NmNiZTE0MTdiNDRkODE4ZjFj
YzE4ZWZhNDdjYTRiMDJiYWM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAKQEAgLTE2MywzNCArMTYzLDEwIEBA
IHZvaWQgR2x5cGhQYWdlVHJlZU5vZGU6OmluaXRpYWxpemVQYWdlKGNvbnN0IEZvbnREYXRhKiBm
b250RGF0YSwgdW5zaWduZWQgcGFnZU51CiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXSA9
IHN0YXJ0ICsgaTsKIAogICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIC8vIENvbnRyb2wgY2hhcmFjdGVycyBtdXN0IG5vdCByZW5kZXIgYXQgYWxs
LgotICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMHgyMDsgKytpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAg
ICAgICAgICAgIGZvciAoaSA9IDB4N0Y7IGkgPCAweEEwOyBpKyspCi0gICAgICAgICAgICAgICAg
ICAgICAgICBidWZmZXJbaV0gPSB6ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAg
YnVmZmVyW3NvZnRIeXBoZW5dID0gemVyb1dpZHRoU3BhY2U7Ci0KICAgICAgICAgICAgICAgICAg
ICAgLy8gXG4sIFx0LCBhbmQgbm9uYnJlYWtpbmcgc3BhY2UgbXVzdCByZW5kZXIgYXMgYSBzcGFj
ZS4KICAgICAgICAgICAgICAgICAgICAgYnVmZmVyWyhpbnQpJ1xuJ10gPSAnICc7CiAgICAgICAg
ICAgICAgICAgICAgIGJ1ZmZlclsoaW50KSdcdCddID0gJyAnOwogICAgICAgICAgICAgICAgICAg
ICBidWZmZXJbbm9CcmVha1NwYWNlXSA9ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KHN0YXJ0ID09IChsZWZ0VG9SaWdodE1hcmsgJiB+KEdseXBoUGFnZTo6c2l6ZSAtIDEpKSkgewot
ICAgICAgICAgICAgICAgICAgICAvLyBMUk0sIFJMTSwgTFJFLCBSTEUsIFpXTkosIFpXSiwgYW5k
IFBERiBtdXN0IG5vdCByZW5kZXIgYXQgYWxsLgotICAgICAgICAgICAgICAgICAgICBidWZmZXJb
bGVmdFRvUmlnaHRNYXJrIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAg
ICAgICAgIGJ1ZmZlcltyaWdodFRvTGVmdE1hcmsgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsK
LSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2xlZnRUb1JpZ2h0RW1iZWQgLSBzdGFydF0gPSB6
ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3JpZ2h0VG9MZWZ0RW1i
ZWQgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVy
W2xlZnRUb1JpZ2h0T3ZlcnJpZGUgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAg
ICAgICAgICAgICAgYnVmZmVyW3JpZ2h0VG9MZWZ0T3ZlcnJpZGUgLSBzdGFydF0gPSB6ZXJvV2lk
dGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3plcm9XaWR0aE5vbkpvaW5lciAt
IHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbemVy
b1dpZHRoSm9pbmVyIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAg
ICAgIGJ1ZmZlcltwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcgLSBzdGFydF0gPSB6ZXJvV2lkdGhT
cGFjZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0ID09IChvYmplY3RSZXBsYWNl
bWVudENoYXJhY3RlciAmIH4oR2x5cGhQYWdlOjpzaXplIC0gMSkpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIE9iamVjdCByZXBsYWNlbWVudCBjaGFyYWN0ZXIgbXVzdCBub3QgcmVuZGVyIGF0
IGFsbC4KLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW29iamVjdFJlcGxhY2VtZW50Q2hhcmFj
dGVyIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChzdGFydCA9PSAoemVyb1dpZHRoTm9CcmVha1NwYWNlICYgfihHbHlwaFBhZ2U6OnNpemUgLSAx
KSkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gWldOQlMvQk9NIG11c3Qgbm90IHJlbmRlciBh
dCBhbGwuCi0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlclt6ZXJvV2lkdGhOb0JyZWFrU3BhY2Ug
LSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGJ1ZmZlckxlbmd0aCA9IEdseXBoUGFnZTo6c2l6
ZSAqIDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5jcHAKaW5kZXggMjIyZTQzMzEyZDhiMGY2MjY1NTBlYjQ3ZDJmODMyMmI2ZGM0Mjlm
Mi4uNTExZjJlMmJlNTAxMjViMWRjNDgwYmI5YjgyODVjNGIzYTE4NDkzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcApAQCAt
NjksNiArNjksMTggQEAgU2ltcGxlRm9udERhdGE6OlNpbXBsZUZvbnREYXRhKFBhc3NPd25QdHI8
QWRkaXRpb25hbEZvbnREYXRhPiBmb250RGF0YSwgZmxvYXQgZm8KICAgICBtX2ZvbnREYXRhLT5p
bml0aWFsaXplRm9udERhdGEodGhpcywgZm9udFNpemUpOwogfQogCitTaW1wbGVGb250RGF0YTo6
U2ltcGxlRm9udERhdGEoKQorICAgIDogbV9tYXhDaGFyV2lkdGgoLTEpCisgICAgLCBtX2F2Z0No
YXJXaWR0aCgtMSkKKyAgICAsIG1fdHJlYXRBc0ZpeGVkUGl0Y2goZmFsc2UpCisgICAgLCBtX2lz
Q3VzdG9tRm9udChmYWxzZSkKKyAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQorICAgICwgbV9pc1Rl
eHRPcmllbnRhdGlvbkZhbGxiYWNrKGZhbHNlKQorICAgICwgbV9pc0Jyb2tlbklkZW9ncmFwaEZh
bGxiYWNrKGZhbHNlKQorICAgICwgbV9oYXNWZXJ0aWNhbEdseXBocyhmYWxzZSkKK3sKK30KKwog
I2lmICEoUExBVEZPUk0oUVQpICYmICFIQVZFKFFSQVdGT05UKSkKIC8vIEVzdGltYXRlcyBvZiBh
dmdDaGFyV2lkdGggYW5kIG1heENoYXJXaWR0aCBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3Vw
cG9ydCBhY2Nlc3NpbmcgdGhlc2UgdmFsdWVzIGZyb20gdGhlIGZvbnQuCiB2b2lkIFNpbXBsZUZv
bnREYXRhOjppbml0Q2hhcldpZHRocygpCkBAIC0xMDAsMTQgKzExMiwxMSBAQCB2b2lkIFNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCgpCiAgICAgICAgIG1fc3BhY2VXaWR0aCA9IDA7
CiAgICAgICAgIG1fYWRqdXN0ZWRTcGFjZVdpZHRoID0gMDsKICAgICAgICAgZGV0ZXJtaW5lUGl0
Y2goKTsKLSAgICAgICAgbV96ZXJvV2lkdGhTcGFjZUdseXBoID0gMDsKICAgICAgICAgbV9taXNz
aW5nR2x5cGhEYXRhLmZvbnREYXRhID0gdGhpczsKICAgICAgICAgbV9taXNzaW5nR2x5cGhEYXRh
LmdseXBoID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1femVyb1dpZHRoU3Bh
Y2VHbHlwaCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsK
LQogICAgIC8vIE5hc3R5IGhhY2sgdG8gZGV0ZXJtaW5lIGlmIHdlIHNob3VsZCByb3VuZCBvciBj
ZWlsIHNwYWNlIHdpZHRocy4KICAgICAvLyBJZiB0aGUgZm9udCBpcyBtb25vc3BhY2Ugb3IgZmFr
ZSBtb25vc3BhY2Ugd2UgY2VpbCB0byBlbnN1cmUgdGhhdCAKICAgICAvLyBldmVyeSBjaGFyYWN0
ZXIgYW5kIHRoZSBzcGFjZSBhcmUgdGhlIHNhbWUgd2lkdGguICBPdGhlcndpc2Ugd2Ugcm91bmQu
CkBAIC0xMTcsMTYgKzEyNiw2IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtR2x5cGhJ
bml0KCkKICAgICBkZXRlcm1pbmVQaXRjaCgpOwogICAgIG1fYWRqdXN0ZWRTcGFjZVdpZHRoID0g
bV90cmVhdEFzRml4ZWRQaXRjaCA/IGNlaWxmKHdpZHRoKSA6IHJvdW5kZih3aWR0aCk7CiAKLSAg
ICAvLyBGb3JjZSB0aGUgZ2x5cGggZm9yIFpFUk8gV0lEVEggU1BBQ0UgdG8gaGF2ZSB6ZXJvIHdp
ZHRoLCB1bmxlc3MgaXQgaXMgc2hhcmVkIHdpdGggU1BBQ0UuCi0gICAgLy8gSGVsdmV0aWNhIGlz
IGFuIGV4YW1wbGUgb2YgYSBub24temVybyB3aWR0aCBaRVJPIFdJRFRIIFNQQUNFIGdseXBoLgot
ICAgIC8vIFNlZSA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNzg+
Ci0gICAgLy8gQXNrIGZvciB0aGUgZ2x5cGggZm9yIDAgdG8gYXZvaWQgcGFnaW5nIGluIFpFUk8g
V0lEVEggU1BBQ0UuIENvbnRyb2wgY2hhcmFjdGVycywgaW5jbHVkaW5nIDAsCi0gICAgLy8gYXJl
IG1hcHBlZCB0byB0aGUgWkVSTyBXSURUSCBTUEFDRSBnbHlwaC4KLSAgICBpZiAobV96ZXJvV2lk
dGhTcGFjZUdseXBoID09IG1fc3BhY2VHbHlwaCkgewotICAgICAgICBtX3plcm9XaWR0aFNwYWNl
R2x5cGggPSAwOwotICAgICAgICBMT0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBX
SURUSCBTUEFDRSB0byB0aGUgc2FtZSBnbHlwaC4gR2x5cGggd2lkdGggd2lsbCBub3QgYmUgb3Zl
cnJpZGRlbi4iKTsKLSAgICB9Ci0KICAgICBtX21pc3NpbmdHbHlwaERhdGEuZm9udERhdGEgPSB0
aGlzOwogICAgIG1fbWlzc2luZ0dseXBoRGF0YS5nbHlwaCA9IDA7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAppbmRleCA2ZmM5MThh
NDM4OWM1M2E4M2NlMGNlMTg5ZDI2M2FjNzdkNDgwZTI4Li4zYmUyZjk3MmZhOTFhZWEzNDBkMjU5
NGMwOWNhM2ZiZTA0YzU4N2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTEzMCw4ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAg
ZmxvYXQgYXZnQ2hhcldpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9hdmdDaGFyV2lkdGg7IH0KICAg
ICB2b2lkIHNldEF2Z0NoYXJXaWR0aChmbG9hdCBhdmdDaGFyV2lkdGgpIHsgbV9hdmdDaGFyV2lk
dGggPSBhdmdDaGFyV2lkdGg7IH0KIAotICAgIEZsb2F0UmVjdCBib3VuZHNGb3JHbHlwaChHbHlw
aCkgY29uc3Q7Ci0gICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBGbG9hdFJlY3QgYm91bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0OworICAgIHZp
cnR1YWwgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7CiAgICAgRmxvYXRSZWN0IHBs
YXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwogICAgIGZsb2F0IHBsYXRmb3JtV2lk
dGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7CiAKQEAgLTE0NSw4ICsxNDUsNiBAQCBwdWJsaWM6CiAK
ICAgICBHbHlwaCBzcGFjZUdseXBoKCkgY29uc3QgeyByZXR1cm4gbV9zcGFjZUdseXBoOyB9CiAg
ICAgdm9pZCBzZXRTcGFjZUdseXBoKEdseXBoIHNwYWNlR2x5cGgpIHsgbV9zcGFjZUdseXBoID0g
c3BhY2VHbHlwaDsgfQotICAgIHZvaWQgc2V0WmVyb1dpZHRoU3BhY2VHbHlwaChHbHlwaCBzcGFj
ZUdseXBoKSB7IG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IHNwYWNlR2x5cGg7IH0KLSAgICBib29s
IGlzWmVyb1dpZHRoU3BhY2VHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4gZ2x5cGgg
PT0gbV96ZXJvV2lkdGhTcGFjZUdseXBoICYmIGdseXBoOyB9CiAKICAgICB2aXJ0dWFsIGNvbnN0
IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YUZvckNoYXJhY3RlcihVQ2hhcjMyKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgY29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0
aCkgY29uc3Q7CkBAIC0yMTYsNiArMjE0LDggQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdYKQog
ICAgIHd4Rm9udCogZ2V0V3hGb250KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybURhdGEuZm9u
dCgpOyB9CiAjZW5kaWYKK3Byb3RlY3RlZDoKKyAgICBTaW1wbGVGb250RGF0YSgpOwogCiBwcml2
YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0KCk7CkBAIC0yNTksOCArMjU5LDYgQEAgcHJpdmF0
ZToKICAgICBmbG9hdCBtX3NwYWNlV2lkdGg7CiAgICAgZmxvYXQgbV9hZGp1c3RlZFNwYWNlV2lk
dGg7CiAKLSAgICBHbHlwaCBtX3plcm9XaWR0aFNwYWNlR2x5cGg7Ci0KICAgICBHbHlwaERhdGEg
bV9taXNzaW5nR2x5cGhEYXRhOwogCiAgICAgc3RydWN0IERlcml2ZWRGb250RGF0YSB7CkBAIC0z
MTksMTEgKzMxNywyMCBAQCBwcml2YXRlOgogfTsKIAogI2lmICEoUExBVEZPUk0oUVQpICYmICFI
QVZFKFFSQVdGT05UKSkKLUFMV0FZU19JTkxJTkUgRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpi
b3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK2NsYXNzIFplcm9XaWR0aEZvbnREYXRh
IDogcHVibGljIFNpbXBsZUZvbnREYXRhCiB7Ci0gICAgaWYgKGlzWmVyb1dpZHRoU3BhY2VHbHlw
aChnbHlwaCkpCi0gICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKK3B1YmxpYzoKKyAgICBBTFdB
WVNfSU5MSU5FIEZsb2F0UmVjdCBib3VuZHNGb3JHbHlwaChHbHlwaCkgY29uc3QgeyByZXR1cm4g
RmxvYXRSZWN0KCk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5
cGgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgWmVyb1dpZHRoRm9udERhdGEqIGlu
c3RhbmNlKCkKKyAgICB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoWmVyb1dpZHRoRm9u
dERhdGEsIHplcm9XaWR0aEZvbnREYXRhLCAoKSk7CisgICAgICAgIHJldHVybiAmemVyb1dpZHRo
Rm9udERhdGE7CisgICAgfQorfTsKIAorQUxXQVlTX0lOTElORSBGbG9hdFJlY3QgU2ltcGxlRm9u
dERhdGE6OmJvdW5kc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorewogICAgIEZsb2F0UmVj
dCBib3VuZHM7CiAgICAgaWYgKG1fZ2x5cGhUb0JvdW5kc01hcCkgewogICAgICAgICBib3VuZHMg
PSBtX2dseXBoVG9Cb3VuZHNNYXAtPm1ldHJpY3NGb3JHbHlwaChnbHlwaCk7CkBAIC0zNDAsOSAr
MzQ3LDYgQEAgQUxXQVlTX0lOTElORSBGbG9hdFJlY3QgU2ltcGxlRm9udERhdGE6OmJvdW5kc0Zv
ckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogCiBBTFdBWVNfSU5MSU5FIGZsb2F0IFNpbXBsZUZv
bnREYXRhOjp3aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewotICAgIGlmIChpc1pl
cm9XaWR0aFNwYWNlR2x5cGgoZ2x5cGgpKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIGZsb2F0
IHdpZHRoID0gbV9nbHlwaFRvV2lkdGhNYXAubWV0cmljc0ZvckdseXBoKGdseXBoKTsKICAgICBp
ZiAod2lkdGggIT0gY0dseXBoU2l6ZVVua25vd24pCiAgICAgICAgIHJldHVybiB3aWR0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAK
aW5kZXggOGQ5NzViN2IzMzU4OGYzOTg0N2VlYjZkOTcwMTkzZmRkMGEzNmM5Zi4uZTg3NDRiNmYz
NWI1MGFiNDExN2I4N2RmYmViYmJlNTI3ZDk4NmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKQEAgLTE1OCw2ICsxNTgsNyBA
QCB1bnNpZ25lZCBXaWR0aEl0ZXJhdG9yOjphZHZhbmNlKGludCBvZmZzZXQsIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlcikKICAgICAgICAgICAgIHN0YXRpYyBib29sIGV4cGFuZEFyb3VuZElkZW9n
cmFwaHMgPSBGb250OjpjYW5FeHBhbmRBcm91bmRJZGVvZ3JhcGhzSW5Db21wbGV4VGV4dCgpOwog
ICAgICAgICAgICAgYm9vbCB0cmVhdEFzU3BhY2UgPSBGb250Ojp0cmVhdEFzU3BhY2UoY2hhcmFj
dGVyKTsKICAgICAgICAgICAgIGlmICh0cmVhdEFzU3BhY2UgfHwgKGV4cGFuZEFyb3VuZElkZW9n
cmFwaHMgJiYgRm9udDo6aXNDSktJZGVvZ3JhcGhPclN5bWJvbChjaGFyYWN0ZXIpKSkgeworICAg
ICAgICAgICAgICAgIEFTU0VSVChmb250RGF0YSAhPSBaZXJvV2lkdGhGb250RGF0YTo6aW5zdGFu
Y2UoKSk7CiAgICAgICAgICAgICAgICAgLy8gRGlzdHJpYnV0ZSB0aGUgcnVuJ3MgdG90YWwgZXhw
YW5zaW9uIGV2ZW5seSBvdmVyIGFsbCBleHBhbnNpb24gb3Bwb3J0dW5pdGllcyBpbiB0aGUgcnVu
LgogICAgICAgICAgICAgICAgIGlmIChtX2V4cGFuc2lvbikgewogICAgICAgICAgICAgICAgICAg
ICBmbG9hdCBwcmV2aW91c0V4cGFuc2lvbiA9IG1fZXhwYW5zaW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4
IGI2MGQwNWQ1MmFmNjBlNDA4ZTZjMGVlN2I1NmE1ZTMwMDY3YWNkYzguLjI5Y2E3OTdkZGZhMTZi
YTRiZjFkM2JmZTdkOWQ4ZjU1ZDE2ZDNjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTExMiw2ICsxMTIs
OSBAQCBwdWJsaWM6CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBRUmF3Rm9udCYgcmF3Rm9u
dCkKICAgICAgICAgOiBtX2RhdGEoYWRvcHRSZWYobmV3IEZvbnRQbGF0Zm9ybURhdGFQcml2YXRl
KHJhd0ZvbnQpKSkKICAgICB7IH0KKyAgICBGb250UGxhdGZvcm1EYXRhKCkKKyAgICAgICAgOiBt
X2RhdGEoMCkKKyAgICB7IH0KICNlbmRpZgogICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IG1fZGF0YShhZG9wdFJlZihuZXcgRm9u
dFBsYXRmb3JtRGF0YVByaXZhdGUoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9TaW1wbGVGb250RGF0YVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCmluZGV4IDRjMDFmMWRhY2E4
OGEwY2Q1OGEyNzQyZTlhYzc5NjliZDMwMTkxOTMuLmVkODVhYzJmOTQ3Y2JlMGYyN2IxNDEwNjMx
M2YxNGE4N2ViYWRiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGJvb2wg
U2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgaW50IGxlbmd0aCkgY29uCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRo
Rm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgaWYgKCFnbHlwaCB8fCAhcGxhdGZv
cm1EYXRhKCkuc2l6ZSgpKQorICAgIGlmICghcGxhdGZvcm1EYXRhKCkuc2l6ZSgpKQogICAgICAg
ICByZXR1cm4gMDsKIAogICAgIFFWZWN0b3I8cXVpbnQzMj4gZ2x5cGhJbmRleGVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCAwMTI0ZWRhMzJhZDc1ODc5OTU5ZTA0ZmRiMGNiZjcyNmI3M2Jh
MzI5Li5jMzRhMmZiZjczN2RlZmQxNWY1MTYyNGU5YjkyYzYzYTU1Y2Y5YjYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJp
bmdDb250ZXh0LmNwcApAQCAtMTc5LDYgKzE3OSw4IEBAIEdseXBoRGF0YSBTVkdUZXh0UnVuUmVu
ZGVyaW5nQ29udGV4dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGNvbnN0IEZvbnQmIGZvbnQsIGNv
CiAKICAgICBwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gcGFpciA9IGZvbnQuZ2x5cGhEYXRh
QW5kUGFnZUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIG1pcnJvcik7CiAgICAgR2x5cGhEYXRhIGds
eXBoRGF0YSA9IHBhaXIuZmlyc3Q7CisgICAgaWYgKCFnbHlwaERhdGEuZm9udERhdGEgfHwgZ2x5
cGhEYXRhLmZvbnREYXRhID09IFplcm9XaWR0aEZvbnREYXRhOjppbnN0YW5jZSgpKQorICAgICAg
ICByZXR1cm4gZ2x5cGhEYXRhOwogCiAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSB0aGUgbWlzc2lu
ZyBnbHlwaCBkYXRhLCBpbiB3aGljaCBjYXNlIHdlIGNhbiBqdXN0IHJldHVybi4KICAgICBHbHlw
aERhdGEgbWlzc2luZ0dseXBoRGF0YSA9IHByaW1hcnlGb250LT5taXNzaW5nR2x5cGhEYXRhKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcAppbmRleCBhMzE3ZTJiNGY3MTc1MTVkNDZiMmRl
MjI4MGQxOGU1YjBiZGQ3YzQzLi5iMzljYmZlYTZkNDY4OGMxNWZhNzFlYWYyOTU2ZDcxMTVmY2Ji
M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKQEAgLTY2LDcgKzY2LDYgQEAgdm9p
ZCBTVkdGb250RGF0YTo6aW5pdGlhbGl6ZUZvbnREYXRhKFNpbXBsZUZvbnREYXRhKiBmb250RGF0
YSwgZmxvYXQgZm9udFNpemUpCiAgICAgbWlzc2luZ0dseXBoRGF0YS5nbHlwaCA9IHN2Z0ZvbnRF
bGVtZW50LT5taXNzaW5nR2x5cGgoKTsKICAgICBmb250RGF0YS0+c2V0TWlzc2luZ0dseXBoRGF0
YShtaXNzaW5nR2x5cGhEYXRhKTsKIAotICAgIGZvbnREYXRhLT5zZXRaZXJvV2lkdGhTcGFjZUds
eXBoKDApOwogICAgIGZvbnREYXRhLT5kZXRlcm1pbmVQaXRjaCgpOwogCiAgICAgdW5zaWduZWQg
dW5pdHNQZXJFbSA9IHN2Z0ZvbnRGYWNlRWxlbWVudC0+dW5pdHNQZXJFbSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR2x5cGhNYXAuaAppbmRleCA5Mjk0NTI2OTY1OTFkN2E3MGI0YjFhNzdlYjA0NjdjNzJkZDM4
NDQyLi5mN2NjYTMyNzYzNDc4YmM0ODVmYjBkMGU5NGViYmNmMTAzNjI3YjAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhNYXAuaApAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBTVkdHbHlwaE1hcF9o
CiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJT
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJTVkdHbHlwaC5oIgog
I2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgpAQCAtMTIxLDYgKzEyMiw4IEBAIHB1YmxpYzoK
ICAgICAgICAgdW5zaWduZWQgY2x1c3Rlckxlbmd0aCA9IDA7CiAgICAgICAgIFN1cnJvZ2F0ZVBh
aXJBd2FyZVRleHRJdGVyYXRvciB0ZXh0SXRlcmF0b3IoY2hhcmFjdGVycywgMCwgbGVuZ3RoLCBs
ZW5ndGgpOwogICAgICAgICB3aGlsZSAodGV4dEl0ZXJhdG9yLmNvbnN1bWUoY2hhcmFjdGVyLCBj
bHVzdGVyTGVuZ3RoKSkgeworICAgICAgICAgICAgaWYgKEZvbnQ6OnRyZWF0QXNaZXJvV2lkdGhT
cGFjZShjaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
UmVmUHRyPEdseXBoTWFwTm9kZT4gbm9kZSA9IGN1cnJlbnRMYXllci0+Z2V0KGNoYXJhY3Rlcik7
CiAgICAgICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151095</attachid>
            <date>2012-07-06 09:45:46 -0700</date>
            <delta_ts>2012-07-06 10:49:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90673-20120706184725.patch</filename>
            <type>text/plain</type>
            <size>19612</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNmODc5NTIwYWE0Y2Q5
NGEzZjBlNjczMmZiMDRiYzliNjY4NzM2ZS4uZTA2ZTFkMmU3ZDE2YWM1Yjk3NGM1ODgzNzhjZDFk
ZDk4ZDBlMGE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA3LTA2ICBQaWVy
cmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgorCisgICAgICAgIEF2b2lkIHF1ZXJ5
aW5nIHRoZSBmb250IGNhY2hlIGZvciB0aGUgemVyby13aWR0aCBzcGFjZSBnbHlwaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NzMKKworICAgICAg
ICBIYW5kbGluZyBvZiB6ZXJvLXdpZHRoIHNwYWNlcyAob3IgY2hhcmFjdGVycyB0aGF0IHNob3Vs
ZCBiZQorICAgICAgICB0cmVhdGVkIGFzIHN1Y2gpIGN1cnJlbnRseSByZWxpZXMgb24gZ2V0dGlu
ZyB0aGUgZ2x5cGggaW5kZXgKKyAgICAgICAgZnJvbSB0aGUgZm9udCBjYWNoZSBzbyB0aGF0IGl0
IGNhbiBsYXRlciBvbiBiZSBpZGVudGlmaWVkCisgICAgICAgIHRvIGFsbG93IGZvciBhbiBlYXJs
eSByZXR1cm4uCisgICAgICAgIFdlIGNhbiBhY2NvbXBsaXNoIHRoZSBzYW1lIHRoaW5nIGJ5IGlu
dHJvZHVjaW5nIGEgdmVyeSBiYXNpYworICAgICAgICBTaW1wbGVGb250RGF0YSBzdWJjbGFzcyB0
aGF0IHdpbGwgYmUgdXNlZCBkaXJlY3RseSBieSBjbGllbnRzIG9mCisgICAgICAgIEZvbnQ6Omds
eXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGNoYW5nZSBpcyBhIHJlZmFj
dG9yaW5nCisgICAgICAgIG9mIHRoZSBpbnRlcm5hbHMsIG5vIGJlaGF2aW91ciBjaGFuZ2UgaXMg
ZXhwZWN0ZWQuCisgICAgICAgIFNvbWUgYXNzZXJ0aW9ucyB3ZXJlIG1hZGUgd2hlcmUgZGVlbWVk
IHJlbGV2YW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6dHJlYXRBc1plcm9XaWR0aFNwYWNlKTogQWRqdXN0IHRoZSBzZW1h
bnRpY3Mgb2YgdHJlYXRBc1plcm9XaWR0aFNwYWNlCisgICAgICAgICAgICBhIGNoYXJhY3RlciBz
aG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgendzcCBpZiBpdCdzIGFscmVhZHkgdHJlYXRlZCBhcyBh
IHNwYWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250OjpnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHbHlwaFBhZ2VUcmVlTm9kZTo6aW5pdGlhbGl6ZVBhZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDogUmVtb3ZlIHRoZSB6ZXJvV2lk
dGhTcGFjZUdseXBoIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpT
aW1wbGVGb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaDogRGl0dG8uCisgICAgICAgIChTaW1wbGVGb250RGF0YSk6
CisgICAgICAgIChaZXJvV2lkdGhGb250RGF0YSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
WmVyb1dpZHRoRm9udERhdGE6OmJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Olpl
cm9XaWR0aEZvbnREYXRhOjp3aWR0aEZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Olplcm9X
aWR0aEZvbnREYXRhOjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0
YTo6Ym91bmRzRm9yR2x5cGgpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6Ondp
ZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1
enouY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpzZXRHbHlw
aFBvc2l0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFy
ZkJ1enpTaGFwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFyZkJ1enpTaGFwZXI6OnNldEds
eXBoUG9zaXRpb25zRm9ySGFyZkJ1enpSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1Np
bXBsZUZvbnREYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbHlwaCk6IFJlbW92ZSB0aGUgd29ya2Fyb3VuZCBpbnRyb2R1Y2VkIHBy
ZXZpb3VzbHkuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6
Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udERhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udERhdGE6OmluaXRpYWxpemVGb250RGF0YSk6CisgICAg
ICAgICogc3ZnL1NWR0dseXBoTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaE1hcDo6
Y29sbGVjdEdseXBoc0ZvclN0cmluZyk6CisKIDIwMTItMDctMDQgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjE4MTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXgg
ZDgwNjYwZGE0OGVjM2FlZGRlZDVmMDlkYjZhZWE0NzA0MjI3NTQ2Yi4uM2E5NDgyYmU0YzA2NzYx
YmQzMjJhOTRiNzM3ZjgyM2NjYmVjNjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuaApAQCAtMjQxLDcgKzI0MSw3IEBAIHB1YmxpYzoKIAogICAgIEZvbnRTZWxlY3Rv
ciogZm9udFNlbGVjdG9yKCkgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1NwYWNlKFVD
aGFyIGMpIHsgcmV0dXJuIGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicgfHwgYyA9
PSBub0JyZWFrU3BhY2U7IH0KLSAgICBzdGF0aWMgYm9vbCB0cmVhdEFzWmVyb1dpZHRoU3BhY2Uo
VUNoYXIgYykgeyByZXR1cm4gdHJlYXRBc1plcm9XaWR0aFNwYWNlSW5Db21wbGV4U2NyaXB0KGMp
IHx8IGMgPT0gMHgyMDBjIHx8IGMgPT0gMHgyMDBkOyB9CisgICAgc3RhdGljIGJvb2wgdHJlYXRB
c1plcm9XaWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJuICF0cmVhdEFzU3BhY2UoYykgJiYgKHRy
ZWF0QXNaZXJvV2lkdGhTcGFjZUluQ29tcGxleFNjcmlwdChjKSB8fCBjID09IDB4MjAwYyB8fCBj
ID09IDB4MjAwZCk7IH0KICAgICBzdGF0aWMgYm9vbCB0cmVhdEFzWmVyb1dpZHRoU3BhY2VJbkNv
bXBsZXhTY3JpcHQoVUNoYXIgYykgeyByZXR1cm4gYyA8IDB4MjAgfHwgKGMgPj0gMHg3RiAmJiBj
IDwgMHhBMCkgfHwgYyA9PSBzb2Z0SHlwaGVuIHx8IGMgPT0gemVyb1dpZHRoU3BhY2UgfHwgKGMg
Pj0gMHgyMDBlICYmIGMgPD0gMHgyMDBmKSB8fCAoYyA+PSAweDIwMmEgJiYgYyA8PSAweDIwMmUp
IHx8IGMgPT0gemVyb1dpZHRoTm9CcmVha1NwYWNlIHx8IGMgPT0gb2JqZWN0UmVwbGFjZW1lbnRD
aGFyYWN0ZXI7IH0KICAgICBzdGF0aWMgYm9vbCBjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFy
MzIgYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRGYXN0UGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFz
dFBhdGguY3BwCmluZGV4IDNhZTBhZDU4MWMyMzI0MzNmNGMxZTA4YmU0ODM0YWExZjA0MjI3MDYu
LjFiMjAyZTA0ODU1ZDMxMjA5NjE4MTNjMjU5NmMzOGYzYmExNWZjYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcApAQCAtNzcsNiAr
NzcsOSBAQCBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBGb250OjpnbHlwaERhdGFB
bmRQYWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYgogICAgICAgICAgICAgbV9mb250TGlzdC0+
bV9wYWdlWmVybyA9IG5vZGU7CiAgICAgfQogCisgICAgaWYgKHRyZWF0QXNaZXJvV2lkdGhTcGFj
ZShjKSkKKyAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihHbHlwaERhdGEoLTEgLCBaZXJvV2lkdGhG
b250RGF0YTo6aW5zdGFuY2UoKSksIG5vZGUtPnBhZ2UoKSk7CisKICAgICBHbHlwaFBhZ2UqIHBh
Z2UgPSAwOwogICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsKICAgICAgICAgLy8g
RmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBjYXNlIChub3JtYWwgdmFyaWFudCkuCkBAIC0x
OTgsNiArMjAxLDcgQEAgc3RkOjpwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gRm9udDo6Z2x5
cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihVQ2hhcjMyIGMsIGIKICAgICAgICAgY29kZVVuaXRz
WzFdID0gVTE2X1RSQUlMKGMpOwogICAgICAgICBjb2RlVW5pdHNMZW5ndGggPSAyOwogICAgIH0K
KyAgICBBU1NFUlQoIXRyZWF0QXNaZXJvV2lkdGhTcGFjZShjKSk7CiAgICAgY29uc3QgU2ltcGxl
Rm9udERhdGEqIGNoYXJhY3RlckZvbnREYXRhID0gZm9udENhY2hlKCktPmdldEZvbnREYXRhRm9y
Q2hhcmFjdGVycygqdGhpcywgY29kZVVuaXRzLCBjb2RlVW5pdHNMZW5ndGgpOwogICAgIGlmIChj
aGFyYWN0ZXJGb250RGF0YSkgewogICAgICAgICBpZiAoY2hhcmFjdGVyRm9udERhdGEtPnBsYXRm
b3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwgJiYgIWNoYXJhY3RlckZvbnREYXRh
LT5oYXNWZXJ0aWNhbEdseXBocygpICYmIGlzQ0pLSWRlb2dyYXBoT3JTeW1ib2woYykpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9k
ZS5jcHAKaW5kZXggODdlOTNmZDk4ZmY4ZGVmMDk0ODE2YTUyNDM0ZTkwMDVlODk5OTU5ZC4uYzY2
Y2JlMTQxN2I0NGQ4MThmMWNjMThlZmE0N2NhNGIwMmJhYzc5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcApAQCAt
MTYzLDM0ICsxNjMsMTAgQEAgdm9pZCBHbHlwaFBhZ2VUcmVlTm9kZTo6aW5pdGlhbGl6ZVBhZ2Uo
Y29uc3QgRm9udERhdGEqIGZvbnREYXRhLCB1bnNpZ25lZCBwYWdlTnUKICAgICAgICAgICAgICAg
ICAgICAgYnVmZmVyW2ldID0gc3RhcnQgKyBpOwogCiAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0
ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ29udHJvbCBjaGFyYWN0ZXJzIG11c3Qg
bm90IHJlbmRlciBhdCBhbGwuCi0gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAw
eDIwOyArK2kpCi0gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaV0gPSB6ZXJvV2lkdGhT
cGFjZTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMHg3RjsgaSA8IDB4QTA7IGkrKykK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXSA9IHplcm9XaWR0aFNwYWNlOwotICAg
ICAgICAgICAgICAgICAgICBidWZmZXJbc29mdEh5cGhlbl0gPSB6ZXJvV2lkdGhTcGFjZTsKLQog
ICAgICAgICAgICAgICAgICAgICAvLyBcbiwgXHQsIGFuZCBub25icmVha2luZyBzcGFjZSBtdXN0
IHJlbmRlciBhcyBhIHNwYWNlLgogICAgICAgICAgICAgICAgICAgICBidWZmZXJbKGludCknXG4n
XSA9ICcgJzsKICAgICAgICAgICAgICAgICAgICAgYnVmZmVyWyhpbnQpJ1x0J10gPSAnICc7CiAg
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltub0JyZWFrU3BhY2VdID0gJyAnOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPT0gKGxlZnRUb1JpZ2h0TWFyayAmIH4oR2x5cGhQYWdl
OjpzaXplIC0gMSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIExSTSwgUkxNLCBMUkUsIFJM
RSwgWldOSiwgWldKLCBhbmQgUERGIG11c3Qgbm90IHJlbmRlciBhdCBhbGwuCi0gICAgICAgICAg
ICAgICAgICAgIGJ1ZmZlcltsZWZ0VG9SaWdodE1hcmsgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFj
ZTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3JpZ2h0VG9MZWZ0TWFyayAtIHN0YXJ0XSA9
IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbbGVmdFRvUmlnaHRF
bWJlZCAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZm
ZXJbcmlnaHRUb0xlZnRFbWJlZCAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAg
ICAgICAgICAgICBidWZmZXJbbGVmdFRvUmlnaHRPdmVycmlkZSAtIHN0YXJ0XSA9IHplcm9XaWR0
aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbcmlnaHRUb0xlZnRPdmVycmlkZSAt
IHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbemVy
b1dpZHRoTm9uSm9pbmVyIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAg
ICAgICAgIGJ1ZmZlclt6ZXJvV2lkdGhKb2luZXIgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsK
LSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3BvcERpcmVjdGlvbmFsRm9ybWF0dGluZyAtIHN0
YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQg
PT0gKG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyICYgfihHbHlwaFBhZ2U6OnNpemUgLSAxKSkp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT2JqZWN0IHJlcGxhY2VtZW50IGNoYXJhY3RlciBt
dXN0IG5vdCByZW5kZXIgYXQgYWxsLgotICAgICAgICAgICAgICAgICAgICBidWZmZXJbb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXIgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0ID09ICh6ZXJvV2lkdGhOb0JyZWFrU3BhY2UgJiB+KEds
eXBoUGFnZTo6c2l6ZSAtIDEpKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBaV05CUy9CT00g
bXVzdCBub3QgcmVuZGVyIGF0IGFsbC4KLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3plcm9X
aWR0aE5vQnJlYWtTcGFjZSAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgYnVmZmVyTGVuZ3Ro
ID0gR2x5cGhQYWdlOjpzaXplICogMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAppbmRleCAyMjJlNDMzMTJkOGIwZjYyNjU1MGVi
NDdkMmY4MzIyYjZkYzQyOWYyLi4zYjI5YWRjN2QyZGM0N2M4MmY0NTU0ODk3YmMxYjE0Yjc1NGZh
ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxl
Rm9udERhdGEuY3BwCkBAIC03MCw2ICs3MCwxOCBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9u
dERhdGEoUGFzc093blB0cjxBZGRpdGlvbmFsRm9udERhdGE+IGZvbnREYXRhLCBmbG9hdCBmbwog
fQogCiAjaWYgIShQTEFURk9STShRVCkgJiYgIUhBVkUoUVJBV0ZPTlQpKQorU2ltcGxlRm9udERh
dGE6OlNpbXBsZUZvbnREYXRhKCkKKyAgICA6IG1fbWF4Q2hhcldpZHRoKC0xKQorICAgICwgbV9h
dmdDaGFyV2lkdGgoLTEpCisgICAgLCBtX3RyZWF0QXNGaXhlZFBpdGNoKGZhbHNlKQorICAgICwg
bV9pc0N1c3RvbUZvbnQoZmFsc2UpCisgICAgLCBtX2lzTG9hZGluZyhmYWxzZSkKKyAgICAsIG1f
aXNUZXh0T3JpZW50YXRpb25GYWxsYmFjayhmYWxzZSkKKyAgICAsIG1faXNCcm9rZW5JZGVvZ3Jh
cGhGYWxsYmFjayhmYWxzZSkKKyAgICAsIG1faGFzVmVydGljYWxHbHlwaHMoZmFsc2UpCit7Cit9
CisKIC8vIEVzdGltYXRlcyBvZiBhdmdDaGFyV2lkdGggYW5kIG1heENoYXJXaWR0aCBmb3IgcGxh
dGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBhY2Nlc3NpbmcgdGhlc2UgdmFsdWVzIGZyb20gdGhl
IGZvbnQuCiB2b2lkIFNpbXBsZUZvbnREYXRhOjppbml0Q2hhcldpZHRocygpCiB7CkBAIC0xMDAs
MTQgKzExMiwxMSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCgpCiAg
ICAgICAgIG1fc3BhY2VXaWR0aCA9IDA7CiAgICAgICAgIG1fYWRqdXN0ZWRTcGFjZVdpZHRoID0g
MDsKICAgICAgICAgZGV0ZXJtaW5lUGl0Y2goKTsKLSAgICAgICAgbV96ZXJvV2lkdGhTcGFjZUds
eXBoID0gMDsKICAgICAgICAgbV9taXNzaW5nR2x5cGhEYXRhLmZvbnREYXRhID0gdGhpczsKICAg
ICAgICAgbV9taXNzaW5nR2x5cGhEYXRhLmdseXBoID0gMDsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IGdseXBoUGFnZVplcm8tPmdseXBoRGF0
YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKLQogICAgIC8vIE5hc3R5IGhhY2sgdG8gZGV0ZXJtaW5l
IGlmIHdlIHNob3VsZCByb3VuZCBvciBjZWlsIHNwYWNlIHdpZHRocy4KICAgICAvLyBJZiB0aGUg
Zm9udCBpcyBtb25vc3BhY2Ugb3IgZmFrZSBtb25vc3BhY2Ugd2UgY2VpbCB0byBlbnN1cmUgdGhh
dCAKICAgICAvLyBldmVyeSBjaGFyYWN0ZXIgYW5kIHRoZSBzcGFjZSBhcmUgdGhlIHNhbWUgd2lk
dGguICBPdGhlcndpc2Ugd2Ugcm91bmQuCkBAIC0xMTcsMTYgKzEyNiw2IEBAIHZvaWQgU2ltcGxl
Rm9udERhdGE6OnBsYXRmb3JtR2x5cGhJbml0KCkKICAgICBkZXRlcm1pbmVQaXRjaCgpOwogICAg
IG1fYWRqdXN0ZWRTcGFjZVdpZHRoID0gbV90cmVhdEFzRml4ZWRQaXRjaCA/IGNlaWxmKHdpZHRo
KSA6IHJvdW5kZih3aWR0aCk7CiAKLSAgICAvLyBGb3JjZSB0aGUgZ2x5cGggZm9yIFpFUk8gV0lE
VEggU1BBQ0UgdG8gaGF2ZSB6ZXJvIHdpZHRoLCB1bmxlc3MgaXQgaXMgc2hhcmVkIHdpdGggU1BB
Q0UuCi0gICAgLy8gSGVsdmV0aWNhIGlzIGFuIGV4YW1wbGUgb2YgYSBub24temVybyB3aWR0aCBa
RVJPIFdJRFRIIFNQQUNFIGdseXBoLgotICAgIC8vIFNlZSA8aHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNzg+Ci0gICAgLy8gQXNrIGZvciB0aGUgZ2x5cGggZm9yIDAg
dG8gYXZvaWQgcGFnaW5nIGluIFpFUk8gV0lEVEggU1BBQ0UuIENvbnRyb2wgY2hhcmFjdGVycywg
aW5jbHVkaW5nIDAsCi0gICAgLy8gYXJlIG1hcHBlZCB0byB0aGUgWkVSTyBXSURUSCBTUEFDRSBn
bHlwaC4KLSAgICBpZiAobV96ZXJvV2lkdGhTcGFjZUdseXBoID09IG1fc3BhY2VHbHlwaCkgewot
ICAgICAgICBtX3plcm9XaWR0aFNwYWNlR2x5cGggPSAwOwotICAgICAgICBMT0dfRVJST1IoIkZv
bnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUgc2FtZSBnbHlwaC4gR2x5
cGggd2lkdGggd2lsbCBub3QgYmUgb3ZlcnJpZGRlbi4iKTsKLSAgICB9Ci0KICAgICBtX21pc3Np
bmdHbHlwaERhdGEuZm9udERhdGEgPSB0aGlzOwogICAgIG1fbWlzc2luZ0dseXBoRGF0YS5nbHlw
aCA9IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aW1wbGVGb250RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxl
Rm9udERhdGEuaAppbmRleCA2ZmM5MThhNDM4OWM1M2E4M2NlMGNlMTg5ZDI2M2FjNzdkNDgwZTI4
Li40ZjAyZGIxZDllOGVhZjJhYTZhZmE1YjZjMmM2ZWZhODE5MjRmNDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTEzMCw4
ICsxMzAsMTAgQEAgcHVibGljOgogICAgIGZsb2F0IGF2Z0NoYXJXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fYXZnQ2hhcldpZHRoOyB9CiAgICAgdm9pZCBzZXRBdmdDaGFyV2lkdGgoZmxvYXQgYXZn
Q2hhcldpZHRoKSB7IG1fYXZnQ2hhcldpZHRoID0gYXZnQ2hhcldpZHRoOyB9CiAKLSAgICBGbG9h
dFJlY3QgYm91bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwotICAgIGZsb2F0IHdpZHRoRm9yR2x5
cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworI2lmICFQTEFURk9STShRVCkgfHwgSEFWRShRUkFXRk9O
VCkKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBib3VuZHNGb3JHbHlwaChHbHlwaCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoKSBjb25zdDsKKyNlbmRpZgogICAg
IEZsb2F0UmVjdCBwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoKSBjb25zdDsKICAgICBmbG9h
dCBwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwogCkBAIC0xNDUsOCArMTQ3LDYg
QEAgcHVibGljOgogCiAgICAgR2x5cGggc3BhY2VHbHlwaCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Bh
Y2VHbHlwaDsgfQogICAgIHZvaWQgc2V0U3BhY2VHbHlwaChHbHlwaCBzcGFjZUdseXBoKSB7IG1f
c3BhY2VHbHlwaCA9IHNwYWNlR2x5cGg7IH0KLSAgICB2b2lkIHNldFplcm9XaWR0aFNwYWNlR2x5
cGgoR2x5cGggc3BhY2VHbHlwaCkgeyBtX3plcm9XaWR0aFNwYWNlR2x5cGggPSBzcGFjZUdseXBo
OyB9Ci0gICAgYm9vbCBpc1plcm9XaWR0aFNwYWNlR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0IHsg
cmV0dXJuIGdseXBoID09IG1femVyb1dpZHRoU3BhY2VHbHlwaCAmJiBnbHlwaDsgfQogCiAgICAg
dmlydHVhbCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIz
MikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hh
ciosIGludCBsZW5ndGgpIGNvbnN0OwpAQCAtMjE3LDYgKzIxNywxMSBAQCBwdWJsaWM6CiAgICAg
d3hGb250KiBnZXRXeEZvbnQoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0YS5mb250KCk7
IH0KICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKFFUKSB8fCBIQVZFKFFSQVdGT05UKQorcHJvdGVj
dGVkOgorICAgIFNpbXBsZUZvbnREYXRhKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lk
IHBsYXRmb3JtSW5pdCgpOwogICAgIHZvaWQgcGxhdGZvcm1HbHlwaEluaXQoKTsKQEAgLTI1OSw4
ICsyNjQsNiBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fc3BhY2VXaWR0aDsKICAgICBmbG9hdCBt
X2FkanVzdGVkU3BhY2VXaWR0aDsKIAotICAgIEdseXBoIG1femVyb1dpZHRoU3BhY2VHbHlwaDsK
LQogICAgIEdseXBoRGF0YSBtX21pc3NpbmdHbHlwaERhdGE7CiAKICAgICBzdHJ1Y3QgRGVyaXZl
ZEZvbnREYXRhIHsKQEAgLTMxOSwxMSArMzIyLDIwIEBAIHByaXZhdGU6CiB9OwogCiAjaWYgIShQ
TEFURk9STShRVCkgJiYgIUhBVkUoUVJBV0ZPTlQpKQotQUxXQVlTX0lOTElORSBGbG9hdFJlY3Qg
U2ltcGxlRm9udERhdGE6OmJvdW5kc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAorY2xhc3Mg
WmVyb1dpZHRoRm9udERhdGEgOiBwdWJsaWMgU2ltcGxlRm9udERhdGEKIHsKLSAgICBpZiAoaXNa
ZXJvV2lkdGhTcGFjZUdseXBoKGdseXBoKSkKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwor
cHVibGljOgorICAgIEFMV0FZU19JTkxJTkUgRmxvYXRSZWN0IGJvdW5kc0ZvckdseXBoKEdseXBo
KSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIEFMV0FZU19JTkxJTkUgZmxvYXQg
d2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBaZXJv
V2lkdGhGb250RGF0YSogaW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChaZXJvV2lkdGhGb250RGF0YSwgemVyb1dpZHRoRm9udERhdGEsICgpKTsKKyAgICAgICAg
cmV0dXJuICZ6ZXJvV2lkdGhGb250RGF0YTsKKyAgICB9Cit9OwogCitBTFdBWVNfSU5MSU5FIEZs
b2F0UmVjdCBTaW1wbGVGb250RGF0YTo6Ym91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
Cit7CiAgICAgRmxvYXRSZWN0IGJvdW5kczsKICAgICBpZiAobV9nbHlwaFRvQm91bmRzTWFwKSB7
CiAgICAgICAgIGJvdW5kcyA9IG1fZ2x5cGhUb0JvdW5kc01hcC0+bWV0cmljc0ZvckdseXBoKGds
eXBoKTsKQEAgLTM0MCw5ICszNTIsNiBAQCBBTFdBWVNfSU5MSU5FIEZsb2F0UmVjdCBTaW1wbGVG
b250RGF0YTo6Ym91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAKIEFMV0FZU19JTkxJ
TkUgZmxvYXQgU2ltcGxlRm9udERhdGE6OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
CiB7Ci0gICAgaWYgKGlzWmVyb1dpZHRoU3BhY2VHbHlwaChnbHlwaCkpCi0gICAgICAgIHJldHVy
biAwOwotCiAgICAgZmxvYXQgd2lkdGggPSBtX2dseXBoVG9XaWR0aE1hcC5tZXRyaWNzRm9yR2x5
cGgoZ2x5cGgpOwogICAgIGlmICh3aWR0aCAhPSBjR2x5cGhTaXplVW5rbm93bikKICAgICAgICAg
cmV0dXJuIHdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvV2lkdGhJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9X
aWR0aEl0ZXJhdG9yLmNwcAppbmRleCA4ZDk3NWI3YjMzNTg4ZjM5ODQ3ZWViNmQ5NzAxOTNmZGQw
YTM2YzlmLi5lODc0NGI2ZjM1YjUwYWI0MTE3Yjg3ZGZiZWJiYmU1MjdkOTg2YTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcApA
QCAtMTU4LDYgKzE1OCw3IEBAIHVuc2lnbmVkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9m
ZnNldCwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyKQogICAgICAgICAgICAgc3RhdGljIGJvb2wg
ZXhwYW5kQXJvdW5kSWRlb2dyYXBocyA9IEZvbnQ6OmNhbkV4cGFuZEFyb3VuZElkZW9ncmFwaHNJ
bkNvbXBsZXhUZXh0KCk7CiAgICAgICAgICAgICBib29sIHRyZWF0QXNTcGFjZSA9IEZvbnQ6OnRy
ZWF0QXNTcGFjZShjaGFyYWN0ZXIpOwogICAgICAgICAgICAgaWYgKHRyZWF0QXNTcGFjZSB8fCAo
ZXhwYW5kQXJvdW5kSWRlb2dyYXBocyAmJiBGb250Ojppc0NKS0lkZW9ncmFwaE9yU3ltYm9sKGNo
YXJhY3RlcikpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGZvbnREYXRhICE9IFplcm9XaWR0
aEZvbnREYXRhOjppbnN0YW5jZSgpKTsKICAgICAgICAgICAgICAgICAvLyBEaXN0cmlidXRlIHRo
ZSBydW4ncyB0b3RhbCBleHBhbnNpb24gZXZlbmx5IG92ZXIgYWxsIGV4cGFuc2lvbiBvcHBvcnR1
bml0aWVzIGluIHRoZSBydW4uCiAgICAgICAgICAgICAgICAgaWYgKG1fZXhwYW5zaW9uKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGZsb2F0IHByZXZpb3VzRXhwYW5zaW9uID0gbV9leHBhbnNpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9D
b21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAKaW5k
ZXggOTE5MWQ5ZGY2MzI0NDMyYWQ4ZGI5Y2UwNjQ2MTY1YjBlYzNiYjUxNi4uMDk0NzdjZGQ2MzVj
YWY1MWRjYmI5ZDE2N2U4NjJhNTFmOTM2ZTIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBs
ZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcApAQCAtMzg1LDcgKzM4NSw3IEBAIHZvaWQgQ29t
cGxleFRleHRDb250cm9sbGVyOjpzZXRHbHlwaFBvc2l0aW9ucyhib29sIGlzUlRMKQogICAgICAg
ICBtX3Bvc2l0aW9uc1tpXS5zZXQobV9vZmZzZXRYICsgKHBvc2l0aW9uICogcnRsRmxpcCkgKyBv
ZmZzZXRYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdGFydGluZ1kgKyBvZmZzZXRZ
KTsKIAotICAgICAgICBpZiAobV9jdXJyZW50Rm9udERhdGEtPmlzWmVyb1dpZHRoU3BhY2VHbHlw
aChtX2dseXBoczE2W2ldKSkKKyAgICAgICAgaWYgKCFtX2N1cnJlbnRGb250RGF0YS0+d2lkdGhG
b3JHbHlwaChtX2dseXBoczE2W2ldKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IC8vIEF0IHRoZSBlbmQgb2YgZWFjaCBjbHVzdGVyLCBhZGQgaW4gdGhlIGxldHRlciBzcGFjaW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enov
bmcvSGFyZkJ1enpTaGFwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuY3BwCmluZGV4IDNlZWQ4OTdiYTZhMTFhNzBmMDY0
NzI5YmQ4OTIzYzVkNzkyNTc3MzYuLjg5MTQ4ZjliMGRlOTM3Y2JhMGExZTk5YTMxOTFjMjFmMTg4
YWJkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L25nL0hhcmZCdXp6U2hhcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6elNoYXBlci5jcHAKQEAgLTI2OSw3ICsyNjksNyBA
QCB2b2lkIEhhcmZCdXp6U2hhcGVyOjpzZXRHbHlwaFBvc2l0aW9uc0ZvckhhcmZCdXp6UnVuKEds
eXBoQnVmZmVyKiBnbHlwaEJ1ZmZlcikKICAgICAgICAgaWYgKGlzQ2x1c3RlckVuZCAmJiBpc1dv
cmRFbmQoY3VycmVudENoYXJhY3RlckluZGV4KSkKICAgICAgICAgICAgIHNwYWNpbmcgKz0gZGV0
ZXJtaW5lV29yZEJyZWFrU3BhY2luZygpOwogCi0gICAgICAgIGlmIChtX2N1cnJlbnRGb250RGF0
YS0+aXNaZXJvV2lkdGhTcGFjZUdseXBoKGdseXBoKSkgeworICAgICAgICBpZiAoIW1fY3VycmVu
dEZvbnREYXRhLT53aWR0aEZvckdseXBoKGdseXBoKSkgewogICAgICAgICAgICAgY3VycmVudFJ1
bi0+c2V0R2x5cGhBbmRQb3NpdGlvbnMoaSwgZ2x5cGgsIDAsIDAsIDApOwogICAgICAgICAgICAg
aWYgKGdseXBoQnVmZmVyKQogICAgICAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQoZ2x5cGgs
IG1fY3VycmVudEZvbnREYXRhLCBjcmVhdGVHbHlwaEJ1ZmZlckFkdmFuY2UoMCwgMCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3Jt
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3Jt
RGF0YS5oCmluZGV4IGI2MGQwNWQ1MmFmNjBlNDA4ZTZjMGVlN2I1NmE1ZTMwMDY3YWNkYzguLjI5
Y2E3OTdkZGZhMTZiYTRiZjFkM2JmZTdkOWQ4ZjU1ZDE2ZDNjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhLmgKQEAg
LTExMiw2ICsxMTIsOSBAQCBwdWJsaWM6CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBRUmF3
Rm9udCYgcmF3Rm9udCkKICAgICAgICAgOiBtX2RhdGEoYWRvcHRSZWYobmV3IEZvbnRQbGF0Zm9y
bURhdGFQcml2YXRlKHJhd0ZvbnQpKSkKICAgICB7IH0KKyAgICBGb250UGxhdGZvcm1EYXRhKCkK
KyAgICAgICAgOiBtX2RhdGEoMCkKKyAgICB7IH0KICNlbmRpZgogICAgIEZvbnRQbGF0Zm9ybURh
dGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IG1fZGF0YShhZG9w
dFJlZihuZXcgRm9udFBsYXRmb3JtRGF0YVByaXZhdGUoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9TaW1wbGVGb250RGF0YVF0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCmluZGV4
IDRjMDFmMWRhY2E4OGEwY2Q1OGEyNzQyZTlhYzc5NjliZDMwMTkxOTMuLmVkODVhYzJmOTQ3Y2Jl
MGYyN2IxNDEwNjMxM2YxNGE4N2ViYWRiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCkBAIC02MSw3ICs2
MSw3IEBAIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hh
ciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uCiAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgaWYgKCFnbHlw
aCB8fCAhcGxhdGZvcm1EYXRhKCkuc2l6ZSgpKQorICAgIGlmICghcGxhdGZvcm1EYXRhKCkuc2l6
ZSgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFFWZWN0b3I8cXVpbnQzMj4gZ2x5cGhJbmRl
eGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVu
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwMTI0ZWRhMzJhZDc1ODc5OTU5ZTA0ZmRi
MGNiZjcyNmI3M2JhMzI5Li5jMzRhMmZiZjczN2RlZmQxNWY1MTYyNGU5YjkyYzYzYTU1Y2Y5YjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5k
ZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTc5LDYgKzE3OSw4IEBAIEdseXBoRGF0YSBT
VkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGNvbnN0IEZv
bnQmIGZvbnQsIGNvCiAKICAgICBwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gcGFpciA9IGZv
bnQuZ2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIG1pcnJvcik7CiAgICAg
R2x5cGhEYXRhIGdseXBoRGF0YSA9IHBhaXIuZmlyc3Q7CisgICAgaWYgKCFnbHlwaERhdGEuZm9u
dERhdGEgfHwgZ2x5cGhEYXRhLmZvbnREYXRhID09IFplcm9XaWR0aEZvbnREYXRhOjppbnN0YW5j
ZSgpKQorICAgICAgICByZXR1cm4gZ2x5cGhEYXRhOwogCiAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2
ZSB0aGUgbWlzc2luZyBnbHlwaCBkYXRhLCBpbiB3aGljaCBjYXNlIHdlIGNhbiBqdXN0IHJldHVy
bi4KICAgICBHbHlwaERhdGEgbWlzc2luZ0dseXBoRGF0YSA9IHByaW1hcnlGb250LT5taXNzaW5n
R2x5cGhEYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcAppbmRleCBhMzE3ZTJiNGY3
MTc1MTVkNDZiMmRlMjI4MGQxOGU1YjBiZGQ3YzQzLi5iMzljYmZlYTZkNDY4OGMxNWZhNzFlYWYy
OTU2ZDcxMTVmY2JiM2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKQEAgLTY2LDcg
KzY2LDYgQEAgdm9pZCBTVkdGb250RGF0YTo6aW5pdGlhbGl6ZUZvbnREYXRhKFNpbXBsZUZvbnRE
YXRhKiBmb250RGF0YSwgZmxvYXQgZm9udFNpemUpCiAgICAgbWlzc2luZ0dseXBoRGF0YS5nbHlw
aCA9IHN2Z0ZvbnRFbGVtZW50LT5taXNzaW5nR2x5cGgoKTsKICAgICBmb250RGF0YS0+c2V0TWlz
c2luZ0dseXBoRGF0YShtaXNzaW5nR2x5cGhEYXRhKTsKIAotICAgIGZvbnREYXRhLT5zZXRaZXJv
V2lkdGhTcGFjZUdseXBoKDApOwogICAgIGZvbnREYXRhLT5kZXRlcm1pbmVQaXRjaCgpOwogCiAg
ICAgdW5zaWduZWQgdW5pdHNQZXJFbSA9IHN2Z0ZvbnRGYWNlRWxlbWVudC0+dW5pdHNQZXJFbSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaAppbmRleCA5Mjk0NTI2OTY1OTFkN2E3MGI0YjFhNzdl
YjA0NjdjNzJkZDM4NDQyLi5mN2NjYTMyNzYzNDc4YmM0ODVmYjBkMGU5NGViYmNmMTAzNjI3YjAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaApAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBT
VkdHbHlwaE1hcF9oCiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIkZvbnQuaCIK
ICNpbmNsdWRlICJTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJT
VkdHbHlwaC5oIgogI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgpAQCAtMTIxLDYgKzEyMiw4
IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgY2x1c3Rlckxlbmd0aCA9IDA7CiAgICAgICAg
IFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvciB0ZXh0SXRlcmF0b3IoY2hhcmFjdGVycywg
MCwgbGVuZ3RoLCBsZW5ndGgpOwogICAgICAgICB3aGlsZSAodGV4dEl0ZXJhdG9yLmNvbnN1bWUo
Y2hhcmFjdGVyLCBjbHVzdGVyTGVuZ3RoKSkgeworICAgICAgICAgICAgaWYgKEZvbnQ6OnRyZWF0
QXNaZXJvV2lkdGhTcGFjZShjaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgUmVmUHRyPEdseXBoTWFwTm9kZT4gbm9kZSA9IGN1cnJlbnRMYXllci0+Z2V0
KGNoYXJhY3Rlcik7CiAgICAgICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICAgICAgYnJl
YWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151102</attachid>
            <date>2012-07-06 10:49:33 -0700</date>
            <delta_ts>2012-07-12 08:18:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90673-20120706195112.patch</filename>
            <type>text/plain</type>
            <size>20730</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNmODc5NTIwYWE0Y2Q5
NGEzZjBlNjczMmZiMDRiYzliNjY4NzM2ZS4uNTQ2MTdhNjg0OTNiNjM2N2NmZDZjYTdiNmRlYzA2
ZDBiMmVjOTA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA3LTA2ICBQaWVy
cmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgorCisgICAgICAgIEF2b2lkIHF1ZXJ5
aW5nIHRoZSBmb250IGNhY2hlIGZvciB0aGUgemVyby13aWR0aCBzcGFjZSBnbHlwaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NzMKKworICAgICAg
ICBIYW5kbGluZyBvZiB6ZXJvLXdpZHRoIHNwYWNlcyAob3IgY2hhcmFjdGVycyB0aGF0IHNob3Vs
ZCBiZQorICAgICAgICB0cmVhdGVkIGFzIHN1Y2gpIGN1cnJlbnRseSByZWxpZXMgb24gZ2V0dGlu
ZyB0aGUgZ2x5cGggaW5kZXgKKyAgICAgICAgZnJvbSB0aGUgZm9udCBjYWNoZSBzbyB0aGF0IGl0
IGNhbiBsYXRlciBvbiBiZSBpZGVudGlmaWVkCisgICAgICAgIHRvIGFsbG93IGZvciBhbiBlYXJs
eSByZXR1cm4uCisgICAgICAgIFdlIGNhbiBhY2NvbXBsaXNoIHRoZSBzYW1lIHRoaW5nIGJ5IGlu
dHJvZHVjaW5nIGEgdmVyeSBiYXNpYworICAgICAgICBTaW1wbGVGb250RGF0YSBzdWJjbGFzcyB0
aGF0IHdpbGwgYmUgdXNlZCBkaXJlY3RseSBieSBjbGllbnRzIG9mCisgICAgICAgIEZvbnQ6Omds
eXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGNoYW5nZSBpcyBhIHJlZmFj
dG9yaW5nCisgICAgICAgIG9mIHRoZSBpbnRlcm5hbHMsIG5vIGJlaGF2aW91ciBjaGFuZ2UgaXMg
ZXhwZWN0ZWQuCisgICAgICAgIFNvbWUgYXNzZXJ0aW9ucyB3ZXJlIG1hZGUgd2hlcmUgZGVlbWVk
IHJlbGV2YW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6dHJlYXRBc1plcm9XaWR0aFNwYWNlKTogQWRqdXN0IHRoZSBzZW1h
bnRpY3Mgb2YgdHJlYXRBc1plcm9XaWR0aFNwYWNlCisgICAgICAgICAgICBhIGNoYXJhY3RlciBz
aG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgendzcCBpZiBpdCdzIGFscmVhZHkgdHJlYXRlZCBhcyBh
IHNwYWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250OjpnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHbHlwaFBhZ2VUcmVlTm9kZTo6aW5pdGlhbGl6ZVBhZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDogUmVtb3ZlIHRoZSB6ZXJvV2lk
dGhTcGFjZUdseXBoIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpT
aW1wbGVGb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaDogRGl0dG8uCisgICAgICAgIChTaW1wbGVGb250RGF0YSk6
CisgICAgICAgIChaZXJvV2lkdGhGb250RGF0YSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
WmVyb1dpZHRoRm9udERhdGE6OmJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Olpl
cm9XaWR0aEZvbnREYXRhOjp3aWR0aEZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Olplcm9X
aWR0aEZvbnREYXRhOjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0
YTo6Ym91bmRzRm9yR2x5cGgpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6Ondp
ZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1
enouY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpzZXRHbHlw
aFBvc2l0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFy
ZkJ1enpTaGFwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFyZkJ1enpTaGFwZXI6OnNldEds
eXBoUG9zaXRpb25zRm9ySGFyZkJ1enpSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1Np
bXBsZUZvbnREYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbHlwaCk6IFJlbW92ZSB0aGUgd29ya2Fyb3VuZCBpbnRyb2R1Y2VkIHBy
ZXZpb3VzbHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0
YVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5p
dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Z2x5cGhE
YXRhRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udERhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRm9udERhdGE6OmluaXRpYWxpemVGb250RGF0YSk6CisgICAgICAgICog
c3ZnL1NWR0dseXBoTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaE1hcDo6Y29sbGVj
dEdseXBoc0ZvclN0cmluZyk6CisKIDIwMTItMDctMDQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MjE4MTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggZDgwNjYw
ZGE0OGVjM2FlZGRlZDVmMDlkYjZhZWE0NzA0MjI3NTQ2Yi4uM2E5NDgyYmU0YzA2NzYxYmQzMjJh
OTRiNzM3ZjgyM2NjYmVjNjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaApAQCAtMjQxLDcgKzI0MSw3IEBAIHB1YmxpYzoKIAogICAgIEZvbnRTZWxlY3RvciogZm9u
dFNlbGVjdG9yKCkgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1NwYWNlKFVDaGFyIGMp
IHsgcmV0dXJuIGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicgfHwgYyA9PSBub0Jy
ZWFrU3BhY2U7IH0KLSAgICBzdGF0aWMgYm9vbCB0cmVhdEFzWmVyb1dpZHRoU3BhY2UoVUNoYXIg
YykgeyByZXR1cm4gdHJlYXRBc1plcm9XaWR0aFNwYWNlSW5Db21wbGV4U2NyaXB0KGMpIHx8IGMg
PT0gMHgyMDBjIHx8IGMgPT0gMHgyMDBkOyB9CisgICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9X
aWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJuICF0cmVhdEFzU3BhY2UoYykgJiYgKHRyZWF0QXNa
ZXJvV2lkdGhTcGFjZUluQ29tcGxleFNjcmlwdChjKSB8fCBjID09IDB4MjAwYyB8fCBjID09IDB4
MjAwZCk7IH0KICAgICBzdGF0aWMgYm9vbCB0cmVhdEFzWmVyb1dpZHRoU3BhY2VJbkNvbXBsZXhT
Y3JpcHQoVUNoYXIgYykgeyByZXR1cm4gYyA8IDB4MjAgfHwgKGMgPj0gMHg3RiAmJiBjIDwgMHhB
MCkgfHwgYyA9PSBzb2Z0SHlwaGVuIHx8IGMgPT0gemVyb1dpZHRoU3BhY2UgfHwgKGMgPj0gMHgy
MDBlICYmIGMgPD0gMHgyMDBmKSB8fCAoYyA+PSAweDIwMmEgJiYgYyA8PSAweDIwMmUpIHx8IGMg
PT0gemVyb1dpZHRoTm9CcmVha1NwYWNlIHx8IGMgPT0gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0
ZXI7IH0KICAgICBzdGF0aWMgYm9vbCBjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYyk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0
UGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGgu
Y3BwCmluZGV4IDNhZTBhZDU4MWMyMzI0MzNmNGMxZTA4YmU0ODM0YWExZjA0MjI3MDYuLmJlNWEx
N2MzNTU2ODNkNzI3Yzg4ZDFmOWU3ZGMxMzRmZDEwNmZhYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcApAQCAtNzcsNiArNzcsOSBA
QCBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBGb250OjpnbHlwaERhdGFBbmRQYWdl
Rm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYgogICAgICAgICAgICAgbV9mb250TGlzdC0+bV9wYWdl
WmVybyA9IG5vZGU7CiAgICAgfQogCisgICAgaWYgKHRyZWF0QXNaZXJvV2lkdGhTcGFjZShjKSkK
KyAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihHbHlwaERhdGEoMSAsIFplcm9XaWR0aEZvbnREYXRh
OjppbnN0YW5jZSgpKSwgbm9kZS0+cGFnZSgpKTsKKwogICAgIEdseXBoUGFnZSogcGFnZSA9IDA7
CiAgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgewogICAgICAgICAvLyBGYXN0ZXN0
IGxvb3AsIGZvciB0aGUgY29tbW9uIGNhc2UgKG5vcm1hbCB2YXJpYW50KS4KQEAgLTE5OCw2ICsy
MDEsNyBAQCBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBGb250OjpnbHlwaERhdGFB
bmRQYWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYgogICAgICAgICBjb2RlVW5pdHNbMV0gPSBV
MTZfVFJBSUwoYyk7CiAgICAgICAgIGNvZGVVbml0c0xlbmd0aCA9IDI7CiAgICAgfQorICAgIEFT
U0VSVCghdHJlYXRBc1plcm9XaWR0aFNwYWNlKGMpKTsKICAgICBjb25zdCBTaW1wbGVGb250RGF0
YSogY2hhcmFjdGVyRm9udERhdGEgPSBmb250Q2FjaGUoKS0+Z2V0Rm9udERhdGFGb3JDaGFyYWN0
ZXJzKCp0aGlzLCBjb2RlVW5pdHMsIGNvZGVVbml0c0xlbmd0aCk7CiAgICAgaWYgKGNoYXJhY3Rl
ckZvbnREYXRhKSB7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJGb250RGF0YS0+cGxhdGZvcm1EYXRh
KCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCAmJiAhY2hhcmFjdGVyRm9udERhdGEtPmhhc1Zl
cnRpY2FsR2x5cGhzKCkgJiYgaXNDSktJZGVvZ3JhcGhPclN5bWJvbChjKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVOb2RlLmNwcApp
bmRleCA4N2U5M2ZkOThmZjhkZWYwOTQ4MTZhNTI0MzRlOTAwNWU4OTk5NTlkLi5jNjZjYmUxNDE3
YjQ0ZDgxOGYxY2MxOGVmYTQ3Y2E0YjAyYmFjNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCkBAIC0xNjMsMzQg
KzE2MywxMCBAQCB2b2lkIEdseXBoUGFnZVRyZWVOb2RlOjppbml0aWFsaXplUGFnZShjb25zdCBG
b250RGF0YSogZm9udERhdGEsIHVuc2lnbmVkIHBhZ2VOdQogICAgICAgICAgICAgICAgICAgICBi
dWZmZXJbaV0gPSBzdGFydCArIGk7CiAKICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPT0gMCkg
ewotICAgICAgICAgICAgICAgICAgICAvLyBDb250cm9sIGNoYXJhY3RlcnMgbXVzdCBub3QgcmVu
ZGVyIGF0IGFsbC4KLSAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDB4MjA7ICsr
aSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXSA9IHplcm9XaWR0aFNwYWNlOwot
ICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAweDdGOyBpIDwgMHhBMDsgaSsrKQotICAgICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAg
ICAgICAgICAgIGJ1ZmZlcltzb2Z0SHlwaGVuXSA9IHplcm9XaWR0aFNwYWNlOwotCiAgICAgICAg
ICAgICAgICAgICAgIC8vIFxuLCBcdCwgYW5kIG5vbmJyZWFraW5nIHNwYWNlIG11c3QgcmVuZGVy
IGFzIGEgc3BhY2UuCiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlclsoaW50KSdcbiddID0gJyAn
OwogICAgICAgICAgICAgICAgICAgICBidWZmZXJbKGludCknXHQnXSA9ICcgJzsKICAgICAgICAg
ICAgICAgICAgICAgYnVmZmVyW25vQnJlYWtTcGFjZV0gPSAnICc7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChzdGFydCA9PSAobGVmdFRvUmlnaHRNYXJrICYgfihHbHlwaFBhZ2U6OnNpemUg
LSAxKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gTFJNLCBSTE0sIExSRSwgUkxFLCBaV05K
LCBaV0osIGFuZCBQREYgbXVzdCBub3QgcmVuZGVyIGF0IGFsbC4KLSAgICAgICAgICAgICAgICAg
ICAgYnVmZmVyW2xlZnRUb1JpZ2h0TWFyayAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAg
ICAgICAgICAgICAgICAgICBidWZmZXJbcmlnaHRUb0xlZnRNYXJrIC0gc3RhcnRdID0gemVyb1dp
ZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltsZWZ0VG9SaWdodEVtYmVkIC0g
c3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltyaWdo
dFRvTGVmdEVtYmVkIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAg
ICAgIGJ1ZmZlcltsZWZ0VG9SaWdodE92ZXJyaWRlIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7
Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltyaWdodFRvTGVmdE92ZXJyaWRlIC0gc3RhcnRd
ID0gemVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlclt6ZXJvV2lkdGhO
b25Kb2luZXIgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAg
YnVmZmVyW3plcm9XaWR0aEpvaW5lciAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAg
ICAgICAgICAgICAgICBidWZmZXJbcG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nIC0gc3RhcnRdID0g
emVyb1dpZHRoU3BhY2U7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCA9PSAob2Jq
ZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIgJiB+KEdseXBoUGFnZTo6c2l6ZSAtIDEpKSkgewotICAg
ICAgICAgICAgICAgICAgICAvLyBPYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIG11c3Qgbm90
IHJlbmRlciBhdCBhbGwuCi0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltvYmplY3RSZXBsYWNl
bWVudENoYXJhY3RlciAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAoc3RhcnQgPT0gKHplcm9XaWR0aE5vQnJlYWtTcGFjZSAmIH4oR2x5cGhQYWdl
OjpzaXplIC0gMSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFpXTkJTL0JPTSBtdXN0IG5v
dCByZW5kZXIgYXQgYWxsLgotICAgICAgICAgICAgICAgICAgICBidWZmZXJbemVyb1dpZHRoTm9C
cmVha1NwYWNlIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBidWZmZXJMZW5ndGggPSBHbHlw
aFBhZ2U6OnNpemUgKiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuY3BwCmluZGV4IDIyMmU0MzMxMmQ4YjBmNjI2NTUwZWI0N2QyZjgz
MjJiNmRjNDI5ZjIuLjNiMjlhZGM3ZDJkYzQ3YzgyZjQ1NTQ4OTdiYzFiMTRiNzU0ZmFkMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5jcHAKQEAgLTcwLDYgKzcwLDE4IEBAIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShQ
YXNzT3duUHRyPEFkZGl0aW9uYWxGb250RGF0YT4gZm9udERhdGEsIGZsb2F0IGZvCiB9CiAKICNp
ZiAhKFBMQVRGT1JNKFFUKSAmJiAhSEFWRShRUkFXRk9OVCkpCitTaW1wbGVGb250RGF0YTo6U2lt
cGxlRm9udERhdGEoKQorICAgIDogbV9tYXhDaGFyV2lkdGgoLTEpCisgICAgLCBtX2F2Z0NoYXJX
aWR0aCgtMSkKKyAgICAsIG1fdHJlYXRBc0ZpeGVkUGl0Y2goZmFsc2UpCisgICAgLCBtX2lzQ3Vz
dG9tRm9udChmYWxzZSkKKyAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQorICAgICwgbV9pc1RleHRP
cmllbnRhdGlvbkZhbGxiYWNrKGZhbHNlKQorICAgICwgbV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxi
YWNrKGZhbHNlKQorICAgICwgbV9oYXNWZXJ0aWNhbEdseXBocyhmYWxzZSkKK3sKK30KKwogLy8g
RXN0aW1hdGVzIG9mIGF2Z0NoYXJXaWR0aCBhbmQgbWF4Q2hhcldpZHRoIGZvciBwbGF0Zm9ybXMg
dGhhdCBkb24ndCBzdXBwb3J0IGFjY2Vzc2luZyB0aGVzZSB2YWx1ZXMgZnJvbSB0aGUgZm9udC4K
IHZvaWQgU2ltcGxlRm9udERhdGE6OmluaXRDaGFyV2lkdGhzKCkKIHsKQEAgLTEwMCwxNCArMTEy
LDExIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtR2x5cGhJbml0KCkKICAgICAgICAg
bV9zcGFjZVdpZHRoID0gMDsKICAgICAgICAgbV9hZGp1c3RlZFNwYWNlV2lkdGggPSAwOwogICAg
ICAgICBkZXRlcm1pbmVQaXRjaCgpOwotICAgICAgICBtX3plcm9XaWR0aFNwYWNlR2x5cGggPSAw
OwogICAgICAgICBtX21pc3NpbmdHbHlwaERhdGEuZm9udERhdGEgPSB0aGlzOwogICAgICAgICBt
X21pc3NpbmdHbHlwaERhdGEuZ2x5cGggPSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbV96ZXJvV2lkdGhTcGFjZUdseXBoID0gZ2x5cGhQYWdlWmVyby0+Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKDApLmdseXBoOwotCiAgICAgLy8gTmFzdHkgaGFjayB0byBkZXRlcm1pbmUgaWYgd2Ug
c2hvdWxkIHJvdW5kIG9yIGNlaWwgc3BhY2Ugd2lkdGhzLgogICAgIC8vIElmIHRoZSBmb250IGlz
IG1vbm9zcGFjZSBvciBmYWtlIG1vbm9zcGFjZSB3ZSBjZWlsIHRvIGVuc3VyZSB0aGF0IAogICAg
IC8vIGV2ZXJ5IGNoYXJhY3RlciBhbmQgdGhlIHNwYWNlIGFyZSB0aGUgc2FtZSB3aWR0aC4gIE90
aGVyd2lzZSB3ZSByb3VuZC4KQEAgLTExNywxNiArMTI2LDYgQEAgdm9pZCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAgIGRldGVybWluZVBpdGNoKCk7CiAgICAgbV9hZGp1
c3RlZFNwYWNlV2lkdGggPSBtX3RyZWF0QXNGaXhlZFBpdGNoID8gY2VpbGYod2lkdGgpIDogcm91
bmRmKHdpZHRoKTsKIAotICAgIC8vIEZvcmNlIHRoZSBnbHlwaCBmb3IgWkVSTyBXSURUSCBTUEFD
RSB0byBoYXZlIHplcm8gd2lkdGgsIHVubGVzcyBpdCBpcyBzaGFyZWQgd2l0aCBTUEFDRS4KLSAg
ICAvLyBIZWx2ZXRpY2EgaXMgYW4gZXhhbXBsZSBvZiBhIG5vbi16ZXJvIHdpZHRoIFpFUk8gV0lE
VEggU1BBQ0UgZ2x5cGguCi0gICAgLy8gU2VlIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzE3OD4KLSAgICAvLyBBc2sgZm9yIHRoZSBnbHlwaCBmb3IgMCB0byBhdm9p
ZCBwYWdpbmcgaW4gWkVSTyBXSURUSCBTUEFDRS4gQ29udHJvbCBjaGFyYWN0ZXJzLCBpbmNsdWRp
bmcgMCwKLSAgICAvLyBhcmUgbWFwcGVkIHRvIHRoZSBaRVJPIFdJRFRIIFNQQUNFIGdseXBoLgot
ICAgIGlmIChtX3plcm9XaWR0aFNwYWNlR2x5cGggPT0gbV9zcGFjZUdseXBoKSB7Ci0gICAgICAg
IG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IDA7Ci0gICAgICAgIExPR19FUlJPUigiRm9udCBtYXBz
IFNQQUNFIGFuZCBaRVJPIFdJRFRIIFNQQUNFIHRvIHRoZSBzYW1lIGdseXBoLiBHbHlwaCB3aWR0
aCB3aWxsIG5vdCBiZSBvdmVycmlkZGVuLiIpOwotICAgIH0KLQogICAgIG1fbWlzc2luZ0dseXBo
RGF0YS5mb250RGF0YSA9IHRoaXM7CiAgICAgbV9taXNzaW5nR2x5cGhEYXRhLmdseXBoID0gMDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZv
bnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5oCmluZGV4IDZmYzkxOGE0Mzg5YzUzYTgzY2UwY2UxODlkMjYzYWM3N2Q0ODBlMjguLjRmMDJk
YjFkOWU4ZWFmMmFhNmFmYTViNmMyYzZlZmE4MTkyNGY0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaApAQCAtMTMwLDggKzEzMCwx
MCBAQCBwdWJsaWM6CiAgICAgZmxvYXQgYXZnQ2hhcldpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9h
dmdDaGFyV2lkdGg7IH0KICAgICB2b2lkIHNldEF2Z0NoYXJXaWR0aChmbG9hdCBhdmdDaGFyV2lk
dGgpIHsgbV9hdmdDaGFyV2lkdGggPSBhdmdDaGFyV2lkdGg7IH0KIAotICAgIEZsb2F0UmVjdCBi
b3VuZHNGb3JHbHlwaChHbHlwaCkgY29uc3Q7Ci0gICAgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3Q7CisjaWYgIVBMQVRGT1JNKFFUKSB8fCBIQVZFKFFSQVdGT05UKQorICAg
IHZpcnR1YWwgRmxvYXRSZWN0IGJvdW5kc0ZvckdseXBoKEdseXBoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGZsb2F0IHdpZHRoRm9yR2x5cGgoR2x5cGgpIGNvbnN0OworI2VuZGlmCiAgICAgRmxvYXRS
ZWN0IHBsYXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwogICAgIGZsb2F0IHBsYXRm
b3JtV2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3Q7CiAKQEAgLTE0NSw4ICsxNDcsNiBAQCBwdWJs
aWM6CiAKICAgICBHbHlwaCBzcGFjZUdseXBoKCkgY29uc3QgeyByZXR1cm4gbV9zcGFjZUdseXBo
OyB9CiAgICAgdm9pZCBzZXRTcGFjZUdseXBoKEdseXBoIHNwYWNlR2x5cGgpIHsgbV9zcGFjZUds
eXBoID0gc3BhY2VHbHlwaDsgfQotICAgIHZvaWQgc2V0WmVyb1dpZHRoU3BhY2VHbHlwaChHbHlw
aCBzcGFjZUdseXBoKSB7IG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IHNwYWNlR2x5cGg7IH0KLSAg
ICBib29sIGlzWmVyb1dpZHRoU3BhY2VHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QgeyByZXR1cm4g
Z2x5cGggPT0gbV96ZXJvV2lkdGhTcGFjZUdseXBoICYmIGdseXBoOyB9CiAKICAgICB2aXJ0dWFs
IGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YUZvckNoYXJhY3RlcihVQ2hhcjMyKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiwgaW50
IGxlbmd0aCkgY29uc3Q7CkBAIC0yMTcsNiArMjE3LDExIEBAIHB1YmxpYzoKICAgICB3eEZvbnQq
IGdldFd4Rm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhLmZvbnQoKTsgfQogI2Vu
ZGlmCiAKKyNpZiAhUExBVEZPUk0oUVQpIHx8IEhBVkUoUVJBV0ZPTlQpCitwcm90ZWN0ZWQ6Cisg
ICAgU2ltcGxlRm9udERhdGEoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZv
cm1Jbml0KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUdseXBoSW5pdCgpOwpAQCAtMjU5LDggKzI2NCw2
IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9zcGFjZVdpZHRoOwogICAgIGZsb2F0IG1fYWRqdXN0
ZWRTcGFjZVdpZHRoOwogCi0gICAgR2x5cGggbV96ZXJvV2lkdGhTcGFjZUdseXBoOwotCiAgICAg
R2x5cGhEYXRhIG1fbWlzc2luZ0dseXBoRGF0YTsKIAogICAgIHN0cnVjdCBEZXJpdmVkRm9udERh
dGEgewpAQCAtMzE5LDExICszMjIsMjAgQEAgcHJpdmF0ZToKIH07CiAKICNpZiAhKFBMQVRGT1JN
KFFUKSAmJiAhSEFWRShRUkFXRk9OVCkpCi1BTFdBWVNfSU5MSU5FIEZsb2F0UmVjdCBTaW1wbGVG
b250RGF0YTo6Ym91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CitjbGFzcyBaZXJvV2lk
dGhGb250RGF0YSA6IHB1YmxpYyBTaW1wbGVGb250RGF0YQogewotICAgIGlmIChpc1plcm9XaWR0
aFNwYWNlR2x5cGgoZ2x5cGgpKQotICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CitwdWJsaWM6
CisgICAgQUxXQVlTX0lOTElORSBGbG9hdFJlY3QgYm91bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0
IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgQUxXQVlTX0lOTElORSBmbG9hdCB3aWR0aEZv
ckdseXBoKEdseXBoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIFplcm9XaWR0aEZv
bnREYXRhKiBpbnN0YW5jZSgpCisgICAgeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFpl
cm9XaWR0aEZvbnREYXRhLCB6ZXJvV2lkdGhGb250RGF0YSwgKCkpOworICAgICAgICByZXR1cm4g
Jnplcm9XaWR0aEZvbnREYXRhOworICAgIH0KK307CiAKK0FMV0FZU19JTkxJTkUgRmxvYXRSZWN0
IFNpbXBsZUZvbnREYXRhOjpib3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKK3sKICAg
ICBGbG9hdFJlY3QgYm91bmRzOwogICAgIGlmIChtX2dseXBoVG9Cb3VuZHNNYXApIHsKICAgICAg
ICAgYm91bmRzID0gbV9nbHlwaFRvQm91bmRzTWFwLT5tZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOwpA
QCAtMzQwLDkgKzM1Miw2IEBAIEFMV0FZU19JTkxJTkUgRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRh
Ojpib3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIAogQUxXQVlTX0lOTElORSBmbG9h
dCBTaW1wbGVGb250RGF0YTo6d2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKLSAg
ICBpZiAoaXNaZXJvV2lkdGhTcGFjZUdseXBoKGdseXBoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
ICAgICBmbG9hdCB3aWR0aCA9IG1fZ2x5cGhUb1dpZHRoTWFwLm1ldHJpY3NGb3JHbHlwaChnbHlw
aCk7CiAgICAgaWYgKHdpZHRoICE9IGNHbHlwaFNpemVVbmtub3duKQogICAgICAgICByZXR1cm4g
d2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0
aEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRl
cmF0b3IuY3BwCmluZGV4IDhkOTc1YjdiMzM1ODhmMzk4NDdlZWI2ZDk3MDE5M2ZkZDBhMzZjOWYu
LmU4NzQ0YjZmMzViNTBhYjQxMTdiODdkZmJlYmJiZTUyN2Q5ODZhOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCkBAIC0xNTgs
NiArMTU4LDcgQEAgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShpbnQgb2Zmc2V0LCBH
bHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIpCiAgICAgICAgICAgICBzdGF0aWMgYm9vbCBleHBhbmRB
cm91bmRJZGVvZ3JhcGhzID0gRm9udDo6Y2FuRXhwYW5kQXJvdW5kSWRlb2dyYXBoc0luQ29tcGxl
eFRleHQoKTsKICAgICAgICAgICAgIGJvb2wgdHJlYXRBc1NwYWNlID0gRm9udDo6dHJlYXRBc1Nw
YWNlKGNoYXJhY3Rlcik7CiAgICAgICAgICAgICBpZiAodHJlYXRBc1NwYWNlIHx8IChleHBhbmRB
cm91bmRJZGVvZ3JhcGhzICYmIEZvbnQ6OmlzQ0pLSWRlb2dyYXBoT3JTeW1ib2woY2hhcmFjdGVy
KSkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZm9udERhdGEgIT0gWmVyb1dpZHRoRm9udERh
dGE6Omluc3RhbmNlKCkpOwogICAgICAgICAgICAgICAgIC8vIERpc3RyaWJ1dGUgdGhlIHJ1bidz
IHRvdGFsIGV4cGFuc2lvbiBldmVubHkgb3ZlciBhbGwgZXhwYW5zaW9uIG9wcG9ydHVuaXRpZXMg
aW4gdGhlIHJ1bi4KICAgICAgICAgICAgICAgICBpZiAobV9leHBhbnNpb24pIHsKICAgICAgICAg
ICAgICAgICAgICAgZmxvYXQgcHJldmlvdXNFeHBhbnNpb24gPSBtX2V4cGFuc2lvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAppbmRleCA5MTkx
ZDlkZjYzMjQ0MzJhZDhkYjljZTA2NDYxNjViMGVjM2JiNTE2Li4wOTQ3N2NkZDYzNWNhZjUxZGNi
YjlkMTY3ZTg2MmE1MWY5MzZlMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRD
b250cm9sbGVySGFyZkJ1enouY3BwCkBAIC0zODUsNyArMzg1LDcgQEAgdm9pZCBDb21wbGV4VGV4
dENvbnRyb2xsZXI6OnNldEdseXBoUG9zaXRpb25zKGJvb2wgaXNSVEwpCiAgICAgICAgIG1fcG9z
aXRpb25zW2ldLnNldChtX29mZnNldFggKyAocG9zaXRpb24gKiBydGxGbGlwKSArIG9mZnNldFgs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXJ0aW5nWSArIG9mZnNldFkpOwogCi0g
ICAgICAgIGlmIChtX2N1cnJlbnRGb250RGF0YS0+aXNaZXJvV2lkdGhTcGFjZUdseXBoKG1fZ2x5
cGhzMTZbaV0pKQorICAgICAgICBpZiAoIW1fY3VycmVudEZvbnREYXRhLT53aWR0aEZvckdseXBo
KG1fZ2x5cGhzMTZbaV0pKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQXQg
dGhlIGVuZCBvZiBlYWNoIGNsdXN0ZXIsIGFkZCBpbiB0aGUgbGV0dGVyIHNwYWNpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJm
QnV6elNoYXBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9uZy9IYXJmQnV6elNoYXBlci5jcHAKaW5kZXggM2VlZDg5N2JhNmExMWE3MGYwNjQ3MjliZDg5
MjNjNWQ3OTI1NzczNi4uODkxNDhmOWIwZGU5MzdjYmEwYTFlOTlhMzE5MWMyMWYxODhhYmQwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcv
SGFyZkJ1enpTaGFwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2hhcmZidXp6L25nL0hhcmZCdXp6U2hhcGVyLmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQg
SGFyZkJ1enpTaGFwZXI6OnNldEdseXBoUG9zaXRpb25zRm9ySGFyZkJ1enpSdW4oR2x5cGhCdWZm
ZXIqIGdseXBoQnVmZmVyKQogICAgICAgICBpZiAoaXNDbHVzdGVyRW5kICYmIGlzV29yZEVuZChj
dXJyZW50Q2hhcmFjdGVySW5kZXgpKQogICAgICAgICAgICAgc3BhY2luZyArPSBkZXRlcm1pbmVX
b3JkQnJlYWtTcGFjaW5nKCk7CiAKLSAgICAgICAgaWYgKG1fY3VycmVudEZvbnREYXRhLT5pc1pl
cm9XaWR0aFNwYWNlR2x5cGgoZ2x5cGgpKSB7CisgICAgICAgIGlmICghbV9jdXJyZW50Rm9udERh
dGEtPndpZHRoRm9yR2x5cGgoZ2x5cGgpKSB7CiAgICAgICAgICAgICBjdXJyZW50UnVuLT5zZXRH
bHlwaEFuZFBvc2l0aW9ucyhpLCBnbHlwaCwgMCwgMCwgMCk7CiAgICAgICAgICAgICBpZiAoZ2x5
cGhCdWZmZXIpCiAgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlwaCwgbV9jdXJy
ZW50Rm9udERhdGEsIGNyZWF0ZUdseXBoQnVmZmVyQWR2YW5jZSgwLCAwKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhLmgK
aW5kZXggYjYwZDA1ZDUyYWY2MGU0MDhlNmMwZWU3YjU2YTVlMzAwNjdhY2RjOC4uMjljYTc5N2Rk
ZmExNmJhNGJmMWQzYmZlN2Q5ZDhmNTVkMTZkM2M5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaApAQCAtMTEyLDYg
KzExMiw5IEBAIHB1YmxpYzoKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IFFSYXdGb250JiBy
YXdGb250KQogICAgICAgICA6IG1fZGF0YShhZG9wdFJlZihuZXcgRm9udFBsYXRmb3JtRGF0YVBy
aXZhdGUocmF3Rm9udCkpKQogICAgIHsgfQorICAgIEZvbnRQbGF0Zm9ybURhdGEoKQorICAgICAg
ICA6IG1fZGF0YSgwKQorICAgIHsgfQogI2VuZGlmCiAgICAgRm9udFBsYXRmb3JtRGF0YShXVEY6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCiAgICAgICAgIDogbV9kYXRhKGFkb3B0UmVmKG5l
dyBGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvU2ltcGxlRm9udERhdGFRdC5jcHAKaW5kZXggNGMwMWYx
ZGFjYTg4YTBjZDU4YTI3NDJlOWFjNzk2OWJkMzAxOTE5My4uZWQ4NWFjMmY5NDdjYmUwZjI3YjE0
MTA2MzEzZjE0YTg3ZWJhZGJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvU2ltcGxlRm9udERhdGFRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvU2ltcGxlRm9udERhdGFRdC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
Ym9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb24KIAogZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3Jt
V2lkdGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKLSAgICBpZiAoIWdseXBoIHx8ICFw
bGF0Zm9ybURhdGEoKS5zaXplKCkpCisgICAgaWYgKCFwbGF0Zm9ybURhdGEoKS5zaXplKCkpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgUVZlY3RvcjxxdWludDMyPiBnbHlwaEluZGV4ZXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZv
bnREYXRhU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Np
bXBsZUZvbnREYXRhU2tpYS5jcHAKaW5kZXggYjRkMjBiMDNhNmM3YzczNTVjN2IxY2E1OGFhM2Uw
YTM5NmYyMmZlYS4uMzc4ZDcwMmRlOWRhMDMyNTQ1ZTEzOWM5N2U0NzMyY2Y4MTE0M2I2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250
RGF0YVNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
U2ltcGxlRm9udERhdGFTa2lhLmNwcApAQCAtMTM5LDE0ICsxMzksOCBAQCB2b2lkIFNpbXBsZUZv
bnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyMzIg
eENoYXIgPSAneCc7CiAgICAgICAgICAgICBjb25zdCBHbHlwaCB4R2x5cGggPSBnbHlwaFBhZ2Va
ZXJvLT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoeENoYXIpLmdseXBoOwogCi0gICAgICAgICAgICBp
ZiAoeEdseXBoKSB7Ci0gICAgICAgICAgICAgICAgLy8gSW4gd2lkdGhGb3JHbHlwaCgpLCB4R2x5
cGggd2lsbCBiZSBjb21wYXJlZCB3aXRoCi0gICAgICAgICAgICAgICAgLy8gbV96ZXJvV2lkdGhT
cGFjZUdseXBoLCB3aGljaCBpc24ndCBpbml0aWFsaXplZCB5ZXQgaGVyZS4KLSAgICAgICAgICAg
ICAgICAvLyBJbml0aWFsaXplIGl0IHdpdGggemVybyB0byBtYWtlIHN1cmUgd2lkdGhGb3JHbHlw
aCgpIHJldHVybnMKLSAgICAgICAgICAgICAgICAvLyB0aGUgcmlnaHQgd2lkdGguCi0gICAgICAg
ICAgICAgICAgbV96ZXJvV2lkdGhTcGFjZUdseXBoID0gMDsKKyAgICAgICAgICAgIGlmICh4R2x5
cGgpCiAgICAgICAgICAgICAgICAgbV9hdmdDaGFyV2lkdGggPSB3aWR0aEZvckdseXBoKHhHbHlw
aCk7Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQu
Y3BwCmluZGV4IDAxMjRlZGEzMmFkNzU4Nzk5NTllMDRmZGIwY2JmNzI2YjczYmEzMjkuLmMzNGEy
ZmJmNzM3ZGVmZDE1ZjUxNjI0ZTliOTJjNjNhNTVjZjliNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQu
Y3BwCkBAIC0xNzksNiArMTc5LDggQEAgR2x5cGhEYXRhIFNWR1RleHRSdW5SZW5kZXJpbmdDb250
ZXh0OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoY29uc3QgRm9udCYgZm9udCwgY28KIAogICAgIHBh
aXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBwYWlyID0gZm9udC5nbHlwaERhdGFBbmRQYWdlRm9y
Q2hhcmFjdGVyKGNoYXJhY3RlciwgbWlycm9yKTsKICAgICBHbHlwaERhdGEgZ2x5cGhEYXRhID0g
cGFpci5maXJzdDsKKyAgICBpZiAoIWdseXBoRGF0YS5mb250RGF0YSB8fCBnbHlwaERhdGEuZm9u
dERhdGEgPT0gWmVyb1dpZHRoRm9udERhdGE6Omluc3RhbmNlKCkpCisgICAgICAgIHJldHVybiBn
bHlwaERhdGE7CiAKICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRoZSBtaXNzaW5nIGdseXBoIGRh
dGEsIGluIHdoaWNoIGNhc2Ugd2UgY2FuIGp1c3QgcmV0dXJuLgogICAgIEdseXBoRGF0YSBtaXNz
aW5nR2x5cGhEYXRhID0gcHJpbWFyeUZvbnQtPm1pc3NpbmdHbHlwaERhdGEoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udERhdGEuY3BwCmluZGV4IGEzMTdlMmI0ZjcxNzUxNWQ0NmIyZGUyMjgwZDE4ZTVi
MGJkZDdjNDMuLmIzOWNiZmVhNmQ0Njg4YzE1ZmE3MWVhZjI5NTZkNzExNWZjYmIzYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcApAQCAtNjYsNyArNjYsNiBAQCB2b2lkIFNWR0ZvbnRE
YXRhOjppbml0aWFsaXplRm9udERhdGEoU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBmbG9hdCBm
b250U2l6ZSkKICAgICBtaXNzaW5nR2x5cGhEYXRhLmdseXBoID0gc3ZnRm9udEVsZW1lbnQtPm1p
c3NpbmdHbHlwaCgpOwogICAgIGZvbnREYXRhLT5zZXRNaXNzaW5nR2x5cGhEYXRhKG1pc3NpbmdH
bHlwaERhdGEpOwogCi0gICAgZm9udERhdGEtPnNldFplcm9XaWR0aFNwYWNlR2x5cGgoMCk7CiAg
ICAgZm9udERhdGEtPmRldGVybWluZVBpdGNoKCk7CiAKICAgICB1bnNpZ25lZCB1bml0c1BlckVt
ID0gc3ZnRm9udEZhY2VFbGVtZW50LT51bml0c1BlckVtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaE1h
cC5oCmluZGV4IDkyOTQ1MjY5NjU5MWQ3YTcwYjRiMWE3N2ViMDQ2N2M3MmRkMzg0NDIuLmY3Y2Nh
MzI3NjM0NzhiYzQ4NWZiMGQwZTk0ZWJiY2YxMDM2MjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHbHlwaE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlw
aE1hcC5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIFNWR0dseXBoTWFwX2gKIAogI2lmIEVO
QUJMRShTVkdfRk9OVFMpCisjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIlN1cnJvZ2F0ZVBh
aXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlNWR0dseXBoLmgiCiAjaW5jbHVkZSAi
U1ZHR2x5cGhFbGVtZW50LmgiCkBAIC0xMjEsNiArMTIyLDggQEAgcHVibGljOgogICAgICAgICB1
bnNpZ25lZCBjbHVzdGVyTGVuZ3RoID0gMDsKICAgICAgICAgU3Vycm9nYXRlUGFpckF3YXJlVGV4
dEl0ZXJhdG9yIHRleHRJdGVyYXRvcihjaGFyYWN0ZXJzLCAwLCBsZW5ndGgsIGxlbmd0aCk7CiAg
ICAgICAgIHdoaWxlICh0ZXh0SXRlcmF0b3IuY29uc3VtZShjaGFyYWN0ZXIsIGNsdXN0ZXJMZW5n
dGgpKSB7CisgICAgICAgICAgICBpZiAoRm9udDo6dHJlYXRBc1plcm9XaWR0aFNwYWNlKGNoYXJh
Y3RlcikpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBSZWZQdHI8R2x5
cGhNYXBOb2RlPiBub2RlID0gY3VycmVudExheWVyLT5nZXQoY2hhcmFjdGVyKTsKICAgICAgICAg
ICAgIGlmICghbm9kZSkKICAgICAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151959</attachid>
            <date>2012-07-12 08:18:51 -0700</date>
            <delta_ts>2013-04-02 03:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90673-20120712172008.patch</filename>
            <type>text/plain</type>
            <size>20749</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE3ZDQ2MjJiNTczZmJk
ZmYxMjhhMTMwODA1MzI1Njk0OWNlOTYxNy4uYWYxYmI2YjFhMzYxNzNiNDBjM2FhYzEwNmIwMzQy
NmU4YzVmY2UwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA3LTA2ICBQaWVy
cmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgorCisgICAgICAgIEF2b2lkIHF1ZXJ5
aW5nIHRoZSBmb250IGNhY2hlIGZvciB0aGUgemVyby13aWR0aCBzcGFjZSBnbHlwaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NzMKKworICAgICAg
ICBIYW5kbGluZyBvZiB6ZXJvLXdpZHRoIHNwYWNlcyAob3IgY2hhcmFjdGVycyB0aGF0IHNob3Vs
ZCBiZQorICAgICAgICB0cmVhdGVkIGFzIHN1Y2gpIGN1cnJlbnRseSByZWxpZXMgb24gZ2V0dGlu
ZyB0aGUgZ2x5cGggaW5kZXgKKyAgICAgICAgZnJvbSB0aGUgZm9udCBjYWNoZSBzbyB0aGF0IGl0
IGNhbiBsYXRlciBvbiBiZSBpZGVudGlmaWVkCisgICAgICAgIHRvIGFsbG93IGZvciBhbiBlYXJs
eSByZXR1cm4uCisgICAgICAgIFdlIGNhbiBhY2NvbXBsaXNoIHRoZSBzYW1lIHRoaW5nIGJ5IGlu
dHJvZHVjaW5nIGEgdmVyeSBiYXNpYworICAgICAgICBTaW1wbGVGb250RGF0YSBzdWJjbGFzcyB0
aGF0IHdpbGwgYmUgdXNlZCBkaXJlY3RseSBieSBjbGllbnRzIG9mCisgICAgICAgIEZvbnQ6Omds
eXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGNoYW5nZSBpcyBhIHJlZmFj
dG9yaW5nCisgICAgICAgIG9mIHRoZSBpbnRlcm5hbHMsIG5vIGJlaGF2aW91ciBjaGFuZ2UgaXMg
ZXhwZWN0ZWQuCisgICAgICAgIFNvbWUgYXNzZXJ0aW9ucyB3ZXJlIG1hZGUgd2hlcmUgZGVlbWVk
IHJlbGV2YW50LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6dHJlYXRBc1plcm9XaWR0aFNwYWNlKTogQWRqdXN0IHRoZSBzZW1h
bnRpY3Mgb2YgdHJlYXRBc1plcm9XaWR0aFNwYWNlCisgICAgICAgICAgICBhIGNoYXJhY3RlciBz
aG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgendzcCBpZiBpdCdzIGFscmVhZHkgdHJlYXRlZCBhcyBh
IHNwYWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250OjpnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHbHlwaFBhZ2VUcmVlTm9kZTo6aW5pdGlhbGl6ZVBhZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDogUmVtb3ZlIHRoZSB6ZXJvV2lk
dGhTcGFjZUdseXBoIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpT
aW1wbGVGb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaDogRGl0dG8uCisgICAgICAgIChTaW1wbGVGb250RGF0YSk6
CisgICAgICAgIChaZXJvV2lkdGhGb250RGF0YSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
WmVyb1dpZHRoRm9udERhdGE6OmJvdW5kc0ZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Olpl
cm9XaWR0aEZvbnREYXRhOjp3aWR0aEZvckdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Olplcm9X
aWR0aEZvbnREYXRhOjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0
YTo6Ym91bmRzRm9yR2x5cGgpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6Ondp
ZHRoRm9yR2x5cGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6YWR2YW5jZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1
enouY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpzZXRHbHlw
aFBvc2l0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFy
ZkJ1enpTaGFwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFyZkJ1enpTaGFwZXI6OnNldEds
eXBoUG9zaXRpb25zRm9ySGFyZkJ1enpSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1Np
bXBsZUZvbnREYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbHlwaCk6IFJlbW92ZSB0aGUgd29ya2Fyb3VuZCBpbnRyb2R1Y2VkIHBy
ZXZpb3VzbHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0
YVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5p
dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Z2x5cGhE
YXRhRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udERhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRm9udERhdGE6OmluaXRpYWxpemVGb250RGF0YSk6CisgICAgICAgICog
c3ZnL1NWR0dseXBoTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaE1hcDo6Y29sbGVj
dEdseXBoc0ZvclN0cmluZyk6CisKIDIwMTItMDctMTIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGhhdmUgdG8g
aW5jbHVkZSBGaWxlLmggZXhwbGljaXRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5oCmluZGV4IGQ4MDY2MGRhNDhlYzNhZWRkZWQ1ZjA5ZGI2YWVhNDcwNDIyNzU0NmIuLjNh
OTQ4MmJlNGMwNjc2MWJkMzIyYTk0YjczN2Y4MjNjY2JlYzY2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTI0MSw3ICsyNDEsNyBAQCBwdWJsaWM6CiAKICAg
ICBGb250U2VsZWN0b3IqIGZvbnRTZWxlY3RvcigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHRy
ZWF0QXNTcGFjZShVQ2hhciBjKSB7IHJldHVybiBjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9
PSAnXG4nIHx8IGMgPT0gbm9CcmVha1NwYWNlOyB9Ci0gICAgc3RhdGljIGJvb2wgdHJlYXRBc1pl
cm9XaWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJuIHRyZWF0QXNaZXJvV2lkdGhTcGFjZUluQ29t
cGxleFNjcmlwdChjKSB8fCBjID09IDB4MjAwYyB8fCBjID09IDB4MjAwZDsgfQorICAgIHN0YXRp
YyBib29sIHRyZWF0QXNaZXJvV2lkdGhTcGFjZShVQ2hhciBjKSB7IHJldHVybiAhdHJlYXRBc1Nw
YWNlKGMpICYmICh0cmVhdEFzWmVyb1dpZHRoU3BhY2VJbkNvbXBsZXhTY3JpcHQoYykgfHwgYyA9
PSAweDIwMGMgfHwgYyA9PSAweDIwMGQpOyB9CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9X
aWR0aFNwYWNlSW5Db21wbGV4U2NyaXB0KFVDaGFyIGMpIHsgcmV0dXJuIGMgPCAweDIwIHx8IChj
ID49IDB4N0YgJiYgYyA8IDB4QTApIHx8IGMgPT0gc29mdEh5cGhlbiB8fCBjID09IHplcm9XaWR0
aFNwYWNlIHx8IChjID49IDB4MjAwZSAmJiBjIDw9IDB4MjAwZikgfHwgKGMgPj0gMHgyMDJhICYm
IGMgPD0gMHgyMDJlKSB8fCBjID09IHplcm9XaWR0aE5vQnJlYWtTcGFjZSB8fCBjID09IG9iamVj
dFJlcGxhY2VtZW50Q2hhcmFjdGVyOyB9CiAgICAgc3RhdGljIGJvb2wgY2FuUmVjZWl2ZVRleHRF
bXBoYXNpcyhVQ2hhcjMyIGMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZhc3RQYXRoLmNwcAppbmRleCAzYWUwYWQ1ODFjMjMyNDMzZjRjMWUwOGJlNDgz
NGFhMWYwNDIyNzA2Li5iZTVhMTdjMzU1NjgzZDcyN2M4OGQxZjllN2RjMTM0ZmQxMDZmYWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5j
cHAKQEAgLTc3LDYgKzc3LDkgQEAgc3RkOjpwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gRm9u
dDo6Z2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihVQ2hhcjMyIGMsIGIKICAgICAgICAgICAg
IG1fZm9udExpc3QtPm1fcGFnZVplcm8gPSBub2RlOwogICAgIH0KIAorICAgIGlmICh0cmVhdEFz
WmVyb1dpZHRoU3BhY2UoYykpCisgICAgICAgIHJldHVybiBtYWtlX3BhaXIoR2x5cGhEYXRhKDEg
LCBaZXJvV2lkdGhGb250RGF0YTo6aW5zdGFuY2UoKSksIG5vZGUtPnBhZ2UoKSk7CisKICAgICBH
bHlwaFBhZ2UqIHBhZ2UgPSAwOwogICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsK
ICAgICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBjYXNlIChub3JtYWwgdmFy
aWFudCkuCkBAIC0xOTgsNiArMjAxLDcgQEAgc3RkOjpwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdl
Kj4gRm9udDo6Z2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihVQ2hhcjMyIGMsIGIKICAgICAg
ICAgY29kZVVuaXRzWzFdID0gVTE2X1RSQUlMKGMpOwogICAgICAgICBjb2RlVW5pdHNMZW5ndGgg
PSAyOwogICAgIH0KKyAgICBBU1NFUlQoIXRyZWF0QXNaZXJvV2lkdGhTcGFjZShjKSk7CiAgICAg
Y29uc3QgU2ltcGxlRm9udERhdGEqIGNoYXJhY3RlckZvbnREYXRhID0gZm9udENhY2hlKCktPmdl
dEZvbnREYXRhRm9yQ2hhcmFjdGVycygqdGhpcywgY29kZVVuaXRzLCBjb2RlVW5pdHNMZW5ndGgp
OwogICAgIGlmIChjaGFyYWN0ZXJGb250RGF0YSkgewogICAgICAgICBpZiAoY2hhcmFjdGVyRm9u
dERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwgJiYgIWNoYXJh
Y3RlckZvbnREYXRhLT5oYXNWZXJ0aWNhbEdseXBocygpICYmIGlzQ0pLSWRlb2dyYXBoT3JTeW1i
b2woYykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFBhZ2VUcmVlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFBhZ2VUcmVlTm9kZS5jcHAKaW5kZXggODdlOTNmZDk4ZmY4ZGVmMDk0ODE2YTUyNDM0ZTkwMDVl
ODk5OTU5ZC4uYzY2Y2JlMTQxN2I0NGQ4MThmMWNjMThlZmE0N2NhNGIwMmJhYzc5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZVRyZWVO
b2RlLmNwcApAQCAtMTYzLDM0ICsxNjMsMTAgQEAgdm9pZCBHbHlwaFBhZ2VUcmVlTm9kZTo6aW5p
dGlhbGl6ZVBhZ2UoY29uc3QgRm9udERhdGEqIGZvbnREYXRhLCB1bnNpZ25lZCBwYWdlTnUKICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldID0gc3RhcnQgKyBpOwogCiAgICAgICAgICAgICAg
ICAgaWYgKHN0YXJ0ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ29udHJvbCBjaGFy
YWN0ZXJzIG11c3Qgbm90IHJlbmRlciBhdCBhbGwuCi0gICAgICAgICAgICAgICAgICAgIGZvciAo
aSA9IDA7IGkgPCAweDIwOyArK2kpCi0gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaV0g
PSB6ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMHg3RjsgaSA8
IDB4QTA7IGkrKykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXSA9IHplcm9XaWR0
aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbc29mdEh5cGhlbl0gPSB6ZXJvV2lk
dGhTcGFjZTsKLQogICAgICAgICAgICAgICAgICAgICAvLyBcbiwgXHQsIGFuZCBub25icmVha2lu
ZyBzcGFjZSBtdXN0IHJlbmRlciBhcyBhIHNwYWNlLgogICAgICAgICAgICAgICAgICAgICBidWZm
ZXJbKGludCknXG4nXSA9ICcgJzsKICAgICAgICAgICAgICAgICAgICAgYnVmZmVyWyhpbnQpJ1x0
J10gPSAnICc7CiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltub0JyZWFrU3BhY2VdID0gJyAn
OwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPT0gKGxlZnRUb1JpZ2h0TWFyayAm
IH4oR2x5cGhQYWdlOjpzaXplIC0gMSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIExSTSwg
UkxNLCBMUkUsIFJMRSwgWldOSiwgWldKLCBhbmQgUERGIG11c3Qgbm90IHJlbmRlciBhdCBhbGwu
Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltsZWZ0VG9SaWdodE1hcmsgLSBzdGFydF0gPSB6
ZXJvV2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3JpZ2h0VG9MZWZ0TWFy
ayAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJb
bGVmdFRvUmlnaHRFbWJlZCAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAg
ICAgICAgICBidWZmZXJbcmlnaHRUb0xlZnRFbWJlZCAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNl
OwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbbGVmdFRvUmlnaHRPdmVycmlkZSAtIHN0YXJ0
XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbcmlnaHRUb0xl
ZnRPdmVycmlkZSAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgICAg
ICBidWZmZXJbemVyb1dpZHRoTm9uSm9pbmVyIC0gc3RhcnRdID0gemVyb1dpZHRoU3BhY2U7Ci0g
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlclt6ZXJvV2lkdGhKb2luZXIgLSBzdGFydF0gPSB6ZXJv
V2lkdGhTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyW3BvcERpcmVjdGlvbmFsRm9y
bWF0dGluZyAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoc3RhcnQgPT0gKG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyICYgfihHbHlwaFBhZ2U6
OnNpemUgLSAxKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT2JqZWN0IHJlcGxhY2VtZW50
IGNoYXJhY3RlciBtdXN0IG5vdCByZW5kZXIgYXQgYWxsLgotICAgICAgICAgICAgICAgICAgICBi
dWZmZXJbb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIgLSBzdGFydF0gPSB6ZXJvV2lkdGhTcGFj
ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0ID09ICh6ZXJvV2lkdGhOb0JyZWFr
U3BhY2UgJiB+KEdseXBoUGFnZTo6c2l6ZSAtIDEpKSkgewotICAgICAgICAgICAgICAgICAgICAv
LyBaV05CUy9CT00gbXVzdCBub3QgcmVuZGVyIGF0IGFsbC4KLSAgICAgICAgICAgICAgICAgICAg
YnVmZmVyW3plcm9XaWR0aE5vQnJlYWtTcGFjZSAtIHN0YXJ0XSA9IHplcm9XaWR0aFNwYWNlOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
YnVmZmVyTGVuZ3RoID0gR2x5cGhQYWdlOjpzaXplICogMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAppbmRleCAyMjJlNDMzMTJk
OGIwZjYyNjU1MGViNDdkMmY4MzIyYjZkYzQyOWYyLi4zYjI5YWRjN2QyZGM0N2M4MmY0NTU0ODk3
YmMxYjE0Yjc1NGZhZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCkBAIC03MCw2ICs3MCwxOCBAQCBTaW1wbGVGb250RGF0
YTo6U2ltcGxlRm9udERhdGEoUGFzc093blB0cjxBZGRpdGlvbmFsRm9udERhdGE+IGZvbnREYXRh
LCBmbG9hdCBmbwogfQogCiAjaWYgIShQTEFURk9STShRVCkgJiYgIUhBVkUoUVJBV0ZPTlQpKQor
U2ltcGxlRm9udERhdGE6OlNpbXBsZUZvbnREYXRhKCkKKyAgICA6IG1fbWF4Q2hhcldpZHRoKC0x
KQorICAgICwgbV9hdmdDaGFyV2lkdGgoLTEpCisgICAgLCBtX3RyZWF0QXNGaXhlZFBpdGNoKGZh
bHNlKQorICAgICwgbV9pc0N1c3RvbUZvbnQoZmFsc2UpCisgICAgLCBtX2lzTG9hZGluZyhmYWxz
ZSkKKyAgICAsIG1faXNUZXh0T3JpZW50YXRpb25GYWxsYmFjayhmYWxzZSkKKyAgICAsIG1faXNC
cm9rZW5JZGVvZ3JhcGhGYWxsYmFjayhmYWxzZSkKKyAgICAsIG1faGFzVmVydGljYWxHbHlwaHMo
ZmFsc2UpCit7Cit9CisKIC8vIEVzdGltYXRlcyBvZiBhdmdDaGFyV2lkdGggYW5kIG1heENoYXJX
aWR0aCBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBhY2Nlc3NpbmcgdGhlc2UgdmFs
dWVzIGZyb20gdGhlIGZvbnQuCiB2b2lkIFNpbXBsZUZvbnREYXRhOjppbml0Q2hhcldpZHRocygp
CiB7CkBAIC0xMDAsMTQgKzExMiwxMSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUds
eXBoSW5pdCgpCiAgICAgICAgIG1fc3BhY2VXaWR0aCA9IDA7CiAgICAgICAgIG1fYWRqdXN0ZWRT
cGFjZVdpZHRoID0gMDsKICAgICAgICAgZGV0ZXJtaW5lUGl0Y2goKTsKLSAgICAgICAgbV96ZXJv
V2lkdGhTcGFjZUdseXBoID0gMDsKICAgICAgICAgbV9taXNzaW5nR2x5cGhEYXRhLmZvbnREYXRh
ID0gdGhpczsKICAgICAgICAgbV9taXNzaW5nR2x5cGhEYXRhLmdseXBoID0gMDsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IGdseXBoUGFnZVpl
cm8tPmdseXBoRGF0YUZvckNoYXJhY3RlcigwKS5nbHlwaDsKLQogICAgIC8vIE5hc3R5IGhhY2sg
dG8gZGV0ZXJtaW5lIGlmIHdlIHNob3VsZCByb3VuZCBvciBjZWlsIHNwYWNlIHdpZHRocy4KICAg
ICAvLyBJZiB0aGUgZm9udCBpcyBtb25vc3BhY2Ugb3IgZmFrZSBtb25vc3BhY2Ugd2UgY2VpbCB0
byBlbnN1cmUgdGhhdCAKICAgICAvLyBldmVyeSBjaGFyYWN0ZXIgYW5kIHRoZSBzcGFjZSBhcmUg
dGhlIHNhbWUgd2lkdGguICBPdGhlcndpc2Ugd2Ugcm91bmQuCkBAIC0xMTcsMTYgKzEyNiw2IEBA
IHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtR2x5cGhJbml0KCkKICAgICBkZXRlcm1pbmVQ
aXRjaCgpOwogICAgIG1fYWRqdXN0ZWRTcGFjZVdpZHRoID0gbV90cmVhdEFzRml4ZWRQaXRjaCA/
IGNlaWxmKHdpZHRoKSA6IHJvdW5kZih3aWR0aCk7CiAKLSAgICAvLyBGb3JjZSB0aGUgZ2x5cGgg
Zm9yIFpFUk8gV0lEVEggU1BBQ0UgdG8gaGF2ZSB6ZXJvIHdpZHRoLCB1bmxlc3MgaXQgaXMgc2hh
cmVkIHdpdGggU1BBQ0UuCi0gICAgLy8gSGVsdmV0aWNhIGlzIGFuIGV4YW1wbGUgb2YgYSBub24t
emVybyB3aWR0aCBaRVJPIFdJRFRIIFNQQUNFIGdseXBoLgotICAgIC8vIFNlZSA8aHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNzg+Ci0gICAgLy8gQXNrIGZvciB0aGUg
Z2x5cGggZm9yIDAgdG8gYXZvaWQgcGFnaW5nIGluIFpFUk8gV0lEVEggU1BBQ0UuIENvbnRyb2wg
Y2hhcmFjdGVycywgaW5jbHVkaW5nIDAsCi0gICAgLy8gYXJlIG1hcHBlZCB0byB0aGUgWkVSTyBX
SURUSCBTUEFDRSBnbHlwaC4KLSAgICBpZiAobV96ZXJvV2lkdGhTcGFjZUdseXBoID09IG1fc3Bh
Y2VHbHlwaCkgewotICAgICAgICBtX3plcm9XaWR0aFNwYWNlR2x5cGggPSAwOwotICAgICAgICBM
T0dfRVJST1IoIkZvbnQgbWFwcyBTUEFDRSBhbmQgWkVSTyBXSURUSCBTUEFDRSB0byB0aGUgc2Ft
ZSBnbHlwaC4gR2x5cGggd2lkdGggd2lsbCBub3QgYmUgb3ZlcnJpZGRlbi4iKTsKLSAgICB9Ci0K
ICAgICBtX21pc3NpbmdHbHlwaERhdGEuZm9udERhdGEgPSB0aGlzOwogICAgIG1fbWlzc2luZ0ds
eXBoRGF0YS5nbHlwaCA9IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaAppbmRleCA2ZmM5MThhNDM4OWM1M2E4M2NlMGNlMTg5ZDI2
M2FjNzdkNDgwZTI4Li40ZjAyZGIxZDllOGVhZjJhYTZhZmE1YjZjMmM2ZWZhODE5MjRmNDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRh
LmgKQEAgLTEzMCw4ICsxMzAsMTAgQEAgcHVibGljOgogICAgIGZsb2F0IGF2Z0NoYXJXaWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fYXZnQ2hhcldpZHRoOyB9CiAgICAgdm9pZCBzZXRBdmdDaGFyV2lk
dGgoZmxvYXQgYXZnQ2hhcldpZHRoKSB7IG1fYXZnQ2hhcldpZHRoID0gYXZnQ2hhcldpZHRoOyB9
CiAKLSAgICBGbG9hdFJlY3QgYm91bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwotICAgIGZsb2F0
IHdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0OworI2lmICFQTEFURk9STShRVCkgfHwg
SEFWRShRUkFXRk9OVCkKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBib3VuZHNGb3JHbHlwaChHbHlw
aCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCB3aWR0aEZvckdseXBoKEdseXBoKSBjb25zdDsK
KyNlbmRpZgogICAgIEZsb2F0UmVjdCBwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoKSBjb25z
dDsKICAgICBmbG9hdCBwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGgpIGNvbnN0OwogCkBAIC0x
NDUsOCArMTQ3LDYgQEAgcHVibGljOgogCiAgICAgR2x5cGggc3BhY2VHbHlwaCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3BhY2VHbHlwaDsgfQogICAgIHZvaWQgc2V0U3BhY2VHbHlwaChHbHlwaCBzcGFj
ZUdseXBoKSB7IG1fc3BhY2VHbHlwaCA9IHNwYWNlR2x5cGg7IH0KLSAgICB2b2lkIHNldFplcm9X
aWR0aFNwYWNlR2x5cGgoR2x5cGggc3BhY2VHbHlwaCkgeyBtX3plcm9XaWR0aFNwYWNlR2x5cGgg
PSBzcGFjZUdseXBoOyB9Ci0gICAgYm9vbCBpc1plcm9XaWR0aFNwYWNlR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0IHsgcmV0dXJuIGdseXBoID09IG1femVyb1dpZHRoU3BhY2VHbHlwaCAmJiBnbHlw
aDsgfQogCiAgICAgdmlydHVhbCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGFGb3JDaGFy
YWN0ZXIoVUNoYXIzMikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zQ2hhcmFjdGVy
cyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgpIGNvbnN0OwpAQCAtMjE3LDYgKzIxNywxMSBAQCBw
dWJsaWM6CiAgICAgd3hGb250KiBnZXRXeEZvbnQoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3Jt
RGF0YS5mb250KCk7IH0KICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKFFUKSB8fCBIQVZFKFFSQVdG
T05UKQorcHJvdGVjdGVkOgorICAgIFNpbXBsZUZvbnREYXRhKCk7CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdCgpOwogICAgIHZvaWQgcGxhdGZvcm1HbHlwaEluaXQo
KTsKQEAgLTI1OSw4ICsyNjQsNiBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fc3BhY2VXaWR0aDsK
ICAgICBmbG9hdCBtX2FkanVzdGVkU3BhY2VXaWR0aDsKIAotICAgIEdseXBoIG1femVyb1dpZHRo
U3BhY2VHbHlwaDsKLQogICAgIEdseXBoRGF0YSBtX21pc3NpbmdHbHlwaERhdGE7CiAKICAgICBz
dHJ1Y3QgRGVyaXZlZEZvbnREYXRhIHsKQEAgLTMxOSwxMSArMzIyLDIwIEBAIHByaXZhdGU6CiB9
OwogCiAjaWYgIShQTEFURk9STShRVCkgJiYgIUhBVkUoUVJBV0ZPTlQpKQotQUxXQVlTX0lOTElO
RSBGbG9hdFJlY3QgU2ltcGxlRm9udERhdGE6OmJvdW5kc0ZvckdseXBoKEdseXBoIGdseXBoKSBj
b25zdAorY2xhc3MgWmVyb1dpZHRoRm9udERhdGEgOiBwdWJsaWMgU2ltcGxlRm9udERhdGEKIHsK
LSAgICBpZiAoaXNaZXJvV2lkdGhTcGFjZUdseXBoKGdseXBoKSkKLSAgICAgICAgcmV0dXJuIEZs
b2F0UmVjdCgpOworcHVibGljOgorICAgIEFMV0FZU19JTkxJTkUgRmxvYXRSZWN0IGJvdW5kc0Zv
ckdseXBoKEdseXBoKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIEFMV0FZU19J
TkxJTkUgZmxvYXQgd2lkdGhGb3JHbHlwaChHbHlwaCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAg
IHN0YXRpYyBaZXJvV2lkdGhGb250RGF0YSogaW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChaZXJvV2lkdGhGb250RGF0YSwgemVyb1dpZHRoRm9udERhdGEsICgp
KTsKKyAgICAgICAgcmV0dXJuICZ6ZXJvV2lkdGhGb250RGF0YTsKKyAgICB9Cit9OwogCitBTFdB
WVNfSU5MSU5FIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6Ym91bmRzRm9yR2x5cGgoR2x5cGgg
Z2x5cGgpIGNvbnN0Cit7CiAgICAgRmxvYXRSZWN0IGJvdW5kczsKICAgICBpZiAobV9nbHlwaFRv
Qm91bmRzTWFwKSB7CiAgICAgICAgIGJvdW5kcyA9IG1fZ2x5cGhUb0JvdW5kc01hcC0+bWV0cmlj
c0ZvckdseXBoKGdseXBoKTsKQEAgLTM0MCw5ICszNTIsNiBAQCBBTFdBWVNfSU5MSU5FIEZsb2F0
UmVjdCBTaW1wbGVGb250RGF0YTo6Ym91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAK
IEFMV0FZU19JTkxJTkUgZmxvYXQgU2ltcGxlRm9udERhdGE6OndpZHRoRm9yR2x5cGgoR2x5cGgg
Z2x5cGgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzWmVyb1dpZHRoU3BhY2VHbHlwaChnbHlwaCkpCi0g
ICAgICAgIHJldHVybiAwOwotCiAgICAgZmxvYXQgd2lkdGggPSBtX2dseXBoVG9XaWR0aE1hcC5t
ZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOwogICAgIGlmICh3aWR0aCAhPSBjR2x5cGhTaXplVW5rbm93
bikKICAgICAgICAgcmV0dXJuIHdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAppbmRleCA4ZDk3NWI3YjMzNTg4ZjM5ODQ3ZWVi
NmQ5NzAxOTNmZGQwYTM2YzlmLi5lODc0NGI2ZjM1YjUwYWI0MTE3Yjg3ZGZiZWJiYmU1MjdkOTg2
YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0
ZXJhdG9yLmNwcApAQCAtMTU4LDYgKzE1OCw3IEBAIHVuc2lnbmVkIFdpZHRoSXRlcmF0b3I6OmFk
dmFuY2UoaW50IG9mZnNldCwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyKQogICAgICAgICAgICAg
c3RhdGljIGJvb2wgZXhwYW5kQXJvdW5kSWRlb2dyYXBocyA9IEZvbnQ6OmNhbkV4cGFuZEFyb3Vu
ZElkZW9ncmFwaHNJbkNvbXBsZXhUZXh0KCk7CiAgICAgICAgICAgICBib29sIHRyZWF0QXNTcGFj
ZSA9IEZvbnQ6OnRyZWF0QXNTcGFjZShjaGFyYWN0ZXIpOwogICAgICAgICAgICAgaWYgKHRyZWF0
QXNTcGFjZSB8fCAoZXhwYW5kQXJvdW5kSWRlb2dyYXBocyAmJiBGb250Ojppc0NKS0lkZW9ncmFw
aE9yU3ltYm9sKGNoYXJhY3RlcikpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGZvbnREYXRh
ICE9IFplcm9XaWR0aEZvbnREYXRhOjppbnN0YW5jZSgpKTsKICAgICAgICAgICAgICAgICAvLyBE
aXN0cmlidXRlIHRoZSBydW4ncyB0b3RhbCBleHBhbnNpb24gZXZlbmx5IG92ZXIgYWxsIGV4cGFu
c2lvbiBvcHBvcnR1bml0aWVzIGluIHRoZSBydW4uCiAgICAgICAgICAgICAgICAgaWYgKG1fZXhw
YW5zaW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHByZXZpb3VzRXhwYW5zaW9uID0g
bV9leHBhbnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJm
QnV6ei5jcHAKaW5kZXggOTE5MWQ5ZGY2MzI0NDMyYWQ4ZGI5Y2UwNjQ2MTY1YjBlYzNiYjUxNi4u
MDk0NzdjZGQ2MzVjYWY1MWRjYmI5ZDE2N2U4NjJhNTFmOTM2ZTIxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9s
bGVySGFyZkJ1enouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
cmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcApAQCAtMzg1LDcgKzM4NSw3
IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpzZXRHbHlwaFBvc2l0aW9ucyhib29sIGlz
UlRMKQogICAgICAgICBtX3Bvc2l0aW9uc1tpXS5zZXQobV9vZmZzZXRYICsgKHBvc2l0aW9uICog
cnRsRmxpcCkgKyBvZmZzZXRYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdGFydGlu
Z1kgKyBvZmZzZXRZKTsKIAotICAgICAgICBpZiAobV9jdXJyZW50Rm9udERhdGEtPmlzWmVyb1dp
ZHRoU3BhY2VHbHlwaChtX2dseXBoczE2W2ldKSkKKyAgICAgICAgaWYgKCFtX2N1cnJlbnRGb250
RGF0YS0+d2lkdGhGb3JHbHlwaChtX2dseXBoczE2W2ldKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgZWFjaCBjbHVzdGVyLCBhZGQgaW4gdGhlIGxl
dHRlciBzcGFjaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1enpTaGFwZXIuY3BwCmluZGV4IDNlZWQ4OTdi
YTZhMTFhNzBmMDY0NzI5YmQ4OTIzYzVkNzkyNTc3MzYuLjg5MTQ4ZjliMGRlOTM3Y2JhMGExZTk5
YTMxOTFjMjFmMTg4YWJkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhcmZidXp6L25nL0hhcmZCdXp6U2hhcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6elNoYXBlci5jcHAKQEAgLTI2
OSw3ICsyNjksNyBAQCB2b2lkIEhhcmZCdXp6U2hhcGVyOjpzZXRHbHlwaFBvc2l0aW9uc0Zvckhh
cmZCdXp6UnVuKEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlcikKICAgICAgICAgaWYgKGlzQ2x1c3Rl
ckVuZCAmJiBpc1dvcmRFbmQoY3VycmVudENoYXJhY3RlckluZGV4KSkKICAgICAgICAgICAgIHNw
YWNpbmcgKz0gZGV0ZXJtaW5lV29yZEJyZWFrU3BhY2luZygpOwogCi0gICAgICAgIGlmIChtX2N1
cnJlbnRGb250RGF0YS0+aXNaZXJvV2lkdGhTcGFjZUdseXBoKGdseXBoKSkgeworICAgICAgICBp
ZiAoIW1fY3VycmVudEZvbnREYXRhLT53aWR0aEZvckdseXBoKGdseXBoKSkgewogICAgICAgICAg
ICAgY3VycmVudFJ1bi0+c2V0R2x5cGhBbmRQb3NpdGlvbnMoaSwgZ2x5cGgsIDAsIDAsIDApOwog
ICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVyKQogICAgICAgICAgICAgICAgIGdseXBoQnVmZmVy
LT5hZGQoZ2x5cGgsIG1fY3VycmVudEZvbnREYXRhLCBjcmVhdGVHbHlwaEJ1ZmZlckFkdmFuY2Uo
MCwgMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
Rm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
Rm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IGI2MGQwNWQ1MmFmNjBlNDA4ZTZjMGVlN2I1NmE1ZTMw
MDY3YWNkYzguLjI5Y2E3OTdkZGZhMTZiYTRiZjFkM2JmZTdkOWQ4ZjU1ZDE2ZDNjOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZv
cm1EYXRhLmgKQEAgLTExMiw2ICsxMTIsOSBAQCBwdWJsaWM6CiAgICAgRm9udFBsYXRmb3JtRGF0
YShjb25zdCBRUmF3Rm9udCYgcmF3Rm9udCkKICAgICAgICAgOiBtX2RhdGEoYWRvcHRSZWYobmV3
IEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlKHJhd0ZvbnQpKSkKICAgICB7IH0KKyAgICBGb250UGxh
dGZvcm1EYXRhKCkKKyAgICAgICAgOiBtX2RhdGEoMCkKKyAgICB7IH0KICNlbmRpZgogICAgIEZv
bnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6
IG1fZGF0YShhZG9wdFJlZihuZXcgRm9udFBsYXRmb3JtRGF0YVByaXZhdGUoKSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9TaW1wbGVGb250RGF0YVF0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRh
UXQuY3BwCmluZGV4IDRjMDFmMWRhY2E4OGEwY2Q1OGEyNzQyZTlhYzc5NjliZDMwMTkxOTMuLmVk
ODVhYzJmOTQ3Y2JlMGYyN2IxNDEwNjMxM2YxNGE4N2ViYWRiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1NpbXBsZUZvbnREYXRhUXQuY3Bw
CkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVy
cyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uCiAKIGZsb2F0IFNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFnbHlwaCB8fCAhcGxhdGZvcm1EYXRhKCkuc2l6ZSgpKQorICAgIGlmICghcGxhdGZv
cm1EYXRhKCkuc2l6ZSgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFFWZWN0b3I8cXVpbnQz
Mj4gZ2x5cGhJbmRleGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCmluZGV4IGI0ZDIwYjAzYTZj
N2M3MzU1YzdiMWNhNThhYTNlMGEzOTZmMjJmZWEuLjM3OGQ3MDJkZTlkYTAzMjU0NWUxMzljOTdl
NDczMmNmODExNDNiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAKQEAgLTEzOSwxNCArMTM5
LDggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKICAgICAgICAgICAgIHN0
YXRpYyBjb25zdCBVQ2hhcjMyIHhDaGFyID0gJ3gnOwogICAgICAgICAgICAgY29uc3QgR2x5cGgg
eEdseXBoID0gZ2x5cGhQYWdlWmVyby0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKHhDaGFyKS5nbHlw
aDsKIAotICAgICAgICAgICAgaWYgKHhHbHlwaCkgewotICAgICAgICAgICAgICAgIC8vIEluIHdp
ZHRoRm9yR2x5cGgoKSwgeEdseXBoIHdpbGwgYmUgY29tcGFyZWQgd2l0aAotICAgICAgICAgICAg
ICAgIC8vIG1femVyb1dpZHRoU3BhY2VHbHlwaCwgd2hpY2ggaXNuJ3QgaW5pdGlhbGl6ZWQgeWV0
IGhlcmUuCi0gICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBpdCB3aXRoIHplcm8gdG8gbWFr
ZSBzdXJlIHdpZHRoRm9yR2x5cGgoKSByZXR1cm5zCi0gICAgICAgICAgICAgICAgLy8gdGhlIHJp
Z2h0IHdpZHRoLgotICAgICAgICAgICAgICAgIG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IDA7Cisg
ICAgICAgICAgICBpZiAoeEdseXBoKQogICAgICAgICAgICAgICAgIG1fYXZnQ2hhcldpZHRoID0g
d2lkdGhGb3JHbHlwaCh4R2x5cGgpOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVu
ZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRS
dW5SZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwMTI0ZWRhMzJhZDc1ODc5OTU5ZTA0ZmRiMGNi
ZjcyNmI3M2JhMzI5Li5jMzRhMmZiZjczN2RlZmQxNWY1MTYyNGU5YjkyYzYzYTU1Y2Y5YjYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRS
dW5SZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTc5LDYgKzE3OSw4IEBAIEdseXBoRGF0YSBTVkdU
ZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGNvbnN0IEZvbnQm
IGZvbnQsIGNvCiAKICAgICBwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gcGFpciA9IGZvbnQu
Z2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIG1pcnJvcik7CiAgICAgR2x5
cGhEYXRhIGdseXBoRGF0YSA9IHBhaXIuZmlyc3Q7CisgICAgaWYgKCFnbHlwaERhdGEuZm9udERh
dGEgfHwgZ2x5cGhEYXRhLmZvbnREYXRhID09IFplcm9XaWR0aEZvbnREYXRhOjppbnN0YW5jZSgp
KQorICAgICAgICByZXR1cm4gZ2x5cGhEYXRhOwogCiAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSB0
aGUgbWlzc2luZyBnbHlwaCBkYXRhLCBpbiB3aGljaCBjYXNlIHdlIGNhbiBqdXN0IHJldHVybi4K
ICAgICBHbHlwaERhdGEgbWlzc2luZ0dseXBoRGF0YSA9IHByaW1hcnlGb250LT5taXNzaW5nR2x5
cGhEYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcAppbmRleCBhMzE3ZTJiNGY3MTc1
MTVkNDZiMmRlMjI4MGQxOGU1YjBiZGQ3YzQzLi5iMzljYmZlYTZkNDY4OGMxNWZhNzFlYWYyOTU2
ZDcxMTVmY2JiM2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKQEAgLTY2LDcgKzY2
LDYgQEAgdm9pZCBTVkdGb250RGF0YTo6aW5pdGlhbGl6ZUZvbnREYXRhKFNpbXBsZUZvbnREYXRh
KiBmb250RGF0YSwgZmxvYXQgZm9udFNpemUpCiAgICAgbWlzc2luZ0dseXBoRGF0YS5nbHlwaCA9
IHN2Z0ZvbnRFbGVtZW50LT5taXNzaW5nR2x5cGgoKTsKICAgICBmb250RGF0YS0+c2V0TWlzc2lu
Z0dseXBoRGF0YShtaXNzaW5nR2x5cGhEYXRhKTsKIAotICAgIGZvbnREYXRhLT5zZXRaZXJvV2lk
dGhTcGFjZUdseXBoKDApOwogICAgIGZvbnREYXRhLT5kZXRlcm1pbmVQaXRjaCgpOwogCiAgICAg
dW5zaWduZWQgdW5pdHNQZXJFbSA9IHN2Z0ZvbnRGYWNlRWxlbWVudC0+dW5pdHNQZXJFbSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR2x5cGhNYXAuaAppbmRleCA5Mjk0NTI2OTY1OTFkN2E3MGI0YjFhNzdlYjA0
NjdjNzJkZDM4NDQyLi5mN2NjYTMyNzYzNDc4YmM0ODVmYjBkMGU5NGViYmNmMTAzNjI3YjAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaApAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBTVkdH
bHlwaE1hcF9oCiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUgIkZvbnQuaCIKICNp
bmNsdWRlICJTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJTVkdH
bHlwaC5oIgogI2luY2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgpAQCAtMTIxLDYgKzEyMiw4IEBA
IHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgY2x1c3Rlckxlbmd0aCA9IDA7CiAgICAgICAgIFN1
cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvciB0ZXh0SXRlcmF0b3IoY2hhcmFjdGVycywgMCwg
bGVuZ3RoLCBsZW5ndGgpOwogICAgICAgICB3aGlsZSAodGV4dEl0ZXJhdG9yLmNvbnN1bWUoY2hh
cmFjdGVyLCBjbHVzdGVyTGVuZ3RoKSkgeworICAgICAgICAgICAgaWYgKEZvbnQ6OnRyZWF0QXNa
ZXJvV2lkdGhTcGFjZShjaGFyYWN0ZXIpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgUmVmUHRyPEdseXBoTWFwTm9kZT4gbm9kZSA9IGN1cnJlbnRMYXllci0+Z2V0KGNo
YXJhY3Rlcik7CiAgICAgICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>