<?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>62501</bug_id>
          
          <creation_ts>2011-06-11 01:42:03 -0700</creation_ts>
          <short_desc>Add TextRun charactersLength member</short_desc>
          <delta_ts>2011-06-12 05:41:47 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>59085</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>kling</cc>
    
    <cc>krit</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>419198</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-11 01:42:03 -0700</bug_when>
    <thetext>Propagate the maximum length of the characters buffer to the TextRun, even when we&apos;re only processing a substring.

eg. in RenderText, when we&apos;re measuring:
&apos;len&apos; glyphs starting from &apos;text()-&gt;characters() + start&apos;, then there&apos;s a remaining length of &apos;textLength() - start&apos; that we&apos;re not processing.
When integrating SVG Fonts with the GlyphPage concept this information is needed to properly handle ligatures.
Currently this is done by a special floatWidthUsingSVGFont that takes an &quot;int&amp; extraCharsAvailable&quot; parameter.

This generalizes the concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419200</commentid>
    <comment_count>1</comment_count>
      <attachid>96852</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-11 02:09:09 -0700</bug_when>
    <thetext>Created attachment 96852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419204</commentid>
    <comment_count>2</comment_count>
      <attachid>96855</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-11 04:17:37 -0700</bug_when>
    <thetext>Created attachment 96855
Patch v2

Fix win/wx build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419216</commentid>
    <comment_count>3</comment_count>
      <attachid>96855</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-11 09:50:32 -0700</bug_when>
    <thetext>Comment on attachment 96855
Patch v2

LGTM. Please think about renaming m_len to a more meaningful name in a follow up patch. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419291</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-12 05:41:47 -0700</bug_when>
    <thetext>Landed in r88613.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96852</attachid>
            <date>2011-06-11 02:09:09 -0700</date>
            <delta_ts>2011-06-11 04:17:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>PrepPatch2-v1.diff</filename>
            <type>text/plain</type>
            <size>14208</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NjAwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDYtMTEgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFRleHRSdW4gY2hhcmFjdGVyc0xlbmd0aCBt
