From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ami Fischman Newsgroups: gmane.emacs.bugs Subject: bug#12745: crash in bidi_pop_it during (idle) redisplay Date: Sun, 28 Oct 2012 21:26:55 -0700 Message-ID: References: <508CA6FC.4070203@cs.ucla.edu> <508CE3B0.2030809@cs.ucla.edu> <83lieq8q91.fsf@gnu.org> <83fw4y8jgd.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=bcaec54fb75c59ffcf04cd2b141f X-Trace: ger.gmane.org 1351484878 26886 80.91.229.3 (29 Oct 2012 04:27:58 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 29 Oct 2012 04:27:58 +0000 (UTC) Cc: 12745@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Oct 29 05:28:01 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TSgx9-0002ak-KT for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 Oct 2012 05:27:55 +0100 Original-Received: from localhost ([::1]:55187 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TSgx1-0006n6-0I for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 Oct 2012 00:27:47 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:38827) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TSgww-0006m9-2W for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2012 00:27:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TSgwt-0003Wb-Kk for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2012 00:27:42 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:55192) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TSgwt-0003WX-HT for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2012 00:27:39 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TSgzC-0002h7-Ky for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2012 00:30:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Ami Fischman Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 Oct 2012 04:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 12745 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 12745-submit@debbugs.gnu.org id=B12745.135148496710249 (code B ref 12745); Mon, 29 Oct 2012 04:30:02 +0000 Original-Received: (at 12745) by debbugs.gnu.org; 29 Oct 2012 04:29:27 +0000 Original-Received: from localhost ([127.0.0.1]:37210 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TSgya-0002fB-PT for submit@debbugs.gnu.org; Mon, 29 Oct 2012 00:29:27 -0400 Original-Received: from mail-vc0-f172.google.com ([209.85.220.172]:64954) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TSgyW-0002ew-2M for 12745@debbugs.gnu.org; Mon, 29 Oct 2012 00:29:23 -0400 Original-Received: by mail-vc0-f172.google.com with SMTP id fl11so5918341vcb.3 for <12745@debbugs.gnu.org>; Sun, 28 Oct 2012 21:26:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=hpygxgcHKV2Xjehtz6M7AbimWIuR87elU6sGPS9ugxk=; b=NtBDKs+9kEPozHWQVel4VgPnFRjJAYN2A6N/ScQOfVjO3LLhO5Ap+aRo2lThwIuDRL USXptFn8TsSIeH8bcAVpxcSuFq2mVQ0E2EtkhE6KM2ZnKUd0F52oOGeY3IWP3FTHsDjq ghTJP/8FwiiTWb/w8UIkXyou2DrODH2eshJHBScUcOQh6pMQYylWrjInJ2kbPx1bnQMf +37pJU64QSYtDir+N0ArOR3s153ULbiL6nCNILjD79UTmjHrKTZZmgdRe48pCG4UzrKL JsrYxS+8TsyVNWufNIVIJLSsfDHIGbTJMlYvQ7ILnxCpOrZ/iMV37lPma4pHNbH8ofWh E1Fg== Original-Received: by 10.221.10.81 with SMTP id oz17mr7062597vcb.67.1351484815572; Sun, 28 Oct 2012 21:26:55 -0700 (PDT) Original-Received: by 10.58.205.212 with HTTP; Sun, 28 Oct 2012 21:26:55 -0700 (PDT) In-Reply-To: <83fw4y8jgd.fsf@gnu.org> X-Gm-Message-State: ALoCoQngvwP/zt0mNRhB5vCtqri7oRClCYim8qun8w9Vy0qZ0o0b9nYo2pZx36HQDW45VqtTvRQ9 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:66165 Archived-At: --bcaec54fb75c59ffcf04cd2b141f Content-Type: multipart/alternative; boundary=bcaec54fb75c59ffbe04cd2b141d --bcaec54fb75c59ffbe04cd2b141d Content-Type: text/plain; charset=ISO-8859-1 > If it loads the same .emacs, that is good enough. > Ok, attached. > So this seems to say that there's at least one overlay string at > > > buffer position 1295. Is that reasonable? What was the current > > > buffer when this crashed? You can find that out by typing this at GDB > > > prompt: > > > (gdb) pp current_buffer->name_ > > (gdb) pp current_buffer->name_ > > Cannot access memory at address 0x8b6a00 > How about this: > (gdb) p current_buffer->name_ > (gdb) xtype > (Note: "p", not "pp".) > If the last command says it's a Lisp string, display the contents of > 'struct Lisp_String' whose address it shows. > (gdb) p current_buffer->name_ $22 = 101548849 (gdb) xtype Lisp_String (gdb) xstring current_buffer->name_ $23 = (struct Lisp_String *) 0x60d8330 "cdm_wrapper.cc" > > > (gdb) p current_buffer->text->beg[1200]@100 > > (gdb) p current_buffer->text->beg[1200]@100 > > $1 = "num to avoid later static_cast in\n// PluginInstance.\nenum > > MediaKeyError {\n kUnknownError = 1,\n kCl" > > which tells me the current buffer was an edited version of > > > http://src.chromium.org/viewvc/chrome/trunk/src/webkit/media/crypto/ppapi/cdm_wrapper.cc?view=markup(which > Did that buffer have any minor mode or some other optional feature > turned on, in addition to C++ Mode? See attached b-g-e.txt, in which the current buffer is the same .cc file in my HEAD session loading the same .emacs as the crashed one. > Possibly interestingly, if I print p current_buffer->text->beg[0]@100000 > to > > emit the entire buffer, I see this text starting at char 1675: > > http://go", '\000' , "/b > > Those 2000 NULs are definitely out of place (the URL should have started > > with http://go/b) but I don't know if that's a debugging artifact, or > what. > > This could be the gap, you should see its position and size like this: > > (gdb) p current_buffer->text->gpt > (gdb) p current_buffer->text->gap_size Yep, looks like it: (gdb) p current_buffer->text->gpt $24 = 1684 (gdb) p current_buffer->text->gap_size $25 = 2000 > > (gdb) frame 6 > > > #6 0x0000000000447aa1 in pop_it (it=0x7fff2251f1e0) at xdisp.c:5769 > > > 5769 bidi_pop_it (&it->bidi_it); > > > (gdb) pgrowx it->glyph_row > > You can't do that without a process to debug. > So are you debugging a core dump? > Yes. -a --bcaec54fb75c59ffbe04cd2b141d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
If it loads t= he same .emacs, that is good enough.

