<?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>92924</bug_id>
          
          <creation_ts>2012-08-01 17:11:36 -0700</creation_ts>
          <short_desc>[chromium] Move compositor HUD font atlas initialization code out of compositor core</short_desc>
          <delta_ts>2012-08-01 18:18:57 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>684787</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 17:11:36 -0700</bug_when>
    <thetext>[chromium] Move compositor HUD font atlas initialization code out of compositor core</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684789</commentid>
    <comment_count>1</comment_count>
      <attachid>155930</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 17:15:34 -0700</bug_when>
    <thetext>Created attachment 155930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684792</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 17:17:04 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684802</commentid>
    <comment_count>3</comment_count>
      <attachid>155930</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 17:23:43 -0700</bug_when>
    <thetext>Comment on attachment 155930
Patch

Attachment 155930 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13415384</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684808</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 17:31:53 -0700</bug_when>
    <thetext>Whoops, forgot to fix some unit tests.  Will update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684818</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-01 17:42:55 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=155930&amp;action=review

Looks good in general.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3675
&gt; +                TRACE_EVENT0(&quot;cc&quot;, &quot;HeadsUpDisplayLayerChromium::initializeFontAtlas&quot;);

Out of date.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684825</commentid>
    <comment_count>6</comment_count>
      <attachid>155937</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 17:55:39 -0700</bug_when>
    <thetext>Created attachment 155937
fix trace and unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684826</commentid>
    <comment_count>7</comment_count>
      <attachid>155937</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-01 17:57:57 -0700</bug_when>
    <thetext>Comment on attachment 155937
fix trace and unit test

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684827</commentid>
    <comment_count>8</comment_count>
      <attachid>155938</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 18:00:26 -0700</bug_when>
    <thetext>Created attachment 155938
remove unnecessary include of CompositorHUDFontAtlas.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684831</commentid>
    <comment_count>9</comment_count>
      <attachid>155938</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-01 18:07:20 -0700</bug_when>
    <thetext>Comment on attachment 155938
remove unnecessary include of CompositorHUDFontAtlas.h

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684838</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-01 18:18:57 -0700</bug_when>
    <thetext>Committed r124396: &lt;http://trac.webkit.org/changeset/124396&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155930</attachid>
            <date>2012-08-01 17:15:34 -0700</date>
            <delta_ts>2012-08-01 17:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92924-20120801171515.patch</filename>
            <type>text/plain</type>
            <size>24500</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhOGFhNTc0Mjc1YzJm
