Обсуждение: BUG #12785: server process (PID 2872) was terminated by exception 0xC0000005

Поиск
Список
Период
Сортировка

BUG #12785: server process (PID 2872) was terminated by exception 0xC0000005

От
daniele.posenato@smartec.ch
Дата:
The following bug has been logged on the website:

Bug reference:      12785
Logged by:          Daniele
Email address:      daniele.posenato@smartec.ch
PostgreSQL version: 9.3.3
Operating system:   W7 professionale 64 bit
Description:

Hi,

For an industrial application I have the same software running on 4
different PCs with the same characteristics and configurations. Each PC has
its how postgresql database. All 4 PC are doing the same things.
On one PC sometimes (about one per week) I get the server process (PID 2872)
was terminated by exception 0xC0000005.

On the log file I have these information:
2015-02-13 22:46:05 CET LOG:  server process (PID 2872) was terminated by
exception 0xC0000005
2015-02-13 22:46:05 CET DETAIL:  Failed process was running: SELECT * FROM
highvaluelogs INNER JOIN (SELECT * FROM hvforeachpoint WHERE logID>0) AS
SQL1 ON highvaluelogs.logID=SQL1.logID ORDER BY highvaluelogs.logtimestamp
DESC;
2015-02-13 22:46:05 CET HINT:  See C include file "ntstatus.h" for a
description of the hexadecimal value.

I am not able to figure out way the query is able to crash the service. The
query is executed every 10 seconds and it is crashing the service only in
one PC.

Thanks in advance for the support.

Best regard
Daniele

Re: BUG #12785: server process (PID 2872) was terminated by exception 0xC0000005

От
Francisco Olarte
Дата:
Hi Daniele:

On Thu, Feb 19, 2015 at 10:55 AM, <daniele.posenato@smartec.ch> wrote:

> Operating system:   W7 professionale 64 bit
>
=E2=80=8B....

> For an industrial application I have the same software running on 4
> different PCs with the same characteristics and configurations. Each PC h=
as
> its how postgresql database. All 4 PC are doing the same things.
> On one PC sometimes (about one per week) I get the server process (PID
> 2872)
> was terminated by exception 0xC0000005.
>

=E2=80=8BIIRC =E2=80=8B
0xC0000005
=E2=80=8B is the windows code for access violation, similar to SIGSEGV, whi=
ch uses
to be caused by stray pointers and similar things. Given you have this
running in 4 machines and only got it in one it MAY be caused by faulty
hardware ( ram flips a bit, corrupts a pointer, postgres uses pointer and
gets the error ). If you can I would suggest doing a good RAM / disk / CPU
test in that machine ( postgres is one of the candidates of getting hit by
ram/disk faults because it uses a lot of them ).

=E2=80=8BBest regards
      Francisco Olarte.=E2=80=8B

Re: BUG #12785: server process (PID 2872) was terminated by exception 0xC0000005

От
Francisco Olarte
Дата:
Hi Daniele:

On Mon, Feb 23, 2015 at 6:09 PM, Daniele Posenato <
daniele.posenato@smartec.ch> wrote:

>  Thank you a lot for the answer, I really appreciate it. I will try to do
> what you have suggested and then I will let you know.
>

=E2=80=8BThat's ok, but I doubt I can help you more ( I abandoned Windows m=
ore than
a dozen years ago, haven't looked back, although I still remember how that
code appeared when I did something wrong in my programs ).=E2=80=8B



>
> Just for information the problem has occurred  again since  the last emai=
l
> and always on the same query.  I could understand a crash of the service =
on
> performing an update or a delete, but I have some difficulties to
> understand this on a select.  If it was an hardware problem I would expec=
t
> the service to crash also on other actions and not randomly (about once p=
er
> week) only on  a specific select (that is executed every 10  seconds).
>

=E2=80=8BIs that query consuming a lot of your resources? ( It may be due t=
o it
being lengthy or just frequent ) because in that case it makes sense.

In many applications I have 99.9% of the work / ram usage are selects, so a
random crash is normally going to hit me in one of this.