Ok= , attached.=A0

> So this seems to say that there's at least one overlay string at > > buffer position 1295. =A0Is that reasonable? =A0What was the curr= ent
> > buffer when this crashed? =A0You can find that out by typing this= at GDB
> > prompt:
> > =A0 (gdb) pp current_buffer->name_
> (gdb) pp current_buffer->name_
> Cannot access memory at address 0x8b6a00
How about this:
=A0 (gdb) p current_buffer->name_
=A0 (gdb) xtype
(Note: "p", not "pp".)
If the last command says it's a Lisp string, display the contents of 'struct Lisp_String' whose address it shows.
<= br>
(gdb) p current_buffer->name_
$22 =3D 101548849<= /div>
(gdb) xtype
Lisp_String
(gdb) xstring current= _buffer->name_
$23 =3D (struct Lisp_String *) 0x60d8330
=A0 "cdm_wrapp= er.cc"
=A0
> > =A0 (gdb) p current_buffer->text->beg[1200]@100
> =A0(gdb) p current_buffer->text->beg[1200]@100
> $1 =3D "num to avoid later static_cast in\n// PluginInstance.\nen= um
> MediaKeyError {\n =A0kUnknownError =3D 1,\n =A0kCl"
> which tells me the current buffer was an edited version of
> http:/= /src.chromium.org/viewvc/chrome/trunk/src/webkit/media/crypto/ppapi/cdm_wra= pper.cc?view=3Dmarkup(which
Did that buffer have any minor mode or some other optional feature turned on, in addition to C++ Mode?

See att= ached b-g-e.txt, in which the current buffer is the same .cc file in my HEA= D session loading the same .emacs as the crashed one.

> Possibly interestingly, if I print p current_buffer->text->beg[0= ]@100000 to
> emit the entire buffer, I see this text starting at char 1675:
> http://go", '\000= ' <repeats 2000 times>, "/b
> Those 2000 NULs are definitely out of place (the URL should have start= ed
> with http://go/b) but I = don't know if that's a debugging artifact, or what.

This could be the gap, you should see its position and size like this= :

=A0 (gdb) p current_buffer->text->gpt
=A0 (gdb) p current_buffer->text->gap_size

Yep, looks like it:
(gdb) p current_buffer->text->gpt=
$24 =3D 1684
(gdb) p current_buffer->text->gap_s= ize
$25 =3D 2000

> > (gdb) frame 6
> > #6 =A00x0000000000447aa1 i= n pop_it (it=3D0x7fff2251f1e0) at xdisp.c:5769
> > 5769 =A0 =A0 =A0 =A0 =A0bidi_pop_it (&it->bidi_it);
>= ; > (gdb) pgrowx it->glyph_row
> You can't do that without a process to debug.
So are you debugging a core dump?

Yes.

-a=A0
--bcaec54fb75c59ffbe04cd2b141d-- --bcaec54fb75c59ffcf04cd2b141f Content-Type: text/plain; charset=US-ASCII; name="b-g-e.txt" Content-Disposition: attachment; filename="b-g-e.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h8ulhfoc0 CkltcG9ydGFudCBzZXR0aW5nczoKICB2YWx1ZSBvZiAkTENfQUxMOiAKICB2YWx1ZSBvZiAkTEFO RzogZW5fVVMuVVRGLTgKICBsb2NhbGUtY29kaW5nLXN5c3RlbTogdXRmLTgtdW5peAogIGRlZmF1 bHQgZW5hYmxlLW11bHRpYnl0ZS1jaGFyYWN0ZXJzOiB0CgpNYWpvciBtb2RlOiBDKysvbGFoCgpN aW5vciBtb2RlcyBpbiBlZmZlY3Q6CiAgZmlsbGNvZGUtbW9kZTogdAogIGZjaS1tb2RlOiB0CiAg Zmx5bWFrZS1tb2RlOiB0CiAgZ2xvYmFsLXBvaW50YmFjay1tb2RlOiB0CiAgcG9pbnRiYWNrLW1v ZGU6IHQKICBkaWZmLWF1dG8tcmVmaW5lLW1vZGU6IHQKICBzYXZlaGlzdC1tb2RlOiB0CiAgd2lu bmVyLW1vZGU6IHQKICBwZXJzaXN0ZW50LXRoaW5nLW1vZGU6IHQKICBueGh0bWwtbWVudS1tb2Rl OiB0CiAgYW1pLWhpLWxvY2stbW9kZTogdAogIGhpLWxvY2stbW9kZTogdAogIHJjaXJjLXRyYWNr LW1pbm9yLW1vZGU6IHQKICBkaXNwbGF5LXRpbWUtbW9kZTogdAogIGRlc2t0b3Atc2F2ZS1tb2Rl OiB0CiAgZ2xvYmFsLWF1dG8tcmV2ZXJ0LW1vZGU6IHQKICBnbG9iYWwtbGludW0tbW9kZTogdAog IGxpbnVtLW1vZGU6IHQKICBzaGVsbC1kaXJ0cmFjay1tb2RlOiB0CiAgYW1pLWV2ZXJ5d2hlcmUt a2V5cy1tb2RlOiB0CiAgdG9vbHRpcC1tb2RlOiB0CiAgbW91c2Utd2hlZWwtbW9kZTogdAogIGZp bGUtbmFtZS1zaGFkb3ctbW9kZTogdAogIGdsb2JhbC1mb250LWxvY2stbW9kZTogdAogIGZvbnQt bG9jay1tb2RlOiB0CiAgYmxpbmstY3Vyc29yLW1vZGU6IHQKICBhdXRvLWNvbXBvc2l0aW9uLW1v ZGU6IHQKICBhdXRvLWVuY3J5cHRpb24tbW9kZTogdAogIGF1dG8tY29tcHJlc3Npb24tbW9kZTog dAogIGNvbHVtbi1udW1iZXItbW9kZTogdAogIGxpbmUtbnVtYmVyLW1vZGU6IHQKICBhdXRvLWZp bGwtZnVuY3Rpb246IGMtZG8tYXV0by1maWxsCiAgdHJhbnNpZW50LW1hcmstbW9kZTogdAogIGFi YnJldi1tb2RlOiB0CgpMb2FkLXBhdGggc2hhZG93czoKL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlz cC9vcmctbW9kZS9jb250cmliL2xpc3Avb3JnLXBhbmVsIGhpZGVzIC9ob21lL2Zpc2NobWFuL2Fw cHMvZWxpc3AvbnhodG1sLTIuMDgtMTAwNDI1L3V0aWwvb3JnLXBhbmVsCi9ob21lL2Zpc2NobWFu L2FwcHMvZWxpc3AvbnhodG1sLTIuMDgtMTAwNDI1L3V0aWwvcG9pbnRiYWNrIGhpZGVzIH4vLmVs aXNwL3BvaW50YmFjawovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL254aHRtbC0yLjA4LTEwMDQy NS9yZWxhdGVkL3BocC1tb2RlIGhpZGVzIH4vLmVsaXNwL3BocC1tb2RlCi9ob21lL2Zpc2NobWFu L2FwcHMvZWxpc3AvbnhodG1sLTIuMDgtMTAwNDI1L3JlbGF0ZWQvbW96IGhpZGVzIH4vLmVsaXNw L21vegovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUt bGlzcC9vcmctaXJjIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41 MC9saXNwL29yZy9vcmctaXJjCi9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hh cmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1odG1sIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hh cmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctaHRtbAovaG9tZS9maXNjaG1hbi9hcHBzL2Vs aXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctdGltZXIgaGlkZXMgL3Vzci9n bWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy10aW1lcgovaG9t ZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmct Y3J5cHQgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Av b3JnL29yZy1jcnlwdAovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2Vt YWNzL3NpdGUtbGlzcC9vcmctbWFjcyBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2Vt YWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLW1hY3MKL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9v cmctbW9kZS9zaGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWZlZWQgaGlkZXMgL3Vzci9nbWFjcy0y MDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy1mZWVkCi9ob21lL2Zpc2No bWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1pZCBoaWRl cyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWlk Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNw L29yZy1mYWNlcyBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAv bGlzcC9vcmcvb3JnLWZhY2VzCi9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hh cmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1oYWJpdCBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3No YXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWhhYml0Ci9ob21lL2Zpc2NobWFuL2FwcHMv ZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1ybWFpbCBoaWRlcyAvdXNy L2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLXJtYWlsCi9o b21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29y Zy1kb2N2aWV3IGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9s aXNwL29yZy9vcmctZG9jdmlldwovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3No YXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctZm9vdG5vdGUgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAy Ny9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy1mb290bm90ZQovaG9tZS9maXNjaG1h bi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctYmlidGV4IGhp ZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmct YmlidGV4Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0 ZS1saXNwL29yZy1taGUgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4y LjUwL2xpc3Avb3JnL29yZy1taGUKL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9z aGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWN0YWdzIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcv c2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctY3RhZ3MKL2hvbWUvZmlzY2htYW4vYXBw cy9lbGlzcC9vcmctbW9kZS9zaGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLXJlbWVtYmVyIGhpZGVz IC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctcmVt ZW1iZXIKL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9zaGFyZS9lbWFjcy9zaXRl LWxpc3Avb3JnLW1ldyBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIu NTAvbGlzcC9vcmcvb3JnLW1ldwovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3No YXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctdGFibGUgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9z aGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy10YWJsZQovaG9tZS9maXNjaG1hbi9hcHBz L2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctYmVhbWVyIGhpZGVzIC91 c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctYmVhbWVy Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNw L29yZy1pbnN0YWxsIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41 MC9saXNwL29yZy9vcmctaW5zdGFsbAovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2Rl L3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctdzNtIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcv c2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctdzNtCi9ob21lL2Zpc2NobWFuL2FwcHMv ZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1mcmVlbWluZCBoaWRlcyAv dXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWZyZWVt aW5kCi9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1s aXNwL29yZy1sYXRleCBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIu NTAvbGlzcC9vcmcvb3JnLWxhdGV4Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUv c2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1wdWJsaXNoIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEw Mjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctcHVibGlzaAovaG9tZS9maXNjaG1h bi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctYXR0YWNoIGhp ZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmct YXR0YWNoCi9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0 ZS1saXNwL29yZy13bCBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIu NTAvbGlzcC9vcmcvb3JnLXdsCi9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hh cmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1hcmNoaXZlIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcv c2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctYXJjaGl2ZQovaG9tZS9maXNjaG1hbi9h cHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctZXhwLWJsb2NrcyBo aWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3Jn LWV4cC1ibG9ja3MKL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9zaGFyZS9lbWFj cy9zaXRlLWxpc3Avb3JnLXZtIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3Mv MjQuMi41MC9saXNwL29yZy9vcmctdm0KL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9k ZS9zaGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWRhdGV0cmVlIGhpZGVzIC91c3IvZ21hY3MtMjAx MjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctZGF0ZXRyZWUKL2hvbWUvZmlz Y2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9zaGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWFnZW5k YSBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcv b3JnLWFnZW5kYQovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNz L3NpdGUtbGlzcC9vcmctaW5saW5ldGFzayBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJl L2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWlubGluZXRhc2sKL2hvbWUvZmlzY2htYW4vYXBw cy9lbGlzcC9vcmctbW9kZS9zaGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWdudXMgaGlkZXMgL3Vz ci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy1nbnVzCi9o b21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29y Zy1jbG9jayBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlz cC9vcmcvb3JnLWNsb2NrCi9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvY29udHJp Yi9saXNwL29yZy1zcGVjaWFsLWJsb2NrcyBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJl L2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLXNwZWNpYWwtYmxvY2tzCi9ob21lL2Zpc2NobWFu L2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1kb2Nib29rIGhp ZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmct ZG9jYm9vawovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3Np dGUtbGlzcC9vcmcgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUw L2xpc3Avb3JnL29yZwovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2Vt YWNzL3NpdGUtbGlzcC9vcmctaWNhbGVuZGFyIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hh cmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctaWNhbGVuZGFyCi9ob21lL2Zpc2NobWFuL2Fw cHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1tb3VzZSBoaWRlcyAv dXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLW1vdXNl Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNw L29yZy1iYmRiIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9s aXNwL29yZy9vcmctYmJkYgovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJl L2VtYWNzL3NpdGUtbGlzcC9vcmctbWFjLW1lc3NhZ2UgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAy Ny9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy1tYWMtbWVzc2FnZQovaG9tZS9maXNj aG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctcHJvdG9j b2wgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUwL2xpc3Avb3Jn L29yZy1wcm90b2NvbAovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2Vt YWNzL3NpdGUtbGlzcC9vcmctYXNjaWkgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9l bWFjcy8yNC4yLjUwL2xpc3Avb3JnL29yZy1hc2NpaQovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNw L29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctZXhwIGhpZGVzIC91c3IvZ21hY3Mt MjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctZXhwCi9ob21lL2Zpc2No bWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1saXN0IGhp ZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmct bGlzdAovaG9tZS9maXNjaG1hbi9hcHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUt bGlzcC9vcmcteG94byBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIu NTAvbGlzcC9vcmcvb3JnLXhveG8KL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9z aGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWluZGVudCBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3 L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWluZGVudAovaG9tZS9maXNjaG1hbi9h cHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctY29sdmlldyBoaWRl cyAvdXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWNv bHZpZXcKL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9zaGFyZS9lbWFjcy9zaXRl LWxpc3Avb3JnLXBsb3QgaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4y LjUwL2xpc3Avb3JnL29yZy1wbG90Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUv c2hhcmUvZW1hY3Mvc2l0ZS1saXNwL29yZy1pbmZvIGhpZGVzIC91c3IvZ21hY3MtMjAxMjEwMjcv c2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctaW5mbwovaG9tZS9maXNjaG1hbi9hcHBz L2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctbW9iaWxlIGhpZGVzIC91 c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctbW9iaWxl Ci9ob21lL2Zpc2NobWFuL2FwcHMvZWxpc3Avb3JnLW1vZGUvc2hhcmUvZW1hY3Mvc2l0ZS1saXNw L29yZy1qc2luZm8gaGlkZXMgL3Vzci9nbWFjcy0yMDEyMTAyNy9zaGFyZS9lbWFjcy8yNC4yLjUw L2xpc3Avb3JnL29yZy1qc2luZm8KL2hvbWUvZmlzY2htYW4vYXBwcy9lbGlzcC9vcmctbW9kZS9z aGFyZS9lbWFjcy9zaXRlLWxpc3Avb3JnLWNvbXBhdCBoaWRlcyAvdXNyL2dtYWNzLTIwMTIxMDI3 L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9vcmcvb3JnLWNvbXBhdAovaG9tZS9maXNjaG1hbi9h cHBzL2VsaXNwL29yZy1tb2RlL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9vcmctc3JjIGhpZGVzIC91 c3IvZ21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL29yZy9vcmctc3JjCi9o b21lL2J1aWxkL3B1YmxpYy9lbmcvZWxpc3AvdGhpcmRfcGFydHkveG1sdG9rIGhpZGVzIC91c3Iv Z21hY3MtMjAxMjEwMjcvc2hhcmUvZW1hY3MvMjQuMi41MC9saXNwL254bWwveG1sdG9rCi9ob21l L2Zpc2NobWFuL2FwcHMvZWxpc3AvbnhodG1sLTIuMDgtMTAwNDI1L3Rlc3RzL2VydCBoaWRlcyAv dXNyL2dtYWNzLTIwMTIxMDI3L3NoYXJlL2VtYWNzLzI0LjIuNTAvbGlzcC9lbWFjcy1saXNwL2Vy dAoKRmVhdHVyZXM6CihzaGFkb3cgc29ydCBtYWlsLWV4dHIgZW1hY3NidWcgbWVzc2FnZSBtYWls YWJicmV2IGdtbS11dGlscwptYWlsaGVhZGVyIHNlbmRtYWlsIG1haWwtdXRpbHMgdmMtZGlzcGF0 Y2hlciB2Yy1zdm4gdGFiaWZ5IGFwcm9wb3MKZGVidWcgbWlzZWFyY2ggbXVsdGktaXNlYXJjaCBs b25nbGluZXMgcmV2ZWFsIG9yZy13bCBvcmctdzNtIG9yZy12bQpvcmctcm1haWwgb3JnLW1oZSBv cmctbWV3IG9yZy1pcmMgb3JnLWpzaW5mbyBvcmctaW5mb2pzIG9yZy1odG1sCm9yZy1leHAgb3Jn LWFnZW5kYSBvcmctaW5mbyBvcmctZ251cyBvcmctZG9jdmlldyBvcmctYmlidGV4IG9yZy1iYmRi Cm1ha2UtbW9kZSBzaC1zY3JpcHQgc21pZSBjYy1sYW5ncyBkaXNwLXRhYmxlIGZpbGxjb2RlIGNj LWJ5dGVjb21wCmVsZG9jIHNlcnZlciBmaWxsLWNvbHVtbi1pbmRpY2F0b3IgeGNzY29wZSBmaW5k LXRoaW5ncy1mYXN0CmZseW1ha2UtY2hyb21pdW0gZmx5bWFrZSBjcmVsIGd5cCAKZ290by1sYXN0 LWNoYW5nZSBwb2ludGJhY2sgdHJhbXAgdHJhbXAtY29tcGF0IHRyYW1wLWxvYWRkZWZzCmVzcy10 b29sYmFyIGVzcy1tb3VzIG1vdXNlbWUgZXNzLW1lbnUgc3BlZWRiYXIgc2ItaW1hZ2UgZXppbWFn ZSBkZnJhbWUKZXNzLXN3diBlc3Mtbm93ZWIgbm93ZWItZm9udC1sb2NrLW1vZGUgZXNzbC1idWdz IGVzc2Qtb21nIGVzc2wtb21nCmVzc2QtZWxzIGVzc2Qtc2FzIGVzc2wtc2FzIGVzc2Etc2FzIGV4 ZWN1dGFibGUgZXNzZC1hcmMgZXNzZC12c3QKZXNzZC14bHMgZXNzbC1sc3AgZXNzZC1zdGEgZXNz bC1zdGEgbWFrZS1yZWdleHAgZXNzZC1zcDYgZXNzZC1zcDUKZXNzZC1zcDMgZXNzZC1yIGVzc2Qt ci1hcmdzIGVzc2wtcyBlc3MtaW5mIGVzcy11dGlscyBlc3MtbW9kZQpub3dlYi1tb2RlIGVzcyBl c3MtY3VzdCBlc3MtZW1jcyBlc3Mtc2l0ZSBoaWdobGlnaHQtc3ltYm9sIHNoZWxsLXBvcAptYWdp dCBwYXJzZS10aW1lIHNtZXJnZS1tb2RlIGRpZmYtbW9kZSBrZXktY2hvcmQgbWVtb3J5LXVzYWdl IHNhdmVoaXN0CnBhcmVuIG1pYy1wYXJlbiBwYWdlciByYy9wZ24tbWlzYyB3aW5uZXIgZXJpbiBh bWktcm90YXRlLWZpbGVzCmZseXNwZWxsIGlzcGVsbCByYy9hbWktcGhvbmUgZGVzY3JpYmUta2V5 bWFwIHJjL2FtaS1ibG9nCmFtaS10b2dnbGUtY2FtZWwtaHlwaGVucyBwZXJzaXN0ZW50LXRoaW5n LW1vZGUgaGVscC1tb2RlIHBvcHVwLXJ1bGVyCnJjL2FtaS1vcmcgb3JnLWJhYmVsLWluaXQgb3Jn LWJhYmVsLXNoIG9yZy1iYWJlbC1lbWFjcy1saXNwCm9yZy1iYWJlbC1rZXlzIG9yZy1iYWJlbC10 YW5nbGUgb3JnLWJhYmVsLWxvYiBvcmctYmFiZWwtY29taW50Cm9yZy1iYWJlbC10YWJsZSBvcmct YmFiZWwtZXhwIG9yZy1iYWJlbC1yZWYgb3JnLWJhYmVsIG9yZy1leHAtYmxvY2tzCm9yZy10YWJs ZSBjYWwtZHN0IGNhbC1tZW51IGNhbGVuZGFyIGNhbC1sb2FkZGVmcyBvcmcgb3JnLWZvb3Rub3Rl Cm9yZy1zcmMgb3JnLWxpc3Qgb3JnLWZhY2VzIG9yZy1jb21wYXQgb3JnLW1hY3MgZm9sZG91dCBu b3V0bGluZQpvdXRsaW5lIHdkaXJlZCBkaXJlZCByYy9kb3MydW5peCBjYW1sLWZvbnQgcmMvYW1p LXNxbCBzcWwgdzNtLWxvYWQKbnhodG1sLWF1dG9zdGFydCBueGh0bWwtYXV0b2xvYWQgbWFqbW9k cHJpIG54aHRtbC1tZW51IHdlYi1hdXRvbG9hZApueGh0bWwtYmFzZSBjYWxjIGNhbGMtbG9hZGRl ZnMgY2FsYy1tYWNzIHJjL2FtaS1ldWRjIGV1ZGNiLWxkYXAgbGRhcApldWRjIGV1ZGMtb3B0aW9u cy1maWxlIGN1cy1lZGl0IGV1ZGMtdmFycyByYy9hbWktbWFpbGNyeXB0IG1tbDIwMTUKZXBnLWNv bmZpZyBtbWwgbW1sLXNlYyBtbS1kZWNvZGUgbW0tYm9kaWVzIG1tLWVuY29kZSBtYWlsLXBhcnNl CnJmYzIyMzEgcmZjMjA0NyByZmMyMDQ1IGlldGYtZHJ1bXMgbWFpbGNyeXB0IHJmYzgyMgpyYy9h bWktanVzdC1vbmUtc3BhY2UgcmMvYW1pLXRleHQtbW9kZSBmaWxsYWRhcHQgcmMvYW1pLWZvbnRz IHB1bHNlCnBzLXByaW50IHBzLWRlZiBscHIgcmMvYW1pLWlldmVyeXRoaW5nIGlkbyBtY29tcGxl dGUgcmMvYW1pLXdpbmRvd3MKd2luZG1vdmUgYmJkYi1hdXRvbG9hZHMgYmJkYiB0aW1lem9uZSBo aS1sb2NrIHVuaXF1aWZ5IHJjaXJjIHRpbWUKZGVza3RvcCB2Yy1naXQgZ2l0LWJsYW1lIGZvcm1h dC1zcGVjIGdpdCBsb2ctZWRpdCBwY3ZzLXV0aWwKYWRkLWxvZyBld29jIGF1dG9yZXZlcnQgbGlu dW0gYWN0aW9uc2NyaXB0LW1vZGUgZWRtYWNybwprbWFjcm8gY29kZS1yZXZpZXcgc25hcHNob3Qg c2F3emFsbCBjYy1tb2RlIGNjLWZvbnRzCmNjLWd1ZXNzIGNjLW1lbnVzIGNjLWNtZHMgY2Mtc3R5 bGVzIGNjLWFsaWduIGNjLWVuZ2luZSBjYy12YXJzIGNzCmJyb3dzZS11cmwgY3NlYXJjaCB0cmVl LXdpZGdldAp3aWQtZWRpdCBldGFncyBwNC1maWxlcyBlZGlmZi1tZXJnIGVkaWZmLWRpZmYgZWRp ZmYtd2luZCBlZGlmZi1oZWxwCmVkaWZmLXV0aWwgZWRpZmYtaW5pdCBlZGlmZi1tdWx0IHJvdGF0 ZS1hbW9uZy1maWxlcyByb3RhdGUtY2xpZW50cwpzdHJpbmcgcDQgd2FybmluZ3MgdGhpbmdhdHB0 IHNoZWxsIHBjb21wbGV0ZSAKZmZhcCB1cmwtcGFyc2UgYXV0aC1zb3VyY2UgZWllaW8gYnl0ZS1v cHQgYnl0ZWNvbXAgYnl0ZS1jb21waWxlIGNjb252CmdudXMtdXRpbCBtbS11dGlsIG1haWwtcHJz dnIgcGFzc3dvcmQtY2FjaGUgdXJsLXZhcnMgCmd1ZApjYy1kZWZzIHB5dGhvbi1jdXN0b20gYWR2 aWNlIGhlbHAtZm5zIGFkdmljZS1wcmVsb2FkIApkZXJpdmVkIGNsLW1hY3MgZ3YgY2wgY2wtbGli CnRpbWUtZGF0ZSBhc3NvYyBncmVwIGNvbXBpbGUgZWxwIHB5dGhvbi1tb2RlIHB5dGhvbiByeApl YXN5bWVudSBjb21pbnQgcmluZyBhbnNpLWNvbG9yIGFtaS1ldmVyeXdoZXJlLWtleXMtbW9kZQpy Yy9hbWktZXZlcnl3aGVyZS1rZXlzLW1vZGUgZWFzeS1tbW9kZSBjdXMtc3RhcnQgY3VzLWxvYWQg dG9vbHRpcAplZGlmZi1ob29rIHZjLWhvb2tzIGxpc3AtZmxvYXQtdHlwZSBtd2hlZWwgeC13aW4g eC1kbmQgdG9vbC1iYXIgZG5kCmZvbnRzZXQgaW1hZ2UgcmVnZXhwLW9wdCBmcmluZ2UgdGFidWxh dGVkLWxpc3QgbmV3Y29tbWVudCBsaXNwLW1vZGUKcmVnaXN0ZXIgcGFnZSBtZW51LWJhciByZm4t ZXNoYWRvdyB0aW1lciBzZWxlY3Qgc2Nyb2xsLWJhciBtb3VzZQpqaXQtbG9jayBmb250LWxvY2sg c3ludGF4IGZhY2VtZW51IGZvbnQtY29yZSBmcmFtZSBjaGFtIGdlb3JnaWFuCnV0Zi04LWxhbmcg bWlzYy1sYW5nIHZpZXRuYW1lc2UgdGliZXRhbiB0aGFpIHRhaS12aWV0IGxhbyBrb3JlYW4KamFw YW5lc2UgaGVicmV3IGdyZWVrIHJvbWFuaWFuIHNsb3ZhayBjemVjaCBldXJvcGVhbiBldGhpb3Bp YyBpbmRpYW4KY3lyaWxsaWMgY2hpbmVzZSBjYXNlLXRhYmxlIGVwYS1ob29rIGprYS1jbXByLWhv b2sgaGVscCBzaW1wbGUgYWJicmV2Cm1pbmlidWZmZXIgbG9hZGRlZnMgYnV0dG9uIGZhY2VzIGN1 cy1mYWNlIG1hY3JvZXhwIGZpbGVzCnRleHQtcHJvcGVydGllcyBvdmVybGF5IHNoYTEgbWQ1IGJh c2U2NCBmb3JtYXQgZW52IGNvZGUtcGFnZXMgbXVsZQpjdXN0b20gd2lkZ2V0IGhhc2h0YWJsZS1w cmludC1yZWFkYWJsZSBiYWNrcXVvdGUgbWFrZS1uZXR3b3JrLXByb2Nlc3MKZGJ1c2JpbmQgZHlu YW1pYy1zZXR0aW5nIHN5c3RlbS1mb250LXNldHRpbmcgZm9udC1yZW5kZXItc2V0dGluZwp4LXRv b2xraXQgeCBtdWx0aS10dHkgZW1hY3MpCg== --bcaec54fb75c59ffcf04cd2b141f--