NjBjYjljNzhkN2FmYTE2NjA3ZWRmOWU5N2U0Li43NTc1MGQ5NTJlNTQ5ZWQwMjYxMWI4ODZiYjk4
ZTg4M2RiY2RiYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0wMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBjb21wb3NpdG9yIEhVRCBmb250IGF0bGFzIGluaXRpYWxpemF0aW9uIGNvZGUgb3V0
IG9mIGNvbXBvc2l0b3IgY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgY2hyb21pdW0gY29tcG9zaXRvciBkb2VzIG5vdCBoYXZlIGFueSB0ZXh0
IHJlbmRlcmluZyBjYXBhYmlsaXRpZXMuIEl0IGdlbmVyYWxseSBkb2VzIG5vdCBuZWVkIHRoZW0s
IGJ1dCBpdAorICAgICAgICBpcyBoZWxwZnVsIGZvciBzb21lIGRlYnVnZ2luZyBhaWRzIHRvIGJl
IGFibGUgdG8gcmVuZGVyIGF0IGxlYXN0IEFTQ0lJIHRleHQgdG8gdGhlIHNjcmVlbi4gVGhpcyBw
cm92aWRlcyBhbiBBUEkKKyAgICAgICAgb24gV2ViTGF5ZXJUcmVlVmlldyBieSB3aGljaCBhbiBl
bWJlZGRlciBjYW4gcHJvdmlkZSBhbiBBU0NJSSBnbHlwaCBhdGxhcyB0byB1c2UgZm9yIGRpc3Bs
YXlpbmcgZGVidWcKKyAgICAgICAgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmlldyk6CisK
IDIwMTItMDgtMDEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAg
ICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgRXh0cmFEYXRhIGNhcGFiaWxpdHkgdG8gTWVkaWFT
dHJlYW1Tb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MzEzNGI0NWY0ODZkODc3MGQzYzlhNmZjMDNlMTM1
OTRhY2FjNDM5Li5hZDkzNDJkYzc1MWExOTdmYjNjNGZiZDNmY2M5OWQyOThiYmI1Nzg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNTQgQEAKIDIwMTItMDgtMDEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIE1vdmUgY29tcG9zaXRvciBI
VUQgZm9udCBhdGxhcyBpbml0aWFsaXphdGlvbiBjb2RlIG91dCBvZiBjb21wb3NpdG9yIGNvcmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtb3Zl
cyB0aGUgSFVEIGZvbnQgYXRsYXMgaW5pdGlhbGl6YXRpb24gY29kZSBvdXQgb2YgdGhlIGNvbXBv
c2l0b3IgaW1wbGVtZW50YXRpb24gdG8gY3V0IG91dCBGb250LXJlbGF0ZWQKKyAgICAgICAgZGVw
ZW5kZW5jaWVzLiBUaGUgbmV3IGZsb3cgaXMgdGhhdCBhbiBlbWJlZGRlciBjYW4gcGFzcyBhIGZv
bnQgYXRsYXMgdG8gdGhlIENDTGF5ZXJUcmVlSG9zdCwgYWZ0ZXIgd2hpY2ggdGhlCisgICAgICAg
IGF0bGFzIGlzIHByb3ZpZGVkIHRoZSBIVUQgbGF5ZXIgKGlmIGFueSkgb24gdGhlIG5leHQgY29t
bWl0LiBUaGUgSFVEIGxheWVyIHJlbmRlcnMgdGV4dCB1c2luZyB0aGUgZm9udCBhdGxhcyBpZgor
ICAgICAgICBpdCBoYXMgYW55IGlmIHRoZSBzZXR0aW5ncyByZXF1aXJlIHRleHQuCisKKyAgICAg
ICAgSFVEIHRlc3RlZCBtYW51YWxseSwgd2UgZG9uJ3QgaGF2ZSBhdXRvbWF0ZWQgdGVzdHMgZm9y
IHRoaXMgZGVidWdnaW5nLW9ubHkgZmVhdHVyZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250QXRsYXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdG9ySFVERm9udEF0bGFzOjpnZW5lcmF0ZUZv
bnRBdGxhcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRv
ckhVREZvbnRBdGxhcy5oOgorICAgICAgICAoQ29tcG9zaXRvckhVREZvbnRBdGxhcyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6
SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkhlYWRzVXBE
aXNwbGF5TGF5ZXJDaHJvbWl1bTo6c2V0Rm9udEF0bGFzKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpjcmVhdGVDQ0xh
eWVySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06
OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0ZvbnRBdGxhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZvbnRBdGxhczo6Q0NGb250QXRs
YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFz
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRm9udEF0bGFzOjpj
cmVhdGUpOgorICAgICAgICAoQ0NGb250QXRsYXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6Q0NIZWFkc1VwRGlzcGxheUxheWVy
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpzZXRG
b250QXRsYXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKENDSGVh
ZHNVcERpc3BsYXlMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3Q6OnNldEZvbnRBdGxhcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdDo6d2lsbENvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdCk6CisKKzIwMTItMDgtMDEgIEphbWVzIFJvYmluc29u
ICA8amFtZXNyQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1dIE1vdmUgY29tcG9z
aXRvciBIVUQgZm9udCBhdGxhcyBnZW5lcmF0aW9uIG91dCBvZiBjb21wb3NpdG9yIGNvcmUKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTAxCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGI4NDdjN2M2MDVjZTFhM2ZjMjI0MGQyZjkwNDdl
ZDg2OTkzMTFkNy4uYTViZjMxNzI0Y2JmZDVhYjM2MTJkNDg4Yjk2MDFkZDAwMTgzZTFmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOC0wMSAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
TW92ZSBjb21wb3NpdG9yIEhVRCBmb250IGF0bGFzIGluaXRpYWxpemF0aW9uIGNvZGUgb3V0IG9m
IGNvbXBvc2l0b3IgY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTI5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGluaXRpYWxpemVzIHRoZSBjb21wb3NpdG9yJ3MgZm9udCBhdGxhcyB3aGVu
IGluaXRpYWxpemF0aW9uIHRoZSBjb21wb3NpdG9yIGlmIHRoZSAiU2hvdyBGUFMgY291bnRlciIg
b3IKKyAgICAgICAgIlNob3cgbGF5ZXIgdHJlZSIgc2V0dGluZ3MgYXJlIHRydWUuCisKKyAgICAg
ICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXc6OnNldEZvbnRBdGxhcyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUpOgorCiAyMDEyLTA4LTAxICBQZXRlciBCZXZlcmxv
byAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVGV4dCBBdXRvc2l6aW5nXSBQcm92
aWRlIGFuIEFQSSBmb3IgaW5mbHVlbmNpbmcgdGhlIGZvbnQgc2NhbGUgZmFjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4
IDUzYmVlYmQ1M2U4ODVmNTllYjBhMmI3NzQxMmRmNjU5ODdkYzlkMjUuLjM3ZTU5MzMyYTNhYTli
MTBlNWRhOWMwNTc2YzI1NTJjNmIxZjEzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIFdlYkxheWVyVHJlZVZpZXdfaAogI2RlZmluZSBXZWJMYXllclRyZWVWaWV3X2gKIAorI2lu
Y2x1ZGUgIlNrQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3IuaCIKICNpbmNsdWRlICJXZWJD
b21tb24uaCIKICNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgpAQCAtMTc1LDYgKzE3NiwxMCBA
QCBwdWJsaWM6CiAgICAgLy8gVGhpcyBjYWxsIGlzIHJlbGF0aXZlbHkgZXhwZW5zaXZlIGluIHRo
cmVhZGVkIG1vZGUgYXMgaXQgYmxvY2tzIG9uIHRoZSBjb21wb3NpdG9yIHRocmVhZC4KICAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgcmVuZGVyaW5nU3RhdHMoV2ViUmVuZGVyaW5nU3RhdHMmKSBjb25z
dDsKIAorICAgIC8vIFByb3ZpZGVzIGEgZm9udCBhdGxhcyB0byB1c2UgZm9yIGRlYnVnIHZpc3Vh
bGl6YXRpb25zLiBUaGUgYXRsYXMgbXVzdCBiZSBhIGJpdG1hcCBjb250YWluaW5nIGdseXBoIGRh
dGEsIGEgdGFibGUgb2YKKyAgICAvLyBBU0NJSSBjaGFyYWN0ZXIgdmFsdWVzIHRvIGEgc3VicmVj
dGFuZ2xlIG9mIHRoZSBhdGxhcyByZXByZXNlbnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgZ2x5cGgs
IGFuZCB0aGUgZ2x5cGggaGVpZ2h0LgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRGb250QXRs
YXMoU2tCaXRtYXAsIFdlYlJlY3QgYXNjaWlUb1JlY3RUYWJsZVsxMjhdLCBpbnQgZm9udEhlaWdo
dCk7CisKICAgICAvLyBTaW11bGF0ZXMgYSBsb3N0IGNvbnRleHQuIEZvciB0ZXN0aW5nIG9ubHku
CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGlt
ZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250QXRsYXMuY3BwCmluZGV4IDkxNDEy
Yzc0ZjJlNTY4MDI3YTliYmQ2YTg0MTVkNjUxNDVkMThjNTEuLmI1M2MxMjkyMjM2ODE1NmU2MDE3
YmU3ZmQxYmE5NDhlNmQ2Y2I3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250QXRsYXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250QXRs
YXMuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUg
InNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oIgogCit1c2luZyBXZWJLaXQ6OldlYlJlY3Q7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2RlZmluZSBBVExBU19TSVpFIDEyOApAQCAtNDgsMTAg
KzUwLDEwIEBAIHN0YXRpYyB2b2lkIHdyYXBQb3NpdGlvbklmTmVlZGVkKEludFBvaW50JiBwb3Np
dGlvbiwgaW50IHRleHRXaWR0aCwgaW50IHRleHRIZWlnCiB9CiAKIC8vIFBhaW50cyB0aGUgZm9u
dCBpbnRvIHRoZSBhdGxhcywgZnJvbSBsZWZ0LXRvLXJpZ2h0LCB0b3AtdG8tYm90dG9tLCBzdGFy
dGluZyBhdAotLy8gc3RhcnRpbmdQb3NpdGlvbi4gQXQgdGhlIHNhbWUgdGltZSwgaXQgdXBkYXRl
cyB0aGUgYXNjaWktdG8tSW50UmVjdCBtYXBwaW5nIGZvcgorLy8gc3RhcnRpbmdQb3NpdGlvbi4g
QXQgdGhlIHNhbWUgdGltZSwgaXQgdXBkYXRlcyB0aGUgYXNjaWktdG8tV2ViUmVjdCBtYXBwaW5n
IGZvcgogLy8gZWFjaCBjaGFyYWN0ZXIuIEJ5IGRvaW5nIHRoaW5ncyB0aGlzIHdheSwgaXQgaXMg
cG9zc2libGUgdG8gc3VwcG9ydCB2YXJpYWJsZS13aWR0aAogLy8gZm9udHMgYW5kIG11bHRpcGxl
IGZvbnRzIG9uIHRoZSBzYW1lIGF0bGFzLgotU2tCaXRtYXAgQ29tcG9zaXRvckhVREZvbnRBdGxh
czo6Z2VuZXJhdGVGb250QXRsYXMoSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCYg
Zm9udEhlaWdodCkKK1NrQml0bWFwIENvbXBvc2l0b3JIVURGb250QXRsYXM6OmdlbmVyYXRlRm9u
dEF0bGFzKFdlYlJlY3QgYXNjaWlUb1JlY3RUYWJsZVsxMjhdLCBpbnQmIGZvbnRIZWlnaHQpCiB7
CiAgICAgZm9udEhlaWdodCA9IDE0OwogCkBAIC05MSw3ICs5Myw3IEBAIFNrQml0bWFwIENvbXBv
c2l0b3JIVURGb250QXRsYXM6OmdlbmVyYXRlRm9udEF0bGFzKEludFJlY3QgYXNjaWlUb1JlY3RU
YWJsZVsxMjhdCiAgICAgICAgIGF0bGFzQ29udGV4dC5zdHJva2VSZWN0KEZsb2F0UmVjdChGbG9h
dFBvaW50KHBvc2l0aW9uLngoKSArIDEsIHBvc2l0aW9uLnkoKSAtIHRleHRIZWlnaHQgKyAxICsg
aW5mbGF0aW9uKSwgRmxvYXRTaXplKHRleHRXaWR0aCAtIDIsIHRleHRIZWlnaHQgLSAyIC0gaW5m
bGF0aW9uKSksIDEpOwogCiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHJlY3QgdGhhdCB3b3Vs
ZCBiZSBjb3BpZWQgd2hlbiBkcmF3aW5nIHRoaXMgZ2x5cGggZnJvbSB0aGUgYXRsYXMuCi0gICAg
ICAgIGFzY2lpVG9SZWN0VGFibGVbMF0gPSBJbnRSZWN0KEludFBvaW50KHBvc2l0aW9uLngoKSwg
cG9zaXRpb24ueSgpIC0gdGV4dEhlaWdodCksIEludFNpemUodGV4dFdpZHRoLCB0ZXh0SGVpZ2h0
ICsgaW5mbGF0aW9uKSk7CisgICAgICAgIGFzY2lpVG9SZWN0VGFibGVbMF0gPSBXZWJSZWN0KHBv
c2l0aW9uLngoKSwgcG9zaXRpb24ueSgpIC0gdGV4dEhlaWdodCwgdGV4dFdpZHRoLCB0ZXh0SGVp
Z2h0ICsgaW5mbGF0aW9uKTsKIAogICAgICAgICAvLyBJbmNyZW1lbnQgdG8gdGhlIHBvc2l0aW9u
IHdoZXJlIHRoZSBuZXh0IGdseXBoIHdpbGwgYmUgcGxhY2VkLgogICAgICAgICBwb3NpdGlvbi5z
ZXRYKHBvc2l0aW9uLngoKSArIHRleHRXaWR0aCk7CkBAIC0xMTQsNyArMTE2LDcgQEAgU2tCaXRt
YXAgQ29tcG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRsYXMoSW50UmVjdCBhc2Np
aVRvUmVjdFRhYmxlWzEyOF0KICAgICAgICAgYXRsYXNDb250ZXh0LmRyYXdUZXh0KGZvbnQsIHRl
eHQsIHBvc2l0aW9uKTsKIAogICAgICAgICAvLyBJbml0aWFsaXplIHRoZSByZWN0IHRoYXQgd291
bGQgYmUgY29waWVkIHdoZW4gZHJhd2luZyB0aGlzIGdseXBoIGZyb20gdGhlIGF0bGFzLgotICAg
ICAgICBhc2NpaVRvUmVjdFRhYmxlW2ldID0gSW50UmVjdChJbnRQb2ludChwb3NpdGlvbi54KCks
IHBvc2l0aW9uLnkoKSAtIHRleHRIZWlnaHQpLCBJbnRTaXplKHRleHRXaWR0aCwgdGV4dEhlaWdo
dCArIGluZmxhdGlvbikpOworICAgICAgICBhc2NpaVRvUmVjdFRhYmxlW2ldID0gV2ViUmVjdChw
b3NpdGlvbi54KCksIHBvc2l0aW9uLnkoKSAtIHRleHRIZWlnaHQsIHRleHRXaWR0aCwgdGV4dEhl
aWdodCArIGluZmxhdGlvbik7CiAKICAgICAgICAgLy8gSW5jcmVtZW50IHRvIHRoZSBwb3NpdGlv
biB3aGVyZSB0aGUgbmV4dCBnbHlwaCB3aWxsIGJlIHBsYWNlZC4KICAgICAgICAgcG9zaXRpb24u
c2V0WChwb3NpdGlvbi54KCkgKyB0ZXh0V2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRvckhVREZv
bnRBdGxhcy5oCmluZGV4IGM1MmM2ZDE2ZjFhZDlkN2E1YzI4NTRiOWQ3MThhNDc3ODEzMGU1NmEu
LjkxYmFiNWQ2MmM3YjRkNDRkM2MzNDI1YTZhN2M2NGJhZmY0MjUxNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250
QXRsYXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
b21wb3NpdG9ySFVERm9udEF0bGFzLmgKQEAgLTI2LDggKzI2LDggQEAKICNpZm5kZWYgQ29tcG9z
aXRvckhVREZvbnRBdGxhc19oCiAjZGVmaW5lIENvbXBvc2l0b3JIVURGb250QXRsYXNfaAogCi0j
aW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlNrQml0bWFwLmgiCisjaW5jbHVkZSA8cHVi
bGljL1dlYlJlY3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiw3ICszNiw3IEBA
IHB1YmxpYzoKICAgICAvLyBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgY2FuIGdlbmVy
YXRlIGEgZm9udCBhdGxhcyBzdWl0YWJsZSBmb3IgdGhlIGNvbXBvc2l0b3IncyBoZWFkcyB1cCBk
aXNwbGF5LgogICAgIC8vIFJldHVybnMgYSBiaXRtYXAgY29udGFpbmluZyBnbHlwaHMgYW5kIHBv
cHVsYXRlcyBhc2NpaVRvUmVjdFRhYmxlIHdpdGggdGhlCiAgICAgLy8gbG9jYXRpb24gb2YgZWFj
aCBnbHlwaC4KLSAgICBzdGF0aWMgU2tCaXRtYXAgZ2VuZXJhdGVGb250QXRsYXMoSW50UmVjdCBh
c2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCYgZm9udEhlaWdodCk7CisgICAgc3RhdGljIFNrQml0
bWFwIGdlbmVyYXRlRm9udEF0bGFzKFdlYktpdDo6V2ViUmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEy
OF0sIGludCYgZm9udEhlaWdodCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFkc1Vw
RGlzcGxheUxheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmNwcAppbmRleCBmMjU0YTY0
ZGJjYjE3ZDEzNjg2MDA4ODA5MjcxNjNiMmIwODk3ZWFhLi5iNGMxOTc0OGFmMGU2Nzg3NDI3Yjg3
ZGZkNDM1OWEwZGZiMzk5MWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5
ZXJDaHJvbWl1bS5jcHAKQEAgLTMzLDIzICszMywxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NSZWZQdHI8SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtPiBIZWFkc1VwRGlzcGxh
eUxheWVyQ2hyb21pdW06OmNyZWF0ZShjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBzZXR0aW5n
cykKK1Bhc3NSZWZQdHI8SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtPiBIZWFkc1VwRGlzcGxh
eUxheWVyQ2hyb21pdW06OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0oc2V0dGluZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bSgpKTsKIH0KIAotSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtOjpIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0oY29uc3QgQ0NMYXllclRy
ZWVTZXR0aW5ncyYgc2V0dGluZ3MpCitIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06OkhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bSgpCiAgICAgOiBMYXllckNocm9taXVtKCkKIHsKIAogICAg
IHNldEJvdW5kcyhJbnRTaXplKDUxMiwgMTI4KSk7Ci0KLSAgICAvLyBPbmx5IGFsbG9jYXRlIHRo
ZSBmb250IGF0bGFzIGlmIHdlIGhhdmUgcmVhc29uIHRvIHVzZSB0aGUgaGVhZHMtdXAgZGlzcGxh
eS4KLSAgICBpZiAoc2V0dGluZ3Muc2hvd0ZQU0NvdW50ZXIgfHwgc2V0dGluZ3Muc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlKSB7Ci0gICAgICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiSGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtOjppbml0aWFsaXplRm9udEF0bGFzIik7Ci0gICAgICAgIG1fZm9udEF0
bGFzID0gQ0NGb250QXRsYXM6OmNyZWF0ZSgpOwotICAgICAgICBtX2ZvbnRBdGxhcy0+aW5pdGlh
bGl6ZSgpOwotICAgIH0KIH0KIAogSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjp+SGVhZHNV
cERpc3BsYXlMYXllckNocm9taXVtKCkKQEAgLTczLDkgKzY2LDI2IEBAIHZvaWQgSGVhZHNVcERp
c3BsYXlMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2Nj
bHVzaW9uVHJhCiAgICAgc2V0Qm91bmRzKGJvdW5kcyk7CiB9CiAKK3ZvaWQgSGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtOjpzZXRGb250QXRsYXMoUGFzc093blB0cjxDQ0ZvbnRBdGxhcz4gZm9u
dEF0bGFzKQoreworICAgIG1fZm9udEF0bGFzID0gZm9udEF0bGFzOworICAgIHNldE5lZWRzQ29t
bWl0KCk7Cit9CisKIFBhc3NPd25QdHI8Q0NMYXllckltcGw+IEhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlQ0NMYXllckltcGwoKQogewotICAgIHJldHVybiBDQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsOjpjcmVhdGUobV9sYXllcklkLCBtX2ZvbnRBdGxhcy5yZWxlYXNlKCkpOwor
ICAgIHJldHVybiBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpjcmVhdGUobV9sYXllcklkKTsK
K30KKwordm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8o
Q0NMYXllckltcGwqIGxheWVySW1wbCkKK3sKKyAgICBMYXllckNocm9taXVtOjpwdXNoUHJvcGVy
dGllc1RvKGxheWVySW1wbCk7CisKKyAgICBpZiAoIW1fZm9udEF0bGFzKQorICAgICAgICByZXR1
cm47CisKKyAgICBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKiBodWRMYXllckltcGwgPSBzdGF0
aWNfY2FzdDxDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKj4obGF5ZXJJbXBsKTsKKyAgICBodWRM
YXllckltcGwtPnNldEZvbnRBdGxhcyhtX2ZvbnRBdGxhcy5yZWxlYXNlKCkpOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5oCmluZGV4IGZjMTIzMGY3
MGEzMjg3N2Q3NTc2ODEwYTEyOTlmODNlM2UzMmE2MmIuLmI3ZDI1ZTZiNWYyZjEzOWZiY2EzODI1
YWE4MDEyNTM4ODgyZTFlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bS5oCkBAIC0zMywyMCArMzMsMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dHJ1Y3QgQ0NMYXllclRyZWVTZXR0aW5nczsKLQogY2xhc3MgSGVhZHNVcERpc3BsYXlMYXllckNo
cm9taXVtIDogcHVibGljIExheWVyQ2hyb21pdW0gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bT4gY3JlYXRlKGNvbnN0IENDTGF5ZXJU
cmVlU2V0dGluZ3MmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIZWFkc1VwRGlzcGxheUxheWVy
Q2hyb21pdW0+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJv
bWl1bSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29u
c3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CiAKKyAgICB2b2lkIHNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPik7CisK
ICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q0NMYXllckltcGw+IGNyZWF0ZUNDTGF5ZXJJbXBsKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwq
KSBPVkVSUklERTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEhlYWRzVXBEaXNwbGF5TGF5
ZXJDaHJvbWl1bShjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJik7CisgICAgSGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtKCk7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPENDRm9udEF0bGFzPiBt
X2ZvbnRBdGxhczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmNwcAppbmRleCA5MzQwNjMxM2Y5MjA0ODRk
OTEzOTIxZmQ4ZWM5ODU3Y2I4ODI5YWY2Li5mOTQxNDU0Y2NmNzU0ZDg1ZTllNWVhNmNmNDRlMThh
YTEwNThmNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIkNDRm9udEF0bGFzLmgi
CiAKLSNpbmNsdWRlICJDb21wb3NpdG9ySFVERm9udEF0bGFzLmgiCiAjaW5jbHVkZSAiU2tDYW52
YXMuaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCiAKQEAgLTM1LDI0ICszNCwxOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLQotQ0NGb250QXRsYXM6
OkNDRm9udEF0bGFzKCkKLSAgICA6IG1fZm9udEhlaWdodCgwKQorQ0NGb250QXRsYXM6OkNDRm9u
dEF0bGFzKFNrQml0bWFwIGJpdG1hcCwgSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGlu
dCBmb250SGVpZ2h0KQorICAgIDogbV9hdGxhcyhiaXRtYXApCisgICAgLCBtX2ZvbnRIZWlnaHQo
Zm9udEhlaWdodCkKIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEyODsgKytpKQorICAg
ICAgICBtX2FzY2lpVG9SZWN0VGFibGVbaV0gPSBhc2NpaVRvUmVjdFRhYmxlW2ldOwogfQogCi0K
IENDRm9udEF0bGFzOjp+Q0NGb250QXRsYXMoKQogewogfQogCi12b2lkIENDRm9udEF0bGFzOjpp
bml0aWFsaXplKCkKLXsKLSAgICBBU1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwotCi0g
ICAgbV9hdGxhcyA9IENvbXBvc2l0b3JIVURGb250QXRsYXM6OmdlbmVyYXRlRm9udEF0bGFzKG1f
YXNjaWlUb1JlY3RUYWJsZSwgbV9mb250SGVpZ2h0KTsKLX0KLQogdm9pZCBDQ0ZvbnRBdGxhczo6
ZHJhd1RleHQoU2tDYW52YXMqIGNhbnZhcywgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBJbnRQ
b2ludCYgZGVzdFBvc2l0aW9uLCBjb25zdCBJbnRTaXplJiBjbGlwKSBjb25zdAogewogICAgIEFT
U0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMuaAppbmRleCBk
ZDE2ZTI1OWJkNGY4ODUzMjNiYzUyOGEwYmYxNDU1ZWQ4NjE3ZDBlLi5jMzJhNzAzOTU4NmM2ZjBj
NGY4YjM2MzFiYjIxNDMyZmEzOGE4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmgKQEAgLTQ0LDIw
ICs0NCwxNSBAQCBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CiAKIC8vIFRoaXMgY2xh
c3MgcHJvdmlkZXMgYmFzaWMgYWJpbGl0eSB0byBkcmF3IHRleHQgb250byB0aGUgaGVhZHMtdXAg
ZGlzcGxheS4KLS8vIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgb24gdGhlIG1haW4gdGhyZWFkLCBh
bmQgaXQgY2FuIG9ubHkgZHJhdyB0ZXh0IG9uIHRoZSBpbXBsIHRocmVhZC4KIGNsYXNzIENDRm9u
dEF0bGFzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ0ZvbnRBdGxhcyk7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGNyZWF0ZSgpCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGNyZWF0ZShTa0JpdG1hcCBiaXRtYXAsIEludFJlY3Qg
YXNjaWlUb1JlY3RUYWJsZVsxMjhdLCBpbnQgZm9udEhlaWdodCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgQ0NGb250QXRsYXMoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgQ0NGb250QXRsYXMoYml0bWFwLCBhc2NpaVRvUmVjdFRhYmxlLCBmb250SGVpZ2h0KSk7
CiAgICAgfQogICAgIH5DQ0ZvbnRBdGxhcygpOwogCi0gICAgLy8gQ3JlYXRlcyB0aGUgZm9udCBh
dGxhcy4KLSAgICAvLyAtIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQu
Ci0gICAgdm9pZCBpbml0aWFsaXplKCk7Ci0KICAgICAvLyBEcmF3cyBtdWx0aXBsZSBsaW5lcyBv
ZiB0ZXh0IHdoZXJlIGVhY2ggbGluZSBvZiB0ZXh0IGlzIHNlcGFyYXRlZCBieSAnXG4nLgogICAg
IC8vIC0gQ29ycmVjdCBnbHlwaHMgd2lsbCBiZSBkcmF3biBmb3IgQVNDSUkgY29kZXMgaW4gdGhl
IHJhbmdlIDMyLTEyNzsgYW55IGNoYXJhY3RlcnMKICAgICAvLyAgIG91dHNpZGUgdGhhdCByYW5n
ZSB3aWxsIGJlIGRpc3BsYXllZCBhcyBhIGRlZmF1bHQgcmVjdGFuZ2xlIGdseXBoLgpAQCAtNzAs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3RGVidWdBdGxhcyhTa0NhbnZhcyosIGNv
bnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24pIGNvbnN0OwogCiBwcml2YXRlOgotICAgIENDRm9u
dEF0bGFzKCk7CisgICAgQ0NGb250QXRsYXMoU2tCaXRtYXAsIEludFJlY3QgYXNjaWlUb1JlY3RU
YWJsZVsxMjhdLCBpbnQgZm9udEhlaWdodCk7CiAKICAgICB2b2lkIGRyYXdPbmVMaW5lT2ZUZXh0
SW50ZXJuYWwoU2tDYW52YXMqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
c2l0aW9uKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5
ZXJJbXBsLmNwcAppbmRleCBjMWYxN2ZlZDFlZGU4NTgwZjIxYjNjMGM4MTE4ZDViZjg0NTQwN2I1
Li5mNmNmYzZjMzVhNjkzMDM0ODE0NGZmZjNlYjkwMWE4ZjY3ZGI1ODgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcApAQCAtNDUsOSArNDUsOCBA
QCB1c2luZyBXZWJLaXQ6OldlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZDsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpDQ0hlYWRzVXBEaXNwbGF5TGF5
ZXJJbXBsKGludCBpZCwgUGFzc093blB0cjxDQ0ZvbnRBdGxhcz4gZm9udEF0bGFzKQotICAgIDog
Q0NMYXllckltcGwoaWQpLAotICAgICAgbV9mb250QXRsYXMoZm9udEF0bGFzKQorQ0NIZWFkc1Vw
RGlzcGxheUxheWVySW1wbDo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbChpbnQgaWQpCisgICAg
OiBDQ0xheWVySW1wbChpZCkKIHsKIH0KIApAQCAtNTUsNiArNTQsMTEgQEAgQ0NIZWFkc1VwRGlz
cGxheUxheWVySW1wbDo6fkNDSGVhZHNVcERpc3BsYXlMYXllckltcGwoKQogewogfQogCit2b2lk
IENDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OnNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9u
dEF0bGFzPiBmb250QXRsYXMpCit7CisgICAgbV9mb250QXRsYXMgPSBmb250QXRsYXM7Cit9CisK
IHZvaWQgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6d2lsbERyYXcoQ0NSZXNvdXJjZVByb3Zp
ZGVyKiByZXNvdXJjZVByb3ZpZGVyKQogewogICAgIENDTGF5ZXJJbXBsOjp3aWxsRHJhdyhyZXNv
dXJjZVByb3ZpZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllcklt
cGwuaAppbmRleCBiMjdmODY0YzJhODY3MDIyMzliNDVmMmU2Yjk1ZGY5ZTk3YTVlYWVlLi44NWRi
NGE0ZjE0YmIzN2M5NjNmYzAxYWQ4NTE3MThkN2Q2N2I3YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5
ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oCkBAIC0zOSwxMiArMzksMTQgQEAgY2xhc3Mg
Q0NGcmFtZVJhdGVDb3VudGVyOwogCiBjbGFzcyBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsIDog
cHVibGljIENDTGF5ZXJJbXBsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxDQ0hl
YWRzVXBEaXNwbGF5TGF5ZXJJbXBsPiBjcmVhdGUoaW50IGlkLCBQYXNzT3duUHRyPENDRm9udEF0
bGFzPiBmb250QXRsYXMpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q0NIZWFkc1VwRGlzcGxheUxh
eWVySW1wbD4gY3JlYXRlKGludCBpZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbChpZCwgZm9udEF0bGFzKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbChpZCkpOwogICAgIH0K
ICAgICB2aXJ0dWFsIH5DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKCk7CiAKKyAgICB2b2lkIHNl
dEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPik7CisKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbERyYXcoQ0NSZXNvdXJjZVByb3ZpZGVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGFwcGVuZFF1YWRzKENDUXVhZFNpbmsmLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGJvb2wm
IGhhZE1pc3NpbmdUaWxlcykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZERyYXcoQ0NS
ZXNvdXJjZVByb3ZpZGVyKikgT1ZFUlJJREU7CkBAIC01NCw3ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgbGF5ZXJJc0Fsd2F5c0RhbWFnZWQoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CiAKIHByaXZhdGU6Ci0gICAgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbChp
bnQsIFBhc3NPd25QdHI8Q0NGb250QXRsYXM+KTsKKyAgICBleHBsaWNpdCBDQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsKGludCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGxheWVyVHlwZUFz
U3RyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIkhlYWRzVXBEaXNwbGF5TGF5ZXIiOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDljYjNiMWJiOTc0ZTc5YjM4
NWE2ZmE0MmFiMTJjMjE2YTAzODI5YjguLjM0YzZjYTIzM2QxOWU5ZjkzZDU5ZGMyNjYxNGIwMjJi
NTkzYWNkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtMjYsNiArMjYs
NyBAQAogCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0LmgiCiAKKyNpbmNsdWRlICJDb21w
b3NpdG9ySFVERm9udEF0bGFzLmgiCiAjaW5jbHVkZSAiSGVhZHNVcERpc3BsYXlMYXllckNocm9t
aXVtLmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgpA
QCAtMjUxLDEyICsyNTIsMjIgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmZpbmlzaENvbW1pdE9u
SW1wbFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKICAgICBtX2NvbW1pdE51
bWJlcisrOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0Rm9udEF0bGFzKFBhc3NPd25Q
dHI8Q0NGb250QXRsYXM+IGZvbnRBdGxhcykKK3sKKyAgICBtX2ZvbnRBdGxhcyA9IGZvbnRBdGxh
czsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6d2ls
bENvbW1pdCgpCiB7CiAgICAgbV9jbGllbnQtPndpbGxDb21taXQoKTsKICAgICBpZiAobV9yb290
TGF5ZXIgJiYgbV9zZXR0aW5ncy5zaG93RGVidWdJbmZvKCkpIHsKICAgICAgICAgaWYgKCFtX2h1
ZExheWVyKQotICAgICAgICAgICAgbV9odWRMYXllciA9IEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKG1fc2V0dGluZ3MpOworICAgICAgICAgICAgbV9odWRMYXllciA9IEhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CisKKyAgICAgICAgaWYgKG1fZm9udEF0
bGFzKQorICAgICAgICAgICAgbV9odWRMYXllci0+c2V0Rm9udEF0bGFzKG1fZm9udEF0bGFzLnJl
bGVhc2UoKSk7CisKICAgICAgICAgaWYgKG1faHVkTGF5ZXItPnBhcmVudCgpICE9IG1fcm9vdExh
eWVyLmdldCgpKSB7CiAgICAgICAgICAgICBtX2h1ZExheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7
CiAgICAgICAgICAgICBtX3Jvb3RMYXllci0+YWRkQ2hpbGQobV9odWRMYXllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDAzYTA2MjlhYmY3MDhlMWNjMGNkM2M0NzVhMTc0M2M3
NGM2OTMxNWEuLjY5YTM1NGVmMTNhNzQxODBjOGExMmM2ZjQ0YzlkOTY2YmRiMzg4ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC00NywxMyArNDcsMTUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBDQ0ZvbnRBdGxhczsKIGNsYXNzIENDR3JhcGhpY3NDb250ZXh0
OwogY2xhc3MgQ0NMYXllckNocm9taXVtOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbDsKIGNs
YXNzIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQ7CitjbGFzcyBDQ1ByaW9yaXRpemVkVGV4dHVy
ZU1hbmFnZXI7CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVyOworY2xhc3MgSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtOwogY2xhc3MgUmVnaW9uOwotY2xhc3MgQ0NQcmlvcml0aXplZFRleHR1cmVN
YW5hZ2VyOwogc3RydWN0IENDU2Nyb2xsQW5kU2NhbGVTZXQ7CiAKIGNsYXNzIENDTGF5ZXJUcmVl
SG9zdENsaWVudCB7CkBAIC0yNzEsNiArMjczLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGV2
aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQogCisgICAgdm9pZCBzZXRGb250QXRs
YXMoUGFzc093blB0cjxDQ0ZvbnRBdGxhcz4pOworCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRy
ZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCosIGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3Mm
KTsKICAgICBib29sIGluaXRpYWxpemUoKTsKQEAgLTMxMyw3ICszMTcsOSBAQCBwcml2YXRlOgog
ICAgIGludCBtX251bUZhaWxlZFJlY3JlYXRlQXR0ZW1wdHM7CiAKICAgICBSZWZQdHI8TGF5ZXJD
aHJvbWl1bT4gbV9yb290TGF5ZXI7Ci0gICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IG1faHVkTGF5
ZXI7CisgICAgUmVmUHRyPEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bT4gbV9odWRMYXllcjsK
KyAgICBPd25QdHI8Q0NGb250QXRsYXM+IG1fZm9udEF0bGFzOworCiAgICAgT3duUHRyPENDUHJp
b3JpdGl6ZWRUZXh0dXJlTWFuYWdlcj4gbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyOwogICAgIE93
blB0cjxDQ1ByaW9yaXRpemVkVGV4dHVyZT4gbV9zdXJmYWNlTWVtb3J5UGxhY2Vob2xkZXI7CiAK
QEAgLTMzNyw2ICszNDMsNyBAQCBwcml2YXRlOgogCiAgICAgVGV4dHVyZUxpc3QgbV9kZWxldGVU
ZXh0dXJlQWZ0ZXJDb21taXRMaXN0OwogICAgIHNpemVfdCBtX3BhcnRpYWxUZXh0dXJlVXBkYXRl
UmVxdWVzdHM7CisKICAgICBzdGF0aWMgYm9vbCBzX25lZWRzRmlsdGVyQ29udGV4dDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKaW5k
ZXggYzQzZDgzYWMwZWRjMmUzMmQ1NmUxYmQ4ZjAzMzg3YzcwM2U1ZTE1My4uYzVjYTcxNDkwYmYx
MmJmYWZjNWE5YzNkZDc4MDhhMTJlMzA5NDIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJMYXllckNocm9taXVtLmgi
CiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVlVmlld0ltcGwuaCIKKyNpbmNsdWRlICJjYy9DQ0ZvbnRB
dGxhcy5oIgogI2luY2x1ZGUgImNjL0NDR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiY2Mv
Q0NMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiY2MvQ0NSZW5kZXJpbmdTdGF0cy5oIgpAQCAt
MTg5LDYgKzE5MCwxNSBAQCB2b2lkIFdlYkxheWVyVHJlZVZpZXc6OnJlbmRlcmluZ1N0YXRzKFdl
YlJlbmRlcmluZ1N0YXRzJiBzdGF0cykgY29uc3QKICAgICBzdGF0cy50b3RhbFJhc3Rlcml6ZVRp
bWVJblNlY29uZHMgPSBjY1N0YXRzLnRvdGFsUmFzdGVyaXplVGltZUluU2Vjb25kczsKIH0KIAor
dm9pZCBXZWJMYXllclRyZWVWaWV3OjpzZXRGb250QXRsYXMoU2tCaXRtYXAgYml0bWFwLCBXZWJS
ZWN0IGFzY2lpVG9XZWJSZWN0VGFibGVbMTI4XSwgaW50IGZvbnRIZWlnaHQpCit7CisgICAgSW50
UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMjg7
ICsraSkKKyAgICAgICAgYXNjaWlUb1JlY3RUYWJsZVtpXSA9IGFzY2lpVG9XZWJSZWN0VGFibGVb
aV07CisgICAgT3duUHRyPENDRm9udEF0bGFzPiBmb250QXRsYXMgPSBDQ0ZvbnRBdGxhczo6Y3Jl
YXRlKGJpdG1hcCwgYXNjaWlUb1JlY3RUYWJsZSwgZm9udEhlaWdodCk7CisgICAgbV9wcml2YXRl
LT5sYXllclRyZWVIb3N0KCktPnNldEZvbnRBdGxhcyhmb250QXRsYXMucmVsZWFzZSgpKTsKK30K
Kwogdm9pZCBXZWJMYXllclRyZWVWaWV3Ojpsb3NlQ29tcG9zaXRvckNvbnRleHQoaW50IG51bVRp
bWVzKQogewogICAgIG1fcHJpdmF0ZS0+bGF5ZXJUcmVlSG9zdCgpLT5sb3NlQ29udGV4dChudW1U
aW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXgg
ZDg3NTBlMzhhMjg3ZWIxOTA3Mzc0NGNjMDM5ZTJjNGEyNGQ0ZWM5NC4uZTJkNjg3NmI0YThiYjlh
ZDMzZmUwZmI1YmQyMjdkNzdkNzgxNmY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAj
aW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uVW5kZXJsaW5lVmVj
dG9yQnVpbGRlci5oIgorI2luY2x1ZGUgIkNvbXBvc2l0b3JIVURGb250QXRsYXMuaCIKICNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnUu
aCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKQEAgLTM2NjgsNiArMzY2OSwx
NSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUo
Ym9vbCBhY3RpdmUpCiAgICAgICAgICAgICBtX2NvbXBvc2l0b3JDcmVhdGlvbkZhaWxlZCA9IGZh
bHNlOwogICAgICAgICAgICAgaWYgKG1fcGFnZU92ZXJsYXlzKQogICAgICAgICAgICAgICAgIG1f
cGFnZU92ZXJsYXlzLT51cGRhdGUoKTsKKworICAgICAgICAgICAgLy8gT25seSBhbGxvY2F0ZSB0
aGUgZm9udCBhdGxhcyBpZiB3ZSBoYXZlIHJlYXNvbiB0byB1c2UgdGhlIGhlYWRzLXVwIGRpc3Bs
YXkuCisgICAgICAgICAgICBpZiAobGF5ZXJUcmVlVmlld1NldHRpbmdzLnNob3dGUFNDb3VudGVy
IHx8IGxheWVyVHJlZVZpZXdTZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUpIHsKKyAgICAg
ICAgICAgICAgICBUUkFDRV9FVkVOVDAoImNjIiwgIkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1
bTo6aW5pdGlhbGl6ZUZvbnRBdGxhcyIpOworICAgICAgICAgICAgICAgIFdlYlJlY3QgYXNjaWlU
b1JlY3RUYWJsZVsxMjhdOworICAgICAgICAgICAgICAgIGludCBmb250SGVpZ2h0OworICAgICAg
ICAgICAgICAgIFNrQml0bWFwIGJpdG1hcCA9IFdlYkNvcmU6OkNvbXBvc2l0b3JIVURGb250QXRs
YXM6OmdlbmVyYXRlRm9udEF0bGFzKGFzY2lpVG9SZWN0VGFibGUsIGZvbnRIZWlnaHQpOworICAg
ICAgICAgICAgICAgIG1fbGF5ZXJUcmVlVmlldy5zZXRGb250QXRsYXMoYml0bWFwLCBhc2NpaVRv
UmVjdFRhYmxlLCBmb250SGVpZ2h0KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNsZWFyKCk7CiAgICAgICAg
ICAgICBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155937</attachid>
            <date>2012-08-01 17:55:39 -0700</date>
            <delta_ts>2012-08-01 18:00:23 -0700</delta_ts>
            <desc>fix trace and unit test</desc>
            <filename>bug-92924-20120801175521.patch</filename>
            <type>text/plain</type>
            <size>25337</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Mzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMGFkNjYyNmY3NThm
