Tuesday, March 27, 2012

'formsof (inflectional, "")'

I'm writing a full text search website and I'm including a fuzzy search. Is there a way to retrieve a "word listing" of what sql server is going to use when I use formsof inflectional. So when the user types in invoice; I would get back invoice, invoici
ng, invoices etc; so I can highlight the possible matches more easily.
Thank you for any input.
Matt.
Posted using Wimdows.net NntpNews Component -
Post Made from http://www.SqlJunkies.com/newsgroups Our newsgroup engine supports Post Alerts, Ratings, and Searching.
No, there is no supported way of doing this. The unsupported ways, which
involved using the word breakers, are a violation of the licensing agreement
last time I checked.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"SqlJunkies User" <User@.-NOSPAM-SqlJunkies.com> wrote in message
news:%2302A6YbmEHA.2136@.TK2MSFTNGP10.phx.gbl...
> I'm writing a full text search website and I'm including a fuzzy search.
Is there a way to retrieve a "word listing" of what sql server is going to
use when I use formsof inflectional. So when the user types in invoice; I
would get back invoice, invoicing, invoices etc; so I can highlight the
possible matches more easily.
> Thank you for any input.
> Matt.
> --
> Posted using Wimdows.net NntpNews Component -
> Post Made from http://www.SqlJunkies.com/newsgroups Our newsgroup engine
supports Post Alerts, Ratings, and Searching.
|||Matt,
While I'd agree with Hilary in terms of using the wordbreakers directly, if
you have access to SQL Server 2005 (codename Yukon), you *might* be able to
do something with the new cmd line utilities - lrtest.exe and cidump.exe
(extracts the contents of a full-text catalog). You may also want to
investigate the MS Word VBA functions, such as RelatedWordList or other
similar functions.
Regards,
John
"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:#5vnImbmEHA.3432@.TK2MSFTNGP14.phx.gbl...
> No, there is no supported way of doing this. The unsupported ways, which
> involved using the word breakers, are a violation of the licensing
agreement
> last time I checked.
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
>
> "SqlJunkies User" <User@.-NOSPAM-SqlJunkies.com> wrote in message
> news:%2302A6YbmEHA.2136@.TK2MSFTNGP10.phx.gbl...
> Is there a way to retrieve a "word listing" of what sql server is going to
> use when I use formsof inflectional. So when the user types in invoice; I
> would get back invoice, invoicing, invoices etc; so I can highlight the
> possible matches more easily.
> supports Post Alerts, Ratings, and Searching.
>
|||I've already looked at all of the options (and others) John has suggested.
None of them are really satisfactory. The catalog dump will provide you with
a list of indexed words or tokens (character sequences). You can't back out
linguistically related words from this list. When you use
formsof(inflectional) or FreeText searches the word breakers will modify
your search to include all stems of the word and the word itself.
The cost of running lrtest inline it too expensive, and on top of that it
uses the same word breakers I was hoping to be able to use, so there will be
licensing issues here as well.
Using Word to provide the stemming services is likewise not an option
because of
1) the cost of invoking ole automation and launching Word to provide these
services is expensive.
2) related words are not really going to do the stemming you are looking for
.. Nor are any of the other word functions.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"John Kane" <jt-kane@.comcast.net> wrote in message
news:uuvs5vbmEHA.3172@.TK2MSFTNGP10.phx.gbl...
> Matt,
> While I'd agree with Hilary in terms of using the wordbreakers directly,
if
> you have access to SQL Server 2005 (codename Yukon), you *might* be able
to[vbcol=seagreen]
> do something with the new cmd line utilities - lrtest.exe and cidump.exe
> (extracts the contents of a full-text catalog). You may also want to
> investigate the MS Word VBA functions, such as RelatedWordList or other
> similar functions.
> Regards,
> John
>
> "Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
> news:#5vnImbmEHA.3432@.TK2MSFTNGP14.phx.gbl...
> agreement
search.[vbcol=seagreen]
to[vbcol=seagreen]
I[vbcol=seagreen]
engine
>
|||Matt,
Hilary, keep in mind what Matt asked for - "Is there a way to retrieve a
"word listing" of what sql server is going to use when I use formsof
inflectional", and while I did offer suggestions beyond your reply of "No,
there is no supported way of doing this" and I did not offer any "
unsupported ways" and while the methods I offered may or may not perform
well, they are at least positive & supported (for SQL 2005) methods for
achieving Matt's request.
Cidump does offer a "word listing", and lrtest does provide a means to
getting the "formsof inflectional" words and Matt should be the best judge
of whether or not lrtest would be performant enough for him as it does offer
the functionality that he has requested, IMHO.
Best regards,
John
"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:ONpvG1lmEHA.1152@.TK2MSFTNGP11.phx.gbl...
> I've already looked at all of the options (and others) John has suggested.
> None of them are really satisfactory. The catalog dump will provide you
with
> a list of indexed words or tokens (character sequences). You can't back
out
> linguistically related words from this list. When you use
> formsof(inflectional) or FreeText searches the word breakers will modify
> your search to include all stems of the word and the word itself.
> The cost of running lrtest inline it too expensive, and on top of that it
> uses the same word breakers I was hoping to be able to use, so there will
be
> licensing issues here as well.
> Using Word to provide the stemming services is likewise not an option
> because of
> 1) the cost of invoking ole automation and launching Word to provide these
> services is expensive.
> 2) related words are not really going to do the stemming you are looking
for[vbcol=seagreen]
> . Nor are any of the other word functions.
>
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
>
> "John Kane" <jt-kane@.comcast.net> wrote in message
> news:uuvs5vbmEHA.3172@.TK2MSFTNGP10.phx.gbl...
> if
> to
which[vbcol=seagreen]
> search.
going[vbcol=seagreen]
> to
invoice;[vbcol=seagreen]
> I
the
> engine
>
|||Thanks for all the feedback
What I'm probably going to do is pattern match it myself based on length of
search string. Just case it out
select case len(str)
case 4
if left(possibleWord,3) = left(str,3) then
replace str with highlighted
end if
case 5
if left(possibleWord,4) = left(str,4) then
replace str with highlighted
end if
case 6
etc.
case 7
if left(possibleWord,5) = left(str,5) then
replace str with highlighted
end if
case else
etc.
end select
as the search string gets longer I'll make the possible matches a little
looser. It doesn't have to be exact; the conversations being pulled up
generally are not that long.
...... and it shouldn't violate any agreements
"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:Ok$hwBomEHA.1008@.TK2MSFTNGP14.phx.gbl...
> lrtest uses the word breakers. This is a violation of the licensing
> agreement. If Matt chooses to use this, he is violating the licensing
> agreement.
> I fail to see how cidump will help him. I'd like to know if you know of a
> method.
> I have investigated using Word to provide these services and am merely
> pointing out to Matt, that these do not provide the word list he is
> looking
> for. Try the attached code samples for yourself.
> Please note the attached code to demonstrate exactly what these functions
> provide.
> I have been beating my head against this problem for years as I am trying
> to
> build inline hit highlighting. I have something works for a contains type
> query with no stemming or wildcarding, but haven't figured out how to
> build
> the fuzzy option.
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
>
> "John Kane" <jt-kane@.comcast.net> wrote in message
> news:Of4Y8snmEHA.3464@.tk2msftngp13.phx.gbl...
> offer
> suggested.
> it
> will
> these
> directly,
> able
> cidump.exe
> other
>
>
|||Its not on the newsgroups, so a certain lead developer must have told me
this in personal correspondence. Let me research this.
In the meantime here is a link I tried
http://www.microsoft.com/permission/...t.htm#portions
And got a no.
Note that infosoft did the word breaker for win2k and you will have to
follow up licensing with them. They licensed the same word breakers to
Oracle and IBM as well.
They are now part of Houghton Mifflin.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"John Kane" <jt-kane@.comcast.net> wrote in message
news:uIk$XsomEHA.3900@.TK2MSFTNGP10.phx.gbl...
> Hilary,
> Could you provide a pointer to the actual "licensing agreement" that you
are
> referring to?
> Cidump info was mainly provided as an additional informational utility for
> his FYI, re: "Cidump does offer a "word listing". Yes, I will try the
sample[vbcol=seagreen]
> apps.
> Regards,
> John
>
>
> "Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
> news:Ok$hwBomEHA.1008@.TK2MSFTNGP14.phx.gbl...
a[vbcol=seagreen]
> looking
functions[vbcol=seagreen]
trying[vbcol=seagreen]
> to
type[vbcol=seagreen]
> build
a[vbcol=seagreen]
> "No,
perform[vbcol=seagreen]
for[vbcol=seagreen]
to[vbcol=seagreen]
> judge
> you
> back
> modify
that[vbcol=seagreen]
option[vbcol=seagreen]
> looking
be[vbcol=seagreen]
to[vbcol=seagreen]
ways,[vbcol=seagreen]
licensing[vbcol=seagreen]
fuzzy[vbcol=seagreen]
is
> highlight
> newsgroup
>
|||You're welcome, Matt,
A very good solution! Another one might be to have a issue a "pre-search"
FORMSOF(INFLECTIONAL) from a parsed list of user input and then feed that
back to the searcher and let him/her checkmark which inflectional forms of
the word (s)he is looking for as a form of query expansion.
Regards,
John
"Matthew Kempf" <mpkempf@.gmail.com> wrote in message
news:#led1xomEHA.3372@.TK2MSFTNGP15.phx.gbl...
> Thanks for all the feedback
> What I'm probably going to do is pattern match it myself based on length
of[vbcol=seagreen]
> search string. Just case it out
> select case len(str)
> case 4
> if left(possibleWord,3) = left(str,3) then
> replace str with highlighted
> end if
> case 5
> if left(possibleWord,4) = left(str,4) then
> replace str with highlighted
> end if
> case 6
> etc.
> case 7
> if left(possibleWord,5) = left(str,5) then
> replace str with highlighted
> end if
> case else
> etc.
> end select
> as the search string gets longer I'll make the possible matches a little
> looser. It doesn't have to be exact; the conversations being pulled up
> generally are not that long.
> ...... and it shouldn't violate any agreements
>
>
> "Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
> news:Ok$hwBomEHA.1008@.TK2MSFTNGP14.phx.gbl...
a[vbcol=seagreen]
functions[vbcol=seagreen]
trying[vbcol=seagreen]
type[vbcol=seagreen]
a[vbcol=seagreen]
perform[vbcol=seagreen]
you[vbcol=seagreen]
back[vbcol=seagreen]
that[vbcol=seagreen]
to[vbcol=seagreen]
ways,[vbcol=seagreen]
licensing[vbcol=seagreen]
fuzzy[vbcol=seagreen]
highlight[vbcol=seagreen]
newsgroup
>
|||Hilary,
While the link is somewhat helpful and I am no lawyer (and neither are you,
to the best of my knowledge ;-), your link provide only relates to
"redistribution" of the generic Microsoft software files, specifically:
"Redistribute Portions
If you wish to redistribute system files, source code, controls, features,
or other components or files that are shipped with Microsoft software
applications or Microsoft programming software (for instance, files that
have extensions like .DLL, .EXE., DRV, .LIB, etc.), you are required to read
your End User License Agreement (EULA) and other product documentation to
determine your redistribution rights. "
Matt is not redistributing the OS-supplied word breaker .dll files (to the
best of my knowledge), but only wants to use them on his server where he has
a valid Microsoft OS EULA, again to the best of my knowledge based upon his
question. Matt, if I've assumed too much and you do want to redistribute
the OS-supplied word breakers, I'd highly recommend that you review your End
User License Agreement (EULA) and other product documentation to determine
your redistribution rights.
Hilary, if you are referring to a specific Microsoft word breaker licensing
agreement that is publicly available, I'd highly recommend that you or
Microsoft make available this public licensing agreement as without it, it
is difficult for me as well as Matt to determine if we are violating any
public licensing agreement from Microsoft.
Best Regards,
John
"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:exEWpApmEHA.3172@.TK2MSFTNGP10.phx.gbl...[vbcol=seagreen]
> Its not on the newsgroups, so a certain lead developer must have told me
> this in personal correspondence. Let me research this.
> In the meantime here is a link I tried
> http://www.microsoft.com/permission/...t.htm#portions
> And got a no.
> Note that infosoft did the word breaker for win2k and you will have to
> follow up licensing with them. They licensed the same word breakers to
> Oracle and IBM as well.
> They are now part of Houghton Mifflin.
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
>
> "John Kane" <jt-kane@.comcast.net> wrote in message
> news:uIk$XsomEHA.3900@.TK2MSFTNGP10.phx.gbl...
> are
for[vbcol=seagreen]
> sample
of[vbcol=seagreen]
> a
> functions
> trying
> type
retrieve[vbcol=seagreen]
> a
of[vbcol=seagreen]
> perform
> for
> to
does[vbcol=seagreen]
provide[vbcol=seagreen]
> that
there[vbcol=seagreen]
> option
provide[vbcol=seagreen]
> be
want[vbcol=seagreen]
> to
or[vbcol=seagreen]
> ways,
> licensing
message[vbcol=seagreen]
> fuzzy
> is
in
>
|||You might want to have a look at these asp pages.
Here is the schema for the tables in question. You have to enable hit
highlighting on your web server, and you also have to store the documents
that are in your table in the web server.
In this case my documents are stored in the c:\txt directory and I create a
virtual directory called txt on my web server. I also create a oop virtual
directory with execute permission for the isap filter webhits.dll.
This solution does not provide inline hit highlighting, but provides links
which you can use for this.
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[FK__texttable__pk__79A81403]') and OBJECTPROPERTY(id,
N'IsForeignKey') = 1)
ALTER TABLE [dbo].[texttable] DROP CONSTRAINT FK__texttable__pk__79A81403
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[Query]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[Query]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[text]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[text]
GO
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[texttable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[texttable]
GO
if (select DATABASEPROPERTY(DB_NAME(), N'IsFullTextEnabled')) <> 1
exec sp_fulltext_database N'enable'
GO
if exists (select * from dbo.sysfulltextcatalogs where name = N'test')
exec sp_fulltext_catalog N'test', N'drop'
GO
if not exists (select * from dbo.sysfulltextcatalogs where name = N'test')
exec sp_fulltext_catalog N'test', N'create'
GO
CREATE TABLE [dbo].[text] (
[pk] [int] IDENTITY (1, 1) NOT NULL ,
[vpath] [varchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Characterization] [varchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[CreateDate] [datetime] NULL ,
[size] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[texttable] (
[pk] [int] NOT NULL ,
[textcol] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[text] WITH NOCHECK ADD
CONSTRAINT [PK__text__76CBA758] PRIMARY KEY CLUSTERED
(
[pk]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[texttable] WITH NOCHECK ADD
CONSTRAINT [PK_texttable] PRIMARY KEY CLUSTERED
(
[pk]
) ON [PRIMARY]
GO
if (select DATABASEPROPERTY(DB_NAME(), N'IsFullTextEnabled')) <> 1
exec sp_fulltext_database N'enable'
GO
if not exists (select * from dbo.sysfulltextcatalogs where name = N'test')
exec sp_fulltext_catalog N'test', N'create'
GO
exec sp_fulltext_table N'[dbo].[text]', N'create', N'test',
N'PK__text__76CBA758'
GO
if (select DATABASEPROPERTY(DB_NAME(), N'IsFullTextEnabled')) <> 1
exec sp_fulltext_database N'enable'
GO
if not exists (select * from dbo.sysfulltextcatalogs where name = N'test')
exec sp_fulltext_catalog N'test', N'create'
GO
exec sp_fulltext_table N'[dbo].[texttable]', N'create', N'test',
N'PK_texttable'
GO
exec sp_fulltext_column N'[dbo].[texttable]', N'textcol', N'add', 1033
GO
exec sp_fulltext_table N'[dbo].[texttable]', N'activate'
GO
ALTER TABLE [dbo].[texttable] ADD
CONSTRAINT [FK__texttable__pk__79A81403] FOREIGN KEY
(
[pk]
) REFERENCES [dbo].[text] (
[pk]
)
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure Query (@.strSearch varchar(200))
as
declare @.string varchar(1000)
set @.string='select pk, vpath, characterization,CreateDate, size, rank from
text join containstable(texttable, textcol,'+char(39)+char(34) +@.strSearch+
char(34)+char(39)+',100) as search on search.[key]=text.pk order by rank
desc'
exec(@.string)
return @.@.rowcount
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Here is my inline hit highlighting solution. It is only good for a contains
search. You need to complile this as an isapi extension.
http://groups.google.com/groups?hl=e...TNGP09.phx.gbl
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"Matthew Kempf" <mpkempf@.gmail.com> wrote in message
news:%23led1xomEHA.3372@.TK2MSFTNGP15.phx.gbl...
> Thanks for all the feedback
> What I'm probably going to do is pattern match it myself based on length
of[vbcol=seagreen]
> search string. Just case it out
> select case len(str)
> case 4
> if left(possibleWord,3) = left(str,3) then
> replace str with highlighted
> end if
> case 5
> if left(possibleWord,4) = left(str,4) then
> replace str with highlighted
> end if
> case 6
> etc.
> case 7
> if left(possibleWord,5) = left(str,5) then
> replace str with highlighted
> end if
> case else
> etc.
> end select
> as the search string gets longer I'll make the possible matches a little
> looser. It doesn't have to be exact; the conversations being pulled up
> generally are not that long.
> ...... and it shouldn't violate any agreements
>
>
> "Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
> news:Ok$hwBomEHA.1008@.TK2MSFTNGP14.phx.gbl...
a[vbcol=seagreen]
functions[vbcol=seagreen]
trying[vbcol=seagreen]
type[vbcol=seagreen]
a[vbcol=seagreen]
perform[vbcol=seagreen]
you[vbcol=seagreen]
back[vbcol=seagreen]
that[vbcol=seagreen]
to[vbcol=seagreen]
ways,[vbcol=seagreen]
licensing[vbcol=seagreen]
fuzzy[vbcol=seagreen]
highlight[vbcol=seagreen]
newsgroup
>
begin 666 citrixNew.asp
M/"4-"F]P=&EO;B!E>'!L:6-I= T*0V]N<W0@.8615<V5#;&EE;G0@./2 S#0I#
M;VYS="!A9%5S95-E<G9E<B ](#(-"D-O;G-T(&%D3W!E;D9O<G=A<F1/;FQY
M(#T@., T*0V]N<W0@.861/<&5N4W1A=&EC(#T@.,PT*0V]N<W0@.861,;V-K4F5A
M9$]N;'D@./2 Q#0I#;VYS="!A9$-M9%-T;W)E9%!R;V,@./2 T#0I#;VYS="!A
M9%!A<F%M26YP=70@./2 Q#0I#;VYS="!A9%!A<F%M4F5T=7)N5F%L=64@./2 F
M2# P,#0-"D-O;G-T(&%D5F%R0VAA<B ](#(P, T*0V]N<W0@.861);G1E9V5R
M(#T@.,PT*0V]N<W0@.:5)O=W-097)086=E(#T@.,3 -"D-O;G-T('-H;W=";&%N
M:R ]("(F;F)S<#LB#0I#;VYS="!S:&]W3G5L;" ](").54Q,(@.T*#0I$:6T@.
M:5-T87)T+"!D:69F97)E;F-E+"!2971U<FY686QU92P@.5V5B2&ET<U%U97)Y
M+"!S=')396%R8V@.-"@.T*36%I;@.T*#0I3=6(@.36%I;B@.I#0H)1&EM(')S="P@.
M<U-13"P@.<T-O;FY3=')I;F<L<U-C<FEP=$YA;64L(%-E87)C:%]0:')A<V4L
M(%-E87)C:%]0:')A<V5?5')I;6UE9 T*"6E3=&%R=#U297%U97-T+E%U97)Y
M4W1R:6YG*")I4W1A<G0B*0T*"5-E87)C:%]0:')A<V4]4F5Q=65S="Y1=65R
M>5-T<FEN9R@.B4V5A<F-H7U!H<F%S92(I#0H))U-E87)C:%]0:')A<V5?5')I
M;6UE9#U297!L86-E*%-E87)C:%]0:')A<V4L(&-H<B@.S.2DL(&-H<B@.S.2DK
M8VAR*#,Y*2D-"@.DG4V5A<F-H7U!H<F%S95]4<FEM;65D/5)E<&QA8V4H4V5A
M<F-H7U!H<F%S95]4<FEM;65D+"!C:'(H,S0I+"!C:'(H,S0I*V-H<B@.S-"DI
M#0H):68@.:5-T87)T/2(B('1H96X-"@.D):5-T87)T/3 -"@.EE;F0@.:68-"@.T*
M"7-#;VYN4W1R:6YG(#T@.(E!R;W9I9&5R/5-13$],141"+C$[4&5R<VES="!3
M96-U<FET>2!);F9O/49A;'-E.T1A=&$@.4V]U<F-E/7!A<BUJ<WEE9%QT97-T
M.W5S97(@.240]<V$[<'=D/7-E,6-U<F4C.TEN:71I86P@.0V%T86QO9SUT97AT
M.R(-"@.T*"2=S4U%,(#T@.(E-%3$5#5" J($923TT@.875T:&]R<R!W:&5R92!C
M;VYT86EN<R@.J+"<B("8@.8VAR*#,T*2 F(%-E87)C:%]0:')A<V5?5')I;6UE
M9" F(&-H<B@.S-"D@.)B B)RDB#0H-"@.E7<FET951A8FQE2&5A9&5R('-38W)I
M<'1.86UE+"!396%R8VA?4&AR87-E#0H-"@.ES4V-R:7!T3F%M92 ](%)E<75E
M<W0N4V5R=F5R5F%R:6%B;&5S*")30U))4%1?3D%-12(I#0H):68@.4V5A<F-H
M7U!H<F%S92 \/B(B('1H96X-"@.D)5W)I=&5486)L94)O9'D@.:5)O=W-097)0
M86=E+"!I4W1A<G0L('-38W)I<'1.86UE+"!S0V]N;E-T<FEN9RP@.<U-13"P@.
M4V5A<F-H7U!H<F%S90T*"65N9"!I9@.T*"5=R:71E5&%B;&5&;V]T97(-"@.T*
M16YD(%-U8@.T*#0I3=6(@.5W)I=&5486)L94AE861E<BAS4V-R:7!T3F%M92Q3
M96%R8VA?4&AR87-E("D-"@.ER97-P;VYS92YW<FET92 B/$A434P^(@.T*"7)E
M<W!O;G-E+G=R:71E("(\2$5!1#XB#0H)<F5S<&]N<V4N=W)I=&4@.(CQ-151!
M(&AT=' M97%U:78](B)#;VYT96YT+51Y<&4B(B!C;VYT96YT/2(B=&5X="]H
M=&UL.R!C:&%R<V5T/7=I;F1O=W,M,3(U,B(B/B(-"@.ER97-P;VYS92YW<FET
M92 B/$Q)3DL@.:')E9CTB(B])4R]S='EL92YC<W,B(B!T>7!E/2(B=&5X="]C
M<W,B(B!R96P](B)S='EL97-H965T(B(^(@.T*"7)E<W!O;G-E+G=R:71E("(\
M+TA%040^(@.T*"7)E<W!O;G-E+G=R:71E("(\0D]$62!V3&EN:STB(B,P,# P
M,# B(B!L:6YK/2(B(S P,# P,"(B(&)G0V]L;W(](B(C9F9F9F9F(B(@.;&5F
M=$UA<F=I;CTB(C B(B!T;W!-87)G:6X](B(P(B(@.;6%R9VEN:&5I9VAT/2(B
M,"(B(&UA<F=I;G=I9'1H/2(B,"(B/B(-"@.ER97-P;VYS92YW<FET92 B/&9O
M<FT@.:60](B)F;W)M,2(B(&UE=&AO9#TB(F=E="(B(&%C=&EO;CTB(B(@.)B !S
M4V-R:7!T3F%M92 @.)B B(B(^(@.T*"7)E<W!O;G-E+G=R:71E("(\=&%B;&4@.
M8F]R9&5R0V]L;W(](B(C83=B8C@.V(B(@.:&5I9VAT/2(B,3 P)2(B(&-E;&Q3
M<&%C:6YG/2(B,"(B(&-E;&Q0861D:6YG/2(B-2(B('=I9'1H/2(B,3 P)2(B
M(&)G0V]L;W(](B(C9CEF965D(B(@.8F]R9&5R/2(B,"(B/B(-"@.ER97-P;VYS
M92YW<FET92 B/'1R/B(-"@.ER97-P;VYS92YW<FET92 B/'1D('=I9'1H/2(B
M,3 P(B(@.8F=#;VQO<CTB(B-C8F4U838B(B!H96EG:'0](B(W,"(B/B9N8G-P
M.SPO=&0^(@.T*"7)E<W!O;G-E+G=R:71E("(\=&0@.8VQA<W,](B)N97<M=&0M
M=F5R=&EC86PB(B!W:61T:#TB(C4B(B!B9T-O;&]R/2(B(V$W8F(X-B(B(&AE
M:6=H=#TB(C<P(B(^/$E-1R!H96EG:'0](B(Q(B(@.<W)C/2(B25,O<VAI;2YG
M:68B(B!W:61T:#TB(C$B(CX\+W1D/B(-"@.ER97-P;VYS92YW<FET92 B/'1D
M('=I9'1H/2(B,C B(B!H96EG:'0](B(W,"(B/B9N8G-P.R(-"@.ER97-P;VYS
M92YW<FET92 B/"]T9#XB#0H)<F5S<&]N<V4N=W)I=&4@.(CQT9"!V06QI9VX]
M(B)T;W B(B!W:61T:#TB(C4P,"(B(&AE:6=H=" ]("(B.# B(CX\24U'(&AE
M:6=H=#TB(C8P(B(@.:'-P86-E/2(B,C B(B!S<F,](B))4R]I<V9?;&]G;RYG
M:68B(B @.=VED=&@.](B(Q-3(B(CX\+W1D/B(-"@.ER97-P;VYS92YW<FET92 B
M/'1D(&-L87-S/2(B;F5W+71D+79E<G1I8V%L(B(@.8F=#;VQO<CTB(B-C8F4U
M838B(B!H96EG:'0](B(W,"(B/B9N8G-P.SPO=&0^(@.T*"7)E<W!O;G-E+G=R
M:71E("(\+W1R/B(-"@.ER97-P;VYS92YW<FET92 B/'1R/B(-"@.ER97-P;VYS
M92YW<FET92 B/'1D(&-L87-S/2(B;F5W+71D(B(@.=VED=&@.](B(Q,# B(B!B
M9T-O;&]R/2(B(S5B.3-A92(B(&AE:6=H=#TB(C$P(B(^/$E-1R!H96EG:'0]
M(B(Q(B(@.<W)C/2(B25,O<VAI;2YG:68B(B!W:61T:#TB(C$B(CX\+W1D/B(-
M"@.ER97-P;VYS92YW<FET92 B/'1D(&-L87-S/2(B;F5W+71D(B(@.=VED=&@.]
M(B(U(B(@.8F=#;VQO<CTB(B,S93<V.3$B(B!H96EG:'0](B(Q,"(B/CQ)34<@.
M:&5I9VAT/2(B,2(B('-R8STB(DE3+W-H:6TN9VEF(B(@.=VED=&@.](B(Q(B(^
M/"]T9#XB#0H)<F5S<&]N<V4N=W)I=&4@.(CQT9"!C;&%S<STB(FYE=RUT9"(B
M('=I9'1H/2(B,C B(B!B9T-O;&]R/2(B(S<X8C!C8B(B(&AE:6=H=#TB(C$P
M(B(^/$E-1R!H96EG:'0](B(Q(B(@.<W)C/2(B25,O<VAI;2YG:68B(B!W:61T
M:#TB(C$B(CX\+W1D/B(-"@.ER97-P;VYS92YW<FET92 B/'1D(&-L87-S/2(B
M;F5W+71D(B(@.=D%L:6=N/2(B8V5N=&5R(B(@.=VED=&@.](B(U,# B(B!B9T-O
M;&]R/2(B(S<X8C!C8B(B(&AE:6=H=#TB(C$B(CX\<W1R;VYG(&-L87-S/2(B
M=&5X="(B('-T>6QE/2(B34%21TE.+4Q%1E0Z(#(P<'@.B(CY396%R8V@.Z/$E-
M1R!H96EG:'0](B(Q(B(@.<W)C/2(B25,O<VAI;2YG:68B(B!W:61T:#TB(C$P
M(B(^)FYB<W [)FYB<W [(@.T*"7)E<W!O;G-E+G=R:71E("(\24Y0550@.:60]
M(B)396%R8VA?4&AR87-E(B(@.='EP93TB(G1E>'0B(B!S:7IE/2(B,S B(B!N
M86UE/2(B4V5A<F-H7U!H<F%S92(B('9A;'5E/2(B(B F(%-E87)C:%]0:')A
M<V4@.)B B(B(@.<W1Y;&4](B)-05)'24XM5$]0.B M-'!X.R!-05)'24XM0D]4
M5$]-.B M,W!X(B(@.=F%L=64](B(B(CX@./&$@.:60](B)B=&A';R(B(&-L87-S
M/2(B9V\B(B!H<F5F/2(B:F%V87-C<FEP=#IF;W)M,2YS=6)M:70H*3LB(CXB
M#0H)<F5S<&]N<V4N=W)I=&4@.(D=O(3PO83X\24U'(&AE:6=H=#TB(C$B(B!S
M<F,](B))4R]S:&EM+F=I9B(B('=I9'1H/2(B-2(B/B9N8G-P.R \+W-T<F]N
M9SXB#0H)<F5S<&]N<V4N=W)I=&4@.(CPO=&0^(@.T*"7)E<W!O;G-E+G=R:71E
M("(\=&0@.8VQA<W,](B)N97<M=&0B(G9!;&EG;CTB(G1O<"(B(&)G0V]L;W(]
M(B(C-6(Y,V%E(B(@.:&5I9VAT/2(B,3 B(CX\24U'(&AE:6=H=#TB(C$B(B!S
M<F,](B))4R]S:&EM+F=I9B(B('=I9'1H/2(B,2(B/CPO=&0^(@.T*"7)E<W!O
M;G-E+G=R:71E("(\+W1R/B(-"@.ER97-P;VYS92YW<FET92 B/'1R/B(-"@.ER
M97-P;VYS92YW<FET92 B/'1D('=I9'1H/2(B,3 P(B(@.8F=#;VQO<CTB(B-C
M8F4U838B(B!H96EG:'0](B(Q,# B(CXF;F)S<#L\+W1D/B(-"@.ER97-P;VYS
M92YW<FET92 B/'1D(&-L87-S/2(B;F5W+71D+79E<G1I8V%L(B(@.=VED=&@.]
M(B(U(B(@.8F=#;VQO<CTB(B-A-V)B.#8B(B!H96EG:'0](B(Q,# B(CX\24U'
M(&AE:6=H=#TB(C$B(B!S<F,](B))4R]S:&EM+F=I9B(B('=I9'1H/2(B,2(B
M/CPO=&0^(@.T*"7)E<W!O;G-E+G=R:71E("(\=&0@.=D%L:6=N/2(B=&]P(B(@.
M=VED=&@.](B(R,"(B(&)G0V]L;W(](B(C9CEF965D(B(^)FYB<W [/"]T9#XB
M#0H)<F5S<&]N<V4N=W)I=&4@.(CQT9"!V06QI9VX](B)T;W B(B!W:61T:#TB
M(C4P,"(B(&AE:6=H=" ]("(B,3 P)2(B/B(-"@.T*16YD(%-U8@.T*#0I3=6(@.
M5W)I=&5486)L94)O9'DH:5)O=W-097)086=E+"!I4W1A<G0L<U-C<FEP=$YA
M;64L('-#;VYN4W1R:6YG+"!S4U%,+%-E87)C:%]0:')A<V4I#0H)1&EM(&E,
M;V]P+"!A;&QD871A+"!N=6UC;VQS+"!N=6UR;W=S+"!I4W1O<"P@.: 5)O=TQO
M;W L(&-O;&-O=6YT97(L('1H:7-F:65L9 T*"41I;2!C;FXL(')S="P@.8VUD
M+"!P87)A;2P@.<&%R86TQ+"!P87)A;3(-"@.T*"7-E="!C;FX@./2!397)V97(N
M0W)E871E3V)J96-T*")!1$]$0BY#3TY.14-424].(BD-"@.EC;FXN0V]N;F5C
M=&EO;E-T<FEN9R ]('-#;VYN4W1R:6YG#0H)8VYN+D]P96X-"@.T*"7-E="!C
M;60]4V5R=F5R+D-R96%T94]B:F5C="@.B041/1$(N0V]M;6%N9"(I#0H-"@.EC
M;60N0V]M;6%N9%1E>'0](G%U97)Y(@.T*"6-M9"Y#;VUM86YD5'EP93UA9$-M
M9%-T;W)E9%!R;V,-"@.EC;60N06-T:79E0V]N;F5C=&EO;CUC;FX-"@.T*"5-E
M="!P87)A;2 ](&-M9"Y#<F5A=&5087)A;65T97(H(D!S=')396%R8V@.B+"!A
M9%9A<D-H87(@.+"!A9%!A<F%M26YP=70L(#(P,"Q396%R8VA?4&AR87-E*0T*
M"6-M9"Y087)A;65T97)S+D%P<&5N9"!P87)A;0T*#0H)9&EF9F5R9 6YC93UT
M:6UE<@.T*"7-E="!R<W0@./2!C;60N97AE8W5T90T*#0H):4QO;W @./2 Q#0H)
M86QL9&%T83UR<W0N1V5T4F]W<PT*#0H);G5M8V]L<SUU8F]U;F0H86QL9&%T
M82PQ*0T*

No comments:

Post a Comment