<?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>192752</bug_id>
          
          <creation_ts>2018-12-17 02:33:21 -0800</creation_ts>
          <short_desc>[Win][Clang] Fix compilation warnings under WebCore/platform/graphics directory</short_desc>
          <delta_ts>2018-12-17 21:51:28 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>pvollan</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488409</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 02:33:21 -0800</bug_when>
    <thetext>[Win][Clang] Fix compilation warnings WebCore/platform/graphics directory

clang-cl reports the following compilation warnings:

&gt; ..\..\Source\WebCore\platform\graphics\win\DIBPixelData.cpp(31,19):  warning: unused variable &apos;bitmapType&apos; [-Wunused-const-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\DIBPixelData.cpp(32,19):  warning: unused variable &apos;bitmapPixelsPerMeter&apos; [-Wunused-const-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontPlatformDataWin.cpp(82,15):  warning: unused variable &apos;result&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(362,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(372,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(380,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(382,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(384,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(386,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(388,24):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\GraphicsContextWin.cpp(189,21):  warning: unused variable &apos;deg2rad&apos; [-Wunused-const-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(113,36):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(113,43):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(113,50):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(113,57):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(180,36):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(180,43):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(180,50):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(180,57):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(196,36):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(196,43):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(196,50):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(196,57):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataWin.cpp(46,13):  warning: unused variable &apos;cSmallCapsFontSizeMultiplier&apos; [-Wunused-const-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\UniscribeController.cpp(53,7):  warning: field &apos;m_end&apos; will be initialized after field &apos;m_currentCharacter&apos; [-Wreorder]
&gt; ..\..\Source\WebCore\platform\graphics\win\UniscribeController.cpp(90,42):  warning: &apos;&amp;&amp;&apos; within &apos;||&apos; [-Wlogical-op-parentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\UniscribeController.cpp(90,74):  warning: &apos;&amp;&amp;&apos; within &apos;||&apos; [-Wlogical-op-parentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\UniscribeController.cpp(201,15):  warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
&gt; ..\..\Source\WebCore\platform\graphics\win\UniscribeController.cpp(263,9):  warning: unused variable &apos;glyphCount&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\texmap\TextureMapperGL.cpp(153,10):  warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataCairoWin.cpp(119,36):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataCairoWin.cpp(119,43):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataCairoWin.cpp(119,50):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\SimpleFontDataCairoWin.cpp(119,57):  warning: suggest braces around initialization of subobject [-Wmissing-braces]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(98,7):  warning: field &apos;m_hwndVideo&apos; will be initialized after field &apos;m_volume&apos; [-Wreorder]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(255,13):  warning: unused variable &apos;hr&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(316,13):  warning: unused variable &apos;hr&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(428,13):  warning: unused variable &apos;hr&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(461,13):  warning: unused variable &apos;hr&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(907,13):  warning: unused variable &apos;hr&apos; [-Wunused-variable]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(2959,17):  warning: 64 enumeration values not handled in switch: &apos;D3DFMT_UNKNOWN&apos;, &apos;D3DFMT_R8G8B8&apos;, &apos;D3DFMT_R5G6B5&apos;... [-Wswitch]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(57,1):  warning: unused function &apos;MFCreateSampleGrabberSinkActivatePtr&apos; [-Wunused-function]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(63,1):  warning: unused function &apos;MFCreateMemoryBufferPtr&apos; [-Wunused-function]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateMediaFoundation.cpp(64,1):  warning: unused function &apos;MFCreateSamplePtr&apos; [-Wunused-function]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488410</commentid>
    <comment_count>1</comment_count>
      <attachid>357432</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 02:47:21 -0800</bug_when>
    <thetext>Created attachment 357432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488520</commentid>
    <comment_count>2</comment_count>
      <attachid>357432</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-12-17 11:40:12 -0800</bug_when>
    <thetext>Comment on attachment 357432
Patch

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

You aren&apos;t being consistent in your fixing of &quot;using the result of an assignment as a condition without parentheses&quot;. I think you should probably pick the added parenthesis but not sure how this would affect the style guide here.

&gt; Source/WebCore/platform/graphics/win/FontCacheWin.cpp:386
&gt; +        simpleFont = fontFromDescriptionAndLogFont(fontDescription, nonClientMetrics.lfMenuFont, fallbackFontName);
&gt; +        if (simpleFont)

Not adding parenthesis

&gt; Source/WebCore/platform/graphics/win/UniscribeController.cpp:201
&gt; +    while ((rc = ::ScriptItemize(cp, length, m_items.size() - 1, &amp;m_control, &amp;m_state, m_items.data(), &amp;numItems)) == E_OUTOFMEMORY) {

Added parenthesis here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488694</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 17:59:40 -0800</bug_when>
    <thetext>Thank you for the review.

(In reply to Don Olmstead from comment #2)
&gt; Comment on attachment 357432 [details]
&gt; You aren&apos;t being consistent in your fixing of &quot;using the result of an
&gt; assignment as a condition without parentheses&quot;. I think you should probably
&gt; pick the added parenthesis but not sure how this would affect the style
&gt; guide here.

Grepping through WebKit code, there are a lot of these code. 
I think I should give -Wno-parentheses to suppress the warning.
Will revert the part of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488695</commentid>
    <comment_count>4</comment_count>
      <attachid>357510</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 18:09:29 -0800</bug_when>
    <thetext>Created attachment 357510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488783</commentid>
    <comment_count>5</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-12-17 21:40:23 -0800</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488788</commentid>
    <comment_count>6</comment_count>
      <attachid>357510</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 21:50:30 -0800</bug_when>
    <thetext>Comment on attachment 357510
Patch

Clearing flags on attachment: 357510

Committed r239320: &lt;https://trac.webkit.org/changeset/239320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488789</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 21:50:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488790</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-17 21:51:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/46801224&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357432</attachid>
            <date>2018-12-17 02:47:21 -0800</date>
            <delta_ts>2018-12-17 18:08:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192752-20181217194720.patch</filename>
            <type>text/plain</type>
            <size>17381</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5NDliZTI0YjY3NTU1
NTU1MDk5MzVkZGViNWY5ZjMxZjk2MzMyNy4uZjU2OTU0YTljMjk3MjFlYjI0Y2Y4YmYzYzQxZDU2
OTE5YmZjYjI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE4LTEyLTE3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dW0Ns
YW5nXSBGaXggY29tcGlsYXRpb24gd2FybmluZ3MgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBk
aXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Mjc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9ESUJQaXhlbERhdGEuY3BwOgorICAgICAgICBFbmNsb3NlZCBiaXRtYXBU
eXBlIGFuZCBiaXRtYXBQaXhlbHNQZXJNZXRlciB3aXRoICNpZm5kZWYgTkRFQlVHLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KTogTWFkZSAnc2ltcGxlRm9u
dCcKKyAgICAgICAgYXNzaWdubWVudHMgc3RhbmRhbG9uZSBzdGF0ZW1lbnRzIGluc3RlYWQgb2Yg
aWYncyBjb25kaXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxh
dGZvcm1EYXRhV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Om9w
ZW5UeXBlVGFibGUgY29uc3QpOiBVc2UgQVNTRVJUX1VOVVNFRCBpbnN0ZWFkIG9mIEFTU0VSVC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcDog
UmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUgJ2RlZzJyYWQnLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAg
ICBSZW1vdmVkIHVudXNlZCBzb2Z0IGxpbmtzIE1GQ3JlYXRlU2FtcGxlR3JhYmJlclNpbmtBY3Rp
dmF0ZSwgTUZDcmVhdGVNZW1vcnlCdWZmZXIgYW5kIE1GQ3JlYXRlU2FtcGxlLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24pOgorICAgICAgICBSZW9yZGVyIHRoZSBpbml0aWFsaXplciBs
aXN0LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpzZWVrKTogVXNlIEFTU0VSVF9VTlVTRUQgaW5zdGVhZCBvZiBBU1NFUlQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnNldEFsbENoYW5uZWxW
b2x1bWVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZVNlc3Npb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kU2Vzc2lvbik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpvbkNyZWF0
ZWRNZWRpYVNvdXJjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uOjpEaXJlY3QzRFByZXNlbnRlcjo6cGFpbnRDdXJyZW50RnJhbWUp
OiBBZGRlZCBkZWZhdWx0IGNhc2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Np
bXBsZUZvbnREYXRhQ2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6cGxhdGZv
cm1Cb3VuZHNGb3JHbHlwaCBjb25zdCk6IFVzZSBpbm5lciBicmFjZXMgdG8gaW5pdGlhbGl6ZSBz
dWJvYmplY3RzIG9mIE1BVDIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBs
ZUZvbnREYXRhV2luLmNwcDogUmVtb3ZlZCB1bnVzZWQgJ2NTbWFsbENhcHNGb250U2l6ZU11bHRp
cGxpZXInLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6aW5pdEdESUZvbnQpOiBVc2UgaW5uZXIg
YnJhY2VzIHRvIGluaXRpYWxpemUgc3Vib2JqZWN0cyBvZiBNQVQyLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udDo6Ym91bmRzRm9yR0RJR2x5cGggY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OndpZHRoRm9yR0RJR2x5cGggY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVbmlzY3JpYmVDb250cm9sbGVyOjpVbmlzY3JpYmVDb250cm9sbGVyKToKKyAgICAgICAg
UmVvcmRlciB0aGUgaW5pdGlhbGl6ZXIgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmli
ZUNvbnRyb2xsZXI6Om9mZnNldEZvclBvc2l0aW9uKTogVXNlIHBhcmVudGhlc2VzIHRvIGNvbWJp
bmUgJiYgYW5kIHx8LgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6aXRl
bWl6ZVNoYXBlQW5kUGxhY2UpOiBVc2UgYSBwYXJlbnRoZXNpcyBmb3IgdGhlIGFzc2lnbm1lbnQg
aW4gd2hpbGUncyBjb25kaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9s
bGVyOjpzaGFwZUFuZFBsYWNlSXRlbSk6IFJlbW92ZWQgdW51c2VkICdnbHlwaENvdW50Jy4KKwog
MjAxOC0xMi0xNSAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIE51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBKU0M6OldyaXRlQmFycmllckJh
c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RJ
QlBpeGVsRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRElC
UGl4ZWxEYXRhLmNwcAppbmRleCBhOGZhYzIzNjIwYTQwNDI3ODFhMmEyMjY5OTYxODRkZmFmMzM0
MWY5Li5jMGE5ZGZjYzRkNmRhOTQ3YTMxZWNlMzcxNmU3MjA2OGNkNDA0OWM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRElCUGl4ZWxEYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRElCUGl4ZWxEYXRhLmNw
cApAQCAtMjgsOCArMjgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWZuZGVmIE5E
RUJVRwogc3RhdGljIGNvbnN0IFdPUkQgYml0bWFwVHlwZSA9IDB4NGQ0MjsgLy8gQk1QIGZvcm1h
dAogc3RhdGljIGNvbnN0IFdPUkQgYml0bWFwUGl4ZWxzUGVyTWV0ZXIgPSAyODM0OyAvLyA3MiBk
cGkKKyNlbmRpZgogCiBESUJQaXhlbERhdGE6OkRJQlBpeGVsRGF0YShIQklUTUFQIGJpdG1hcCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
YWNoZVdpbi5jcHAKaW5kZXggZjJkNjYwZGE5ZmJmOTQ1OWI5YTU1YzNhNTZmNTQzM2Y0MWVjOTUy
ZC4uZmMwODk1YmE5Zjg1NDAwNmQ2Y2ZmNzAyNThmMDYwMWQ0NWUwNTE5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAK
QEAgLTM1OSw3ICszNTksOCBAQCBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJh
Y2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aQogICAgIH07CiAgICAg
UmVmUHRyPEZvbnQ+IHNpbXBsZUZvbnQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZf
QVJSQVlfTEVOR1RIKGZhbGxiYWNrRm9udHMpOyArK2kpIHsKLSAgICAgICAgaWYgKHNpbXBsZUZv
bnQgPSBmb250Rm9yRmFtaWx5KGZvbnREZXNjcmlwdGlvbiwgZmFsbGJhY2tGb250c1tpXSkpIHsK
KyAgICAgICAgc2ltcGxlRm9udCA9IGZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBmYWxs
YmFja0ZvbnRzW2ldKTsKKyAgICAgICAgaWYgKHNpbXBsZUZvbnQpIHsKICAgICAgICAgICAgIGZh
bGxiYWNrRm9udE5hbWUuZ2V0KCkgPSBmYWxsYmFja0ZvbnRzW2ldOwogICAgICAgICAgICAgcmV0
dXJuICpzaW1wbGVGb250OwogICAgICAgICB9CkBAIC0zNjksNyArMzcwLDggQEAgUmVmPEZvbnQ+
IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGkKICAgICBpZiAoSEZPTlQgZGVmYXVsdEdVSUZvbnQgPSBzdGF0aWNfY2Fz
dDxIRk9OVD4oR2V0U3RvY2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCkpKSB7CiAgICAgICAgIExP
R0ZPTlQgZGVmYXVsdEdVSUxvZ0ZvbnQ7CiAgICAgICAgIEdldE9iamVjdChkZWZhdWx0R1VJRm9u
dCwgc2l6ZW9mKGRlZmF1bHRHVUlMb2dGb250KSwgJmRlZmF1bHRHVUlMb2dGb250KTsKLSAgICAg
ICAgaWYgKHNpbXBsZUZvbnQgPSBmb250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChmb250RGVz
Y3JpcHRpb24sIGRlZmF1bHRHVUlMb2dGb250LCBmYWxsYmFja0ZvbnROYW1lKSkKKyAgICAgICAg
c2ltcGxlRm9udCA9IGZvbnRGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGZvbnREZXNjcmlwdGlv
biwgZGVmYXVsdEdVSUxvZ0ZvbnQsIGZhbGxiYWNrRm9udE5hbWUpOworICAgICAgICBpZiAoc2lt
cGxlRm9udCkKICAgICAgICAgICAgIHJldHVybiAqc2ltcGxlRm9udDsKICAgICB9CiAKQEAgLTM3
NywxNSArMzc5LDIwIEBAIFJlZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0Zv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpCiAgICAgTk9OQ0xJRU5UTUVU
UklDUyBub25DbGllbnRNZXRyaWNzIHsgfTsKICAgICBub25DbGllbnRNZXRyaWNzLmNiU2l6ZSA9
IHNpemVvZihub25DbGllbnRNZXRyaWNzKTsKICAgICBpZiAoU3lzdGVtUGFyYW1ldGVyc0luZm8o
U1BJX0dFVE5PTkNMSUVOVE1FVFJJQ1MsIHNpemVvZihub25DbGllbnRNZXRyaWNzKSwgJm5vbkNs
aWVudE1ldHJpY3MsIDApKSB7Ci0gICAgICAgIGlmIChzaW1wbGVGb250ID0gZm9udEZyb21EZXNj
cmlwdGlvbkFuZExvZ0ZvbnQoZm9udERlc2NyaXB0aW9uLCBub25DbGllbnRNZXRyaWNzLmxmTWVz
c2FnZUZvbnQsIGZhbGxiYWNrRm9udE5hbWUpKQorICAgICAgICBzaW1wbGVGb250ID0gZm9udEZy
b21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoZm9udERlc2NyaXB0aW9uLCBub25DbGllbnRNZXRyaWNz
LmxmTWVzc2FnZUZvbnQsIGZhbGxiYWNrRm9udE5hbWUpOworICAgICAgICBpZiAoc2ltcGxlRm9u
dCkKICAgICAgICAgICAgIHJldHVybiAqc2ltcGxlRm9udDsKLSAgICAgICAgaWYgKHNpbXBsZUZv
bnQgPSBmb250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChmb250RGVzY3JpcHRpb24sIG5vbkNs
aWVudE1ldHJpY3MubGZNZW51Rm9udCwgZmFsbGJhY2tGb250TmFtZSkpCisgICAgICAgIHNpbXBs
ZUZvbnQgPSBmb250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChmb250RGVzY3JpcHRpb24sIG5v
bkNsaWVudE1ldHJpY3MubGZNZW51Rm9udCwgZmFsbGJhY2tGb250TmFtZSk7CisgICAgICAgIGlm
IChzaW1wbGVGb250KQogICAgICAgICAgICAgcmV0dXJuICpzaW1wbGVGb250OwotICAgICAgICBp
ZiAoc2ltcGxlRm9udCA9IGZvbnRGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGZvbnREZXNjcmlw
dGlvbiwgbm9uQ2xpZW50TWV0cmljcy5sZlN0YXR1c0ZvbnQsIGZhbGxiYWNrRm9udE5hbWUpKQor
ICAgICAgICBzaW1wbGVGb250ID0gZm9udEZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoZm9udERl
c2NyaXB0aW9uLCBub25DbGllbnRNZXRyaWNzLmxmU3RhdHVzRm9udCwgZmFsbGJhY2tGb250TmFt
ZSk7CisgICAgICAgIGlmIChzaW1wbGVGb250KQogICAgICAgICAgICAgcmV0dXJuICpzaW1wbGVG
b250OwotICAgICAgICBpZiAoc2ltcGxlRm9udCA9IGZvbnRGcm9tRGVzY3JpcHRpb25BbmRMb2dG
b250KGZvbnREZXNjcmlwdGlvbiwgbm9uQ2xpZW50TWV0cmljcy5sZkNhcHRpb25Gb250LCBmYWxs
YmFja0ZvbnROYW1lKSkKKyAgICAgICAgc2ltcGxlRm9udCA9IGZvbnRGcm9tRGVzY3JpcHRpb25B
bmRMb2dGb250KGZvbnREZXNjcmlwdGlvbiwgbm9uQ2xpZW50TWV0cmljcy5sZkNhcHRpb25Gb250
LCBmYWxsYmFja0ZvbnROYW1lKTsKKyAgICAgICAgaWYgKHNpbXBsZUZvbnQpCiAgICAgICAgICAg
ICByZXR1cm4gKnNpbXBsZUZvbnQ7Ci0gICAgICAgIGlmIChzaW1wbGVGb250ID0gZm9udEZyb21E
ZXNjcmlwdGlvbkFuZExvZ0ZvbnQoZm9udERlc2NyaXB0aW9uLCBub25DbGllbnRNZXRyaWNzLmxm
U21DYXB0aW9uRm9udCwgZmFsbGJhY2tGb250TmFtZSkpCisgICAgICAgIHNpbXBsZUZvbnQgPSBm
b250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChmb250RGVzY3JpcHRpb24sIG5vbkNsaWVudE1l
dHJpY3MubGZTbUNhcHRpb25Gb250LCBmYWxsYmFja0ZvbnROYW1lKTsKKyAgICAgICAgaWYgKHNp
bXBsZUZvbnQpCiAgICAgICAgICAgICByZXR1cm4gKnNpbXBsZUZvbnQ7CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0
Zm9ybURhdGFXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRQbGF0Zm9ybURhdGFXaW4uY3BwCmluZGV4IDI2YzA0MjE4ODk4OGRmNTRiZWE4OWRmN2VlYWFm
OGVkMGY2ZjMzNDguLjIyM2E5ZDNmMDEwYjJkYmI4ODNjZmJhNWQzODdjZDJmYzVjYmQ4ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZv
cm1EYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gRm9udFBsYXRmb3JtRGF0YTo6b3BlblR5cGVUYWJsZSh1aW50MzJfdCB0YWJsZSkgY29u
c3QKICAgICBpZiAoc2l6ZSAhPSBHRElfRVJST1IpIHsKICAgICAgICAgVmVjdG9yPGNoYXI+IGRh
dGEoc2l6ZSk7CiAgICAgICAgIERXT1JEIHJlc3VsdCA9IEdldEZvbnREYXRhKGhkYywgdGFibGUs
IDAsIChQVk9JRClkYXRhLmRhdGEoKSwgc2l6ZSk7Ci0gICAgICAgIEFTU0VSVChyZXN1bHQgPT0g
c2l6ZSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQgPT0gc2l6ZSk7CiAg
ICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoZGF0YSkpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcAppbmRleCA3MmIxMzQ3MTI4NDFhMTI1ZmQwY2RkYjBl
ODBmNTU2ZTA5N2VmMzhiLi43NTAzOWUzODE1NDBjMWQ0YmUxNGIzNzQyYTZiNDA2ZWIzOWEyNWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhp
Y3NDb250ZXh0V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcApAQCAtMTg2LDggKzE4Niw2IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzY2FsZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAg
ICAgTW9kaWZ5V29ybGRUcmFuc2Zvcm0obV9oZGMsICZ4Zm9ybSwgTVdUX0xFRlRNVUxUSVBMWSk7
CiB9CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgZGVnMnJhZCA9IDAuMDE3NDUzMjkyNTE5OTQzMjk1
NzY5OyAvLyBwaS8xODAKLQogdm9pZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnJv
dGF0ZShmbG9hdCBkZWdyZWVzQW5nbGUpCiB7CiAgICAgWEZPUk0geGZvcm0gPSBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpLnJvdGF0ZShkZWdyZWVzQW5nbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAppbmRleCAxZGEyNDFjMjc2MDhhMWJlMjc1MzM5
YTg4ZGFlY2ZhYWE1MGI2NjI0Li5jODQ4YjYxYjljNThkOGYyOWYxZWJiMzA5NmJjYTExNzJkZTFi
MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNw
cApAQCAtNTQsMTQgKzU0LDExIEBAIFNPRlRfTElOS19PUFRJT05BTChNZiwgTUZDcmVhdGVUb3Bv
bG9neU5vZGUsIEhSRVNVTFQsIFNUREFQSUNBTExUWVBFLCAoTUZfVE9QT0xPCiBTT0ZUX0xJTktf
T1BUSU9OQUwoTWYsIE1GR2V0U2VydmljZSwgSFJFU1VMVCwgU1REQVBJQ0FMTFRZUEUsIChJVW5r
bm93biosIFJFRkdVSUQsIFJFRklJRCwgTFBWT0lEKikpOwogU09GVF9MSU5LX09QVElPTkFMKE1m
LCBNRkNyZWF0ZUF1ZGlvUmVuZGVyZXJBY3RpdmF0ZSwgSFJFU1VMVCwgU1REQVBJQ0FMTFRZUEUs
IChJTUZBY3RpdmF0ZSoqKSk7CiBTT0ZUX0xJTktfT1BUSU9OQUwoTWYsIE1GQ3JlYXRlVmlkZW9S
ZW5kZXJlckFjdGl2YXRlLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwgKEhXTkQsIElNRkFjdGl2
YXRlKiopKTsKLVNPRlRfTElOS19PUFRJT05BTChNZiwgTUZDcmVhdGVTYW1wbGVHcmFiYmVyU2lu
a0FjdGl2YXRlLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwgKElNRk1lZGlhVHlwZSosIElNRlNh
bXBsZUdyYWJiZXJTaW5rQ2FsbGJhY2sqLCBJTUZBY3RpdmF0ZSoqKSk7CiBTT0ZUX0xJTktfT1BU
SU9OQUwoTWYsIE1GR2V0U3VwcG9ydGVkTWltZVR5cGVzLCBIUkVTVUxULCBTVERBUElDQUxMVFlQ
RSwgKFBST1BWQVJJQU5UKikpOwogCiBTT0ZUX0xJTktfTElCUkFSWShNZnBsYXQpOwogU09GVF9M
SU5LX09QVElPTkFMKE1mcGxhdCwgTUZTdGFydHVwLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwg
KFVMT05HLCBEV09SRCkpOwogU09GVF9MSU5LX09QVElPTkFMKE1mcGxhdCwgTUZTaHV0ZG93biwg
SFJFU1VMVCwgU1REQVBJQ0FMTFRZUEUsICgpKTsKLVNPRlRfTElOS19PUFRJT05BTChNZnBsYXQs
IE1GQ3JlYXRlTWVtb3J5QnVmZmVyLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwgKERXT1JELCBJ
TUZNZWRpYUJ1ZmZlcioqKSk7Ci1TT0ZUX0xJTktfT1BUSU9OQUwoTWZwbGF0LCBNRkNyZWF0ZVNh
bXBsZSwgSFJFU1VMVCwgU1REQVBJQ0FMTFRZUEUsIChJTUZTYW1wbGUqKikpOwogU09GVF9MSU5L
X09QVElPTkFMKE1mcGxhdCwgTUZDcmVhdGVNZWRpYVR5cGUsIEhSRVNVTFQsIFNUREFQSUNBTExU
WVBFLCAoSU1GTWVkaWFUeXBlKiopKTsKIFNPRlRfTElOS19PUFRJT05BTChNZnBsYXQsIE1GRnJh
bWVSYXRlVG9BdmVyYWdlVGltZVBlckZyYW1lLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwgKFVJ
TlQzMiwgVUlOVDMyLCBVSU5UNjQqKSk7CiAKQEAgLTk1LDggKzkyLDggQEAgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24o
TWVkaWFQbGF5ZXIKICAgICAsIG1faGFzQXVkaW8oZmFsc2UpCiAgICAgLCBtX2hhc1ZpZGVvKGZh
bHNlKQogICAgICwgbV9wcmVwYXJpbmdUb1BsYXkoZmFsc2UpCi0gICAgLCBtX2h3bmRWaWRlbyhu
dWxscHRyKQogICAgICwgbV92b2x1bWUoMS4wKQorICAgICwgbV9od25kVmlkZW8obnVsbHB0cikK
ICAgICAsIG1fbmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpFbXB0eSkKICAgICAsIG1fcmVhZHlT
dGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiB7CkBAIC0yNTMsNyArMjUwLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnNlZWsoZmxvYXQgdGltZSkKICAg
ICBwcm9wVmFyaWFudC5oVmFsLlF1YWRQYXJ0ID0gc3RhdGljX2Nhc3Q8X19pbnQ2ND4odGltZSAq
IHRlbk1lZ2FoZXJ0eik7CiAgICAgCiAgICAgSFJFU1VMVCBociA9IG1fbWVkaWFTZXNzaW9uLT5T
dGFydCgmR1VJRF9OVUxMLCAmcHJvcFZhcmlhbnQpOwotICAgIEFTU0VSVChTVUNDRUVERUQoaHIp
KTsKKyAgICBBU1NFUlRfVU5VU0VEKGhyLCBTVUNDRUVERUQoaHIpKTsKICAgICBQcm9wVmFyaWFu
dENsZWFyKCZwcm9wVmFyaWFudCk7CiAKICAgICBtX3BsYXllci0+dGltZUNoYW5nZWQoKTsKQEAg
LTMxNCw3ICszMTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
c2V0QWxsQ2hhbm5lbFZvbHVtZXMoZmxvYXQgdm9sdW1lKQogCiAgICAgVUlOVDMyIGNoYW5uZWxz
Q291bnQ7CiAgICAgSFJFU1VMVCBociA9IGF1ZGlvVm9sdW1lLT5HZXRDaGFubmVsQ291bnQoJmNo
YW5uZWxzQ291bnQpOwotICAgIEFTU0VSVChTVUNDRUVERUQoaHIpKTsKKyAgICBBU1NFUlRfVU5V
U0VEKGhyLCBTVUNDRUVERUQoaHIpKTsKIAogICAgIFZlY3RvcjxmbG9hdD4gdm9sdW1lcyhjaGFu
bmVsc0NvdW50LCB2b2x1bWUpOwogICAgIHJldHVybiBTVUNDRUVERUQoYXVkaW9Wb2x1bWUtPlNl
dEFsbFZvbHVtZXMoY2hhbm5lbHNDb3VudCwgdm9sdW1lcy5kYXRhKCkpKTsKQEAgLTQyNiw3ICs0
MjMsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Y3JlYXRlU2Vz
c2lvbigpCiAgICAgLy8gR2V0IG5leHQgZXZlbnQuCiAgICAgQXN5bmNDYWxsYmFjayogY2FsbGJh
Y2sgPSBuZXcgQXN5bmNDYWxsYmFjayh0aGlzLCB0cnVlKTsKICAgICBIUkVTVUxUIGhyID0gbV9t
ZWRpYVNlc3Npb24tPkJlZ2luR2V0RXZlbnQoY2FsbGJhY2ssIG51bGxwdHIpOwotICAgIEFTU0VS
VChTVUNDRUVERUQoaHIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhyLCBTVUNDRUVERUQoaHIpKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDU5LDcgKzQ1Niw3IEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjplbmRTZXNzaW9uKCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgSFJFU1VMVCBociA9IE1GU2h1dGRvd25QdHIoKSgpOwotICAgIEFTU0VSVChT
VUNDRUVERUQoaHIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhyLCBTVUNDRUVERUQoaHIpKTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTA1LDcgKzkwMiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFGb3VuZGF0aW9uOjpvbkNyZWF0ZWRNZWRpYVNvdXJjZSgpCiAKICAgICAvLyBT
ZXQgdGhlIHRvcG9sb2d5IG9uIHRoZSBtZWRpYSBzZXNzaW9uLgogICAgIEhSRVNVTFQgaHIgPSBt
X21lZGlhU2Vzc2lvbi0+U2V0VG9wb2xvZ3koMCwgbV90b3BvbG9neS5nZXQoKSk7Ci0gICAgQVNT
RVJUKFNVQ0NFRURFRChocikpOworICAgIEFTU0VSVF9VTlVTRUQoaHIsIFNVQ0NFRURFRChocikp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6b25Ub3BvbG9n
eVNldCgpCkBAIC0yOTYzLDYgKzI5NjAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbjo6RGlyZWN0M0RQcmVzZW50ZXI6OnBhaW50Q3VycmVudEZyYW1lKFdlYgogICAg
ICAgICBjYXNlIEQzREZNVF9YOFI4RzhCODoKICAgICAgICAgICAgIGNhaXJvRm9ybWF0ID0gQ0FJ
Uk9fRk9STUFUX1JHQjI0OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVChjYWlyb0Zvcm1h
dCAhPSBDQUlST19GT1JNQVRfSU5WQUxJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAK
aW5kZXggMmM3MTFiOGM5NTQ2NjVlYjI2Y2E3OGU0YWRhODgzYWUxMTAxNzdjMy4uMTU3ZjgwYjUx
ZjJiOGE3ZWIwOGQwOGEzOTI1MGM3YTYxYzZhYTFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ2Fpcm9XaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNhaXJv
V2luLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIEZsb2F0UmVjdCBGb250OjpwbGF0Zm9ybUJvdW5k
c0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIGNhaXJvX3dpbjMyX3NjYWxlZF9mb250
X3NlbGVjdF9mb250KHNjYWxlZEZvbnQsIGRjKTsKIAogICAgIEdMWVBITUVUUklDUyBnZGlNZXRy
aWNzOwotICAgIHN0YXRpYyBjb25zdCBNQVQyIGlkZW50aXR5ID0geyAwLCAxLCAgMCwgMCwgIDAs
IDAsICAwLCAxIH07CisgICAgc3RhdGljIGNvbnN0IE1BVDIgaWRlbnRpdHkgPSB7IHsgMCwgMSB9
LCB7IDAsIDAgfSwgeyAwLCAwIH0sIHsgMCwgMSB9IH07CiAgICAgR2V0R2x5cGhPdXRsaW5lKGRj
LCBnbHlwaCwgR0dPX01FVFJJQ1MgfCBHR09fR0xZUEhfSU5ERVgsICZnZGlNZXRyaWNzLCAwLCAw
LCAmaWRlbnRpdHkpOwogCiAgICAgY2Fpcm9fd2luMzJfc2NhbGVkX2ZvbnRfZG9uZV9mb250KHNj
YWxlZEZvbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1NpbXBsZUZvbnREYXRhV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKaW5kZXggNTYyZDJkNDE3M2M3OGMzMGE5NTJm
M2Y1OTQ0OTM3MGZkZjRjNjYwZi4uMTQzNTQ1ZjkwYmVjODY5MzU2ZTNmZGM4M2E4NjU4NzZhOTQ4
Yzc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Np
bXBsZUZvbnREYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCkBAIC00Myw4ICs0Myw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY29uc3QgZmxvYXQgY1NtYWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllciA9
IDAuN2Y7Ci0KIHN0YXRpYyBib29sIGdfc2hvdWxkQXBwbHlNYWNBc2NlbnRIYWNrOwogCiB2b2lk
IEZvbnQ6OnNldFNob3VsZEFwcGx5TWFjQXNjZW50SGFjayhib29sIGIpCkBAIC0xMTAsNyArMTA4
LDcgQEAgdm9pZCBGb250Ojppbml0R0RJRm9udCgpCiAgICAgbV9tYXhDaGFyV2lkdGggPSB0ZXh0
TWV0cmljcy50bU1heENoYXJXaWR0aDsKICAgICBmbG9hdCB4SGVpZ2h0ID0gYXNjZW50ICogMC41
NmY7IC8vIEJlc3QgZ3Vlc3MgZm9yIHhIZWlnaHQgaWYgbm8geCBnbHlwaCBpcyBwcmVzZW50Lgog
ICAgIEdMWVBITUVUUklDUyBnbTsKLSAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsg
MCwgMSwgIDAsIDAsICAwLCAwLCAgMCwgMSB9OworICAgIHN0YXRpYyBjb25zdCBNQVQyIGlkZW50
aXR5ID0geyB7IDAsIDEgfSwgeyAwLCAwIH0sIHsgMCwgMCB9LCB7IDAsIDEgfSB9OwogICAgIERX
T1JEIGxlbiA9IEdldEdseXBoT3V0bGluZShoZGMsICd4JywgR0dPX01FVFJJQ1MsICZnbSwgMCwg
MCwgJmlkZW50aXR5KTsKICAgICBpZiAobGVuICE9IEdESV9FUlJPUiAmJiBnbS5nbXB0R2x5cGhP
cmlnaW4ueSA+IDApCiAgICAgICAgIHhIZWlnaHQgPSBnbS5nbXB0R2x5cGhPcmlnaW4ueTsKQEAg
LTE3Nyw3ICsxNzUsNyBAQCBGbG9hdFJlY3QgRm9udDo6Ym91bmRzRm9yR0RJR2x5cGgoR2x5cGgg
Z2x5cGgpIGNvbnN0CiAgICAgSEdESU9CSiBvbGRGb250ID0gU2VsZWN0T2JqZWN0KGhkYywgbV9w
bGF0Zm9ybURhdGEuaGZvbnQoKSk7CiAKICAgICBHTFlQSE1FVFJJQ1MgZ2RpTWV0cmljczsKLSAg
ICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgMCwgMSwgIDAsIDAsICAwLCAwLCAgMCwg
MSB9OworICAgIHN0YXRpYyBjb25zdCBNQVQyIGlkZW50aXR5ID0geyB7IDAsIDEgfSwgeyAwLCAw
IH0sIHsgMCwgMCB9LCB7IDAsIDEgfSB9OwogICAgIEdldEdseXBoT3V0bGluZShoZGMsIGdseXBo
LCBHR09fTUVUUklDUyB8IEdHT19HTFlQSF9JTkRFWCwgJmdkaU1ldHJpY3MsIDAsIDAsICZpZGVu
dGl0eSk7CiAKICAgICBTZWxlY3RPYmplY3QoaGRjLCBvbGRGb250KTsKQEAgLTE5Myw3ICsxOTEs
NyBAQCBmbG9hdCBGb250Ojp3aWR0aEZvckdESUdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAg
IEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChoZGMsIG1fcGxhdGZvcm1EYXRhLmhmb250
KCkpOwogCiAgICAgR0xZUEhNRVRSSUNTIGdkaU1ldHJpY3M7Ci0gICAgc3RhdGljIGNvbnN0IE1B
VDIgaWRlbnRpdHkgPSB7IDAsIDEsICAwLCAwLCAgMCwgMCwgIDAsIDEgfTsKKyAgICBzdGF0aWMg
Y29uc3QgTUFUMiBpZGVudGl0eSA9IHsgeyAwLCAxIH0sIHsgMCwgMCB9LCB7IDAsIDAgfSwgeyAw
LCAxIH0gfTsKICAgICBHZXRHbHlwaE91dGxpbmUoaGRjLCBnbHlwaCwgR0dPX01FVFJJQ1MgfCBH
R09fR0xZUEhfSU5ERVgsICZnZGlNZXRyaWNzLCAwLCAwLCAmaWRlbnRpdHkpOwogICAgIGZsb2F0
IHJlc3VsdCA9IGdkaU1ldHJpY3MuZ21DZWxsSW5jWCArIG1fc3ludGhldGljQm9sZE9mZnNldDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNj
cmliZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCmluZGV4IDBiNjE2MjZkNDUzYWI3ZDFhYzhlYTgyNDIx
YjExNmMwZjVkNTU2YzEuLmU3MzJkODYzYTMxNWFhYmFmZDI5N2UyMGI4ZmI2NjhkMjQxODI2ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3Jp
YmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKQEAgLTUwLDggKzUwLDggQEAgVW5pc2NyaWJlQ29u
dHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcihjb25zdCBGb250Q2FzY2FkZSogZm9udCwgY29u
c3QgVGV4dFJ1biYKICAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgobnVtZXJpY19saW1pdHM8
ZmxvYXQ+OjptaW4oKSkKICAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjptYXgoKSkKICAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjptaW4oKSkKLSAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKICAgICAsIG1f
Y3VycmVudENoYXJhY3RlcigwKQorICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQogICAgICwgbV9y
dW5XaWR0aFNvRmFyKDApCiAgICAgLCBtX3BhZGRpbmcocnVuLmV4cGFuc2lvbigpKQogICAgICwg
bV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbihmYWxzZSkKQEAgLTg3LDcgKzg3LDcgQEAgaW50IFVu
aXNjcmliZUNvbnRyb2xsZXI6Om9mZnNldEZvclBvc2l0aW9uKGludCB4LCBib29sIGluY2x1ZGVQ
YXJ0aWFsR2x5cGhzKQogICAgIGFkdmFuY2UobV9ydW4ubGVuZ3RoKCkpOwogICAgIGlmIChtX2Nv
bXB1dGluZ09mZnNldFBvc2l0aW9uKSB7CiAgICAgICAgIC8vIFRoZSBwb2ludCBpcyB0byB0aGUg
bGVmdCBvciB0byB0aGUgcmlnaHQgb2YgdGhlIGVudGlyZSBydW4uCi0gICAgICAgIGlmIChtX29m
ZnNldFggPj0gbV9ydW5XaWR0aFNvRmFyICYmIG1fcnVuLmx0cigpIHx8IG1fb2Zmc2V0WCA8IDAg
JiYgbV9ydW4ucnRsKCkpCisgICAgICAgIGlmICgobV9vZmZzZXRYID49IG1fcnVuV2lkdGhTb0Zh
ciAmJiBtX3J1bi5sdHIoKSkgfHwgKG1fb2Zmc2V0WCA8IDAgJiYgbV9ydW4ucnRsKCkpKQogICAg
ICAgICAgICAgbV9vZmZzZXRQb3NpdGlvbiA9IG1fZW5kOwogICAgIH0KICAgICBtX2NvbXB1dGlu
Z09mZnNldFBvc2l0aW9uID0gZmFsc2U7CkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBVbmlzY3Jp
YmVDb250cm9sbGVyOjppdGVtaXplU2hhcGVBbmRQbGFjZShjb25zdCBVQ2hhciogY3AsIHVuc2ln
bmVkIGxlbmd0aCwKICAgICBtX2l0ZW1zLnJlc2l6ZSg2KTsKICAgICBpbnQgbnVtSXRlbXMgPSAw
OwogICAgIEhSRVNVTFQgcmMgPSBTX09LOwotICAgIHdoaWxlIChyYyA9IDo6U2NyaXB0SXRlbWl6
ZShjcCwgbGVuZ3RoLCBtX2l0ZW1zLnNpemUoKSAtIDEsICZtX2NvbnRyb2wsICZtX3N0YXRlLCBt
X2l0ZW1zLmRhdGEoKSwgJm51bUl0ZW1zKSA9PSBFX09VVE9GTUVNT1JZKSB7CisgICAgd2hpbGUg
KChyYyA9IDo6U2NyaXB0SXRlbWl6ZShjcCwgbGVuZ3RoLCBtX2l0ZW1zLnNpemUoKSAtIDEsICZt
X2NvbnRyb2wsICZtX3N0YXRlLCBtX2l0ZW1zLmRhdGEoKSwgJm51bUl0ZW1zKSkgPT0gRV9PVVRP
Rk1FTU9SWSkgewogICAgICAgICBtX2l0ZW1zLnJlc2l6ZShtX2l0ZW1zLnNpemUoKSAqIDIpOwog
ICAgICAgICByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwogICAgIH0KQEAgLTI2MCw3ICsyNjAsNiBA
QCBib29sIFVuaXNjcmliZUNvbnRyb2xsZXI6OnNoYXBlQW5kUGxhY2VJdGVtKGNvbnN0IFVDaGFy
KiBjcCwgdW5zaWduZWQgaSwgY29uc3QgRgogICAgIFZlY3RvcjxpbnQ+IGFkdmFuY2VzOwogICAg
IG9mZnNldHMucmVzaXplKGdseXBocy5zaXplKCkpOwogICAgIGFkdmFuY2VzLnJlc2l6ZShnbHlw
aHMuc2l6ZSgpKTsKLSAgICBpbnQgZ2x5cGhDb3VudCA9IDA7CiAgICAgSFJFU1VMVCBwbGFjZVJl
c3VsdCA9IFNjcmlwdFBsYWNlKDAsIGZvbnREYXRhLT5zY3JpcHRDYWNoZSgpLCBnbHlwaHMuZGF0
YSgpLCBnbHlwaHMuc2l6ZSgpLCB2aXN1YWxBdHRyaWJ1dGVzLmRhdGEoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJml0ZW0uYSwgYWR2YW5jZXMuZGF0YSgpLCBvZmZz
ZXRzLmRhdGEoKSwgMCk7CiAgICAgaWYgKHBsYWNlUmVzdWx0ID09IEVfUEVORElORykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357510</attachid>
            <date>2018-12-17 18:09:29 -0800</date>
            <delta_ts>2018-12-17 21:50:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192752-20181218110928.patch</filename>
            <type>text/plain</type>
            <size>13335</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYxN2IwMjA2YTkxM2Zi
ODI5MGYyMGY0YjIxODY1OTUwODU1Njk0OC4uYjFiZWUxMmUzYzcwYWNhYmZjNTc0NzFlOTc2MDc2
YzA1MzRhMWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE4LTEyLTE3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dW0Ns
YW5nXSBGaXggY29tcGlsYXRpb24gd2FybmluZ3MgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBk
aXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Mjc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9ESUJQaXhlbERhdGEuY3BwOgorICAgICAgICBFbmNsb3NlZCBiaXRtYXBU
eXBlIGFuZCBiaXRtYXBQaXhlbHNQZXJNZXRlciB3aXRoICNpZm5kZWYgTkRFQlVHLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Om9wZW5UeXBlVGFibGUgY29uc3QpOiBVc2Ug
QVNTRVJUX1VOVVNFRCBpbnN0ZWFkIG9mIEFTU0VSVC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcDogUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUg
J2RlZzJyYWQnLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICBSZW1vdmVkIHVudXNlZCBzb2Z0IGxp
bmtzIE1GQ3JlYXRlU2FtcGxlR3JhYmJlclNpbmtBY3RpdmF0ZSwgTUZDcmVhdGVNZW1vcnlCdWZm
ZXIgYW5kIE1GQ3JlYXRlU2FtcGxlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24pOgor
ICAgICAgICBSZW9yZGVyIHRoZSBpbml0aWFsaXplciBsaXN0LgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpzZWVrKTogVXNlIEFTU0VSVF9VTlVT
RUQgaW5zdGVhZCBvZiBBU1NFUlQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OnNldEFsbENoYW5uZWxWb2x1bWVzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZVNlc3Np
b24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbjo6ZW5kU2Vzc2lvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpvbkNyZWF0ZWRNZWRpYVNvdXJjZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpEaXJl
Y3QzRFByZXNlbnRlcjo6cGFpbnRDdXJyZW50RnJhbWUpOiBBZGRlZCBkZWZhdWx0IGNhc2UuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ2Fpcm9XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCBjb25zdCk6
IFVzZSBpbm5lciBicmFjZXMgdG8gaW5pdGlhbGl6ZSBzdWJvYmplY3RzIG9mIE1BVDIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcDogUmVtb3Zl
ZCB1bnVzZWQgJ2NTbWFsbENhcHNGb250U2l6ZU11bHRpcGxpZXInLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udDo6aW5pdEdESUZvbnQpOiBVc2UgaW5uZXIgYnJhY2VzIHRvIGluaXRpYWxpemUgc3Vi
b2JqZWN0cyBvZiBNQVQyLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Ym91bmRzRm9yR0RJR2x5
cGggY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OndpZHRoRm9yR0RJR2x5
cGggY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2Ny
aWJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVDb250cm9sbGVy
OjpVbmlzY3JpYmVDb250cm9sbGVyKToKKyAgICAgICAgUmVvcmRlciB0aGUgaW5pdGlhbGl6ZXIg
bGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUNvbnRyb2xsZXI6Om9mZnNldEZvclBv
c2l0aW9uKTogVXNlIHBhcmVudGhlc2VzIHRvIGNvbWJpbmUgJiYgYW5kIHx8LgorICAgICAgICAo
V2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6c2hhcGVBbmRQbGFjZUl0ZW0pOiBSZW1vdmVk
IHVudXNlZCAnZ2x5cGhDb3VudCcuCisKIDIwMTgtMTItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgdXNlIG1vcmUgZXhwZW5zaXZlIGxh
eWVyIGJhY2tpbmcgc3RvcmUgZm9ybWF0cyB3aGVuIHN1YnBpeGVsIHRleHQgYW50aWFsaWFzaW5n
IGlzIG5vdCBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRElCUGl4ZWxEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9ESUJQaXhlbERhdGEuY3BwCmluZGV4IGE4ZmFjMjM2MjBhNDA0Mjc4MWEyYTIyNjk5
NjE4NGRmYWYzMzQxZjkuLmMwYTlkZmNjNGQ2ZGE5NDdhMzFlY2UzNzE2ZTcyMDY4Y2Q0MDQ5YzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9ESUJQaXhl
bERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9ESUJQ
aXhlbERhdGEuY3BwCkBAIC0yOCw4ICsyOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
KyNpZm5kZWYgTkRFQlVHCiBzdGF0aWMgY29uc3QgV09SRCBiaXRtYXBUeXBlID0gMHg0ZDQyOyAv
LyBCTVAgZm9ybWF0CiBzdGF0aWMgY29uc3QgV09SRCBiaXRtYXBQaXhlbHNQZXJNZXRlciA9IDI4
MzQ7IC8vIDcyIGRwaQorI2VuZGlmCiAKIERJQlBpeGVsRGF0YTo6RElCUGl4ZWxEYXRhKEhCSVRN
QVAgYml0bWFwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwCmluZGV4IDI2YzA0MjE4ODk4OGRm
NTRiZWE4OWRmN2VlYWFmOGVkMGY2ZjMzNDguLjIyM2E5ZDNmMDEwYjJkYmI4ODNjZmJhNWQzODdj
ZDJmYzVjYmQ4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKQEAgLTgwLDcgKzgwLDcgQEAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRm9udFBsYXRmb3JtRGF0YTo6b3BlblR5cGVUYWJsZSh1aW50
MzJfdCB0YWJsZSkgY29uc3QKICAgICBpZiAoc2l6ZSAhPSBHRElfRVJST1IpIHsKICAgICAgICAg
VmVjdG9yPGNoYXI+IGRhdGEoc2l6ZSk7CiAgICAgICAgIERXT1JEIHJlc3VsdCA9IEdldEZvbnRE
YXRhKGhkYywgdGFibGUsIDAsIChQVk9JRClkYXRhLmRhdGEoKSwgc2l6ZSk7Ci0gICAgICAgIEFT
U0VSVChyZXN1bHQgPT0gc2l6ZSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1
bHQgPT0gc2l6ZSk7CiAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1v
dmUoZGF0YSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcAppbmRleCA3MmIxMzQ3MTI4
NDFhMTI1ZmQwY2RkYjBlODBmNTU2ZTA5N2VmMzhiLi43NTAzOWUzODE1NDBjMWQ0YmUxNGIzNzQy
YTZiNDA2ZWIzOWEyNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcApAQCAtMTg2LDggKzE4Niw2
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzY2FsZShjb25zdCBGbG9h
dFNpemUmIHNpemUpCiAgICAgTW9kaWZ5V29ybGRUcmFuc2Zvcm0obV9oZGMsICZ4Zm9ybSwgTVdU
X0xFRlRNVUxUSVBMWSk7CiB9CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgZGVnMnJhZCA9IDAuMDE3
NDUzMjkyNTE5OTQzMjk1NzY5OyAvLyBwaS8xODAKLQogdm9pZCBHcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGU6OnJvdGF0ZShmbG9hdCBkZWdyZWVzQW5nbGUpCiB7CiAgICAgWEZPUk0geGZv
cm0gPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLnJvdGF0ZShkZWdyZWVzQW5nbGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAppbmRleCAxZGEyNDFj
Mjc2MDhhMWJlMjc1MzM5YTg4ZGFlY2ZhYWE1MGI2NjI0Li5jODQ4YjYxYjljNThkOGYyOWYxZWJi
MzA5NmJjYTExNzJkZTFiMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmNwcApAQCAtNTQsMTQgKzU0LDExIEBAIFNPRlRfTElOS19PUFRJT05BTChN
ZiwgTUZDcmVhdGVUb3BvbG9neU5vZGUsIEhSRVNVTFQsIFNUREFQSUNBTExUWVBFLCAoTUZfVE9Q
T0xPCiBTT0ZUX0xJTktfT1BUSU9OQUwoTWYsIE1GR2V0U2VydmljZSwgSFJFU1VMVCwgU1REQVBJ
Q0FMTFRZUEUsIChJVW5rbm93biosIFJFRkdVSUQsIFJFRklJRCwgTFBWT0lEKikpOwogU09GVF9M
SU5LX09QVElPTkFMKE1mLCBNRkNyZWF0ZUF1ZGlvUmVuZGVyZXJBY3RpdmF0ZSwgSFJFU1VMVCwg
U1REQVBJQ0FMTFRZUEUsIChJTUZBY3RpdmF0ZSoqKSk7CiBTT0ZUX0xJTktfT1BUSU9OQUwoTWYs
IE1GQ3JlYXRlVmlkZW9SZW5kZXJlckFjdGl2YXRlLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwg
KEhXTkQsIElNRkFjdGl2YXRlKiopKTsKLVNPRlRfTElOS19PUFRJT05BTChNZiwgTUZDcmVhdGVT
YW1wbGVHcmFiYmVyU2lua0FjdGl2YXRlLCBIUkVTVUxULCBTVERBUElDQUxMVFlQRSwgKElNRk1l
ZGlhVHlwZSosIElNRlNhbXBsZUdyYWJiZXJTaW5rQ2FsbGJhY2sqLCBJTUZBY3RpdmF0ZSoqKSk7
CiBTT0ZUX0xJTktfT1BUSU9OQUwoTWYsIE1GR2V0U3VwcG9ydGVkTWltZVR5cGVzLCBIUkVTVUxU
LCBTVERBUElDQUxMVFlQRSwgKFBST1BWQVJJQU5UKikpOwogCiBTT0ZUX0xJTktfTElCUkFSWShN
ZnBsYXQpOwogU09GVF9MSU5LX09QVElPTkFMKE1mcGxhdCwgTUZTdGFydHVwLCBIUkVTVUxULCBT
VERBUElDQUxMVFlQRSwgKFVMT05HLCBEV09SRCkpOwogU09GVF9MSU5LX09QVElPTkFMKE1mcGxh
dCwgTUZTaHV0ZG93biwgSFJFU1VMVCwgU1REQVBJQ0FMTFRZUEUsICgpKTsKLVNPRlRfTElOS19P
UFRJT05BTChNZnBsYXQsIE1GQ3JlYXRlTWVtb3J5QnVmZmVyLCBIUkVTVUxULCBTVERBUElDQUxM
VFlQRSwgKERXT1JELCBJTUZNZWRpYUJ1ZmZlcioqKSk7Ci1TT0ZUX0xJTktfT1BUSU9OQUwoTWZw
bGF0LCBNRkNyZWF0ZVNhbXBsZSwgSFJFU1VMVCwgU1REQVBJQ0FMTFRZUEUsIChJTUZTYW1wbGUq
KikpOwogU09GVF9MSU5LX09QVElPTkFMKE1mcGxhdCwgTUZDcmVhdGVNZWRpYVR5cGUsIEhSRVNV
TFQsIFNUREFQSUNBTExUWVBFLCAoSU1GTWVkaWFUeXBlKiopKTsKIFNPRlRfTElOS19PUFRJT05B
TChNZnBsYXQsIE1GRnJhbWVSYXRlVG9BdmVyYWdlVGltZVBlckZyYW1lLCBIUkVTVUxULCBTVERB
UElDQUxMVFlQRSwgKFVJTlQzMiwgVUlOVDMyLCBVSU5UNjQqKSk7CiAKQEAgLTk1LDggKzkyLDgg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIKICAgICAsIG1faGFzQXVkaW8oZmFsc2UpCiAgICAg
LCBtX2hhc1ZpZGVvKGZhbHNlKQogICAgICwgbV9wcmVwYXJpbmdUb1BsYXkoZmFsc2UpCi0gICAg
LCBtX2h3bmRWaWRlbyhudWxscHRyKQogICAgICwgbV92b2x1bWUoMS4wKQorICAgICwgbV9od25k
VmlkZW8obnVsbHB0cikKICAgICAsIG1fbmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpFbXB0eSkK
ICAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiB7CkBAIC0yNTMs
NyArMjUwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnNlZWso
ZmxvYXQgdGltZSkKICAgICBwcm9wVmFyaWFudC5oVmFsLlF1YWRQYXJ0ID0gc3RhdGljX2Nhc3Q8
X19pbnQ2ND4odGltZSAqIHRlbk1lZ2FoZXJ0eik7CiAgICAgCiAgICAgSFJFU1VMVCBociA9IG1f
bWVkaWFTZXNzaW9uLT5TdGFydCgmR1VJRF9OVUxMLCAmcHJvcFZhcmlhbnQpOwotICAgIEFTU0VS
VChTVUNDRUVERUQoaHIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhyLCBTVUNDRUVERUQoaHIpKTsK
ICAgICBQcm9wVmFyaWFudENsZWFyKCZwcm9wVmFyaWFudCk7CiAKICAgICBtX3BsYXllci0+dGlt
ZUNoYW5nZWQoKTsKQEAgLTMxNCw3ICszMTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbjo6c2V0QWxsQ2hhbm5lbFZvbHVtZXMoZmxvYXQgdm9sdW1lKQogCiAgICAg
VUlOVDMyIGNoYW5uZWxzQ291bnQ7CiAgICAgSFJFU1VMVCBociA9IGF1ZGlvVm9sdW1lLT5HZXRD
aGFubmVsQ291bnQoJmNoYW5uZWxzQ291bnQpOwotICAgIEFTU0VSVChTVUNDRUVERUQoaHIpKTsK
KyAgICBBU1NFUlRfVU5VU0VEKGhyLCBTVUNDRUVERUQoaHIpKTsKIAogICAgIFZlY3RvcjxmbG9h
dD4gdm9sdW1lcyhjaGFubmVsc0NvdW50LCB2b2x1bWUpOwogICAgIHJldHVybiBTVUNDRUVERUQo
YXVkaW9Wb2x1bWUtPlNldEFsbFZvbHVtZXMoY2hhbm5lbHNDb3VudCwgdm9sdW1lcy5kYXRhKCkp
KTsKQEAgLTQyNiw3ICs0MjMsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6Y3JlYXRlU2Vzc2lvbigpCiAgICAgLy8gR2V0IG5leHQgZXZlbnQuCiAgICAgQXN5bmND
YWxsYmFjayogY2FsbGJhY2sgPSBuZXcgQXN5bmNDYWxsYmFjayh0aGlzLCB0cnVlKTsKICAgICBI
UkVTVUxUIGhyID0gbV9tZWRpYVNlc3Npb24tPkJlZ2luR2V0RXZlbnQoY2FsbGJhY2ssIG51bGxw
dHIpOwotICAgIEFTU0VSVChTVUNDRUVERUQoaHIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhyLCBT
VUNDRUVERUQoaHIpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDU5LDcgKzQ1Niw3IEBA
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjplbmRTZXNzaW9uKCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSFJFU1VMVCBociA9IE1GU2h1dGRvd25QdHIoKSgp
OwotICAgIEFTU0VSVChTVUNDRUVERUQoaHIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhyLCBTVUND
RUVERUQoaHIpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTA1LDcgKzkwMiw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpvbkNyZWF0ZWRNZWRpYVNvdXJj
ZSgpCiAKICAgICAvLyBTZXQgdGhlIHRvcG9sb2d5IG9uIHRoZSBtZWRpYSBzZXNzaW9uLgogICAg
IEhSRVNVTFQgaHIgPSBtX21lZGlhU2Vzc2lvbi0+U2V0VG9wb2xvZ3koMCwgbV90b3BvbG9neS5n
ZXQoKSk7Ci0gICAgQVNTRVJUKFNVQ0NFRURFRChocikpOworICAgIEFTU0VSVF9VTlVTRUQoaHIs
IFNVQ0NFRURFRChocikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbjo6b25Ub3BvbG9neVNldCgpCkBAIC0yOTYzLDYgKzI5NjAsOCBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6RGlyZWN0M0RQcmVzZW50ZXI6OnBhaW50Q3VycmVu
dEZyYW1lKFdlYgogICAgICAgICBjYXNlIEQzREZNVF9YOFI4RzhCODoKICAgICAgICAgICAgIGNh
aXJvRm9ybWF0ID0gQ0FJUk9fRk9STUFUX1JHQjI0OwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIEFT
U0VSVChjYWlyb0Zvcm1hdCAhPSBDQUlST19GT1JNQVRfSU5WQUxJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERh
dGFDYWlyb1dpbi5jcHAKaW5kZXggMmM3MTFiOGM5NTQ2NjVlYjI2Y2E3OGU0YWRhODgzYWUxMTAx
NzdjMy4uMTU3ZjgwYjUxZjJiOGE3ZWIwOGQwOGEzOTI1MGM3YTYxYzZhYTFmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ2Fp
cm9XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1w
bGVGb250RGF0YUNhaXJvV2luLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIEZsb2F0UmVjdCBGb250
OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIGNhaXJvX3dp
bjMyX3NjYWxlZF9mb250X3NlbGVjdF9mb250KHNjYWxlZEZvbnQsIGRjKTsKIAogICAgIEdMWVBI
TUVUUklDUyBnZGlNZXRyaWNzOwotICAgIHN0YXRpYyBjb25zdCBNQVQyIGlkZW50aXR5ID0geyAw
LCAxLCAgMCwgMCwgIDAsIDAsICAwLCAxIH07CisgICAgc3RhdGljIGNvbnN0IE1BVDIgaWRlbnRp
dHkgPSB7IHsgMCwgMSB9LCB7IDAsIDAgfSwgeyAwLCAwIH0sIHsgMCwgMSB9IH07CiAgICAgR2V0
R2x5cGhPdXRsaW5lKGRjLCBnbHlwaCwgR0dPX01FVFJJQ1MgfCBHR09fR0xZUEhfSU5ERVgsICZn
ZGlNZXRyaWNzLCAwLCAwLCAmaWRlbnRpdHkpOwogCiAgICAgY2Fpcm9fd2luMzJfc2NhbGVkX2Zv
bnRfZG9uZV9mb250KHNjYWxlZEZvbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKaW5kZXggNTYyZDJk
NDE3M2M3OGMzMGE5NTJmM2Y1OTQ0OTM3MGZkZjRjNjYwZi4uMTQzNTQ1ZjkwYmVjODY5MzU2ZTNm
ZGM4M2E4NjU4NzZhOTQ4Yzc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCkBAIC00Myw4ICs0Myw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgZmxvYXQgY1NtYWxsQ2Fwc0ZvbnRT
aXplTXVsdGlwbGllciA9IDAuN2Y7Ci0KIHN0YXRpYyBib29sIGdfc2hvdWxkQXBwbHlNYWNBc2Nl
bnRIYWNrOwogCiB2b2lkIEZvbnQ6OnNldFNob3VsZEFwcGx5TWFjQXNjZW50SGFjayhib29sIGIp
CkBAIC0xMTAsNyArMTA4LDcgQEAgdm9pZCBGb250Ojppbml0R0RJRm9udCgpCiAgICAgbV9tYXhD
aGFyV2lkdGggPSB0ZXh0TWV0cmljcy50bU1heENoYXJXaWR0aDsKICAgICBmbG9hdCB4SGVpZ2h0
ID0gYXNjZW50ICogMC41NmY7IC8vIEJlc3QgZ3Vlc3MgZm9yIHhIZWlnaHQgaWYgbm8geCBnbHlw
aCBpcyBwcmVzZW50LgogICAgIEdMWVBITUVUUklDUyBnbTsKLSAgICBzdGF0aWMgY29uc3QgTUFU
MiBpZGVudGl0eSA9IHsgMCwgMSwgIDAsIDAsICAwLCAwLCAgMCwgMSB9OworICAgIHN0YXRpYyBj
b25zdCBNQVQyIGlkZW50aXR5ID0geyB7IDAsIDEgfSwgeyAwLCAwIH0sIHsgMCwgMCB9LCB7IDAs
IDEgfSB9OwogICAgIERXT1JEIGxlbiA9IEdldEdseXBoT3V0bGluZShoZGMsICd4JywgR0dPX01F
VFJJQ1MsICZnbSwgMCwgMCwgJmlkZW50aXR5KTsKICAgICBpZiAobGVuICE9IEdESV9FUlJPUiAm
JiBnbS5nbXB0R2x5cGhPcmlnaW4ueSA+IDApCiAgICAgICAgIHhIZWlnaHQgPSBnbS5nbXB0R2x5
cGhPcmlnaW4ueTsKQEAgLTE3Nyw3ICsxNzUsNyBAQCBGbG9hdFJlY3QgRm9udDo6Ym91bmRzRm9y
R0RJR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgSEdESU9CSiBvbGRGb250ID0gU2VsZWN0
T2JqZWN0KGhkYywgbV9wbGF0Zm9ybURhdGEuaGZvbnQoKSk7CiAKICAgICBHTFlQSE1FVFJJQ1Mg
Z2RpTWV0cmljczsKLSAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgMCwgMSwgIDAs
IDAsICAwLCAwLCAgMCwgMSB9OworICAgIHN0YXRpYyBjb25zdCBNQVQyIGlkZW50aXR5ID0geyB7
IDAsIDEgfSwgeyAwLCAwIH0sIHsgMCwgMCB9LCB7IDAsIDEgfSB9OwogICAgIEdldEdseXBoT3V0
bGluZShoZGMsIGdseXBoLCBHR09fTUVUUklDUyB8IEdHT19HTFlQSF9JTkRFWCwgJmdkaU1ldHJp
Y3MsIDAsIDAsICZpZGVudGl0eSk7CiAKICAgICBTZWxlY3RPYmplY3QoaGRjLCBvbGRGb250KTsK
QEAgLTE5Myw3ICsxOTEsNyBAQCBmbG9hdCBGb250Ojp3aWR0aEZvckdESUdseXBoKEdseXBoIGds
eXBoKSBjb25zdAogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVjdChoZGMsIG1fcGxh
dGZvcm1EYXRhLmhmb250KCkpOwogCiAgICAgR0xZUEhNRVRSSUNTIGdkaU1ldHJpY3M7Ci0gICAg
c3RhdGljIGNvbnN0IE1BVDIgaWRlbnRpdHkgPSB7IDAsIDEsICAwLCAwLCAgMCwgMCwgIDAsIDEg
fTsKKyAgICBzdGF0aWMgY29uc3QgTUFUMiBpZGVudGl0eSA9IHsgeyAwLCAxIH0sIHsgMCwgMCB9
LCB7IDAsIDAgfSwgeyAwLCAxIH0gfTsKICAgICBHZXRHbHlwaE91dGxpbmUoaGRjLCBnbHlwaCwg
R0dPX01FVFJJQ1MgfCBHR09fR0xZUEhfSU5ERVgsICZnZGlNZXRyaWNzLCAwLCAwLCAmaWRlbnRp
dHkpOwogICAgIGZsb2F0IHJlc3VsdCA9IGdkaU1ldHJpY3MuZ21DZWxsSW5jWCArIG1fc3ludGhl
dGljQm9sZE9mZnNldDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCmluZGV4IDBiNjE2MjZkNDUz
YWI3ZDFhYzhlYTgyNDIxYjExNmMwZjVkNTU2YzEuLmZmMzdhYzU2ZWMxNjgyNWU2NTYzNWNhMDlk
MGI3YTAzMTgwZGY4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKQEAgLTUwLDggKzUwLDgg
QEAgVW5pc2NyaWJlQ29udHJvbGxlcjo6VW5pc2NyaWJlQ29udHJvbGxlcihjb25zdCBGb250Q2Fz
Y2FkZSogZm9udCwgY29uc3QgVGV4dFJ1biYKICAgICAsIG1fbWF4R2x5cGhCb3VuZGluZ0JveFgo
bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKICAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0Jv
eFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKICAgICAsIG1fbWF4R2x5cGhCb3VuZGlu
Z0JveFkobnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSkKLSAgICAsIG1fZW5kKHJ1bi5sZW5n
dGgoKSkKICAgICAsIG1fY3VycmVudENoYXJhY3RlcigwKQorICAgICwgbV9lbmQocnVuLmxlbmd0
aCgpKQogICAgICwgbV9ydW5XaWR0aFNvRmFyKDApCiAgICAgLCBtX3BhZGRpbmcocnVuLmV4cGFu
c2lvbigpKQogICAgICwgbV9jb21wdXRpbmdPZmZzZXRQb3NpdGlvbihmYWxzZSkKQEAgLTg3LDcg
Kzg3LDcgQEAgaW50IFVuaXNjcmliZUNvbnRyb2xsZXI6Om9mZnNldEZvclBvc2l0aW9uKGludCB4
LCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKQogICAgIGFkdmFuY2UobV9ydW4ubGVuZ3RoKCkp
OwogICAgIGlmIChtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uKSB7CiAgICAgICAgIC8vIFRoZSBw
b2ludCBpcyB0byB0aGUgbGVmdCBvciB0byB0aGUgcmlnaHQgb2YgdGhlIGVudGlyZSBydW4uCi0g
ICAgICAgIGlmIChtX29mZnNldFggPj0gbV9ydW5XaWR0aFNvRmFyICYmIG1fcnVuLmx0cigpIHx8
IG1fb2Zmc2V0WCA8IDAgJiYgbV9ydW4ucnRsKCkpCisgICAgICAgIGlmICgobV9vZmZzZXRYID49
IG1fcnVuV2lkdGhTb0ZhciAmJiBtX3J1bi5sdHIoKSkgfHwgKG1fb2Zmc2V0WCA8IDAgJiYgbV9y
dW4ucnRsKCkpKQogICAgICAgICAgICAgbV9vZmZzZXRQb3NpdGlvbiA9IG1fZW5kOwogICAgIH0K
ICAgICBtX2NvbXB1dGluZ09mZnNldFBvc2l0aW9uID0gZmFsc2U7CkBAIC0yNjAsNyArMjYwLDYg
QEAgYm9vbCBVbmlzY3JpYmVDb250cm9sbGVyOjpzaGFwZUFuZFBsYWNlSXRlbShjb25zdCBVQ2hh
ciogY3AsIHVuc2lnbmVkIGksIGNvbnN0IEYKICAgICBWZWN0b3I8aW50PiBhZHZhbmNlczsKICAg
ICBvZmZzZXRzLnJlc2l6ZShnbHlwaHMuc2l6ZSgpKTsKICAgICBhZHZhbmNlcy5yZXNpemUoZ2x5
cGhzLnNpemUoKSk7Ci0gICAgaW50IGdseXBoQ291bnQgPSAwOwogICAgIEhSRVNVTFQgcGxhY2VS
ZXN1bHQgPSBTY3JpcHRQbGFjZSgwLCBmb250RGF0YS0+c2NyaXB0Q2FjaGUoKSwgZ2x5cGhzLmRh
dGEoKSwgZ2x5cGhzLnNpemUoKSwgdmlzdWFsQXR0cmlidXRlcy5kYXRhKCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpdGVtLmEsIGFkdmFuY2VzLmRhdGEoKSwgb2Zm
c2V0cy5kYXRhKCksIDApOwogICAgIGlmIChwbGFjZVJlc3VsdCA9PSBFX1BFTkRJTkcpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>