YWIyY2ExMjhmNjhjZmMwZTA5Y2JmYzNkNmRlLi45MDg5MzkyYTE3MTA2OGEzODhjNWEzMjAyYWE4
ZDlmYWIyMTMzZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0wMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBjb21wb3NpdG9yIEhVRCBmb250IGF0bGFzIGluaXRpYWxpemF0aW9uIGNvZGUgb3V0
IG9mIGNvbXBvc2l0b3IgY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgY2hyb21pdW0gY29tcG9zaXRvciBkb2VzIG5vdCBoYXZlIGFueSB0ZXh0
IHJlbmRlcmluZyBjYXBhYmlsaXRpZXMuIEl0IGdlbmVyYWxseSBkb2VzIG5vdCBuZWVkIHRoZW0s
IGJ1dCBpdAorICAgICAgICBpcyBoZWxwZnVsIGZvciBzb21lIGRlYnVnZ2luZyBhaWRzIHRvIGJl
IGFibGUgdG8gcmVuZGVyIGF0IGxlYXN0IEFTQ0lJIHRleHQgdG8gdGhlIHNjcmVlbi4gVGhpcyBw
cm92aWRlcyBhbiBBUEkKKyAgICAgICAgb24gV2ViTGF5ZXJUcmVlVmlldyBieSB3aGljaCBhbiBl
bWJlZGRlciBjYW4gcHJvdmlkZSBhbiBBU0NJSSBnbHlwaCBhdGxhcyB0byB1c2UgZm9yIGRpc3Bs
YXlpbmcgZGVidWcKKyAgICAgICAgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmlldyk6CisK
IDIwMTItMDgtMDEgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gTWFrZSBXZWJLaXQgQVBJIHN1cHBvcnQgZHJhZ2dhYmxlIHJlZ2lvbiBjaGFuZ2Ug
dXBkYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5ZDg5MzVjNGU4MjgxOWFiODQ0OGYwNWEwYmNhN2YyY2Mw
ZDdiZi4uN2EwNDIzNDY5ZGExZTNlYTVlMDEwZGQ0MzYzMDMxYjBkYjUwOGNiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA4LTAxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNb3ZlIGNvbXBvc2l0b3IgSFVEIGZv
bnQgYXRsYXMgaW5pdGlhbGl6YXRpb24gY29kZSBvdXQgb2YgY29tcG9zaXRvciBjb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjkyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbW92ZXMgdGhl
IEhVRCBmb250IGF0bGFzIGluaXRpYWxpemF0aW9uIGNvZGUgb3V0IG9mIHRoZSBjb21wb3NpdG9y
IGltcGxlbWVudGF0aW9uIHRvIGN1dCBvdXQgRm9udC1yZWxhdGVkCisgICAgICAgIGRlcGVuZGVu
Y2llcy4gVGhlIG5ldyBmbG93IGlzIHRoYXQgYW4gZW1iZWRkZXIgY2FuIHBhc3MgYSBmb250IGF0
bGFzIHRvIHRoZSBDQ0xheWVyVHJlZUhvc3QsIGFmdGVyIHdoaWNoIHRoZQorICAgICAgICBhdGxh
cyBpcyBwcm92aWRlZCB0aGUgSFVEIGxheWVyIChpZiBhbnkpIG9uIHRoZSBuZXh0IGNvbW1pdC4g
VGhlIEhVRCBsYXllciByZW5kZXJzIHRleHQgdXNpbmcgdGhlIGZvbnQgYXRsYXMgaWYKKyAgICAg
ICAgaXQgaGFzIGFueSBpZiB0aGUgc2V0dGluZ3MgcmVxdWlyZSB0ZXh0LgorCisgICAgICAgIEhV
RCB0ZXN0ZWQgbWFudWFsbHksIHdlIGRvbid0IGhhdmUgYXV0b21hdGVkIHRlc3RzIGZvciB0aGlz
IGRlYnVnZ2luZy1vbmx5IGZlYXR1cmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRs
YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURG
b250QXRsYXMuaDoKKyAgICAgICAgKENvbXBvc2l0b3JIVURGb250QXRsYXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06OkhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxh
eUxheWVyQ2hyb21pdW06OnNldEZvbnRBdGxhcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllcklt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpwdXNo
UHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250
QXRsYXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NGb250QXRsYXM6OkNDRm9udEF0bGFzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZvbnRBdGxhczo6Y3JlYXRl
KToKKyAgICAgICAgKENDRm9udEF0bGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6c2V0Rm9udEF0
bGFzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmNyZWF0ZSk6CisgICAgICAgIChDQ0hlYWRzVXBE
aXNwbGF5TGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
OjpzZXRGb250QXRsYXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyVHJlZUhvc3Q6OndpbGxDb21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDQ0xheWVyVHJlZUhvc3QpOgorCiAyMDEyLTA4LTAxICBBbnRvaW5lIExhYm91ciAgPHBp
bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGZhY3RvciBvdXQgdGhlIG9w
dGltaXphdGlvbiBwYXNzIGluIENDUmVuZGVyU3VyZmFjZUZpbHRlcnM6OmFwcGx5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGEzYTY4MWVkMTczMDllMjk4ODEzZjQ0MjE5MWUxZGE3YjIx
OTA3NjkuLmVmZGJmMTIzMmEyNTA1MjkwNzQyNWQ1YmEzOTFkMzJiMGRlZTgyMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDgtMDEgIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUg
Y29tcG9zaXRvciBIVUQgZm9udCBhdGxhcyBpbml0aWFsaXphdGlvbiBjb2RlIG91dCBvZiBjb21w
b3NpdG9yIGNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkyOTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBpbml0aWFsaXplcyB0aGUgY29tcG9zaXRvcidzIGZvbnQgYXRsYXMgd2hlbiBpbml0
aWFsaXphdGlvbiB0aGUgY29tcG9zaXRvciBpZiB0aGUgIlNob3cgRlBTIGNvdW50ZXIiIG9yCisg
ICAgICAgICJTaG93IGxheWVyIHRyZWUiIHNldHRpbmdzIGFyZSB0cnVlLgorCisgICAgICAgICog
c3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVW
aWV3OjpzZXRGb250QXRsYXMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMi0wOC0wMSAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYWtlIFdlYktpdCBBUEkgc3VwcG9y
dCBkcmFnZ2FibGUgcmVnaW9uIGNoYW5nZSB1cGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKaW5kZXggNTNiZWViZDUzZTg4NWY1
OWViMGEyYjc3NDEyZGY2NTk4N2RjOWQyNS4uMzdlNTkzMzJhM2FhOWIxMGU1ZGE5YzA1NzZjMjU1
MmM2YjFmMTMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJMYXllclRyZWVWaWV3LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViTGF5ZXJUcmVl
Vmlld19oCiAjZGVmaW5lIFdlYkxheWVyVHJlZVZpZXdfaAogCisjaW5jbHVkZSAiU2tCaXRtYXAu
aCIKICNpbmNsdWRlICJXZWJDb2xvci5oIgogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1
ZGUgIldlYk5vbkNvcHlhYmxlLmgiCkBAIC0xNzUsNiArMTc2LDEwIEBAIHB1YmxpYzoKICAgICAv
LyBUaGlzIGNhbGwgaXMgcmVsYXRpdmVseSBleHBlbnNpdmUgaW4gdGhyZWFkZWQgbW9kZSBhcyBp
dCBibG9ja3Mgb24gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgogICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCByZW5kZXJpbmdTdGF0cyhXZWJSZW5kZXJpbmdTdGF0cyYpIGNvbnN0OwogCisgICAgLy8gUHJv
dmlkZXMgYSBmb250IGF0bGFzIHRvIHVzZSBmb3IgZGVidWcgdmlzdWFsaXphdGlvbnMuIFRoZSBh
dGxhcyBtdXN0IGJlIGEgYml0bWFwIGNvbnRhaW5pbmcgZ2x5cGggZGF0YSwgYSB0YWJsZSBvZgor
ICAgIC8vIEFTQ0lJIGNoYXJhY3RlciB2YWx1ZXMgdG8gYSBzdWJyZWN0YW5nbGUgb2YgdGhlIGF0
bGFzIHJlcHJlc2VudGluZyB0aGUgY29ycmVzcG9uZGluZyBnbHlwaCwgYW5kIHRoZSBnbHlwaCBo
ZWlnaHQuCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEZvbnRBdGxhcyhTa0JpdG1hcCwgV2Vi
UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCBmb250SGVpZ2h0KTsKKwogICAgIC8vIFNp
bXVsYXRlcyBhIGxvc3QgY29udGV4dC4gRm9yIHRlc3Rpbmcgb25seS4KICAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgbG9zZUNvbXBvc2l0b3JDb250ZXh0KGludCBudW1UaW1lcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JI
VURGb250QXRsYXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5jcHAKaW5kZXggOTE0MTJjNzRmMmU1NjgwMjdhOWJi
ZDZhODQxNWQ2NTE0NWQxOGM1MS4uYjUzYzEyOTIyMzY4MTU2ZTYwMTdiZTdmZDFiYTk0OGU2ZDZj
Yjc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5jcHAKQEAgLTM3LDYg
KzM3LDggQEAKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAic2tpYS9leHQvcGxhdGZv
cm1fY2FudmFzLmgiCiAKK3VzaW5nIFdlYktpdDo6V2ViUmVjdDsKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAjZGVmaW5lIEFUTEFTX1NJWkUgMTI4CkBAIC00OCwxMCArNTAsMTAgQEAgc3RhdGlj
IHZvaWQgd3JhcFBvc2l0aW9uSWZOZWVkZWQoSW50UG9pbnQmIHBvc2l0aW9uLCBpbnQgdGV4dFdp
ZHRoLCBpbnQgdGV4dEhlaWcKIH0KIAogLy8gUGFpbnRzIHRoZSBmb250IGludG8gdGhlIGF0bGFz
LCBmcm9tIGxlZnQtdG8tcmlnaHQsIHRvcC10by1ib3R0b20sIHN0YXJ0aW5nIGF0Ci0vLyBzdGFy
dGluZ1Bvc2l0aW9uLiBBdCB0aGUgc2FtZSB0aW1lLCBpdCB1cGRhdGVzIHRoZSBhc2NpaS10by1J
bnRSZWN0IG1hcHBpbmcgZm9yCisvLyBzdGFydGluZ1Bvc2l0aW9uLiBBdCB0aGUgc2FtZSB0aW1l
LCBpdCB1cGRhdGVzIHRoZSBhc2NpaS10by1XZWJSZWN0IG1hcHBpbmcgZm9yCiAvLyBlYWNoIGNo
YXJhY3Rlci4gQnkgZG9pbmcgdGhpbmdzIHRoaXMgd2F5LCBpdCBpcyBwb3NzaWJsZSB0byBzdXBw
b3J0IHZhcmlhYmxlLXdpZHRoCiAvLyBmb250cyBhbmQgbXVsdGlwbGUgZm9udHMgb24gdGhlIHNh
bWUgYXRsYXMuCi1Ta0JpdG1hcCBDb21wb3NpdG9ySFVERm9udEF0bGFzOjpnZW5lcmF0ZUZvbnRB
dGxhcyhJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XSwgaW50JiBmb250SGVpZ2h0KQorU2tC
aXRtYXAgQ29tcG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRsYXMoV2ViUmVjdCBh
c2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCYgZm9udEhlaWdodCkKIHsKICAgICBmb250SGVpZ2h0
ID0gMTQ7CiAKQEAgLTkxLDcgKzkzLDcgQEAgU2tCaXRtYXAgQ29tcG9zaXRvckhVREZvbnRBdGxh
czo6Z2VuZXJhdGVGb250QXRsYXMoSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0KICAgICAg
ICAgYXRsYXNDb250ZXh0LnN0cm9rZVJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQocG9zaXRpb24u
eCgpICsgMSwgcG9zaXRpb24ueSgpIC0gdGV4dEhlaWdodCArIDEgKyBpbmZsYXRpb24pLCBGbG9h
dFNpemUodGV4dFdpZHRoIC0gMiwgdGV4dEhlaWdodCAtIDIgLSBpbmZsYXRpb24pKSwgMSk7CiAK
ICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgcmVjdCB0aGF0IHdvdWxkIGJlIGNvcGllZCB3aGVu
IGRyYXdpbmcgdGhpcyBnbHlwaCBmcm9tIHRoZSBhdGxhcy4KLSAgICAgICAgYXNjaWlUb1JlY3RU
YWJsZVswXSA9IEludFJlY3QoSW50UG9pbnQocG9zaXRpb24ueCgpLCBwb3NpdGlvbi55KCkgLSB0
ZXh0SGVpZ2h0KSwgSW50U2l6ZSh0ZXh0V2lkdGgsIHRleHRIZWlnaHQgKyBpbmZsYXRpb24pKTsK
KyAgICAgICAgYXNjaWlUb1JlY3RUYWJsZVswXSA9IFdlYlJlY3QocG9zaXRpb24ueCgpLCBwb3Np
dGlvbi55KCkgLSB0ZXh0SGVpZ2h0LCB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgKyBpbmZsYXRpb24p
OwogCiAgICAgICAgIC8vIEluY3JlbWVudCB0byB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIG5leHQg
Z2x5cGggd2lsbCBiZSBwbGFjZWQuCiAgICAgICAgIHBvc2l0aW9uLnNldFgocG9zaXRpb24ueCgp
ICsgdGV4dFdpZHRoKTsKQEAgLTExNCw3ICsxMTYsNyBAQCBTa0JpdG1hcCBDb21wb3NpdG9ySFVE
Rm9udEF0bGFzOjpnZW5lcmF0ZUZvbnRBdGxhcyhJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4
XQogICAgICAgICBhdGxhc0NvbnRleHQuZHJhd1RleHQoZm9udCwgdGV4dCwgcG9zaXRpb24pOwog
CiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHJlY3QgdGhhdCB3b3VsZCBiZSBjb3BpZWQgd2hl
biBkcmF3aW5nIHRoaXMgZ2x5cGggZnJvbSB0aGUgYXRsYXMuCi0gICAgICAgIGFzY2lpVG9SZWN0
VGFibGVbaV0gPSBJbnRSZWN0KEludFBvaW50KHBvc2l0aW9uLngoKSwgcG9zaXRpb24ueSgpIC0g
dGV4dEhlaWdodCksIEludFNpemUodGV4dFdpZHRoLCB0ZXh0SGVpZ2h0ICsgaW5mbGF0aW9uKSk7
CisgICAgICAgIGFzY2lpVG9SZWN0VGFibGVbaV0gPSBXZWJSZWN0KHBvc2l0aW9uLngoKSwgcG9z
aXRpb24ueSgpIC0gdGV4dEhlaWdodCwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0ICsgaW5mbGF0aW9u
KTsKIAogICAgICAgICAvLyBJbmNyZW1lbnQgdG8gdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBuZXh0
IGdseXBoIHdpbGwgYmUgcGxhY2VkLgogICAgICAgICBwb3NpdGlvbi5zZXRYKHBvc2l0aW9uLngo
KSArIHRleHRXaWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmgKaW5kZXgg
YzUyYzZkMTZmMWFkOWQ3YTVjMjg1NGI5ZDcxOGE0Nzc4MTMwZTU2YS4uOTFiYWI1ZDYyYzdiNGQ0
NGQzYzM0MjVhNmE3YzY0YmFmZjQyNTE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250
QXRsYXMuaApAQCAtMjYsOCArMjYsOCBAQAogI2lmbmRlZiBDb21wb3NpdG9ySFVERm9udEF0bGFz
X2gKICNkZWZpbmUgQ29tcG9zaXRvckhVREZvbnRBdGxhc19oCiAKLSNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUmVjdC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIC8v
IFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBjYW4gZ2VuZXJhdGUgYSBmb250IGF0bGFz
IHN1aXRhYmxlIGZvciB0aGUgY29tcG9zaXRvcidzIGhlYWRzIHVwIGRpc3BsYXkuCiAgICAgLy8g
UmV0dXJucyBhIGJpdG1hcCBjb250YWluaW5nIGdseXBocyBhbmQgcG9wdWxhdGVzIGFzY2lpVG9S
ZWN0VGFibGUgd2l0aCB0aGUKICAgICAvLyBsb2NhdGlvbiBvZiBlYWNoIGdseXBoLgotICAgIHN0
YXRpYyBTa0JpdG1hcCBnZW5lcmF0ZUZvbnRBdGxhcyhJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVb
MTI4XSwgaW50JiBmb250SGVpZ2h0KTsKKyAgICBzdGF0aWMgU2tCaXRtYXAgZ2VuZXJhdGVGb250
QXRsYXMoV2ViS2l0OjpXZWJSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XSwgaW50JiBmb250SGVp
Z2h0KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGYyNTRhNjRkYmNiMTdkMTM2ODYwMDg4
MDkyNzE2M2IyYjA4OTdlYWEuLmI0YzE5NzQ4YWYwZTY3ODc0MjdiODdkZmQ0MzU5YTBkZmIzOTkx
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmNwcApA
QCAtMzMsMjMgKzMzLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxI
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0+IEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzKQorUGFzc1JlZlB0cjxI
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0+IEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bShzZXR0aW5ncykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtKCkpOwogfQogCi1IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06Okhl
YWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bShjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBzZXR0
aW5ncykKK0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6SGVhZHNVcERpc3BsYXlMYXllckNo
cm9taXVtKCkKICAgICA6IExheWVyQ2hyb21pdW0oKQogewogCiAgICAgc2V0Qm91bmRzKEludFNp
emUoNTEyLCAxMjgpKTsKLQotICAgIC8vIE9ubHkgYWxsb2NhdGUgdGhlIGZvbnQgYXRsYXMgaWYg
d2UgaGF2ZSByZWFzb24gdG8gdXNlIHRoZSBoZWFkcy11cCBkaXNwbGF5LgotICAgIGlmIChzZXR0
aW5ncy5zaG93RlBTQ291bnRlciB8fCBzZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUpIHsK
LSAgICAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06
OmluaXRpYWxpemVGb250QXRsYXMiKTsKLSAgICAgICAgbV9mb250QXRsYXMgPSBDQ0ZvbnRBdGxh
czo6Y3JlYXRlKCk7Ci0gICAgICAgIG1fZm9udEF0bGFzLT5pbml0aWFsaXplKCk7Ci0gICAgfQog
fQogCiBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06On5IZWFkc1VwRGlzcGxheUxheWVyQ2hy
b21pdW0oKQpAQCAtNzMsOSArNjYsMjYgQEAgdm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmEKICAgICBz
ZXRCb3VuZHMoYm91bmRzKTsKIH0KIAordm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06
OnNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPiBmb250QXRsYXMpCit7CisgICAg
bV9mb250QXRsYXMgPSBmb250QXRsYXM7CisgICAgc2V0TmVlZHNDb21taXQoKTsKK30KKwogUGFz
c093blB0cjxDQ0xheWVySW1wbD4gSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpjcmVhdGVD
Q0xheWVySW1wbCgpCiB7Ci0gICAgcmV0dXJuIENDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmNy
ZWF0ZShtX2xheWVySWQsIG1fZm9udEF0bGFzLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIENDSGVh
ZHNVcERpc3BsYXlMYXllckltcGw6OmNyZWF0ZShtX2xheWVySWQpOworfQorCit2b2lkIEhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5
ZXJJbXBsKQoreworICAgIExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBs
KTsKKworICAgIGlmICghbV9mb250QXRsYXMpCisgICAgICAgIHJldHVybjsKKworICAgIENDSGVh
ZHNVcERpc3BsYXlMYXllckltcGwqIGh1ZExheWVySW1wbCA9IHN0YXRpY19jYXN0PENDSGVhZHNV
cERpc3BsYXlMYXllckltcGwqPihsYXllckltcGwpOworICAgIGh1ZExheWVySW1wbC0+c2V0Rm9u
dEF0bGFzKG1fZm9udEF0bGFzLnJlbGVhc2UoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVh
ZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKaW5kZXggZmMxMjMwZjcwYTMyODc3ZDc1NzY4MTBh
MTI5OWY4M2UzZTMyYTYyYi4uYjdkMjVlNmI1ZjJmMTM5ZmJjYTM4MjVhYTgwMTI1Mzg4ODJlMWU3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKQEAgLTMz
LDIwICszMywyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBDQ0xheWVyVHJl
ZVNldHRpbmdzOwotCiBjbGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0gOiBwdWJsaWMg
TGF5ZXJDaHJvbWl1bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SGVhZHNVcERp
c3BsYXlMYXllckNocm9taXVtPiBjcmVhdGUoY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bT4gY3JlYXRl
KCk7CiAgICAgdmlydHVhbCB+SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1c2lvblRy
YWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRy
YXdzQ29udGVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZvaWQg
c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+KTsKKwogICAgIHZpcnR1YWwgUGFz
c093blB0cjxDQ0xheWVySW1wbD4gY3JlYXRlQ0NMYXllckltcGwoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopIE9WRVJSSURFOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtKGNvbnN0
IENDTGF5ZXJUcmVlU2V0dGluZ3MmKTsKKyAgICBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0o
KTsKIAogcHJpdmF0ZToKICAgICBPd25QdHI8Q0NGb250QXRsYXM+IG1fZm9udEF0bGFzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NG
b250QXRsYXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NGb250QXRsYXMuY3BwCmluZGV4IDkzNDA2MzEzZjkyMDQ4NGQ5MTM5MjFmZDhlYzk4NTdj
Yjg4MjlhZjYuLmY5NDE0NTRjY2Y3NTRkODVlOWU1ZWE2Y2Y0NGUxOGFhMTA1OGY2ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9u
dEF0bGFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0ZvbnRBdGxhcy5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiQ0NGb250QXRsYXMuaCIKIAotI2luY2x1ZGUgIkNv
bXBvc2l0b3JIVURGb250QXRsYXMuaCIKICNpbmNsdWRlICJTa0NhbnZhcy5oIgogI2luY2x1ZGUg
ImNjL0NDUHJveHkuaCIKIApAQCAtMzUsMjQgKzM0LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotCi1DQ0ZvbnRBdGxhczo6Q0NGb250QXRsYXMoKQot
ICAgIDogbV9mb250SGVpZ2h0KDApCitDQ0ZvbnRBdGxhczo6Q0NGb250QXRsYXMoU2tCaXRtYXAg
Yml0bWFwLCBJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XSwgaW50IGZvbnRIZWlnaHQpCisg
ICAgOiBtX2F0bGFzKGJpdG1hcCkKKyAgICAsIG1fZm9udEhlaWdodChmb250SGVpZ2h0KQogewor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTI4OyArK2kpCisgICAgICAgIG1fYXNjaWlUb1Jl
Y3RUYWJsZVtpXSA9IGFzY2lpVG9SZWN0VGFibGVbaV07CiB9CiAKLQogQ0NGb250QXRsYXM6On5D
Q0ZvbnRBdGxhcygpCiB7CiB9CiAKLXZvaWQgQ0NGb250QXRsYXM6OmluaXRpYWxpemUoKQotewot
ICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7Ci0KLSAgICBtX2F0bGFzID0gQ29t
cG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRsYXMobV9hc2NpaVRvUmVjdFRhYmxl
LCBtX2ZvbnRIZWlnaHQpOwotfQotCiB2b2lkIENDRm9udEF0bGFzOjpkcmF3VGV4dChTa0NhbnZh
cyogY2FudmFzLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRp
b24sIGNvbnN0IEludFNpemUmIGNsaXApIGNvbnN0CiB7CiAgICAgQVNTRVJUKENDUHJveHk6Omlz
SW1wbFRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oCmluZGV4IGRkMTZlMjU5YmQ0Zjg4NTMy
M2JjNTI4YTBiZjE0NTVlZDg2MTdkMGUuLmMzMmE3MDM5NTg2YzZmMGM0ZjhiMzYzMWJiMjE0MzJm
YTM4YTg5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRm9udEF0bGFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMuaApAQCAtNDQsMjAgKzQ0LDE1IEBAIGNsYXNz
IEludFBvaW50OwogY2xhc3MgSW50U2l6ZTsKIAogLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBiYXNp
YyBhYmlsaXR5IHRvIGRyYXcgdGV4dCBvbnRvIHRoZSBoZWFkcy11cCBkaXNwbGF5LgotLy8gSXQg
bXVzdCBiZSBpbml0aWFsaXplZCBvbiB0aGUgbWFpbiB0aHJlYWQsIGFuZCBpdCBjYW4gb25seSBk
cmF3IHRleHQgb24gdGhlIGltcGwgdGhyZWFkLgogY2xhc3MgQ0NGb250QXRsYXMgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENDRm9udEF0bGFzKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxDQ0ZvbnRBdGxhcz4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxDQ0Zv
bnRBdGxhcz4gY3JlYXRlKFNrQml0bWFwIGJpdG1hcCwgSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxl
WzEyOF0sIGludCBmb250SGVpZ2h0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDQ0ZvbnRBdGxhcygpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0ZvbnRBdGxh
cyhiaXRtYXAsIGFzY2lpVG9SZWN0VGFibGUsIGZvbnRIZWlnaHQpKTsKICAgICB9CiAgICAgfkND
Rm9udEF0bGFzKCk7CiAKLSAgICAvLyBDcmVhdGVzIHRoZSBmb250IGF0bGFzLgotICAgIC8vIC0g
U2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICB2b2lkIGluaXRp
YWxpemUoKTsKLQogICAgIC8vIERyYXdzIG11bHRpcGxlIGxpbmVzIG9mIHRleHQgd2hlcmUgZWFj
aCBsaW5lIG9mIHRleHQgaXMgc2VwYXJhdGVkIGJ5ICdcbicuCiAgICAgLy8gLSBDb3JyZWN0IGds
eXBocyB3aWxsIGJlIGRyYXduIGZvciBBU0NJSSBjb2RlcyBpbiB0aGUgcmFuZ2UgMzItMTI3OyBh
bnkgY2hhcmFjdGVycwogICAgIC8vICAgb3V0c2lkZSB0aGF0IHJhbmdlIHdpbGwgYmUgZGlzcGxh
eWVkIGFzIGEgZGVmYXVsdCByZWN0YW5nbGUgZ2x5cGguCkBAIC03MCw3ICs2NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRyYXdEZWJ1Z0F0bGFzKFNrQ2FudmFzKiwgY29uc3QgSW50UG9pbnQmIGRl
c3RQb3NpdGlvbikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQ0NGb250QXRsYXMoKTsKKyAgICBD
Q0ZvbnRBdGxhcyhTa0JpdG1hcCwgSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCBm
b250SGVpZ2h0KTsKIAogICAgIHZvaWQgZHJhd09uZUxpbmVPZlRleHRJbnRlcm5hbChTa0NhbnZh
cyosIGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24pIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwCmluZGV4
IGM3MzhkMjk2NTJhMWRhMDk1MGI4YTM4MzZkMDA3OWFjNjdkYTY1MmQuLmY5ZmQ5OWZmMzY4YzZk
MGFlZTA0ODA2MDQ3MDZhMDY3Yjk3ZjFhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVh
ZHNVcERpc3BsYXlMYXllckltcGwuY3BwCkBAIC00NSw5ICs0NSw4IEBAIHVzaW5nIFdlYktpdDo6
V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNDSGVh
ZHNVcERpc3BsYXlMYXllckltcGw6OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGwoaW50IGlkLCBQ
YXNzT3duUHRyPENDRm9udEF0bGFzPiBmb250QXRsYXMpCi0gICAgOiBDQ0xheWVySW1wbChpZCks
Ci0gICAgICBtX2ZvbnRBdGxhcyhmb250QXRsYXMpCitDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBs
OjpDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKGludCBpZCkKKyAgICA6IENDTGF5ZXJJbXBsKGlk
KQogewogfQogCkBAIC01NSw2ICs1NCwxMSBAQCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjp+
Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbCgpCiB7CiB9CiAKK3ZvaWQgQ0NIZWFkc1VwRGlzcGxh
eUxheWVySW1wbDo6c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGZvbnRBdGxh
cykKK3sKKyAgICBtX2ZvbnRBdGxhcyA9IGZvbnRBdGxhczsKK30KKwogdm9pZCBDQ0hlYWRzVXBE
aXNwbGF5TGF5ZXJJbXBsOjp3aWxsRHJhdyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJv
dmlkZXIpCiB7CiAgICAgQ0NMYXllckltcGw6OndpbGxEcmF3KHJlc291cmNlUHJvdmlkZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oCmluZGV4IDJmMTU4
OTI2NTU2ZDE2Njk3OGNjZjRhOGFjYjA5YmYxZjNjZTMwYzguLmIyY2RiNGQzMTBlYWI3NTQ0OTM2
YmRiMjk0ZGU2NTIzNTc0OTI3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsLmgKQEAgLTQwLDEyICs0MCwxNCBAQCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvdW50
ZXI7CiAKIGNsYXNzIENDSGVhZHNVcERpc3BsYXlMYXllckltcGwgOiBwdWJsaWMgQ0NMYXllcklt
cGwgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENDSGVhZHNVcERpc3BsYXlMYXll
ckltcGw+IGNyZWF0ZShpbnQgaWQsIFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGZvbnRBdGxhcykK
KyAgICBzdGF0aWMgUGFzc093blB0cjxDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsPiBjcmVhdGUo
aW50IGlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsKGlkLCBmb250QXRsYXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKGlkKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkND
SGVhZHNVcERpc3BsYXlMYXllckltcGwoKTsKIAorICAgIHZvaWQgc2V0Rm9udEF0bGFzKFBhc3NP
d25QdHI8Q0NGb250QXRsYXM+KTsKKwogICAgIHZpcnR1YWwgdm9pZCB3aWxsRHJhdyhDQ1Jlc291
cmNlUHJvdmlkZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kUXVhZHMoQ0NR
dWFkU2luayYsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgYm9vbCYgaGFkTWlzc2luZ1RpbGVz
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdyhDQ1Jlc291cmNlUHJvdmlkZXIq
KSBPVkVSUklERTsKQEAgLTU1LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBs
YXllcklzQWx3YXlzRGFtYWdlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAog
cHJpdmF0ZToKLSAgICBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKGludCwgUGFzc093blB0cjxD
Q0ZvbnRBdGxhcz4pOworICAgIGV4cGxpY2l0IENDSGVhZHNVcERpc3BsYXlMYXllckltcGwoaW50
KTsKIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiAiSGVhZHNVcERpc3BsYXlMYXllciI7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggOWNiM2IxYmI5NzRlNzliMzg1YTZmYTQyYWIxMmMyMTZh
MDM4MjliOC4uMzRjNmNhMjMzZDE5ZTlmOTNkNTlkYzI2NjE0YjAyMmI1OTNhY2Q5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRl
ICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKIAorI2luY2x1ZGUgIkNvbXBvc2l0b3JIVURGb250QXRs
YXMuaCIKICNpbmNsdWRlICJIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRl
ICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCkBAIC0yNTEsMTIgKzI1Miwy
MiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKENDTGF5
ZXJUcmVlSG9zdEltcGwqIGhvc3RJbXBsKQogICAgIG1fY29tbWl0TnVtYmVyKys7CiB9CiAKK3Zv
aWQgQ0NMYXllclRyZWVIb3N0OjpzZXRGb250QXRsYXMoUGFzc093blB0cjxDQ0ZvbnRBdGxhcz4g
Zm9udEF0bGFzKQoreworICAgIG1fZm9udEF0bGFzID0gZm9udEF0bGFzOworICAgIHNldE5lZWRz
Q29tbWl0KCk7Cit9CisKIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp3aWxsQ29tbWl0KCkKIHsKICAg
ICBtX2NsaWVudC0+d2lsbENvbW1pdCgpOwogICAgIGlmIChtX3Jvb3RMYXllciAmJiBtX3NldHRp
bmdzLnNob3dEZWJ1Z0luZm8oKSkgewogICAgICAgICBpZiAoIW1faHVkTGF5ZXIpCi0gICAgICAg
ICAgICBtX2h1ZExheWVyID0gSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpjcmVhdGUobV9z
ZXR0aW5ncyk7CisgICAgICAgICAgICBtX2h1ZExheWVyID0gSGVhZHNVcERpc3BsYXlMYXllckNo
cm9taXVtOjpjcmVhdGUoKTsKKworICAgICAgICBpZiAobV9mb250QXRsYXMpCisgICAgICAgICAg
ICBtX2h1ZExheWVyLT5zZXRGb250QXRsYXMobV9mb250QXRsYXMucmVsZWFzZSgpKTsKKwogICAg
ICAgICBpZiAobV9odWRMYXllci0+cGFyZW50KCkgIT0gbV9yb290TGF5ZXIuZ2V0KCkpIHsKICAg
ICAgICAgICAgIG1faHVkTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKICAgICAgICAgICAgIG1f
cm9vdExheWVyLT5hZGRDaGlsZChtX2h1ZExheWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmgKaW5kZXggMjg0YmJhNmYwMTBmNjI4NWNmYjdhNWM4MTIzNGViODY5NTIxM2EyNC4uMDY1NjVl
MmNiYWVlY2JmMTg2MzA5MjJjOTg1NjAzYmI5NGIzZTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmgKQEAgLTQ3LDEzICs0NywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIENDRm9udEF0bGFzOwogY2xhc3MgQ0NHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBDQ0xheWVy
Q2hyb21pdW07CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RJbXBsOwogY2xhc3MgQ0NMYXllclRyZWVI
b3N0SW1wbENsaWVudDsKK2NsYXNzIENDUHJpb3JpdGl6ZWRUZXh0dXJlTWFuYWdlcjsKIGNsYXNz
IENDVGV4dHVyZVVwZGF0ZXI7CitjbGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW07CiBj
bGFzcyBSZWdpb247Ci1jbGFzcyBDQ1ByaW9yaXRpemVkVGV4dHVyZU1hbmFnZXI7CiBzdHJ1Y3Qg
Q0NTY3JvbGxBbmRTY2FsZVNldDsKIAogY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKQEAg
LTI2NSw2ICsyNjcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3Rvcihm
bG9hdCk7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2Rl
dmljZVNjYWxlRmFjdG9yOyB9CiAKKyAgICB2b2lkIHNldEZvbnRBdGxhcyhQYXNzT3duUHRyPEND
Rm9udEF0bGFzPik7CisKIHByb3RlY3RlZDoKICAgICBDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRy
ZWVIb3N0Q2xpZW50KiwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOwogICAgIGJvb2wgaW5p
dGlhbGl6ZSgpOwpAQCAtMzA3LDcgKzMxMSw5IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbnVtRmFp
bGVkUmVjcmVhdGVBdHRlbXB0czsKIAogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX3Jvb3RM
YXllcjsKLSAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9odWRMYXllcjsKKyAgICBSZWZQdHI8
SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtPiBtX2h1ZExheWVyOworICAgIE93blB0cjxDQ0Zv
bnRBdGxhcz4gbV9mb250QXRsYXM7CisKICAgICBPd25QdHI8Q0NQcmlvcml0aXplZFRleHR1cmVN
YW5hZ2VyPiBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXI7CiAgICAgT3duUHRyPENDUHJpb3JpdGl6
ZWRUZXh0dXJlPiBtX3N1cmZhY2VNZW1vcnlQbGFjZWhvbGRlcjsKIApAQCAtMzMxLDYgKzMzNyw3
IEBAIHByaXZhdGU6CiAKICAgICBUZXh0dXJlTGlzdCBtX2RlbGV0ZVRleHR1cmVBZnRlckNvbW1p
dExpc3Q7CiAgICAgc2l6ZV90IG1fcGFydGlhbFRleHR1cmVVcGRhdGVSZXF1ZXN0czsKKwogICAg
IHN0YXRpYyBib29sIHNfbmVlZHNGaWx0ZXJDb250ZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcAppbmRleCBjNDNkODNhYzBlZGMy
ZTMyZDU2ZTFiZDhmMDMzODdjNzAzZTVlMTUzLi5jNWNhNzE0OTBiZjEyYmZhZmM1YTljM2RkNzgw
OGExMmUzMDk0MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllclRyZWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXll
clRyZWVWaWV3LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJXZWJM
YXllclRyZWVWaWV3SW1wbC5oIgorI2luY2x1ZGUgImNjL0NDRm9udEF0bGFzLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3Qu
aCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlcmluZ1N0YXRzLmgiCkBAIC0xODksNiArMTkwLDE1IEBA
IHZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6cmVuZGVyaW5nU3RhdHMoV2ViUmVuZGVyaW5nU3RhdHMm
IHN0YXRzKSBjb25zdAogICAgIHN0YXRzLnRvdGFsUmFzdGVyaXplVGltZUluU2Vjb25kcyA9IGNj
U3RhdHMudG90YWxSYXN0ZXJpemVUaW1lSW5TZWNvbmRzOwogfQogCit2b2lkIFdlYkxheWVyVHJl
ZVZpZXc6OnNldEZvbnRBdGxhcyhTa0JpdG1hcCBiaXRtYXAsIFdlYlJlY3QgYXNjaWlUb1dlYlJl
Y3RUYWJsZVsxMjhdLCBpbnQgZm9udEhlaWdodCkKK3sKKyAgICBJbnRSZWN0IGFzY2lpVG9SZWN0
VGFibGVbMTI4XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEyODsgKytpKQorICAgICAgICBh
c2NpaVRvUmVjdFRhYmxlW2ldID0gYXNjaWlUb1dlYlJlY3RUYWJsZVtpXTsKKyAgICBPd25QdHI8
Q0NGb250QXRsYXM+IGZvbnRBdGxhcyA9IENDRm9udEF0bGFzOjpjcmVhdGUoYml0bWFwLCBhc2Np
aVRvUmVjdFRhYmxlLCBmb250SGVpZ2h0KTsKKyAgICBtX3ByaXZhdGUtPmxheWVyVHJlZUhvc3Qo
KS0+c2V0Rm9udEF0bGFzKGZvbnRBdGxhcy5yZWxlYXNlKCkpOworfQorCiB2b2lkIFdlYkxheWVy
VHJlZVZpZXc6Omxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpCiB7CiAgICAgbV9w
cml2YXRlLT5sYXllclRyZWVIb3N0KCktPmxvc2VDb250ZXh0KG51bVRpbWVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBkODc1MGUzOGEyODdlYjE5
MDczNzQ0Y2MwMzllMmM0YTI0ZDRlYzk0Li4yZmE4ZGQyYmQ4OGRlNjUxMDdjNWNiOTdjYzhiYzFh
YjIzOTc3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb2xvclNw
YWNlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVyLmgiCisj
aW5jbHVkZSAiQ29tcG9zaXRvckhVREZvbnRBdGxhcy5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0
dXJlc0NsaWVudEltcGwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgIkNv
bnRleHRNZW51Q29udHJvbGxlci5oIgpAQCAtMzY2OCw2ICszNjY5LDE1IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKICAg
ICAgICAgICAgIG1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gZmFsc2U7CiAgICAgICAgICAg
ICBpZiAobV9wYWdlT3ZlcmxheXMpCiAgICAgICAgICAgICAgICAgbV9wYWdlT3ZlcmxheXMtPnVw
ZGF0ZSgpOworCisgICAgICAgICAgICAvLyBPbmx5IGFsbG9jYXRlIHRoZSBmb250IGF0bGFzIGlm
IHdlIGhhdmUgcmVhc29uIHRvIHVzZSB0aGUgaGVhZHMtdXAgZGlzcGxheS4KKyAgICAgICAgICAg
IGlmIChsYXllclRyZWVWaWV3U2V0dGluZ3Muc2hvd0ZQU0NvdW50ZXIgfHwgbGF5ZXJUcmVlVmll
d1NldHRpbmdzLnNob3dQbGF0Zm9ybUxheWVyVHJlZSkgeworICAgICAgICAgICAgICAgIFRSQUNF
X0VWRU5UMCgiY2MiLCAiV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Fj
dGl2ZSh0cnVlKSBpbml0aWFsaXplIGZvbnQgYXRsYXMiKTsKKyAgICAgICAgICAgICAgICBXZWJS
ZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XTsKKyAgICAgICAgICAgICAgICBpbnQgZm9udEhlaWdo
dDsKKyAgICAgICAgICAgICAgICBTa0JpdG1hcCBiaXRtYXAgPSBXZWJDb3JlOjpDb21wb3NpdG9y
SFVERm9udEF0bGFzOjpnZW5lcmF0ZUZvbnRBdGxhcyhhc2NpaVRvUmVjdFRhYmxlLCBmb250SGVp
Z2h0KTsKKyAgICAgICAgICAgICAgICBtX2xheWVyVHJlZVZpZXcuc2V0Rm9udEF0bGFzKGJpdG1h
cCwgYXNjaWlUb1JlY3RUYWJsZSwgZm9udEhlaWdodCk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jbGVhcigp
OwogICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdC5jcHAKaW5kZXggNzg0MjJjZDlmOTdmYjM3YzNlYTU4YWY1OGYxODc2OTNmYTNi
NDNlZS4uMDA4ZWY4NGJmMWQ1YmU5ODQxODhmZjZiMzRiMDgwNzI5NTM1N2JkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdC5jcHAKQEAgLTIzMzYsNyArMjMzNiw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdCwgZG9udFVzZU9sZFJlc291cmNlc0FmdGVyTG9zdENvbnRleHQpCiAgICAgaW9TdXJmYWNl
TGF5ZXItPnNldExheWVyVHJlZUhvc3RJbXBsKG1faG9zdEltcGwuZ2V0KCkpOwogICAgIHJvb3RM
YXllci0+YWRkQ2hpbGQoaW9TdXJmYWNlTGF5ZXIucmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxD
Q0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsPiBodWRMYXllciA9IENDSGVhZHNVcERpc3BsYXlMYXll
ckltcGw6OmNyZWF0ZSg2LCBudWxscHRyKTsKKyAgICBPd25QdHI8Q0NIZWFkc1VwRGlzcGxheUxh
eWVySW1wbD4gaHVkTGF5ZXIgPSBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpjcmVhdGUoNik7
CiAgICAgaHVkTGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOwogICAgIGh1ZExheWVy
LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKICAgICBodWRMYXllci0+c2V0Q29u
dGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155938</attachid>
            <date>2012-08-01 18:00:26 -0700</date>
            <delta_ts>2012-08-01 18:07:19 -0700</delta_ts>
            <desc>remove unnecessary include of CompositorHUDFontAtlas.h</desc>
            <filename>bug-92924-20120801180008.patch</filename>
            <type>text/plain</type>
            <size>25154</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Mzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMGFkNjYyNmY3NThm