On the crashing on select stuff. Suppose you have a faulty sector or ram
location. When you write to it ( upd or del ) nothing happens, it just
sotres the bad value, when you read it ( select, part 1, reading from
disk/ram ) nothing happens, you just get bad data, say a null pointer, then
when you use ( select part 2 ) you get the fault. In fact, if a ram
location loses data written you do not notice it on writting it, or on
reading it ( unless you get a parity error ) but on using what you read
from it.

=E2=80=8BThis is a normal pattern on programming bugs too. You have an erro=
r in
some code  and store something in a random ( or not so random ) ram
location . That code seems to work ok. But then an unrelated piece of code
reads the corrupted data and crashes ( it is one of the way the buffer
overflows work, the guilty code overflows a buffer, but works, and another
chunk of code gets its data overwritten and crashes ).


>
> Is there a way to write a select that is able to crash the service?
>

=E2=80=8BWith a good database, on good hardware, with adequate ( inifinite,=
 as you
can crash any service by just joining enough copies of a table to exhaust
avalible  ) memory and disk there shouldn't be, but if you read corrupted
data or get hit by a bit flips in the middle of processing, it may Are you
able to do a full database dump ( pg_dump, not base backup ) of your
database? If you are then you are able to read all the tables, and I would
suggest trying to reindex every table if you have quiescent periods (
pg_dump does not touch indexes, so if you have good data bad corrupted
indexes that should fix it  )=E2=80=8B


>
> I will let you know the results of the hardware check after the planned
> restart.
>

=E2=80=8BI do not know ( or remember )  what your DB sizes =E2=80=8Band upt=
ime requirements
are. But I've had that kind of problems caused by corrupted disk
structures, and have being able to recover them rewritting the database,
that means dump, drop, restore, but this depends on the system, I cannot
recommend doing it, but as I said before, if I had the same aplication in 4
machines crashing randomly in only one of them I would try to triple test
the machine and dump / restore it.

Best ergards.
    Francisco Olarte.

Re: BUG #12785: server process (PID 2872) was terminated by exception 0xC0000005