ZW1iZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYy
NTAxCisKKyAgICAgICAgUHJlcGFyYXRpb24gcGF0Y2ggMjogUHJvcGFnYXRlIHRoZSBtYXhpbXVt
IGxlbmd0aCBvZiB0aGUgY2hhcmFjdGVycyBidWZmZXIgdGhlIFRleHRSdW4gb3BlcmF0ZXMgb24s
IGV2ZW4gd2hlbiB3ZSdyZSBvbmx5IG1lYXN1cmluZyBhIHN1YnN0cmluZy4KKyAgICAgICAgRm9y
IGV4YW1wbGU6IEluIFJlbmRlclRleHQgd2hlbiB3ZSdyZSBtZWFzdXJpbmcgJ2xlbicgY2hhcmFj
dGVycyBzdGFydGluZyBmcm9tICJ0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0IiwgdGhlcmUn
cyBhIHBvcnRpb24KKyAgICAgICAgb2YgInRleHRMZW5ndGgoKSAtIHN0YXJ0IiBjaGFyYWN0ZXJz
IHRoYXQgd2UncmUgbm90IHByb2Nlc3NpbmcuIEluIG9yZGVyIHRvIHN1cHBvcnQgbGlnYXR1cmVz
IHdoZW4gaW50ZWdyYXRpbmcgU1ZHIEZvbnRzCisgICAgICAgIHdpdGhpbiB0aGUgR2x5cGhQYWdl
IGNvbmNlcHQsIHdlIG5lZWQgdGhpcyBleHRyYSBpbmZvcm1hdGlvbiwgdG8gbG9va3VwIGxpZ2F0
dXJlcyBldmVuIHdoZW4gc2luZ2xlIGNoYXJzIGFyZSBtZWFzdXJlZC4KKyAgICAgICAgSWYgYSBm
b250IGRlZmluZXMgYW4gZWcgImZmbCIgbGlnYXR1cmUsIGFuZCB3ZSdyZSBtZWFzdXJpbmcgdGhl
ICJmIiBvZiAiZmZsIiwgaXQgc2hhbGwgbG9vdWtwIHRoZSAiZmZsIiBnbHlwaCBmcm9tIHRoZSBm
b250LAorICAgICAgICBhbmQgc2tpcCB0aGUgbmV4dCB0d28gY2hhcmFjdGVycyAodGhpcyB3aWxs
IGJlIGRvbmUgaW4gV2lkdGhJdGVyYXRvcikuCisKKyAgICAgICAgVGhpcyBkb2Vzbid0IHlldCBh
ZmZlY3QgYW55IHRlc3QsIHRoZSBuZXcgU1ZHIEZvbnRzIGNvZGUgaXMgbm90IG1lcmdlZCB5ZXQs
IHRoaXMgaXMgdGhlIHByZXBhcmFpb24gcGF0Y2ggMi4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuaDogQWRkIHlldC11bnVzZWQgImNvbnN0IFRleHRSdW4mIiBwYXJhbWV0ZXIg
dG8gZHJhd0dseXBoQnVmZmVyL2RyYXdFbXBoYXNpc01hcmtzLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6IERpdHRvLiBUaGlzIHBhcmFtZXRlciB3aWxsIGJl
IHVzZWQgdG8gbG9vdWtwIHRoZSBUZXh0UnVuUmVuZGVyaW5nQ29udGV4dCBpbiBhIGZvbGxvdy11
cCBwYXRjaC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdTaW1wbGVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uaDogQWRkICJpbnQgbV9jaGFyYWN0ZXJzTGVuZ3RoIiwgc2ltaWxhciB0byAiaW50IG1f
bGVuIi4gSXQgZGVub3RlcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGNoYXJhY3RlcnMgYnVm
ZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHdlJ3JlIGhv
bGRpbmcuIEl0IGRlZmF1bHRzIHRvIHRoZSBwYXNzZWQgImxlbiIgdmFsdWUsIGJ1dCBpcyBvdmVy
cmlkZW4gYnkgZXhwbGljaXQgc2V0Q2hhcmFjdGVyc0xlbmd0aCBjYWxscy4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRSdW46OlRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bjo6Y2hh
cmFjdGVyc0xlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRDaGFyYWN0ZXJz
TGVuZ3RoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0
TWFjLmNwcDogUGFzcyBUZXh0UnVuIGRvIGRyYXdHbHlwaEJ1ZmZlci9kcmF3RW1waGFzaXNNYXJr
cy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6IENhbGwgc2V0Q2hhcmFjdGVyc0xlbmd0aCBv
biB0aGUgcHJvY2Vzc2VkIFRleHRSdW4uCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94
Ojpjb25zdHJ1Y3RUZXh0UnVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp0ZXh0V2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6dHJ5SHlwaGVuYXRpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aEZyb21D
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9n
aWNhbFdpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKToKKwogMjAxMS0w
Ni0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBi
b2d1cyBBU1NFUlRzLiAgVGhlc2UgQVNTRVJUcyB1c2VkIHRvIGJlIGNvcnJlY3QgYmVmb3JlIEkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgJKHJldmlzaW9uIDg4
NTQxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjMsOCArMTYzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRyYXdTaW1wbGVU
ZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50Jiwg
aW50IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAgdm9pZCBkcmF3RW1waGFzaXNNYXJrc0ZvclNp
bXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEF0b21pY1N0
cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Owog
ICAgIHZvaWQgZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBTaW1wbGVGb250RGF0
YSosIGNvbnN0IEdseXBoQnVmZmVyJiwgaW50IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2lu
dCYpIGNvbnN0OwotICAgIHZvaWQgZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEdseXBoQnVmZmVyJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwotICAgIHZvaWQgZHJh
d0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZl
ciYsIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyAgICB2
b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgR2x5cGhCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CisgICAgdm9pZCBkcmF3
RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgR2x5
cGhCdWZmZXImLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7
CiAgICAgZmxvYXQgZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIEdseXBo
QnVmZmVyKiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0g
MCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25G
b3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRl
UGFydGlhbEdseXBocykgY29uc3Q7CiAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RGb3JTaW1w
bGVUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGgsIGludCBmcm9t
LCBpbnQgdG8pIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA4ODU0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2Miw3ICszNjIsNyBAQCB2b2lkIEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4
CiAgICAgICAgIHJldHVybjsKIAogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludChzdGFydFgsIHBv
aW50LnkoKSk7Ci0gICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFy
dFBvaW50KTsKKyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgcnVuLCBnbHlwaEJ1ZmZlciwg
c3RhcnRQb2ludCk7CiB9CiAKIHZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JTaW1wbGVU
ZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBB
dG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50
IHRvKSBjb25zdApAQCAtMzczLDEwICszNzMsMTAgQEAgdm9pZCBGb250OjpkcmF3RW1waGFzaXNN
YXJrc0ZvclNpbXBsZVRleAogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBt
YXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsK
KyAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBydW4sIGdseXBoQnVmZmVyLCBtYXJrLCBG
bG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0KIAot
dm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25z
dAordm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBUZXh0UnVuJiwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCkgY29uc3QKIHsgICAKICAgICAvLyBEcmF3IGVhY2ggY29udGlndW91cyBy
dW4gb2YgZ2x5cGhzIHRoYXQgdXNlIHRoZSBzYW1lIGZvbnQgZGF0YS4KICAgICBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udERhdGEgPSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KDApOwpAQCAtNDE4
LDcgKzQxOCw3IEBAIGlubGluZSBzdGF0aWMgZmxvYXQgb2Zmc2V0VG9NaWRkbGVPZkdseXAKICAg
ICByZXR1cm4gb2Zmc2V0VG9NaWRkbGVPZkdseXBoKGdseXBoQnVmZmVyLmZvbnREYXRhQXQoaSks
IGdseXBoQnVmZmVyLmdseXBoQXQoaSkpOwogfQogCi12b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01h
cmtzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVm
ZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBj
b25zdAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBj
b25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAog
ewogICAgIEdseXBoRGF0YSBtYXJrR2x5cGhEYXRhOwogICAgIGlmICghZ2V0RW1waGFzaXNNYXJr
R2x5cGhEYXRhKG1hcmssIG1hcmtHbHlwaERhdGEpKQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQg
Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb24KICAgICB9CiAgICAgbWFya0J1ZmZl
ci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChnbHlwaEJ1ZmZlci5zaXplKCkgLSAxKSA/IG1hcmtH
bHlwaCA6IHNwYWNlR2x5cGgsIG1hcmtGb250RGF0YSwgMCk7CiAKLSAgICBkcmF3R2x5cGhCdWZm
ZXIoY29udGV4dCwgbWFya0J1ZmZlciwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVmZmVy
KGNvbnRleHQsIHJ1biwgbWFya0J1ZmZlciwgc3RhcnRQb2ludCk7CiB9CiAKIGZsb2F0IEZvbnQ6
OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgR2x5cGhCdWZmZXIq
IGdseXBoQnVmZmVyLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCShyZXZpc2lvbiA4ODU0MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAkod29ya2luZyBjb3B5KQpA
QCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBUZXh0UnVuKGNvbnN0IFVDaGFyKiBjLCBp
bnQgbGVuLCBib29sIGFsbG93VGFicyA9IGZhbHNlLCBmbG9hdCB4cG9zID0gMCwgZmxvYXQgZXhw
YW5zaW9uID0gMCwgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IgPSBBbGxvd1Ry
YWlsaW5nRXhwYW5zaW9uIHwgRm9yYmlkTGVhZGluZ0V4cGFuc2lvbiwgVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24gPSBMVFIsIGJvb2wgZGlyZWN0aW9uYWxPdmVycmlkZSA9IGZhbHNlKQogICAgICAg
ICA6IG1fY2hhcmFjdGVycyhjKQorICAgICAgICAsIG1fY2hhcmFjdGVyc0xlbmd0aChsZW4pCiAg
ICAgICAgICwgbV9sZW4obGVuKQogICAgICAgICAsIG1feHBvcyh4cG9zKQogICAgICAgICAsIG1f
ZXhwYW5zaW9uKGV4cGFuc2lvbikKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgogCiAgICAgVGV4
dFJ1bihjb25zdCBTdHJpbmcmIHMsIGJvb2wgYWxsb3dUYWJzID0gZmFsc2UsIGZsb2F0IHhwb3Mg
PSAwLCBmbG9hdCBleHBhbnNpb24gPSAwLCBFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhh
dmlvciA9IEFsbG93VHJhaWxpbmdFeHBhbnNpb24gfCBGb3JiaWRMZWFkaW5nRXhwYW5zaW9uLCBU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUiwgYm9vbCBkaXJlY3Rpb25hbE92ZXJyaWRlID0g
ZmFsc2UpCiAgICAgICAgIDogbV9jaGFyYWN0ZXJzKHMuY2hhcmFjdGVycygpKQorICAgICAgICAs
IG1fY2hhcmFjdGVyc0xlbmd0aChzLmxlbmd0aCgpKQogICAgICAgICAsIG1fbGVuKHMubGVuZ3Ro
KCkpCiAgICAgICAgICwgbV94cG9zKHhwb3MpCiAgICAgICAgICwgbV9leHBhbnNpb24oZXhwYW5z
aW9uKQpAQCAtODMsOCArODUsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMoKSBjb25zdCB7IHJldHVybiBtX2NoYXJhY3RlcnM7IH0KICAgICBpbnQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW47IH0KKyAgICBpbnQgY2hhcmFjdGVyc0xlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hhcmFjdGVyc0xlbmd0aDsgfQogCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0
IFVDaGFyKiBjLCBpbnQgbGVuKSB7IG1fY2hhcmFjdGVycyA9IGM7IG1fbGVuID0gbGVuOyB9Cisg
ICAgdm9pZCBzZXRDaGFyYWN0ZXJzTGVuZ3RoKGludCBjaGFyYWN0ZXJzTGVuZ3RoKSB7IG1fY2hh
cmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnNMZW5ndGg7IH0KIAogI2lmIEVOQUJMRShTVkcpCiAg
ICAgZmxvYXQgaG9yaXpvbnRhbEdseXBoU3RyZXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpv
bnRhbEdseXBoU3RyZXRjaDsgfQpAQCAtMTI3LDYgKzEzMSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBjb25zdCBVQ2hhciogbV9jaGFyYWN0ZXJzOworICAgIGludCBtX2NoYXJhY3RlcnNM
ZW5ndGg7IC8vIE1hcmtzIHRoZSBlbmQgb2YgdGhlIG1fY2hhcmFjdGVycyBidWZmZXIuIERlZmF1
bHQgZXF1YWxzIHRvIG1fbGVuLgogICAgIGludCBtX2xlbjsKIAogICAgIC8vIG1feHBvcyBpcyB0
aGUgeCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgbGVmdCBzdGFydCBvZiB0aGUgdGV4dCBsaW5l
LCBub3QgcmVsYXRpdmUgdG8gdGhlIGxlZnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCShy
ZXZpc2lvbiA4ODU0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q29tcGxleFRleHRNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3IEBAIHZv
aWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKIAogICAgIC8vIERyYXcgdGhl
IGdseXBoIGJ1ZmZlciBub3cgYXQgdGhlIHN0YXJ0aW5nIHBvaW50IHJldHVybmVkIGluIHN0YXJ0
WC4KICAgICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQoc3RhcnRYLCBwb2ludC55KCkpOwotICAgIGRy
YXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgc3RhcnRQb2ludCk7CisgICAgZHJh
d0dseXBoQnVmZmVyKGNvbnRleHQsIHJ1biwgZ2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQpOwogfQog
CiB2b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFy
aywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CkBAIC0x
MDQsNyArMTA0LDcgQEAgdm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZQog
ICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRy
YXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBv
aW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKKyAgICBkcmF3RW1waGFzaXNN
YXJrcyhjb250ZXh0LCBydW4sIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50Lngo
KSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93
KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAkocmV2aXNpb24gODg1NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgsNiArMTMxOCw4IEBAIFRleHRSdW4gSW5s
aW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bigKICAgICBpZiAodGV4dFJ1bk5lZWRzUmVuZGVy
aW5nQ29udGV4dChmb250KSkKICAgICAgICAgcnVuLnNldFJlbmRlcmluZ0NvbnRleHQoU1ZHVGV4
dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZSh0ZXh0UmVuZGVyZXIpKTsKIAorICAgIC8vIFBy
b3BhZ2F0ZSB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGNoYXJhY3RlcnMgYnVmZmVyIHRvIHRo
ZSBUZXh0UnVuLCBldmVuIHdoZW4gd2UncmUgb25seSBwcm9jZXNzaW5nIGEgc3Vic3RyaW5nLgor
ICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRSZW5kZXJlci0+dGV4dExlbmd0aCgpKTsK
ICAgICByZXR1cm4gcnVuOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gODg1NDEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU3NCw3ICsxNTc0LDExIEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQgdGV4dFdpZHRo
KFJlbmRlclRleHQKIHsKICAgICBpZiAoaXNGaXhlZFBpdGNoIHx8ICghZnJvbSAmJiBsZW4gPT0g
dGV4dC0+dGV4dExlbmd0aCgpKSB8fCB0ZXh0LT5zdHlsZSgpLT5oYXNUZXh0Q29tYmluZSgpKQog
ICAgICAgICByZXR1cm4gdGV4dC0+d2lkdGgoZnJvbSwgbGVuLCBmb250LCB4UG9zKTsKKwogICAg
IFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGV4dCwgZm9udCwg
dGV4dC0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCB0ZXh0LT5zdHlsZSgpKTsKKyAgICBydW4u
c2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0LT50ZXh0TGVuZ3RoKCkgLSBmcm9tKTsKKyAgICBBU1NF
UlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOworCiAgICAgcnVuLnNl
dEFsbG93VGFicyghY29sbGFwc2VXaGl0ZVNwYWNlKTsKICAgICBydW4uc2V0WFBvcyh4UG9zKTsK
ICAgICByZXR1cm4gZm9udC53aWR0aChydW4pOwpAQCAtMTYwMiw2ICsxNjA2LDkgQEAgc3RhdGlj
IHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCogdAogICAgICAgICByZXR1cm47CiAKICAg
ICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIGZvbnQs
IHRleHQtPmNoYXJhY3RlcnMoKSArIGxhc3RTcGFjZSwgcG9zIC0gbGFzdFNwYWNlLCB0ZXh0LT5z
dHlsZSgpKTsKKyAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0LT50ZXh0TGVuZ3RoKCkg
LSBsYXN0U3BhY2UpOworICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5s
ZW5ndGgoKSk7CisKICAgICBydW4uc2V0QWxsb3dUYWJzKCFjb2xsYXBzZVdoaXRlU3BhY2UpOwog
ICAgIHJ1bi5zZXRYUG9zKHhQb3MgKyBsYXN0U3BhY2VXb3JkU3BhY2luZyk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDg4NTQxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MzEsNiArNjMxLDkgQEAgQUxXQVlTX0lOTElORSBmbG9hdCBSZW5kZXJUZXh0Ojp3aWR0aEZy
bwogICAgIH0KIAogICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRS
dW4oY29uc3RfY2FzdDxSZW5kZXJUZXh0Kj4odGhpcyksIGYsIHRleHQoKS0+Y2hhcmFjdGVycygp
ICsgc3RhcnQsIGxlbiwgc3R5bGUoKSk7CisgICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4
dExlbmd0aCgpIC0gc3RhcnQpOworICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49
IHJ1bi5sZW5ndGgoKSk7CisKICAgICBydW4uc2V0QWxsb3dUYWJzKGFsbG93VGFicygpKTsKICAg
ICBydW4uc2V0WFBvcyh4UG9zKTsKICAgICByZXR1cm4gZi53aWR0aChydW4sIGZhbGxiYWNrRm9u
dHMsIGdseXBoT3ZlcmZsb3cpOwpAQCAtOTE4LDYgKzkyMSw5IEBAIHZvaWQgUmVuZGVyVGV4dDo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAgICAgICAgICAgICAgICBjdXJyTWF4V2lkdGggPSAw
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBUZXh0UnVuIHJ1biA9IFJl
bmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRoaXMsIGYsIHR4dCArIGksIDEsIHN0eWxlKCkp
OworICAgICAgICAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKGxlbiAtIGkpOworICAg
ICAgICAgICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgo
KSk7CisKICAgICAgICAgICAgICAgICBydW4uc2V0QWxsb3dUYWJzKGFsbG93VGFicygpKTsKICAg
ICAgICAgICAgICAgICBydW4uc2V0WFBvcyhsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgpOwogCkBA
IC0xMjk3LDYgKzEzMDMsOSBAQCBmbG9hdCBSZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9t
LCB1CiAgICAgICAgICAgICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBm
YWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKICAgICB9IGVsc2UgewogICAgICAgICBUZXh0
UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0X2Nhc3Q8UmVuZGVy
VGV4dCo+KHRoaXMpLCBmLCB0ZXh0KCktPmNoYXJhY3RlcnMoKSArIGZyb20sIGxlbiwgc3R5bGUo
KSk7CisgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5ndGgoKSAtIGZyb20p
OworICAgICAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkp
OworCiAgICAgICAgIHJ1bi5zZXRBbGxvd1RhYnMoYWxsb3dUYWJzKCkpOwogICAgICAgICBydW4u
c2V0WFBvcyh4UG9zKTsKICAgICAgICAgdyA9IGYud2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBn
bHlwaE92ZXJmbG93KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5s
aW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gODg1NDEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MzAsNiArNDMwLDEwIEBAIFRleHRSdW4gU1ZHSW5saW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFIK
IAogICAgIC8vIFdlIGhhbmRsZSBsZXR0ZXIgJiB3b3JkIHNwYWNpbmcgb3Vyc2VsdmVzLgogICAg
IHJ1bi5kaXNhYmxlU3BhY2luZygpOworCisgICAgLy8gUHJvcGFnYXRlIHRoZSBtYXhpbXVtIGxl
bmd0aCBvZiB0aGUgY2hhcmFjdGVycyBidWZmZXIgdG8gdGhlIFRleHRSdW4sIGV2ZW4gd2hlbiB3
ZSdyZSBvbmx5IHByb2Nlc3NpbmcgYSBzdWJzdHJpbmcuCisgICAgcnVuLnNldENoYXJhY3RlcnNM
ZW5ndGgodGV4dC0+dGV4dExlbmd0aCgpIC0gZnJhZ21lbnQuY2hhcmFjdGVyT2Zmc2V0KTsKKyAg
ICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAgIHJl
dHVybiBydW47CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96855</attachid>
            <date>2011-06-11 04:17:37 -0700</date>
            <delta_ts>2011-06-11 09:50:32 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>PrepPatch2-v2.diff</filename>
            <type>text/plain</type>
            <size>16772</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NjAwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDYtMTEgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFRleHRSdW4gY2hhcmFjdGVyc0xlbmd0aCBt