YWIyY2ExMjhmNjhjZmMwZTA5Y2JmYzNkNmRlLi45MDg5MzkyYTE3MTA2OGEzODhjNWEzMjAyYWE4
ZDlmYWIyMTMzZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0wMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBjb21wb3NpdG9yIEhVRCBmb250IGF0bGFzIGluaXRpYWxpemF0aW9uIGNvZGUgb3V0
IG9mIGNvbXBvc2l0b3IgY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgY2hyb21pdW0gY29tcG9zaXRvciBkb2VzIG5vdCBoYXZlIGFueSB0ZXh0
IHJlbmRlcmluZyBjYXBhYmlsaXRpZXMuIEl0IGdlbmVyYWxseSBkb2VzIG5vdCBuZWVkIHRoZW0s
IGJ1dCBpdAorICAgICAgICBpcyBoZWxwZnVsIGZvciBzb21lIGRlYnVnZ2luZyBhaWRzIHRvIGJl
IGFibGUgdG8gcmVuZGVyIGF0IGxlYXN0IEFTQ0lJIHRleHQgdG8gdGhlIHNjcmVlbi4gVGhpcyBw
cm92aWRlcyBhbiBBUEkKKyAgICAgICAgb24gV2ViTGF5ZXJUcmVlVmlldyBieSB3aGljaCBhbiBl
bWJlZGRlciBjYW4gcHJvdmlkZSBhbiBBU0NJSSBnbHlwaCBhdGxhcyB0byB1c2UgZm9yIGRpc3Bs
YXlpbmcgZGVidWcKKyAgICAgICAgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmlldyk6CisK
IDIwMTItMDgtMDEgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gTWFrZSBXZWJLaXQgQVBJIHN1cHBvcnQgZHJhZ2dhYmxlIHJlZ2lvbiBjaGFuZ2Ug
dXBkYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5ZDg5MzVjNGU4MjgxOWFiODQ0OGYwNWEwYmNhN2YyY2Mw
ZDdiZi4uN2EwNDIzNDY5ZGExZTNlYTVlMDEwZGQ0MzYzMDMxYjBkYjUwOGNiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA4LTAxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNb3ZlIGNvbXBvc2l0b3IgSFVEIGZv
bnQgYXRsYXMgaW5pdGlhbGl6YXRpb24gY29kZSBvdXQgb2YgY29tcG9zaXRvciBjb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjkyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbW92ZXMgdGhl
IEhVRCBmb250IGF0bGFzIGluaXRpYWxpemF0aW9uIGNvZGUgb3V0IG9mIHRoZSBjb21wb3NpdG9y
IGltcGxlbWVudGF0aW9uIHRvIGN1dCBvdXQgRm9udC1yZWxhdGVkCisgICAgICAgIGRlcGVuZGVu
Y2llcy4gVGhlIG5ldyBmbG93IGlzIHRoYXQgYW4gZW1iZWRkZXIgY2FuIHBhc3MgYSBmb250IGF0
bGFzIHRvIHRoZSBDQ0xheWVyVHJlZUhvc3QsIGFmdGVyIHdoaWNoIHRoZQorICAgICAgICBhdGxh
cyBpcyBwcm92aWRlZCB0aGUgSFVEIGxheWVyIChpZiBhbnkpIG9uIHRoZSBuZXh0IGNvbW1pdC4g
VGhlIEhVRCBsYXllciByZW5kZXJzIHRleHQgdXNpbmcgdGhlIGZvbnQgYXRsYXMgaWYKKyAgICAg
ICAgaXQgaGFzIGFueSBpZiB0aGUgc2V0dGluZ3MgcmVxdWlyZSB0ZXh0LgorCisgICAgICAgIEhV
RCB0ZXN0ZWQgbWFudWFsbHksIHdlIGRvbid0IGhhdmUgYXV0b21hdGVkIHRlc3RzIGZvciB0aGlz
IGRlYnVnZ2luZy1vbmx5IGZlYXR1cmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRs
YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURG
b250QXRsYXMuaDoKKyAgICAgICAgKENvbXBvc2l0b3JIVURGb250QXRsYXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06OkhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxh
eUxheWVyQ2hyb21pdW06OnNldEZvbnRBdGxhcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllcklt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpwdXNo
UHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250
QXRsYXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NGb250QXRsYXM6OkNDRm9udEF0bGFzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZvbnRBdGxhczo6Y3JlYXRl
KToKKyAgICAgICAgKENDRm9udEF0bGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6c2V0Rm9udEF0
bGFzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmNyZWF0ZSk6CisgICAgICAgIChDQ0hlYWRzVXBE
aXNwbGF5TGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
OjpzZXRGb250QXRsYXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyVHJlZUhvc3Q6OndpbGxDb21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDQ0xheWVyVHJlZUhvc3QpOgorCiAyMDEyLTA4LTAxICBBbnRvaW5lIExhYm91ciAgPHBp
bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGZhY3RvciBvdXQgdGhlIG9w
dGltaXphdGlvbiBwYXNzIGluIENDUmVuZGVyU3VyZmFjZUZpbHRlcnM6OmFwcGx5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGEzYTY4MWVkMTczMDllMjk4ODEzZjQ0MjE5MWUxZGE3YjIx
OTA3NjkuLmVmZGJmMTIzMmEyNTA1MjkwNzQyNWQ1YmEzOTFkMzJiMGRlZTgyMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDgtMDEgIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUg
Y29tcG9zaXRvciBIVUQgZm9udCBhdGxhcyBpbml0aWFsaXphdGlvbiBjb2RlIG91dCBvZiBjb21w
b3NpdG9yIGNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkyOTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBpbml0aWFsaXplcyB0aGUgY29tcG9zaXRvcidzIGZvbnQgYXRsYXMgd2hlbiBpbml0
aWFsaXphdGlvbiB0aGUgY29tcG9zaXRvciBpZiB0aGUgIlNob3cgRlBTIGNvdW50ZXIiIG9yCisg
ICAgICAgICJTaG93IGxheWVyIHRyZWUiIHNldHRpbmdzIGFyZSB0cnVlLgorCisgICAgICAgICog
c3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVW
aWV3OjpzZXRGb250QXRsYXMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMi0wOC0wMSAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYWtlIFdlYktpdCBBUEkgc3VwcG9y
dCBkcmFnZ2FibGUgcmVnaW9uIGNoYW5nZSB1cGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKaW5kZXggNTNiZWViZDUzZTg4NWY1
OWViMGEyYjc3NDEyZGY2NTk4N2RjOWQyNS4uMzdlNTkzMzJhM2FhOWIxMGU1ZGE5YzA1NzZjMjU1
MmM2YjFmMTMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJMYXllclRyZWVWaWV3LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViTGF5ZXJUcmVl
Vmlld19oCiAjZGVmaW5lIFdlYkxheWVyVHJlZVZpZXdfaAogCisjaW5jbHVkZSAiU2tCaXRtYXAu
aCIKICNpbmNsdWRlICJXZWJDb2xvci5oIgogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1
ZGUgIldlYk5vbkNvcHlhYmxlLmgiCkBAIC0xNzUsNiArMTc2LDEwIEBAIHB1YmxpYzoKICAgICAv
LyBUaGlzIGNhbGwgaXMgcmVsYXRpdmVseSBleHBlbnNpdmUgaW4gdGhyZWFkZWQgbW9kZSBhcyBp
dCBibG9ja3Mgb24gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgogICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCByZW5kZXJpbmdTdGF0cyhXZWJSZW5kZXJpbmdTdGF0cyYpIGNvbnN0OwogCisgICAgLy8gUHJv
dmlkZXMgYSBmb250IGF0bGFzIHRvIHVzZSBmb3IgZGVidWcgdmlzdWFsaXphdGlvbnMuIFRoZSBh
dGxhcyBtdXN0IGJlIGEgYml0bWFwIGNvbnRhaW5pbmcgZ2x5cGggZGF0YSwgYSB0YWJsZSBvZgor
ICAgIC8vIEFTQ0lJIGNoYXJhY3RlciB2YWx1ZXMgdG8gYSBzdWJyZWN0YW5nbGUgb2YgdGhlIGF0
bGFzIHJlcHJlc2VudGluZyB0aGUgY29ycmVzcG9uZGluZyBnbHlwaCwgYW5kIHRoZSBnbHlwaCBo
ZWlnaHQuCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEZvbnRBdGxhcyhTa0JpdG1hcCwgV2Vi
UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCBmb250SGVpZ2h0KTsKKwogICAgIC8vIFNp
bXVsYXRlcyBhIGxvc3QgY29udGV4dC4gRm9yIHRlc3Rpbmcgb25seS4KICAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgbG9zZUNvbXBvc2l0b3JDb250ZXh0KGludCBudW1UaW1lcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JI
VURGb250QXRsYXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5jcHAKaW5kZXggOTE0MTJjNzRmMmU1NjgwMjdhOWJi
ZDZhODQxNWQ2NTE0NWQxOGM1MS4uYjUzYzEyOTIyMzY4MTU2ZTYwMTdiZTdmZDFiYTk0OGU2ZDZj
Yjc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5jcHAKQEAgLTM3LDYg
KzM3LDggQEAKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAic2tpYS9leHQvcGxhdGZv
cm1fY2FudmFzLmgiCiAKK3VzaW5nIFdlYktpdDo6V2ViUmVjdDsKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAjZGVmaW5lIEFUTEFTX1NJWkUgMTI4CkBAIC00OCwxMCArNTAsMTAgQEAgc3RhdGlj
IHZvaWQgd3JhcFBvc2l0aW9uSWZOZWVkZWQoSW50UG9pbnQmIHBvc2l0aW9uLCBpbnQgdGV4dFdp
ZHRoLCBpbnQgdGV4dEhlaWcKIH0KIAogLy8gUGFpbnRzIHRoZSBmb250IGludG8gdGhlIGF0bGFz
LCBmcm9tIGxlZnQtdG8tcmlnaHQsIHRvcC10by1ib3R0b20sIHN0YXJ0aW5nIGF0Ci0vLyBzdGFy
dGluZ1Bvc2l0aW9uLiBBdCB0aGUgc2FtZSB0aW1lLCBpdCB1cGRhdGVzIHRoZSBhc2NpaS10by1J
bnRSZWN0IG1hcHBpbmcgZm9yCisvLyBzdGFydGluZ1Bvc2l0aW9uLiBBdCB0aGUgc2FtZSB0aW1l
LCBpdCB1cGRhdGVzIHRoZSBhc2NpaS10by1XZWJSZWN0IG1hcHBpbmcgZm9yCiAvLyBlYWNoIGNo
YXJhY3Rlci4gQnkgZG9pbmcgdGhpbmdzIHRoaXMgd2F5LCBpdCBpcyBwb3NzaWJsZSB0byBzdXBw
b3J0IHZhcmlhYmxlLXdpZHRoCiAvLyBmb250cyBhbmQgbXVsdGlwbGUgZm9udHMgb24gdGhlIHNh
bWUgYXRsYXMuCi1Ta0JpdG1hcCBDb21wb3NpdG9ySFVERm9udEF0bGFzOjpnZW5lcmF0ZUZvbnRB
dGxhcyhJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XSwgaW50JiBmb250SGVpZ2h0KQorU2tC
aXRtYXAgQ29tcG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRsYXMoV2ViUmVjdCBh
c2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCYgZm9udEhlaWdodCkKIHsKICAgICBmb250SGVpZ2h0
ID0gMTQ7CiAKQEAgLTkxLDcgKzkzLDcgQEAgU2tCaXRtYXAgQ29tcG9zaXRvckhVREZvbnRBdGxh
czo6Z2VuZXJhdGVGb250QXRsYXMoSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0KICAgICAg
ICAgYXRsYXNDb250ZXh0LnN0cm9rZVJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQocG9zaXRpb24u
eCgpICsgMSwgcG9zaXRpb24ueSgpIC0gdGV4dEhlaWdodCArIDEgKyBpbmZsYXRpb24pLCBGbG9h
dFNpemUodGV4dFdpZHRoIC0gMiwgdGV4dEhlaWdodCAtIDIgLSBpbmZsYXRpb24pKSwgMSk7CiAK
ICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgcmVjdCB0aGF0IHdvdWxkIGJlIGNvcGllZCB3aGVu
IGRyYXdpbmcgdGhpcyBnbHlwaCBmcm9tIHRoZSBhdGxhcy4KLSAgICAgICAgYXNjaWlUb1JlY3RU
YWJsZVswXSA9IEludFJlY3QoSW50UG9pbnQocG9zaXRpb24ueCgpLCBwb3NpdGlvbi55KCkgLSB0
ZXh0SGVpZ2h0KSwgSW50U2l6ZSh0ZXh0V2lkdGgsIHRleHRIZWlnaHQgKyBpbmZsYXRpb24pKTsK
KyAgICAgICAgYXNjaWlUb1JlY3RUYWJsZVswXSA9IFdlYlJlY3QocG9zaXRpb24ueCgpLCBwb3Np
dGlvbi55KCkgLSB0ZXh0SGVpZ2h0LCB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgKyBpbmZsYXRpb24p
OwogCiAgICAgICAgIC8vIEluY3JlbWVudCB0byB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIG5leHQg
Z2x5cGggd2lsbCBiZSBwbGFjZWQuCiAgICAgICAgIHBvc2l0aW9uLnNldFgocG9zaXRpb24ueCgp
ICsgdGV4dFdpZHRoKTsKQEAgLTExNCw3ICsxMTYsNyBAQCBTa0JpdG1hcCBDb21wb3NpdG9ySFVE
Rm9udEF0bGFzOjpnZW5lcmF0ZUZvbnRBdGxhcyhJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4
XQogICAgICAgICBhdGxhc0NvbnRleHQuZHJhd1RleHQoZm9udCwgdGV4dCwgcG9zaXRpb24pOwog
CiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHJlY3QgdGhhdCB3b3VsZCBiZSBjb3BpZWQgd2hl
biBkcmF3aW5nIHRoaXMgZ2x5cGggZnJvbSB0aGUgYXRsYXMuCi0gICAgICAgIGFzY2lpVG9SZWN0
VGFibGVbaV0gPSBJbnRSZWN0KEludFBvaW50KHBvc2l0aW9uLngoKSwgcG9zaXRpb24ueSgpIC0g
dGV4dEhlaWdodCksIEludFNpemUodGV4dFdpZHRoLCB0ZXh0SGVpZ2h0ICsgaW5mbGF0aW9uKSk7
CisgICAgICAgIGFzY2lpVG9SZWN0VGFibGVbaV0gPSBXZWJSZWN0KHBvc2l0aW9uLngoKSwgcG9z
aXRpb24ueSgpIC0gdGV4dEhlaWdodCwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0ICsgaW5mbGF0aW9u
KTsKIAogICAgICAgICAvLyBJbmNyZW1lbnQgdG8gdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBuZXh0
IGdseXBoIHdpbGwgYmUgcGxhY2VkLgogICAgICAgICBwb3NpdGlvbi5zZXRYKHBvc2l0aW9uLngo
KSArIHRleHRXaWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db21wb3NpdG9ySFVERm9udEF0bGFzLmgKaW5kZXgg
YzUyYzZkMTZmMWFkOWQ3YTVjMjg1NGI5ZDcxOGE0Nzc4MTMwZTU2YS4uOTFiYWI1ZDYyYzdiNGQ0
NGQzYzM0MjVhNmE3YzY0YmFmZjQyNTE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbXBvc2l0b3JIVURGb250
QXRsYXMuaApAQCAtMjYsOCArMjYsOCBAQAogI2lmbmRlZiBDb21wb3NpdG9ySFVERm9udEF0bGFz
X2gKICNkZWZpbmUgQ29tcG9zaXRvckhVREZvbnRBdGxhc19oCiAKLSNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUmVjdC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIC8v
IFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBjYW4gZ2VuZXJhdGUgYSBmb250IGF0bGFz
IHN1aXRhYmxlIGZvciB0aGUgY29tcG9zaXRvcidzIGhlYWRzIHVwIGRpc3BsYXkuCiAgICAgLy8g
UmV0dXJucyBhIGJpdG1hcCBjb250YWluaW5nIGdseXBocyBhbmQgcG9wdWxhdGVzIGFzY2lpVG9S
ZWN0VGFibGUgd2l0aCB0aGUKICAgICAvLyBsb2NhdGlvbiBvZiBlYWNoIGdseXBoLgotICAgIHN0
YXRpYyBTa0JpdG1hcCBnZW5lcmF0ZUZvbnRBdGxhcyhJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVb
MTI4XSwgaW50JiBmb250SGVpZ2h0KTsKKyAgICBzdGF0aWMgU2tCaXRtYXAgZ2VuZXJhdGVGb250
QXRsYXMoV2ViS2l0OjpXZWJSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XSwgaW50JiBmb250SGVp
Z2h0KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGYyNTRhNjRkYmNiMTdkMTM2ODYwMDg4
MDkyNzE2M2IyYjA4OTdlYWEuLmI0YzE5NzQ4YWYwZTY3ODc0MjdiODdkZmQ0MzU5YTBkZmIzOTkx
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmNwcApA
QCAtMzMsMjMgKzMzLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxI
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0+IEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzKQorUGFzc1JlZlB0cjxI
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0+IEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bShzZXR0aW5ncykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtKCkpOwogfQogCi1IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06Okhl
YWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bShjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBzZXR0
aW5ncykKK0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6SGVhZHNVcERpc3BsYXlMYXllckNo
cm9taXVtKCkKICAgICA6IExheWVyQ2hyb21pdW0oKQogewogCiAgICAgc2V0Qm91bmRzKEludFNp
emUoNTEyLCAxMjgpKTsKLQotICAgIC8vIE9ubHkgYWxsb2NhdGUgdGhlIGZvbnQgYXRsYXMgaWYg
d2UgaGF2ZSByZWFzb24gdG8gdXNlIHRoZSBoZWFkcy11cCBkaXNwbGF5LgotICAgIGlmIChzZXR0
aW5ncy5zaG93RlBTQ291bnRlciB8fCBzZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUpIHsK
LSAgICAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06
OmluaXRpYWxpemVGb250QXRsYXMiKTsKLSAgICAgICAgbV9mb250QXRsYXMgPSBDQ0ZvbnRBdGxh
czo6Y3JlYXRlKCk7Ci0gICAgICAgIG1fZm9udEF0bGFzLT5pbml0aWFsaXplKCk7Ci0gICAgfQog
fQogCiBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06On5IZWFkc1VwRGlzcGxheUxheWVyQ2hy
b21pdW0oKQpAQCAtNzMsOSArNjYsMjYgQEAgdm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmEKICAgICBz
ZXRCb3VuZHMoYm91bmRzKTsKIH0KIAordm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW06
OnNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPiBmb250QXRsYXMpCit7CisgICAg
bV9mb250QXRsYXMgPSBmb250QXRsYXM7CisgICAgc2V0TmVlZHNDb21taXQoKTsKK30KKwogUGFz
c093blB0cjxDQ0xheWVySW1wbD4gSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpjcmVhdGVD
Q0xheWVySW1wbCgpCiB7Ci0gICAgcmV0dXJuIENDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmNy
ZWF0ZShtX2xheWVySWQsIG1fZm9udEF0bGFzLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIENDSGVh
ZHNVcERpc3BsYXlMYXllckltcGw6OmNyZWF0ZShtX2xheWVySWQpOworfQorCit2b2lkIEhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5
ZXJJbXBsKQoreworICAgIExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBs
KTsKKworICAgIGlmICghbV9mb250QXRsYXMpCisgICAgICAgIHJldHVybjsKKworICAgIENDSGVh
ZHNVcERpc3BsYXlMYXllckltcGwqIGh1ZExheWVySW1wbCA9IHN0YXRpY19jYXN0PENDSGVhZHNV
cERpc3BsYXlMYXllckltcGwqPihsYXllckltcGwpOworICAgIGh1ZExheWVySW1wbC0+c2V0Rm9u
dEF0bGFzKG1fZm9udEF0bGFzLnJlbGVhc2UoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVh
ZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKaW5kZXggZmMxMjMwZjcwYTMyODc3ZDc1NzY4MTBh
MTI5OWY4M2UzZTMyYTYyYi4uYjdkMjVlNmI1ZjJmMTM5ZmJjYTM4MjVhYTgwMTI1Mzg4ODJlMWU3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKQEAgLTMz
LDIwICszMywyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBDQ0xheWVyVHJl
ZVNldHRpbmdzOwotCiBjbGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0gOiBwdWJsaWMg
TGF5ZXJDaHJvbWl1bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SGVhZHNVcERp
c3BsYXlMYXllckNocm9taXVtPiBjcmVhdGUoY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bT4gY3JlYXRl
KCk7CiAgICAgdmlydHVhbCB+SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1c2lvblRy
YWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRy
YXdzQ29udGVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZvaWQg
c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+KTsKKwogICAgIHZpcnR1YWwgUGFz
c093blB0cjxDQ0xheWVySW1wbD4gY3JlYXRlQ0NMYXllckltcGwoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopIE9WRVJSSURFOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtKGNvbnN0
IENDTGF5ZXJUcmVlU2V0dGluZ3MmKTsKKyAgICBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0o
KTsKIAogcHJpdmF0ZToKICAgICBPd25QdHI8Q0NGb250QXRsYXM+IG1fZm9udEF0bGFzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NG
b250QXRsYXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NGb250QXRsYXMuY3BwCmluZGV4IDkzNDA2MzEzZjkyMDQ4NGQ5MTM5MjFmZDhlYzk4NTdj
Yjg4MjlhZjYuLmY5NDE0NTRjY2Y3NTRkODVlOWU1ZWE2Y2Y0NGUxOGFhMTA1OGY2ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9u
dEF0bGFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0ZvbnRBdGxhcy5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiQ0NGb250QXRsYXMuaCIKIAotI2luY2x1ZGUgIkNv
bXBvc2l0b3JIVURGb250QXRsYXMuaCIKICNpbmNsdWRlICJTa0NhbnZhcy5oIgogI2luY2x1ZGUg
ImNjL0NDUHJveHkuaCIKIApAQCAtMzUsMjQgKzM0LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotCi1DQ0ZvbnRBdGxhczo6Q0NGb250QXRsYXMoKQot
ICAgIDogbV9mb250SGVpZ2h0KDApCitDQ0ZvbnRBdGxhczo6Q0NGb250QXRsYXMoU2tCaXRtYXAg
Yml0bWFwLCBJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XSwgaW50IGZvbnRIZWlnaHQpCisg
ICAgOiBtX2F0bGFzKGJpdG1hcCkKKyAgICAsIG1fZm9udEhlaWdodChmb250SGVpZ2h0KQogewor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTI4OyArK2kpCisgICAgICAgIG1fYXNjaWlUb1Jl
Y3RUYWJsZVtpXSA9IGFzY2lpVG9SZWN0VGFibGVbaV07CiB9CiAKLQogQ0NGb250QXRsYXM6On5D
Q0ZvbnRBdGxhcygpCiB7CiB9CiAKLXZvaWQgQ0NGb250QXRsYXM6OmluaXRpYWxpemUoKQotewot
ICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7Ci0KLSAgICBtX2F0bGFzID0gQ29t
cG9zaXRvckhVREZvbnRBdGxhczo6Z2VuZXJhdGVGb250QXRsYXMobV9hc2NpaVRvUmVjdFRhYmxl
LCBtX2ZvbnRIZWlnaHQpOwotfQotCiB2b2lkIENDRm9udEF0bGFzOjpkcmF3VGV4dChTa0NhbnZh
cyogY2FudmFzLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRp
b24sIGNvbnN0IEludFNpemUmIGNsaXApIGNvbnN0CiB7CiAgICAgQVNTRVJUKENDUHJveHk6Omlz
SW1wbFRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oCmluZGV4IGRkMTZlMjU5YmQ0Zjg4NTMy
M2JjNTI4YTBiZjE0NTVlZDg2MTdkMGUuLmMzMmE3MDM5NTg2YzZmMGM0ZjhiMzYzMWJiMjE0MzJm
YTM4YTg5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRm9udEF0bGFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMuaApAQCAtNDQsMjAgKzQ0LDE1IEBAIGNsYXNz
IEludFBvaW50OwogY2xhc3MgSW50U2l6ZTsKIAogLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBiYXNp
YyBhYmlsaXR5IHRvIGRyYXcgdGV4dCBvbnRvIHRoZSBoZWFkcy11cCBkaXNwbGF5LgotLy8gSXQg
bXVzdCBiZSBpbml0aWFsaXplZCBvbiB0aGUgbWFpbiB0aHJlYWQsIGFuZCBpdCBjYW4gb25seSBk
cmF3IHRleHQgb24gdGhlIGltcGwgdGhyZWFkLgogY2xhc3MgQ0NGb250QXRsYXMgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENDRm9udEF0bGFzKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxDQ0ZvbnRBdGxhcz4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxDQ0Zv
bnRBdGxhcz4gY3JlYXRlKFNrQml0bWFwIGJpdG1hcCwgSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxl
WzEyOF0sIGludCBmb250SGVpZ2h0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDQ0ZvbnRBdGxhcygpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0ZvbnRBdGxh
cyhiaXRtYXAsIGFzY2lpVG9SZWN0VGFibGUsIGZvbnRIZWlnaHQpKTsKICAgICB9CiAgICAgfkND
Rm9udEF0bGFzKCk7CiAKLSAgICAvLyBDcmVhdGVzIHRoZSBmb250IGF0bGFzLgotICAgIC8vIC0g
U2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICB2b2lkIGluaXRp
YWxpemUoKTsKLQogICAgIC8vIERyYXdzIG11bHRpcGxlIGxpbmVzIG9mIHRleHQgd2hlcmUgZWFj
aCBsaW5lIG9mIHRleHQgaXMgc2VwYXJhdGVkIGJ5ICdcbicuCiAgICAgLy8gLSBDb3JyZWN0IGds
eXBocyB3aWxsIGJlIGRyYXduIGZvciBBU0NJSSBjb2RlcyBpbiB0aGUgcmFuZ2UgMzItMTI3OyBh
bnkgY2hhcmFjdGVycwogICAgIC8vICAgb3V0c2lkZSB0aGF0IHJhbmdlIHdpbGwgYmUgZGlzcGxh
eWVkIGFzIGEgZGVmYXVsdCByZWN0YW5nbGUgZ2x5cGguCkBAIC03MCw3ICs2NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRyYXdEZWJ1Z0F0bGFzKFNrQ2FudmFzKiwgY29uc3QgSW50UG9pbnQmIGRl
c3RQb3NpdGlvbikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQ0NGb250QXRsYXMoKTsKKyAgICBD
Q0ZvbnRBdGxhcyhTa0JpdG1hcCwgSW50UmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCBm
b250SGVpZ2h0KTsKIAogICAgIHZvaWQgZHJhd09uZUxpbmVPZlRleHRJbnRlcm5hbChTa0NhbnZh
cyosIGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24pIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwCmluZGV4
IGM3MzhkMjk2NTJhMWRhMDk1MGI4YTM4MzZkMDA3OWFjNjdkYTY1MmQuLmY5ZmQ5OWZmMzY4YzZk
MGFlZTA0ODA2MDQ3MDZhMDY3Yjk3ZjFhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVh
ZHNVcERpc3BsYXlMYXllckltcGwuY3BwCkBAIC00NSw5ICs0NSw4IEBAIHVzaW5nIFdlYktpdDo6
V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNDSGVh
ZHNVcERpc3BsYXlMYXllckltcGw6OkNDSGVhZHNVcERpc3BsYXlMYXllckltcGwoaW50IGlkLCBQ
YXNzT3duUHRyPENDRm9udEF0bGFzPiBmb250QXRsYXMpCi0gICAgOiBDQ0xheWVySW1wbChpZCks
Ci0gICAgICBtX2ZvbnRBdGxhcyhmb250QXRsYXMpCitDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBs
OjpDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKGludCBpZCkKKyAgICA6IENDTGF5ZXJJbXBsKGlk
KQogewogfQogCkBAIC01NSw2ICs1NCwxMSBAQCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjp+
Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbCgpCiB7CiB9CiAKK3ZvaWQgQ0NIZWFkc1VwRGlzcGxh
eUxheWVySW1wbDo6c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGZvbnRBdGxh
cykKK3sKKyAgICBtX2ZvbnRBdGxhcyA9IGZvbnRBdGxhczsKK30KKwogdm9pZCBDQ0hlYWRzVXBE
aXNwbGF5TGF5ZXJJbXBsOjp3aWxsRHJhdyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJv
dmlkZXIpCiB7CiAgICAgQ0NMYXllckltcGw6OndpbGxEcmF3KHJlc291cmNlUHJvdmlkZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oCmluZGV4IDJmMTU4
OTI2NTU2ZDE2Njk3OGNjZjRhOGFjYjA5YmYxZjNjZTMwYzguLmIyY2RiNGQzMTBlYWI3NTQ0OTM2
YmRiMjk0ZGU2NTIzNTc0OTI3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsLmgKQEAgLTQwLDEyICs0MCwxNCBAQCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvdW50
ZXI7CiAKIGNsYXNzIENDSGVhZHNVcERpc3BsYXlMYXllckltcGwgOiBwdWJsaWMgQ0NMYXllcklt
cGwgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENDSGVhZHNVcERpc3BsYXlMYXll
ckltcGw+IGNyZWF0ZShpbnQgaWQsIFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGZvbnRBdGxhcykK
KyAgICBzdGF0aWMgUGFzc093blB0cjxDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsPiBjcmVhdGUo
aW50IGlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsKGlkLCBmb250QXRsYXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKGlkKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkND
SGVhZHNVcERpc3BsYXlMYXllckltcGwoKTsKIAorICAgIHZvaWQgc2V0Rm9udEF0bGFzKFBhc3NP
d25QdHI8Q0NGb250QXRsYXM+KTsKKwogICAgIHZpcnR1YWwgdm9pZCB3aWxsRHJhdyhDQ1Jlc291
cmNlUHJvdmlkZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kUXVhZHMoQ0NR
dWFkU2luayYsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgYm9vbCYgaGFkTWlzc2luZ1RpbGVz
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdyhDQ1Jlc291cmNlUHJvdmlkZXIq
KSBPVkVSUklERTsKQEAgLTU1LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBs
YXllcklzQWx3YXlzRGFtYWdlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAog
cHJpdmF0ZToKLSAgICBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsKGludCwgUGFzc093blB0cjxD
Q0ZvbnRBdGxhcz4pOworICAgIGV4cGxpY2l0IENDSGVhZHNVcERpc3BsYXlMYXllckltcGwoaW50
KTsKIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiAiSGVhZHNVcERpc3BsYXlMYXllciI7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggOWNiM2IxYmI5NzRlNzliMzg1YTZmYTQyYWIxMmMyMTZh
MDM4MjliOC4uZTNiOGFkMWY2NGYyZTUxN2U5ZWZiODFjMzVjYjE4MmIzN2RmOGUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0yNTEsMTIgKzI1MSwyMiBAQCB2b2lkIEND
TGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKENDTGF5ZXJUcmVlSG9zdElt
cGwqIGhvc3RJbXBsKQogICAgIG1fY29tbWl0TnVtYmVyKys7CiB9CiAKK3ZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpzZXRGb250QXRsYXMoUGFzc093blB0cjxDQ0ZvbnRBdGxhcz4gZm9udEF0bGFzKQor
eworICAgIG1fZm9udEF0bGFzID0gZm9udEF0bGFzOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9
CisKIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp3aWxsQ29tbWl0KCkKIHsKICAgICBtX2NsaWVudC0+
d2lsbENvbW1pdCgpOwogICAgIGlmIChtX3Jvb3RMYXllciAmJiBtX3NldHRpbmdzLnNob3dEZWJ1
Z0luZm8oKSkgewogICAgICAgICBpZiAoIW1faHVkTGF5ZXIpCi0gICAgICAgICAgICBtX2h1ZExh
eWVyID0gSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpjcmVhdGUobV9zZXR0aW5ncyk7Cisg
ICAgICAgICAgICBtX2h1ZExheWVyID0gSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjpjcmVh
dGUoKTsKKworICAgICAgICBpZiAobV9mb250QXRsYXMpCisgICAgICAgICAgICBtX2h1ZExheWVy
LT5zZXRGb250QXRsYXMobV9mb250QXRsYXMucmVsZWFzZSgpKTsKKwogICAgICAgICBpZiAobV9o
dWRMYXllci0+cGFyZW50KCkgIT0gbV9yb290TGF5ZXIuZ2V0KCkpIHsKICAgICAgICAgICAgIG1f
aHVkTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKICAgICAgICAgICAgIG1fcm9vdExheWVyLT5h
ZGRDaGlsZChtX2h1ZExheWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKaW5kZXggMjg0
YmJhNmYwMTBmNjI4NWNmYjdhNWM4MTIzNGViODY5NTIxM2EyNC4uMDY1NjVlMmNiYWVlY2JmMTg2
MzA5MjJjOTg1NjAzYmI5NGIzZTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKQEAg
LTQ3LDEzICs0NywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENDRm9udEF0
bGFzOwogY2xhc3MgQ0NHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBDQ0xheWVyQ2hyb21pdW07CiBj
bGFzcyBDQ0xheWVyVHJlZUhvc3RJbXBsOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVu
dDsKK2NsYXNzIENDUHJpb3JpdGl6ZWRUZXh0dXJlTWFuYWdlcjsKIGNsYXNzIENDVGV4dHVyZVVw
ZGF0ZXI7CitjbGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW07CiBjbGFzcyBSZWdpb247
Ci1jbGFzcyBDQ1ByaW9yaXRpemVkVGV4dHVyZU1hbmFnZXI7CiBzdHJ1Y3QgQ0NTY3JvbGxBbmRT
Y2FsZVNldDsKIAogY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKQEAgLTI2NSw2ICsyNjcs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVNjYWxlRmFj
dG9yOyB9CiAKKyAgICB2b2lkIHNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPik7
CisKIHByb3RlY3RlZDoKICAgICBDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50
KiwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOwogICAgIGJvb2wgaW5pdGlhbGl6ZSgpOwpA
QCAtMzA3LDcgKzMxMSw5IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbnVtRmFpbGVkUmVjcmVhdGVB
dHRlbXB0czsKIAogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX3Jvb3RMYXllcjsKLSAgICBS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9odWRMYXllcjsKKyAgICBSZWZQdHI8SGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtPiBtX2h1ZExheWVyOworICAgIE93blB0cjxDQ0ZvbnRBdGxhcz4gbV9m
b250QXRsYXM7CisKICAgICBPd25QdHI8Q0NQcmlvcml0aXplZFRleHR1cmVNYW5hZ2VyPiBtX2Nv
bnRlbnRzVGV4dHVyZU1hbmFnZXI7CiAgICAgT3duUHRyPENDUHJpb3JpdGl6ZWRUZXh0dXJlPiBt
X3N1cmZhY2VNZW1vcnlQbGFjZWhvbGRlcjsKIApAQCAtMzMxLDYgKzMzNyw3IEBAIHByaXZhdGU6
CiAKICAgICBUZXh0dXJlTGlzdCBtX2RlbGV0ZVRleHR1cmVBZnRlckNvbW1pdExpc3Q7CiAgICAg
c2l6ZV90IG1fcGFydGlhbFRleHR1cmVVcGRhdGVSZXF1ZXN0czsKKwogICAgIHN0YXRpYyBib29s
IHNfbmVlZHNGaWx0ZXJDb250ZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcAppbmRleCBjNDNkODNhYzBlZGMyZTMyZDU2ZTFiZDhm
MDMzODdjNzAzZTVlMTUzLi5jNWNhNzE0OTBiZjEyYmZhZmM1YTljM2RkNzgwOGExMmUzMDk0MjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVWaWV3
SW1wbC5oIgorI2luY2x1ZGUgImNjL0NDRm9udEF0bGFzLmgiCiAjaW5jbHVkZSAiY2MvQ0NHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRl
ICJjYy9DQ1JlbmRlcmluZ1N0YXRzLmgiCkBAIC0xODksNiArMTkwLDE1IEBAIHZvaWQgV2ViTGF5
ZXJUcmVlVmlldzo6cmVuZGVyaW5nU3RhdHMoV2ViUmVuZGVyaW5nU3RhdHMmIHN0YXRzKSBjb25z
dAogICAgIHN0YXRzLnRvdGFsUmFzdGVyaXplVGltZUluU2Vjb25kcyA9IGNjU3RhdHMudG90YWxS
YXN0ZXJpemVUaW1lSW5TZWNvbmRzOwogfQogCit2b2lkIFdlYkxheWVyVHJlZVZpZXc6OnNldEZv
bnRBdGxhcyhTa0JpdG1hcCBiaXRtYXAsIFdlYlJlY3QgYXNjaWlUb1dlYlJlY3RUYWJsZVsxMjhd
LCBpbnQgZm9udEhlaWdodCkKK3sKKyAgICBJbnRSZWN0IGFzY2lpVG9SZWN0VGFibGVbMTI4XTsK
KyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEyODsgKytpKQorICAgICAgICBhc2NpaVRvUmVjdFRh
YmxlW2ldID0gYXNjaWlUb1dlYlJlY3RUYWJsZVtpXTsKKyAgICBPd25QdHI8Q0NGb250QXRsYXM+
IGZvbnRBdGxhcyA9IENDRm9udEF0bGFzOjpjcmVhdGUoYml0bWFwLCBhc2NpaVRvUmVjdFRhYmxl
LCBmb250SGVpZ2h0KTsKKyAgICBtX3ByaXZhdGUtPmxheWVyVHJlZUhvc3QoKS0+c2V0Rm9udEF0
bGFzKGZvbnRBdGxhcy5yZWxlYXNlKCkpOworfQorCiB2b2lkIFdlYkxheWVyVHJlZVZpZXc6Omxv
c2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpCiB7CiAgICAgbV9wcml2YXRlLT5sYXll
clRyZWVIb3N0KCktPmxvc2VDb250ZXh0KG51bVRpbWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBkODc1MGUzOGEyODdlYjE5MDczNzQ0Y2MwMzll
MmM0YTI0ZDRlYzk0Li4yZmE4ZGQyYmQ4OGRlNjUxMDdjNWNiOTdjYzhiYzFhYjIzOTc3NmY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5j
bHVkZSAiQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVyLmgiCisjaW5jbHVkZSAiQ29t
cG9zaXRvckhVREZvbnRBdGxhcy5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlc0NsaWVudElt
cGwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29u
dHJvbGxlci5oIgpAQCAtMzY2OCw2ICszNjY5LDE1IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKICAgICAgICAgICAgIG1f
Y29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAobV9wYWdl
T3ZlcmxheXMpCiAgICAgICAgICAgICAgICAgbV9wYWdlT3ZlcmxheXMtPnVwZGF0ZSgpOworCisg
ICAgICAgICAgICAvLyBPbmx5IGFsbG9jYXRlIHRoZSBmb250IGF0bGFzIGlmIHdlIGhhdmUgcmVh
c29uIHRvIHVzZSB0aGUgaGVhZHMtdXAgZGlzcGxheS4KKyAgICAgICAgICAgIGlmIChsYXllclRy
ZWVWaWV3U2V0dGluZ3Muc2hvd0ZQU0NvdW50ZXIgfHwgbGF5ZXJUcmVlVmlld1NldHRpbmdzLnNo
b3dQbGF0Zm9ybUxheWVyVHJlZSkgeworICAgICAgICAgICAgICAgIFRSQUNFX0VWRU5UMCgiY2Mi
LCAiV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSh0cnVlKSBp
bml0aWFsaXplIGZvbnQgYXRsYXMiKTsKKyAgICAgICAgICAgICAgICBXZWJSZWN0IGFzY2lpVG9S
ZWN0VGFibGVbMTI4XTsKKyAgICAgICAgICAgICAgICBpbnQgZm9udEhlaWdodDsKKyAgICAgICAg
ICAgICAgICBTa0JpdG1hcCBiaXRtYXAgPSBXZWJDb3JlOjpDb21wb3NpdG9ySFVERm9udEF0bGFz
OjpnZW5lcmF0ZUZvbnRBdGxhcyhhc2NpaVRvUmVjdFRhYmxlLCBmb250SGVpZ2h0KTsKKyAgICAg
ICAgICAgICAgICBtX2xheWVyVHJlZVZpZXcuc2V0Rm9udEF0bGFzKGJpdG1hcCwgYXNjaWlUb1Jl
Y3RUYWJsZSwgZm9udEhlaWdodCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jbGVhcigpOwogICAgICAgICAg
ICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5j
cHAKaW5kZXggNzg0MjJjZDlmOTdmYjM3YzNlYTU4YWY1OGYxODc2OTNmYTNiNDNlZS4uMDA4ZWY4
NGJmMWQ1YmU5ODQxODhmZjZiMzRiMDgwNzI5NTM1N2JkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAg
LTIzMzYsNyArMjMzNiw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgZG9udFVz
ZU9sZFJlc291cmNlc0FmdGVyTG9zdENvbnRleHQpCiAgICAgaW9TdXJmYWNlTGF5ZXItPnNldExh
eWVyVHJlZUhvc3RJbXBsKG1faG9zdEltcGwuZ2V0KCkpOwogICAgIHJvb3RMYXllci0+YWRkQ2hp
bGQoaW9TdXJmYWNlTGF5ZXIucmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxDQ0hlYWRzVXBEaXNw
bGF5TGF5ZXJJbXBsPiBodWRMYXllciA9IENDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmNyZWF0
ZSg2LCBudWxscHRyKTsKKyAgICBPd25QdHI8Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbD4gaHVk
TGF5ZXIgPSBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpjcmVhdGUoNik7CiAgICAgaHVkTGF5
ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOwogICAgIGh1ZExheWVyLT5zZXRBbmNob3JQ
b2ludChGbG9hdFBvaW50KDAsIDApKTsKICAgICBodWRMYXllci0+c2V0Q29udGVudEJvdW5kcyhJ
bnRTaXplKDEwLCAxMCkpOwo=
</data>
<flag name="review"
          id="165511"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>