От
Daniele Posenato
Дата:
SGkgRnJhbmNpc2NvLA0KDQpUaGFuayB5b3UgYSBsb3QgZm9yIHRoZSBhbnN3
ZXIsIEkgcmVhbGx5IGFwcHJlY2lhdGUgaXQuIEkgd2lsbCB0cnkgdG8gZG8g
d2hhdCB5b3UgaGF2ZSBzdWdnZXN0ZWQgYW5kIHRoZW4gSSB3aWxsIGxldCB5
b3Uga25vdy4NCg0KSnVzdCBmb3IgaW5mb3JtYXRpb24gdGhlIHByb2JsZW0g
aGFzIG9jY3VycmVkICBhZ2FpbiBzaW5jZSAgdGhlIGxhc3QgZW1haWwgYW5k
IGFsd2F5cyBvbiB0aGUgc2FtZSBxdWVyeS4gIEkgY291bGQgdW5kZXJzdGFu
ZCBhIGNyYXNoIG9mIHRoZSBzZXJ2aWNlIG9uIHBlcmZvcm1pbmcgYW4gdXBk
YXRlIG9yIGEgZGVsZXRlLCBidXQgSSBoYXZlIHNvbWUgZGlmZmljdWx0aWVz
IHRvIHVuZGVyc3RhbmQgdGhpcyBvbiBhIHNlbGVjdC4gIElmIGl0IHdhcyBh
biBoYXJkd2FyZSBwcm9ibGVtIEkgd291bGQgZXhwZWN0ICB0aGUgc2Vydmlj
ZSB0byBjcmFzaCBhbHNvIG9uIG90aGVyIGFjdGlvbnMgYW5kIG5vdCByYW5k
b21seSAoYWJvdXQgb25jZSBwZXIgd2Vlaykgb25seSBvbiAgYSBzcGVjaWZp
YyBzZWxlY3QgKHRoYXQgaXMgZXhlY3V0ZWQgZXZlcnkgMTAgIHNlY29uZHMp
Lg0KDQpJcyB0aGVyZSBhIHdheSB0byB3cml0ZSBhIHNlbGVjdCB0aGF0IGlz
IGFibGUgdG8gY3Jhc2ggdGhlIHNlcnZpY2U/DQoNCkkgd2lsbCBsZXQgeW91
IGtub3cgdGhlIHJlc3VsdHMgb2YgdGhlIGhhcmR3YXJlIGNoZWNrIGFmdGVy
IHRoZSBwbGFubmVkIHJlc3RhcnQuDQoNCkJlc3QgcmVnYXJkcw0KRGFuaWVs
ZQ0KDQoNCg0KRnJvbTogRnJhbmNpc2NvIE9sYXJ0ZSBbbWFpbHRvOmZvbGFy
dGVAcGVvcGxlY2FsbC5jb21dPG1haWx0bzpbbWFpbHRvOmZvbGFydGVAcGVv
cGxlY2FsbC5jb21dPg0KU2VudDogRnJpZGF5LCAyMCBGZWJydWFyeSwgMjAx
NSA1OjUxIFBNDQpUbzogRGFuaWVsZSBQb3NlbmF0bw0KQ2M6IHBnc3FsLWJ1
Z3NAcG9zdGdyZXNxbC5vcmc8bWFpbHRvOnBnc3FsLWJ1Z3NAcG9zdGdyZXNx
bC5vcmc+DQpTdWJqZWN0OiBSZTogW0JVR1NdIEJVRyAjMTI3ODU6IHNlcnZl
ciBwcm9jZXNzIChQSUQgMjg3Mikgd2FzIHRlcm1pbmF0ZWQgYnkgZXhjZXB0
aW9uIDB4QzAwMDAwMDUNCg0KSGkgRGFuaWVsZToNCg0KT24gVGh1LCBGZWIg
MTksIDIwMTUgYXQgMTA6NTUgQU0sIDxkYW5pZWxlLnBvc2VuYXRvQHNtYXJ0
ZWMuY2g8bWFpbHRvOmRhbmllbGUucG9zZW5hdG9Ac21hcnRlYy5jaD4+IHdy
b3RlOg0KT3BlcmF0aW5nIHN5c3RlbTogICBXNyBwcm9mZXNzaW9uYWxlIDY0
IGJpdA0K4oCLLi4uLg0KRm9yIGFuIGluZHVzdHJpYWwgYXBwbGljYXRpb24g
SSBoYXZlIHRoZSBzYW1lIHNvZnR3YXJlIHJ1bm5pbmcgb24gNA0KZGlmZmVy
ZW50IFBDcyB3aXRoIHRoZSBzYW1lIGNoYXJhY3RlcmlzdGljcyBhbmQgY29u
ZmlndXJhdGlvbnMuIEVhY2ggUEMgaGFzDQppdHMgaG93IHBvc3RncmVzcWwg
ZGF0YWJhc2UuIEFsbCA0IFBDIGFyZSBkb2luZyB0aGUgc2FtZSB0aGluZ3Mu
DQpPbiBvbmUgUEMgc29tZXRpbWVzIChhYm91dCBvbmUgcGVyIHdlZWspIEkg
Z2V0IHRoZSBzZXJ2ZXIgcHJvY2VzcyAoUElEIDI4NzIpDQp3YXMgdGVybWlu
YXRlZCBieSBleGNlcHRpb24gMHhDMDAwMDAwNS4NCg0K4oCLSUlSQyDigIsN
CjB4QzAwMDAwMDUNCuKAiyBpcyB0aGUgd2luZG93cyBjb2RlIGZvciBhY2Nl
c3MgdmlvbGF0aW9uLCBzaW1pbGFyIHRvIFNJR1NFR1YsIHdoaWNoIHVzZXMg
dG8gYmUgY2F1c2VkIGJ5IHN0cmF5IHBvaW50ZXJzIGFuZCBzaW1pbGFyIHRo
aW5ncy4gR2l2ZW4geW91IGhhdmUgdGhpcyBydW5uaW5nIGluIDQgbWFjaGlu
ZXMgYW5kIG9ubHkgZ290IGl0IGluIG9uZSBpdCBNQVkgYmUgY2F1c2VkIGJ5
IGZhdWx0eSBoYXJkd2FyZSAoIHJhbSBmbGlwcyBhIGJpdCwgY29ycnVwdHMg
YSBwb2ludGVyLCBwb3N0Z3JlcyB1c2VzIHBvaW50ZXIgYW5kIGdldHMgdGhl
IGVycm9yICkuIElmIHlvdSBjYW4gSSB3b3VsZCBzdWdnZXN0IGRvaW5nIGEg
Z29vZCBSQU0gLyBkaXNrIC8gQ1BVIHRlc3QgaW4gdGhhdCBtYWNoaW5lICgg
cG9zdGdyZXMgaXMgb25lIG9mIHRoZSBjYW5kaWRhdGVzIG9mIGdldHRpbmcg
aGl0IGJ5IHJhbS9kaXNrIGZhdWx0cyBiZWNhdXNlIGl0IHVzZXMgYSBsb3Qg
b2YgdGhlbSApLg0KDQrigItCZXN0IHJlZ2FyZHMNCiAgICAgIEZyYW5jaXNj
byBPbGFydGUu4oCLDQoNCgpSb2N0ZXN0IEJhcnJhY3VkYSBzY2FubmVkICE=