ZW1iZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYy
NTAxCisKKyAgICAgICAgUHJlcGFyYXRpb24gcGF0Y2ggMjogUHJvcGFnYXRlIHRoZSBtYXhpbXVt
IGxlbmd0aCBvZiB0aGUgY2hhcmFjdGVycyBidWZmZXIgdGhlIFRleHRSdW4gb3BlcmF0ZXMgb24s
IGV2ZW4gd2hlbiB3ZSdyZSBvbmx5IG1lYXN1cmluZyBhIHN1YnN0cmluZy4KKyAgICAgICAgRm9y
IGV4YW1wbGU6IEluIFJlbmRlclRleHQgd2hlbiB3ZSdyZSBtZWFzdXJpbmcgJ2xlbicgY2hhcmFj
dGVycyBzdGFydGluZyBmcm9tICJ0ZXh0KCktPmNoYXJhY3RlcnMoKSArIHN0YXJ0IiwgdGhlcmUn
cyBhIHBvcnRpb24KKyAgICAgICAgb2YgInRleHRMZW5ndGgoKSAtIHN0YXJ0IiBjaGFyYWN0ZXJz
IHRoYXQgd2UncmUgbm90IHByb2Nlc3NpbmcuIEluIG9yZGVyIHRvIHN1cHBvcnQgbGlnYXR1cmVz
IHdoZW4gaW50ZWdyYXRpbmcgU1ZHIEZvbnRzCisgICAgICAgIHdpdGhpbiB0aGUgR2x5cGhQYWdl
IGNvbmNlcHQsIHdlIG5lZWQgdGhpcyBleHRyYSBpbmZvcm1hdGlvbiwgdG8gbG9va3VwIGxpZ2F0
dXJlcyBldmVuIHdoZW4gc2luZ2xlIGNoYXJzIGFyZSBtZWFzdXJlZC4KKyAgICAgICAgSWYgYSBm
b250IGRlZmluZXMgYW4gZWcgImZmbCIgbGlnYXR1cmUsIGFuZCB3ZSdyZSBtZWFzdXJpbmcgdGhl
ICJmIiBvZiAiZmZsIiwgaXQgc2hhbGwgbG9vdWtwIHRoZSAiZmZsIiBnbHlwaCBmcm9tIHRoZSBm
b250LAorICAgICAgICBhbmQgc2tpcCB0aGUgbmV4dCB0d28gY2hhcmFjdGVycyAodGhpcyB3aWxs
IGJlIGRvbmUgaW4gV2lkdGhJdGVyYXRvcikuCisKKyAgICAgICAgVGhpcyBkb2Vzbid0IHlldCBh
ZmZlY3QgYW55IHRlc3QsIHRoZSBuZXcgU1ZHIEZvbnRzIGNvZGUgaXMgbm90IG1lcmdlZCB5ZXQs
IHRoaXMgaXMgdGhlIHByZXBhcmFpb24gcGF0Y2ggMi4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuaDogQWRkIHlldC11bnVzZWQgImNvbnN0IFRleHRSdW4mIiBwYXJhbWV0ZXIg
dG8gZHJhd0dseXBoQnVmZmVyL2RyYXdFbXBoYXNpc01hcmtzLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6IERpdHRvLiBUaGlzIHBhcmFtZXRlciB3aWxsIGJl
IHVzZWQgdG8gbG9vdWtwIHRoZSBUZXh0UnVuUmVuZGVyaW5nQ29udGV4dCBpbiBhIGZvbGxvdy11
cCBwYXRjaC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdTaW1wbGVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uaDogQWRkICJpbnQgbV9jaGFyYWN0ZXJzTGVuZ3RoIiwgc2ltaWxhciB0byAiaW50IG1f
bGVuIi4gSXQgZGVub3RlcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGNoYXJhY3RlcnMgYnVm
ZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHdlJ3JlIGhv
bGRpbmcuIEl0IGRlZmF1bHRzIHRvIHRoZSBwYXNzZWQgImxlbiIgdmFsdWUsIGJ1dCBpcyBvdmVy
cmlkZW4gYnkgZXhwbGljaXQgc2V0Q2hhcmFjdGVyc0xlbmd0aCBjYWxscy4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRSdW46OlRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bjo6Y2hh
cmFjdGVyc0xlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRDaGFyYWN0ZXJz
TGVuZ3RoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0
TWFjLmNwcDogUGFzcyBUZXh0UnVuIGRvIGRyYXdHbHlwaEJ1ZmZlci9kcmF3RW1waGFzaXNNYXJr
cy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHA6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRy
YXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3d4L0ZvbnRXeC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0Nv
bXBsZXhUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9y
Q29tcGxleFRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDogQ2Fs
bCBzZXRDaGFyYWN0ZXJzTGVuZ3RoIG9uIHRoZSBwcm9jZXNzZWQgVGV4dFJ1bi4KKyAgICAgICAg
KFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OnRleHRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjp0cnlIeXBoZW5hdGluZyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHQ6OndpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRC
b3guY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6OmNvbnN0
cnVjdFRleHRSdW4pOgorCiAyMDExLTA2LTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIGJvZ3VzIEFTU0VSVHMuICBUaGVzZSBBU1NFUlRzIHVzZWQg
dG8gYmUgY29ycmVjdCBiZWZvcmUgSQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuaAkocmV2aXNpb24gODg1NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw4ICsxNjMsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1
biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lk
IGRyYXdFbXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBU
ZXh0UnVuJiwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiwgaW50
IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAgdm9pZCBkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IFNpbXBsZUZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwg
aW50IHRvLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgdm9pZCBkcmF3R2x5cGhCdWZm
ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50
JikgY29uc3Q7Ci0gICAgdm9pZCBkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEdseXBoQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRmxv
YXRQb2ludCYpIGNvbnN0OworICAgIHZvaWQgZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IEZsb2F0UG9pbnQm
KSBjb25zdDsKKyAgICB2b2lkIGRyYXdFbXBoYXNpc01hcmtzKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFRleHRSdW4mLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiwgR2x5cGhCdWZmZXIqLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0
IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJl
Y3Qgc2VsZWN0aW9uUmVjdEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0
UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHJldmlzaW9u
IDg4NTQxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRo
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgRm9udDo6ZHJhd1Np
bXBsZVRleHQoR3JhcGhpY3NDb250ZXgKICAgICAgICAgcmV0dXJuOwogCiAgICAgRmxvYXRQb2lu
dCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIoY29u
dGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQpOworICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250
ZXh0LCBydW4sIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKIH0KIAogdm9pZCBGb250OjpkcmF3
RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CkBAIC0zNzMsMTAgKzM3MywxMCBAQCB2
b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4CiAgICAgaWYgKGdseXBoQnVm
ZmVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZHJhd0VtcGhhc2lzTWFya3Mo
Y29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlh
bEFkdmFuY2UsIHBvaW50LnkoKSkpOworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIHJ1
biwgZ2x5cGhCdWZmZXIsIG1hcmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFu
Y2UsIHBvaW50LnkoKSkpOwogfQogCi12b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit2b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBHbHlwaEJ1ZmZlciYg
Z2x5cGhCdWZmZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogeyAgIAogICAgIC8v
IERyYXcgZWFjaCBjb250aWd1b3VzIHJ1biBvZiBnbHlwaHMgdGhhdCB1c2UgdGhlIHNhbWUgZm9u
dCBkYXRhLgogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSA9IGdseXBoQnVmZmVy
LmZvbnREYXRhQXQoMCk7CkBAIC00MTgsNyArNDE4LDcgQEAgaW5saW5lIHN0YXRpYyBmbG9hdCBv
ZmZzZXRUb01pZGRsZU9mR2x5cAogICAgIHJldHVybiBvZmZzZXRUb01pZGRsZU9mR2x5cGgoZ2x5
cGhCdWZmZXIuZm9udERhdGFBdChpKSwgZ2x5cGhCdWZmZXIuZ2x5cGhBdChpKSk7CiB9CiAKLXZv
aWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit2b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBHbHlw
aEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7CiAg
ICAgaWYgKCFnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCkBA
IC00NDQsNyArNDQ0LDcgQEAgdm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0Nv
bgogICAgIH0KICAgICBtYXJrQnVmZmVyLmFkZChnbHlwaEJ1ZmZlci5nbHlwaEF0KGdseXBoQnVm
ZmVyLnNpemUoKSAtIDEpID8gbWFya0dseXBoIDogc3BhY2VHbHlwaCwgbWFya0ZvbnREYXRhLCAw
KTsKIAotICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBtYXJrQnVmZmVyLCBzdGFydFBvaW50
KTsKKyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgcnVuLCBtYXJrQnVmZmVyLCBzdGFydFBv
aW50KTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgJ
KHJldmlzaW9uIDg4NTQxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFJ1bi5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIFRl
eHRSdW4oY29uc3QgVUNoYXIqIGMsIGludCBsZW4sIGJvb2wgYWxsb3dUYWJzID0gZmFsc2UsIGZs
b2F0IHhwb3MgPSAwLCBmbG9hdCBleHBhbnNpb24gPSAwLCBFeHBhbnNpb25CZWhhdmlvciBleHBh
bnNpb25CZWhhdmlvciA9IEFsbG93VHJhaWxpbmdFeHBhbnNpb24gfCBGb3JiaWRMZWFkaW5nRXhw
YW5zaW9uLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUiwgYm9vbCBkaXJlY3Rpb25hbE92
ZXJyaWRlID0gZmFsc2UpCiAgICAgICAgIDogbV9jaGFyYWN0ZXJzKGMpCisgICAgICAgICwgbV9j
aGFyYWN0ZXJzTGVuZ3RoKGxlbikKICAgICAgICAgLCBtX2xlbihsZW4pCiAgICAgICAgICwgbV94
cG9zKHhwb3MpCiAgICAgICAgICwgbV9leHBhbnNpb24oZXhwYW5zaW9uKQpAQCAtNjQsNiArNjUs
NyBAQCBwdWJsaWM6CiAKICAgICBUZXh0UnVuKGNvbnN0IFN0cmluZyYgcywgYm9vbCBhbGxvd1Rh
YnMgPSBmYWxzZSwgZmxvYXQgeHBvcyA9IDAsIGZsb2F0IGV4cGFuc2lvbiA9IDAsIEV4cGFuc2lv
bkJlaGF2aW9yIGV4cGFuc2lvbkJlaGF2aW9yID0gQWxsb3dUcmFpbGluZ0V4cGFuc2lvbiB8IEZv
cmJpZExlYWRpbmdFeHBhbnNpb24sIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSLCBib29s
IGRpcmVjdGlvbmFsT3ZlcnJpZGUgPSBmYWxzZSkKICAgICAgICAgOiBtX2NoYXJhY3RlcnMocy5j
aGFyYWN0ZXJzKCkpCisgICAgICAgICwgbV9jaGFyYWN0ZXJzTGVuZ3RoKHMubGVuZ3RoKCkpCiAg
ICAgICAgICwgbV9sZW4ocy5sZW5ndGgoKSkKICAgICAgICAgLCBtX3hwb3MoeHBvcykKICAgICAg
ICAgLCBtX2V4cGFuc2lvbihleHBhbnNpb24pCkBAIC04Myw4ICs4NSwxMCBAQCBwdWJsaWM6CiAK
ICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycygpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcmFjdGVy
czsgfQogICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbjsgfQorICAgIGludCBj
aGFyYWN0ZXJzTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jaGFyYWN0ZXJzTGVuZ3RoOyB9CiAK
ICAgICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIGMsIGludCBsZW4pIHsgbV9jaGFyYWN0ZXJz
ID0gYzsgbV9sZW4gPSBsZW47IH0KKyAgICB2b2lkIHNldENoYXJhY3RlcnNMZW5ndGgoaW50IGNo
YXJhY3RlcnNMZW5ndGgpIHsgbV9jaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVyc0xlbmd0aDsg
fQogCiAjaWYgRU5BQkxFKFNWRykKICAgICBmbG9hdCBob3Jpem9udGFsR2x5cGhTdHJldGNoKCkg
Y29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsR2x5cGhTdHJldGNoOyB9CkBAIC0xMjcsNiArMTMx
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGNvbnN0IFVDaGFyKiBtX2NoYXJhY3RlcnM7
CisgICAgaW50IG1fY2hhcmFjdGVyc0xlbmd0aDsgLy8gTWFya3MgdGhlIGVuZCBvZiB0aGUgbV9j
aGFyYWN0ZXJzIGJ1ZmZlci4gRGVmYXVsdCBlcXVhbHMgdG8gbV9sZW4uCiAgICAgaW50IG1fbGVu
OwogCiAgICAgLy8gbV94cG9zIGlzIHRoZSB4IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBsZWZ0
IHN0YXJ0IG9mIHRoZSB0ZXh0IGxpbmUsIG5vdCByZWxhdGl2ZSB0byB0aGUgbGVmdApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDb21wbGV4VGV4dE1hYy5jcHAJKHJldmlzaW9uIDg4NTQxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZQogCiAgICAgLy8gRHJhdyB0aGUgZ2x5cGggYnVmZmVyIG5vdyBhdCB0aGUgc3RhcnRpbmcg
cG9pbnQgcmV0dXJuZWQgaW4gc3RhcnRYLgogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludChzdGFy
dFgsIHBvaW50LnkoKSk7Ci0gICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVy
LCBzdGFydFBvaW50KTsKKyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgcnVuLCBnbHlwaEJ1
ZmZlciwgc3RhcnRQb2ludCk7CiB9CiAKIHZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JD
b21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwg
Y29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZy
b20sIGludCB0bykgY29uc3QKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIEZvbnQ6OmRyYXdFbXBo
YXNpc01hcmtzRm9yQ29tcGxleFRlCiAgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZm
ZXIsIG1hcmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50Lnko
KSkpOworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIHJ1biwgZ2x5cGhCdWZmZXIsIG1h
cmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOwog
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYg
cnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCShyZXZpc2lvbiA4ODU0MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdy
YXBoaWNzQ29udGUKIAogICAgIC8vIERyYXcgdGhlIGdseXBoIGJ1ZmZlciBub3cgYXQgdGhlIHN0
YXJ0aW5nIHBvaW50IHJldHVybmVkIGluIHN0YXJ0WC4KICAgICBGbG9hdFBvaW50IHN0YXJ0UG9p
bnQoc3RhcnRYLCBwb2ludC55KCkpOwotICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlw
aEJ1ZmZlciwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIHJ1biwg
Z2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQpOwogfQogCiB2b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01h
cmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVu
JiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQs
IGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBGb250Ojpk
cmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZQogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGds
eXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBw
b2ludC55KCkpKTsKKyAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBydW4sIGdseXBoQnVm
ZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55
KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
LCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250V3guY3BwCShyZXZpc2lvbiA4ODU0MSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRXeC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChH
cmFwaGljc0NvbnRlCiAKICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBz
dGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBv
aW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5
cGhCdWZmZXIsIHN0YXJ0UG9pbnQpOworICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBydW4s
IGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICNlbmRpZgpAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NG
b3JDb21wbGV4VGUKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBnbHlwaEJ1ZmZlciwgbWFyaywg
RmxvYXRQb2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7CisgICAg
ZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgcnVuLCBnbHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQ
b2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7CiB9CiAKIGZsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyop
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CShyZXZpc2lvbiA4ODU0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxOCw2ICsxMzE4LDggQEAgVGV4dFJ1biBJbmxp
bmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKAogICAgIGlmICh0ZXh0UnVuTmVlZHNSZW5kZXJp
bmdDb250ZXh0KGZvbnQpKQogICAgICAgICBydW4uc2V0UmVuZGVyaW5nQ29udGV4dChTVkdUZXh0
UnVuUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKHRleHRSZW5kZXJlcikpOwogCisgICAgLy8gUHJv
cGFnYXRlIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgY2hhcmFjdGVycyBidWZmZXIgdG8gdGhl
IFRleHRSdW4sIGV2ZW4gd2hlbiB3ZSdyZSBvbmx5IHByb2Nlc3NpbmcgYSBzdWJzdHJpbmcuCisg
ICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dFJlbmRlcmVyLT50ZXh0TGVuZ3RoKCkpOwog
ICAgIHJldHVybiBydW47CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA4ODU0MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTc0LDcgKzE1NzQsMTEgQEAgc3RhdGljIGlubGluZSBmbG9hdCB0ZXh0V2lkdGgo
UmVuZGVyVGV4dAogewogICAgIGlmIChpc0ZpeGVkUGl0Y2ggfHwgKCFmcm9tICYmIGxlbiA9PSB0
ZXh0LT50ZXh0TGVuZ3RoKCkpIHx8IHRleHQtPnN0eWxlKCktPmhhc1RleHRDb21iaW5lKCkpCiAg
ICAgICAgIHJldHVybiB0ZXh0LT53aWR0aChmcm9tLCBsZW4sIGZvbnQsIHhQb3MpOworCiAgICAg
VGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0ZXh0LCBmb250LCB0
ZXh0LT5jaGFyYWN0ZXJzKCkgKyBmcm9tLCBsZW4sIHRleHQtPnN0eWxlKCkpOworICAgIHJ1bi5z
ZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQtPnRleHRMZW5ndGgoKSAtIGZyb20pOworICAgIEFTU0VS
VChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7CisKICAgICBydW4uc2V0
QWxsb3dUYWJzKCFjb2xsYXBzZVdoaXRlU3BhY2UpOwogICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwog
ICAgIHJldHVybiBmb250LndpZHRoKHJ1bik7CkBAIC0xNjAyLDYgKzE2MDYsOSBAQCBzdGF0aWMg
dm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0CiAgICAgICAgIHJldHVybjsKIAogICAg
IFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGV4dCwgZm9udCwg
dGV4dC0+Y2hhcmFjdGVycygpICsgbGFzdFNwYWNlLCBwb3MgLSBsYXN0U3BhY2UsIHRleHQtPnN0
eWxlKCkpOworICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQtPnRleHRMZW5ndGgoKSAt
IGxhc3RTcGFjZSk7CisgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxl
bmd0aCgpKTsKKwogICAgIHJ1bi5zZXRBbGxvd1RhYnMoIWNvbGxhcHNlV2hpdGVTcGFjZSk7CiAg
ICAgcnVuLnNldFhQb3MoeFBvcyArIGxhc3RTcGFjZVdvcmRTcGFjaW5nKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gODg1NDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYzMSw2ICs2MzEsOSBAQCBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlbmRlclRleHQ6OndpZHRoRnJv
CiAgICAgfQogCiAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1
bihjb25zdF9jYXN0PFJlbmRlclRleHQqPih0aGlzKSwgZiwgdGV4dCgpLT5jaGFyYWN0ZXJzKCkg
KyBzdGFydCwgbGVuLCBzdHlsZSgpKTsKKyAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0
TGVuZ3RoKCkgLSBzdGFydCk7CisgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0g
cnVuLmxlbmd0aCgpKTsKKwogICAgIHJ1bi5zZXRBbGxvd1RhYnMoYWxsb3dUYWJzKCkpOwogICAg
IHJ1bi5zZXRYUG9zKHhQb3MpOwogICAgIHJldHVybiBmLndpZHRoKHJ1biwgZmFsbGJhY2tGb250
cywgZ2x5cGhPdmVyZmxvdyk7CkBAIC05MTgsNiArOTIxLDkgQEAgdm9pZCBSZW5kZXJUZXh0Ojpj
b21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCA9IDA7
CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVu
ZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGhpcywgZiwgdHh0ICsgaSwgMSwgc3R5bGUoKSk7
CisgICAgICAgICAgICAgICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgobGVuIC0gaSk7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgp
KTsKKwogICAgICAgICAgICAgICAgIHJ1bi5zZXRBbGxvd1RhYnMoYWxsb3dUYWJzKCkpOwogICAg
ICAgICAgICAgICAgIHJ1bi5zZXRYUG9zKGxlYWRXaWR0aCArIGN1cnJNYXhXaWR0aCk7CiAKQEAg
LTEyOTcsNiArMTMwMyw5IEBAIGZsb2F0IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20s
IHUKICAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3MsIGZh
bGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFRleHRS
dW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oY29uc3RfY2FzdDxSZW5kZXJU
ZXh0Kj4odGhpcyksIGYsIHRleHQoKS0+Y2hhcmFjdGVycygpICsgZnJvbSwgbGVuLCBzdHlsZSgp
KTsKKyAgICAgICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dExlbmd0aCgpIC0gZnJvbSk7
CisgICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7
CisKICAgICAgICAgcnVuLnNldEFsbG93VGFicyhhbGxvd1RhYnMoKSk7CiAgICAgICAgIHJ1bi5z
ZXRYUG9zKHhQb3MpOwogICAgICAgICB3ID0gZi53aWR0aChydW4sIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxp
bmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA4ODU0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQz
MCw2ICs0MzAsMTAgQEAgVGV4dFJ1biBTVkdJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0Ugog
CiAgICAgLy8gV2UgaGFuZGxlIGxldHRlciAmIHdvcmQgc3BhY2luZyBvdXJzZWx2ZXMuCiAgICAg
cnVuLmRpc2FibGVTcGFjaW5nKCk7CisKKyAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGltdW0gbGVu
Z3RoIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3aGVuIHdl
J3JlIG9ubHkgcHJvY2Vzc2luZyBhIHN1YnN0cmluZy4KKyAgICBydW4uc2V0Q2hhcmFjdGVyc0xl
bmd0aCh0ZXh0LT50ZXh0TGVuZ3RoKCkgLSBmcmFnbWVudC5jaGFyYWN0ZXJPZmZzZXQpOworICAg
IEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7CiAgICAgcmV0
dXJuIHJ1bjsKIH0KIAo=
</data>
<flag name="review"
          id="90642"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>