Re: BUG #12785: server process (PID 2872) was terminated by exception 0xC0000005

От
Daniele Posenato
Дата:
SGkgRnJhbmNpc2NvLA0KDQpUaGlzIGVtYWlsIGlzIGp1c3QgdG8gaW5mb3Jt
IHlvdSB0aGF0IEkgdGhpbmsgd2UgaGF2ZSBkaXNjb3ZlcmVkIHRoZSBzb3Vy
Y2Ugb2YgdGhlIGlzc3VlLiBUaGUgcHJvYmxlbSBzZWVtcyB0byBiZSByZWxh
dGVkIHRvIHRoZSBoYXJkIGRpc2ssIGV2ZW4gaWYgdGhlIHNlcnZlciB3YXMg
bmV3IHRoZSBkaXNrIHN0YXJ0ZWQgdG8gc2hvdyBzb21lIGFub21hbGllcywg
bm93IGZvciBleGFtcGxlIHdlIGhhdmUgYSBsb3Qgb2YgbG9ncyBzYXlpbmcg
dGhhdCB0aGUgZGlzayDigJxuZWVkcyB0byBiZSBjaGVja2VkIGZvciBjb25z
aXN0ZW5jeeKAnSBhbmQg4oCcdGhlIGZpbGUgc3lzdGVtIHN0cnVjdHVyZSBv
biB0aGUgZGlzayBpcyBjb3JydXB0ZWTigJ0uIEFsc28gdGhlIHBvc3RncmVz
bHEgIGNhbm5vdCAgYmUgc3RhcnRlZC4NCg0KU28gdGhhdCB5b3Ugd2VyZSBy
aWdodCwgaXQgd2FzIGFuIGhhcmR3YXJlIHByb2JsZW0uDQoNClRoYW5rcyBh
Z2FpbiBmb3IgdGhlIHN1cHBvcnQgYW5kIHRoZSB0aW1lIHlvdSBzcGVuZCBv
biBpdCwgSSBoYXZlIHJlYWxseSBhcHByZWNpYXRlZCBpdC4NCg0KQmVzdCBy
ZWdhcmRzDQpEYW5pZWxlDQoNCkZyb206IEZyYW5jaXNjbyBPbGFydGUgW21h
aWx0bzpmb2xhcnRlQHBlb3BsZWNhbGwuY29tXQ0KU2VudDogTW9uZGF5LCAy
MyBGZWJydWFyeSwgMjAxNSA2OjU2IFBNDQpUbzogRGFuaWVsZSBQb3NlbmF0
bw0KQ2M6IHBnc3FsLWJ1Z3NAcG9zdGdyZXNxbC5vcmcNClN1YmplY3Q6IFJl
OiBbQlVHU10gQlVHICMxMjc4NTogc2VydmVyIHByb2Nlc3MgKFBJRCAyODcy
KSB3YXMgdGVybWluYXRlZCBieSBleGNlcHRpb24gMHhDMDAwMDAwNQ0KDQpI
aSBEYW5pZWxlOg0KDQpPbiBNb24sIEZlYiAyMywgMjAxNSBhdCA2OjA5IFBN
LCBEYW5pZWxlIFBvc2VuYXRvIDxkYW5pZWxlLnBvc2VuYXRvQHNtYXJ0ZWMu
Y2g8bWFpbHRvOmRhbmllbGUucG9zZW5hdG9Ac21hcnRlYy5jaD4+IHdyb3Rl
Og0KVGhhbmsgeW91IGEgbG90IGZvciB0aGUgYW5zd2VyLCBJIHJlYWxseSBh
cHByZWNpYXRlIGl0LiBJIHdpbGwgdHJ5IHRvIGRvIHdoYXQgeW91IGhhdmUg
c3VnZ2VzdGVkIGFuZCB0aGVuIEkgd2lsbCBsZXQgeW91IGtub3cuDQoNCuKA
i1RoYXQncyBvaywgYnV0IEkgZG91YnQgSSBjYW4gaGVscCB5b3UgbW9yZSAo
IEkgYWJhbmRvbmVkIFdpbmRvd3MgbW9yZSB0aGFuIGEgZG96ZW4geWVhcnMg
YWdvLCBoYXZlbid0IGxvb2tlZCBiYWNrLCBhbHRob3VnaCBJIHN0aWxsIHJl
bWVtYmVyIGhvdyB0aGF0IGNvZGUgYXBwZWFyZWQgd2hlbiBJIGRpZCBzb21l
dGhpbmcgd3JvbmcgaW4gbXkgcHJvZ3JhbXMgKS7igIsNCg0KDQoNCkp1c3Qg
Zm9yIGluZm9ybWF0aW9uIHRoZSBwcm9ibGVtIGhhcyBvY2N1cnJlZCAgYWdh
aW4gc2luY2UgIHRoZSBsYXN0IGVtYWlsIGFuZCBhbHdheXMgb24gdGhlIHNh
bWUgcXVlcnkuICBJIGNvdWxkIHVuZGVyc3RhbmQgYSBjcmFzaCBvZiB0aGUg
c2VydmljZSBvbiBwZXJmb3JtaW5nIGFuIHVwZGF0ZSBvciBhIGRlbGV0ZSwg
YnV0IEkgaGF2ZSBzb21lIGRpZmZpY3VsdGllcyB0byB1bmRlcnN0YW5kIHRo
aXMgb24gYSBzZWxlY3QuICBJZiBpdCB3YXMgYW4gaGFyZHdhcmUgcHJvYmxl
bSBJIHdvdWxkIGV4cGVjdCAgdGhlIHNlcnZpY2UgdG8gY3Jhc2ggYWxzbyBv
biBvdGhlciBhY3Rpb25zIGFuZCBub3QgcmFuZG9tbHkgKGFib3V0IG9uY2Ug
cGVyIHdlZWspIG9ubHkgb24gIGEgc3BlY2lmaWMgc2VsZWN0ICh0aGF0IGlz
IGV4ZWN1dGVkIGV2ZXJ5IDEwICBzZWNvbmRzKS4NCg0K4oCLSXMgdGhhdCBx
dWVyeSBjb25zdW1pbmcgYSBsb3Qgb2YgeW91ciByZXNvdXJjZXM/ICggSXQg
bWF5IGJlIGR1ZSB0byBpdCBiZWluZyBsZW5ndGh5IG9yIGp1c3QgZnJlcXVl
bnQgKSBiZWNhdXNlIGluIHRoYXQgY2FzZSBpdCBtYWtlcyBzZW5zZS4NCklu
IG1hbnkgYXBwbGljYXRpb25zIEkgaGF2ZSA5OS45JSBvZiB0aGUgd29yayAv
IHJhbSB1c2FnZSBhcmUgc2VsZWN0cywgc28gYSByYW5kb20gY3Jhc2ggaXMg
bm9ybWFsbHkgZ29pbmcgdG8gaGl0IG1lIGluIG9uZSBvZiB0aGlzLg0KDQpP
biB0aGUgY3Jhc2hpbmcgb24gc2VsZWN0IHN0dWZmLiBTdXBwb3NlIHlvdSBo
YXZlIGEgZmF1bHR5IHNlY3RvciBvciByYW0gbG9jYXRpb24uIFdoZW4geW91
IHdyaXRlIHRvIGl0ICggdXBkIG9yIGRlbCApIG5vdGhpbmcgaGFwcGVucywg
aXQganVzdCBzb3RyZXMgdGhlIGJhZCB2YWx1ZSwgd2hlbiB5b3UgcmVhZCBp
dCAoIHNlbGVjdCwgcGFydCAxLCByZWFkaW5nIGZyb20gZGlzay9yYW0gKSBu
b3RoaW5nIGhhcHBlbnMsIHlvdSBqdXN0IGdldCBiYWQgZGF0YSwgc2F5IGEg
bnVsbCBwb2ludGVyLCB0aGVuIHdoZW4geW91IHVzZSAoIHNlbGVjdCBwYXJ0
IDIgKSB5b3UgZ2V0IHRoZSBmYXVsdC4gSW4gZmFjdCwgaWYgYSByYW0gbG9j
YXRpb24gbG9zZXMgZGF0YSB3cml0dGVuIHlvdSBkbyBub3Qgbm90aWNlIGl0
IG9uIHdyaXR0aW5nIGl0LCBvciBvbiByZWFkaW5nIGl0ICggdW5sZXNzIHlv
dSBnZXQgYSBwYXJpdHkgZXJyb3IgKSBidXQgb24gdXNpbmcgd2hhdCB5b3Ug
cmVhZCBmcm9tIGl0Lg0K4oCLVGhpcyBpcyBhIG5vcm1hbCBwYXR0ZXJuIG9u
IHByb2dyYW1taW5nIGJ1Z3MgdG9vLiBZb3UgaGF2ZSBhbiBlcnJvciBpbiBz
b21lIGNvZGUgIGFuZCBzdG9yZSBzb21ldGhpbmcgaW4gYSByYW5kb20gKCBv
ciBub3Qgc28gcmFuZG9tICkgcmFtIGxvY2F0aW9uIC4gVGhhdCBjb2RlIHNl
ZW1zIHRvIHdvcmsgb2suIEJ1dCB0aGVuIGFuIHVucmVsYXRlZCBwaWVjZSBv
ZiBjb2RlIHJlYWRzIHRoZSBjb3JydXB0ZWQgZGF0YSBhbmQgY3Jhc2hlcyAo
IGl0IGlzIG9uZSBvZiB0aGUgd2F5IHRoZSBidWZmZXIgb3ZlcmZsb3dzIHdv
cmssIHRoZSBndWlsdHkgY29kZSBvdmVyZmxvd3MgYSBidWZmZXIsIGJ1dCB3
b3JrcywgYW5kIGFub3RoZXIgY2h1bmsgb2YgY29kZSBnZXRzIGl0cyBkYXRh
IG92ZXJ3cml0dGVuIGFuZCBjcmFzaGVzICkuDQoNCg0KSXMgdGhlcmUgYSB3
YXkgdG8gd3JpdGUgYSBzZWxlY3QgdGhhdCBpcyBhYmxlIHRvIGNyYXNoIHRo
ZSBzZXJ2aWNlPw0KDQrigItXaXRoIGEgZ29vZCBkYXRhYmFzZSwgb24gZ29v
ZCBoYXJkd2FyZSwgd2l0aCBhZGVxdWF0ZSAoIGluaWZpbml0ZSwgYXMgeW91
IGNhbiBjcmFzaCBhbnkgc2VydmljZSBieSBqdXN0IGpvaW5pbmcgZW5vdWdo
IGNvcGllcyBvZiBhIHRhYmxlIHRvIGV4aGF1c3QgYXZhbGlibGUgICkgbWVt
b3J5IGFuZCBkaXNrIHRoZXJlIHNob3VsZG4ndCBiZSwgYnV0IGlmIHlvdSBy
ZWFkIGNvcnJ1cHRlZCBkYXRhIG9yIGdldCBoaXQgYnkgYSBiaXQgZmxpcHMg
aW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLCBpdCBtYXkgQXJlIHlvdSBh
YmxlIHRvIGRvIGEgZnVsbCBkYXRhYmFzZSBkdW1wICggcGdfZHVtcCwgbm90
IGJhc2UgYmFja3VwICkgb2YgeW91ciBkYXRhYmFzZT8gSWYgeW91IGFyZSB0
aGVuIHlvdSBhcmUgYWJsZSB0byByZWFkIGFsbCB0aGUgdGFibGVzLCBhbmQg
SSB3b3VsZCBzdWdnZXN0IHRyeWluZyB0byByZWluZGV4IGV2ZXJ5IHRhYmxl
IGlmIHlvdSBoYXZlIHF1aWVzY2VudCBwZXJpb2RzICggcGdfZHVtcCBkb2Vz
IG5vdCB0b3VjaCBpbmRleGVzLCBzbyBpZiB5b3UgaGF2ZSBnb29kIGRhdGEg
YmFkIGNvcnJ1cHRlZCBpbmRleGVzIHRoYXQgc2hvdWxkIGZpeCBpdCAgKeKA
iw0KDQoNCkkgd2lsbCBsZXQgeW91IGtub3cgdGhlIHJlc3VsdHMgb2YgdGhl
IGhhcmR3YXJlIGNoZWNrIGFmdGVyIHRoZSBwbGFubmVkIHJlc3RhcnQuDQoN
CuKAi0kgZG8gbm90IGtub3cgKCBvciByZW1lbWJlciApICB3aGF0IHlvdXIg
REIgc2l6ZXMg4oCLYW5kIHVwdGltZSByZXF1aXJlbWVudHMgYXJlLiBCdXQg
SSd2ZSBoYWQgdGhhdCBraW5kIG9mIHByb2JsZW1zIGNhdXNlZCBieSBjb3Jy
dXB0ZWQgZGlzayBzdHJ1Y3R1cmVzLCBhbmQgaGF2ZSBiZWluZyBhYmxlIHRv
IHJlY292ZXIgdGhlbSByZXdyaXR0aW5nIHRoZSBkYXRhYmFzZSwgdGhhdCBt
ZWFucyBkdW1wLCBkcm9wLCByZXN0b3JlLCBidXQgdGhpcyBkZXBlbmRzIG9u
IHRoZSBzeXN0ZW0sIEkgY2Fubm90IHJlY29tbWVuZCBkb2luZyBpdCwgYnV0
IGFzIEkgc2FpZCBiZWZvcmUsIGlmIEkgaGFkIHRoZSBzYW1lIGFwbGljYXRp
b24gaW4gNCBtYWNoaW5lcyBjcmFzaGluZyByYW5kb21seSBpbiBvbmx5IG9u
ZSBvZiB0aGVtIEkgd291bGQgdHJ5IHRvIHRyaXBsZSB0ZXN0IHRoZSBtYWNo
aW5lIGFuZCBkdW1wIC8gcmVzdG9yZSBpdC4NCkJlc3QgZXJnYXJkcy4NCiAg
ICBGcmFuY2lzY28gT2xhcnRlLg0KDQoKUm9jdGVzdCBCYXJyYWN1ZGEgc2Nh
bm5lZCAhCg==