|
Home > Archive > MS SQL Server OLAP > January 2006 > AS 2005 / Can't build dimensions when RDBMS is Sybase
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
AS 2005 / Can't build dimensions when RDBMS is Sybase
|
|
| Steve G 2005-11-23, 11:23 am |
| I use a Sybase (12.5.2) OLEDB datasource for feeding dimension data to our
SQL Server 2005 Analysis Services Cubes. If I try to process any dimension I
see that the SQL generated by SSAS is something like:
SELECT & #91;dbo_o_v_ccy_pair
].[ccy_pair_id] AS
& #91;dbo_o_v_ccy_pair
ccy_pair_id0_0],& #91;dbo_o_v_ccy_pair
].[ccy_pair_name] AS
& #91;dbo_o_v_ccy_pair
ccy_pair_name0_1],& #91;dbo_o_v_ccy_pair
].& #91;is_offshore_ccy]
AS
& #91;dbo_o_v_ccy_pair
is_offshore_ccy0_2],
& #91;dbo_o_v_ccy_pair
].[start_name] AS
& #91;dbo_o_v_ccy_pair
start_name0_3],& #91;dbo_o_v_ccy_pair
].[region_id] AS
& #91;dbo_o_v_ccy_pair
region_id0_4],& #91;dbo_o_v_ccy_pair
].[is_emerging] AS
& #91;dbo_o_v_ccy_pair
is_emerging0_5],& #91;dbo_o_v_ccy_pair
].[bus_region] AS
& #91;dbo_o_v_ccy_pair
bus_region0_6],& #91;dbo_o_v_ccy_pair
].& #91;is_offshore_ccy_
desc] AS
& #91;dbo_o_v_ccy_pair
is_offshore_ccy_desc
0_7]
FROM [dbo].[o_v_ccy_pair] AS & #91;dbo_o_v_ccy_pair
]
... the point is that SSAS is inserting its own, rather verbose aliases, as
in .. "AS & #91;dbo_o_v_ccy_pair
ccy_pair_id0_0]" .. which often results in an
alias name longer than 30 characters, therefore exceeding the longest that
Sybase SQL can handle and causing the dimension processing to fail. Is there
any way to prevent these long aliases being created ? If so, how ? If not,
does that mean than SSAS is not compatible with Sybase ?
| |
| Akshai Mirchandani [MS] 2005-11-23, 8:24 pm |
| Sybase is not a supported database for AS 2005. However, another Sybase
customer built a cartridge and I've attached it here -- it may or may not
work for you and will not be supported.
You can put the attached .xsl file in the <install folder>\cartridges folder
and re-start the server.
Thanks,
Akshai
--
This posting is provided "AS IS" with no warranties, and confers no rights
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.
"Steve G" <Steve G@discussions.microsoft.com> wrote in message
news:D4594E9A-09A7-4BA7-855F- 2E5072AC1D9D@microso
ft.com...
>I use a Sybase (12.5.2) OLEDB datasource for feeding dimension data to our
> SQL Server 2005 Analysis Services Cubes. If I try to process any dimension
> I
> see that the SQL generated by SSAS is something like:
>
>
> SELECT & #91;dbo_o_v_ccy_pair
].[ccy_pair_id] AS
> & #91;dbo_o_v_ccy_pair
ccy_pair_id0_0],& #91;dbo_o_v_ccy_pair
].[ccy_pair_name] AS
> & #91;dbo_o_v_ccy_pair
ccy_pair_name0_1],& #91;dbo_o_v_ccy_pair
].& #91;is_offshore_ccy]
AS
> & #91;dbo_o_v_ccy_pair
is_offshore_ccy0_2],
& #91;dbo_o_v_ccy_pair
].[start_name] AS
> & #91;dbo_o_v_ccy_pair
start_name0_3],& #91;dbo_o_v_ccy_pair
].[region_id] AS
> & #91;dbo_o_v_ccy_pair
region_id0_4],& #91;dbo_o_v_ccy_pair
].[is_emerging] AS
> & #91;dbo_o_v_ccy_pair
is_emerging0_5],& #91;dbo_o_v_ccy_pair
].[bus_region] AS
> & #91;dbo_o_v_ccy_pair
bus_region0_6],& #91;dbo_o_v_ccy_pair
].& #91;is_offshore_ccy_
desc]
> AS
> & #91;dbo_o_v_ccy_pair
is_offshore_ccy_desc
0_7]
> FROM [dbo].[o_v_ccy_pair] AS & #91;dbo_o_v_ccy_pair
]
>
>
> .. the point is that SSAS is inserting its own, rather verbose aliases, as
> in .. "AS & #91;dbo_o_v_ccy_pair
ccy_pair_id0_0]" .. which often results in an
> alias name longer than 30 characters, therefore exceeding the longest that
> Sybase SQL can handle and causing the dimension processing to fail. Is
> there
> any way to prevent these long aliases being created ? If so, how ? If not,
> does that mean than SSAS is not compatible with Sybase ?
>
begin 666 sybase.xsl
M/#]X;6P@=F5R<VEO;CTB,2XP(C\^#0H\>'-L.G-T>6QE<VAE970@>&UL;G,Z
M>'-L/2)H='1P.B\O=W=W+G<S+F]R9R\Q.3DY+UA33"]4<F%N<V9O<FTB('AM
M;&YS.FUS>'-L/2)U<FXZ<V-H96UA<RUM:6-R;W-O9G0M8V]M.GAS;'0B('9E
M<G-I;VX](C$N,"(@>&UL;G,Z;7-S<6QC<G0](G5R;CIS<6PM;6EC<F]S;V9T
M+6-O;3IS<6QC<G0B('AM;&YS.FUS<W%L9&)G/2)U<FXZ<W%L+6UI8W)O<V]F
M="UC;VTZ<W%L9&)G(CX-"@D\>'-L.F]U='!U="!M971H;V0](GAM;"(@:6YD
M96YT/2)Y97,B+SX-"@T*"3PA+2T@051414Y424].("$A(2!!5%1%3E1)3TX@
M(2$A($%45$5.5$E/3B A(2$@051414Y424].(" $A(2!!5%1%3E1)3TX@(2
$A
M#0H)(" @(" @(" @(" @(%1H:7,@:7,@82!G96Y
E<F%T960@9FEL92X@1&\@
M;F]T(&UO9&EF>2!T:&ES(&9I;&4@9&ER96-T;'DA#0H@(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @+2T^#0H-"@D\(2TM(%-Y8F%S92!P;'5G
M9V%B;&4@8V%R=')I9&=E(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M+2T^#0H-" @D\(2TM($%R96$@;V8@4
U1!3D1!4D0@<&%R86UE=')I>F%T:6]N
M<SH@=&AE<V4@87)E(&5X=&5R;F%L;'D@<&%S<V5D(" @+2T^#0H)/'AS;#IP
M87)A;2!N86UE/2)I;E]#86Y5<V5087)A;7,B/GEE<SPO>'-L.G!A<F%M/@T*
M"3QX<VPZ<&%R86T@;F%M93TB:6Y?261E;G13=&%R=%%U;W1I;F=#:&%R86-T
M97(B/CPO>'-L.G!A<F%M/@T*"3QX<VPZ<&%R86T@;F%M93TB:6Y?261E;G1%
M;F11=6]T:6YG0VAA<F%C=& 5R(CX\+WAS;#IP87)A;3
X-"@D\>'-L.G!A<F%M
M(&YA;64](FEN7U-T<FEN9U-T87)T475O=&EN9T-H87)A8W1E<B(^3B<\+WAS
M;#IP87)A;3X-"@D\>'-L.G!A<F%M(&YA;64](FEN7U-T<FEN9T5N9%%U;W1I
M;F=#:&%R86-T97(B/B<\+WAS;#IP87)A;3X-"@D-"@D\(2TM($%R96$@;V8@
M0T]212!P87)A;65T<FEZ871I;VYS.B!4:&5S92!A<F4@97AT97)N86QL>2!C
M:&5C:V5D(" @(" @+2T^#0H)/&US<W%L8W)T.G!R;W9I9&5R('1Y<&4](G!R
M969I>"(^061A<'1I=F4@4V5R=F5R($%N>7=H97)E/"]M<W-Q;&-R=#IP<F]V
M:61E<CX-"@T*"3QM<W-Q;&- R=#IC87!A8FEL:71I97,
^#0H)"3QM<W-Q;&-R
M=#IS=7!P;W)T<RUD871E<&%R="UY96%R+SX-"@D)/&US<W%L8W)T.G-U<'!O
M<G1S+61A=&5P87)T+7%U87)T97(O/@T*"0D\;7-S<6QC<G0Z<W5P<&]R=',M
M9&%T97!A<G0M;6]N=&@O/@T*"0D\;7-S<6QC<G0Z<W5P<&]R=',M9&%T97!A
M<G0M9&%Y;V9Y96%R+SX-"@D)/&US<W%L8W)T.G-U<'!O<G1S+61A=&5P87)T
M+61A>2\^#0H)"3QM<W-Q;&-R=#IS=7!P;W)T<RUD871E<&%R="UW965K+SX-
M"@D)/&US<W%L8W)T.G-U<'!O<G1S+61A=&5P87)T+61A>6]F=V5E:R\^#0H)
M"3QM<W-Q;&-R=#IS=7!P;W)T<RUD871E<&%R="UH;W5R+SX-"@D)/&US<W%L
M8W)T.G-U<'!O<G1S+61A=& 5P87)T+6UI;G5T92\^#0
H)"3QM<W-Q;&-R=#IS
M=7!P;W)T<RUD871E<&%R="US96-O;F0O/@T*"0D\;7-S<6QC<G0Z<W5P<&]R
M=',M9&%T97!A<G0M;6EL;&ES96-O;F0O/@T*"0D\;7-S<6QC<G0Z<W5P<&]R
M=',M;75L=&EP;&4M9&ES=&EN8W0M8V]U;G0O/@T*"0D\;7-S<6QC<G0Z<W5P
M<&]R=',M=7!D871E+SX-"@D)/&US<W%L8W)T.G-U<'!O<G1S+6EN<V5R="\^
M#0H)"3QM<W-Q;&-R=#IS=7!P;W)T<RUS=6)S96QE8W0O/@T*"0D\;7-S<6QC
M<G0Z<W5P<&]R=',M=&%B;&4M86QI87,O/@T*"0D\;7-S<6QC<G0Z<W5P<&]R
M=',M8V]L=6UN+6%L:6%
S+SX-"@D)/&US<W%L8W)T.G-U<'!O<G1S+6-A<W0O
M/@T*"0D\;7-S<6QC<G0Z<W5P<&]R=',M<F5M;W1E+7%U97)Y+SX-"@D)/&US
M<W%L8W)T.G-U<'!O<G1S+71O<"UC;&%U<V4O/@T*"0D\;7-S<6QC<G0Z<W5P
M<&]R=',M=6YI;VXO/@T*"0D\;7-S<6QC<G0Z<W5P<&]R=',M=6YI;VXM86QL
M+SX-"@D)/&US<W%L8W)T.G-U<'!O<G1S+69A<W0M=W)I=&5B86-K/E1!0DQ/
M0TLL1DE215]44DE'1T5
24SPO;7-S<6QC<G0Z<W5P<&]R=',M9F%S="UW<FET
M96)A8VL^#0H@(" @(" @(#PA+2T-"B @(" @(" @(" @(%1H:7,@8V%R=')I
M9&=E(&ES('5S960@87,@=&AE(&1E9F%U;'0@8V%R=')I9&=E(&9O<B!U;FMN
M;W=N('!R;W9I9&5R<PT*(" @(" @(" @(" @4V\@979E;B!T:&]U9V@@4U%,
M('-U<'!O<G1S(&QA<F=E<B!A;&EA<V5S("AA="!L96%S=" Q,C@I+"!W92=L
M;"!U<V4@82!S;6%L;&5R#0H@(" @(" @(" @("!A;&EA<R!F;W(@=&AE(&]T
M:&5R('!R;W9I9&5R<PT*(" @(" @(" M+3X-"@D)/&US<W%L8W)T.FQI;6ET
M+71A8FQE+6ED96YT:69
I97(M;&5N9W1H/C,R/"]M<W-Q;&-R=#IL:6UI="UT
M86)L92UI9&5N=&EF:65R+6QE;F=T:#X-"@D)/&US<W%L8W)T.FQI;6ET+6-O
M;'5M;BUI9&5N=& EF:65R+6QE;F=T:#XS,C
PO;7-S<6QC<G0Z;&EM:70M8V]L
M=6UN+6ED96YT:69I97(
M;&5N9W1H/@T*#0H)"3PA+2T@36%P(&9R;VT@35-$
M04EN:71I86QI>F4@8V]N;F5C=&EO;B!S=')I;F<@=&\@4U%,3TQ%1$(@8V]N
M;F5C=&EO;B!S=')I;F<@+2T^#0H)"3QM<W-Q;&-R=#IR96UO=&4M8V]N;F5C
M=&EO;BUS=')I;F<M;6%P<&EN9W,^#0H)"0D\;7-S<6QC<G0Z<F5M;W1E+6-O
M;FYE8W1I;VXM<W1R:6YG+6UA<'!I;F<^#0H)"0D)/&US<W%L8W)T.F1A=&%S
M;W5R8V4M<')O<& 5R='D^4')O=FED97(\+V
US<W%L8W)T.F1A=&%S;W5R8V4M
M<')O<&5R='D^#0H)"0D)/&US<W%L8W)T.G)E;6]T92UP<F]P97)T>3X\+VUS
M<W%L8W)T.G)E;6]T92UP<F]P97)T>3X-"@D)"3PO;7-S<6QC<G0Z<F5M;W1E
M+6-O;FYE8W1I;VXM<W1R:6YG+6UA<'!I;F<^#0H)"0D\;7-S<6QC<G0Z<F5M
M;W1E+6-O;FYE8W1I;VXM<W1R:6YG+6UA<'!I;F<^#0H)"0D)/&US<W%L8W)T
M.F1A=&%S;W5R8V4M<')O<&5R='D^1&%T82!3;W5R8V4\+VUS<W%L8W)T.F1A
M=&%S;W5R8V4M<')O<&5R='D^#0H)"0D)/&US<W%L8W)T.G)E;6]T92UP<F]P
M97)T>3Y397)V97(\+VUS<W%L8W)T.G)E;6]T92UP<F]P97)T>3X-"@D)"3PO
M;7-S<6QC<G0Z<F5M;W1E+6-O;FYE8W1I;VXM<W1R:6YG+6UA<'!I;F<^#0H)
M"0D\;7-S<6QC<G0Z<F5M;W1E+6-O;FYE8W1I;VXM<W1R:6YG+6UA<'!I;F<^
M#0H)"0D)/&US<W%L8W)T.F1A=&%S;W5R8V4M<')O<&5R='D^26YI=&EA;"!#
M871A;&]G/"]M<W-Q;&-R=#ID871A<V]U<F-E+7!R;W!E<G1Y/@T*"0D)"3QM
M<W-Q;&-R=#IR96UO=&4M<')O<&5R='D^1&%T86)A<V4\+VUS<W%L8W)T.G)E
M;6]T92UP<F]P97)T>3X-"@D)"3PO;7-S<6QC<G0Z<F5M;W1E+6-O;FYE8W1I
M;VXM<W1R:6YG+6UA<'!I;F<^#0H)"0D\;7-S<6QC<G0Z<F5M;W1E+6-O;FYE
M8W1I;VXM<W1R:6YG+6UA<'!I;F<^#0H)"0D)/&US<W%L8W)T.F1A=&%S;W5R
M8V4M<')O<&5R='D^57-E<B!)1#PO;7-S<6QC<G0Z9&%T87-O=7)C92UP<F]P
M97)T>3X-"@D)"0D\;7-S<6QC<G0Z<F5M;W1E+7!R;W!E<G1Y/E5)1#PO;7-S
M<6QC<G0Z<F5M;W1E+7!R;W!E<G1Y/@T*"0D)/"]M<W-Q;&-R=#IR96UO=&4M
M8V]N;F5C=&EO;BUS=')I;F<M;6%P<&EN9SX-"@D)"3QM<W-Q;&-R=#IR96UO
M=&4M8V]N;F5C=&EO;BUS=')I;F<M;6%P<&EN9SX-"@D)"0D\;7-S<6QC<G0Z
M9&%T87-O=7)C92UP<F]P97)T>3Y087-S=V]R9#PO;7-S<6QC<G0Z9&%T87-O
M=7)C92UP<F]P97)T>3X-"@D)"0D\;7-S<6QC<G0Z<F5M;W1E+7!R;W!E<G1Y
M/E!71#PO;7-S<6QC<G0Z<F5M;W1E+7!R;W!E<G1Y/@T*"0D)/"]M<W-Q;&-R
M=#IR96UO=&4M8V]N;F5C=&EO;BUS=')I;F<M;6%P<&EN9SX-"@D)"3QM<W-Q
M;&-R=#IR96UO=&4M8V]N;F5C=&EO;BUS=')I;F<M;6%P<&EN9SX-"@D)"0D\
M;7-S<6QC<G0Z9&%T87-O=7)C92UP<F]P97)T>3Y);G1E9W)A=&5D(%-E8W5R
M:71Y/5-34$D\+VUS<W%L8W)T.F1A=&%S;W5R8V4M<')O<&5R='D^#0H)"0D)
M/&US<W%L8W)T.G)E;6]T92UP<F]P97)T>3Y4<G5S=&5D7T-O;FYE8W1I;VX]
M>65S/"]M<W-Q;&-R=#IR96UO=&4M<')O<&5R='D^#0H)"0D\+VUS<W%L8W)T
M.G)E;6]T92UC;VYN96-T:6]N+7-T<FEN9RUM87!P:6YG/@T*"0D\+VUS<W%L
M8W)T.G)E;6]T92UC;VYN96-T:6]N+7-T<FEN9RUM87!P:6YG<SX-"@D\+VUS
M<W%L8W)T.F-A<&%B:6QI=&EE<SX-"@T*"3QM<W-Q;&-R=#IS8VAE;6$M8VQA
M<W-E<SX-"@D)/&US<W%L8W)T.G-C:&5M82UC;&%S<SX-"@D)(" @(#QM<W-Q
M;&- R=#IM86YA9V5D+7!R;W9
I9&5R/E-Y<W1E;2Y$871A+D]L941B/"]M<W-Q
M;&- R=#IM86YA9V5D+7!R;W9
I9&5R/@T*"0D@(" @/&US<W%L8W)T.G1Y<&4^
M36EC<F]S;V9T+D1A=&%787)E:&]U<V4N1&5S:6=N+D]L941B4V-H96UA+"!-
M:6-R;W-O9G0N1&%T85=A<F5H;W5S93PO;7-S<6QC<G0Z='EP93X-"@D)(" @
M(#QM<W-Q;&-R=#IQ=65R>2UD97-I9VYE<CX-"@D)"2 @(" \;7-S<6QC<G0Z
M='EP93Y-:6-R;W-O9G0N1&%T85=A<F5H;W5S92Y#;VYT<F]L<RY/;&5$8E%U
M97)Y1&5S:6=N97(L($UI8W)O<V]F="Y$871A5V%R96AO=7-E/"]M<W-Q;&-R
M=#IT>7!E/@T*"0D@(" @/"]M<W-Q;&-R=#IQ=65R>2UD97-I9VYE<CX-"@D)
M/"]M<W-Q;&-R=#IS8VAE;6$M8VQA<W,^#0H)"3QM<W-Q;&-R=#IS8VAE;6$M
M8VQA<W,^#0H)"2 @(" \;7-S<6QC<G0Z;6%N86=E9"UP<F]V:61E<CY3>7-T
M96TN1&%T82Y/9&)C/"]M<W-Q;&- R=#IM86YA9V5D+7!R;W9
I9&5R/@T*"0D@
M(" @/&US<W%L8W)T.G1Y<&4^36EC<F]S;V9T+D1A=&%787)E:&]U<V4N1&5S
M:6=N+D]D8F-38VAE;6$L($UI8W)O<V]F="Y$871A5V%R96AO=7-E/"]M<W-Q
M;&-R=#IT>7!E/@T*"0D\+VUS<W%L8W)T.G-C:&5M82UC;&%S<SX-"@D\+VUS
M<W%L8W)T.G-C:&5M82UC;&%S<V5S/@T*" 3PA+2T@07)E82!O9B!I;
G1E<FYA
M;"!P87)A;65T<FEZ871I;VYS(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" M+3X-"@D\(2TM(&]V97)R:61E3V95<V5087)A;7,Z#0H)(" @(" @
M(" @>65S(" @(" @/2!U<V4@86QW87ES('!A<F%M971R:6,@<75E<FEE<PT*
M"2 @(" @(" @(&YO(" @(" @(#T@;F5V97(@=7-E('!A<F%M971R:6,@<75E
M<FEE<PT*"0D)(&YO<W5B<V5L(#T@=7-E(&%S('EE<RP@8G5T(&YO="!O;B!S
M=6)S96QE8W1S#0H)"0D@875T;R @(" @/2!U<V4@=&AE('9A;'5E(&]F(&EN
M7T-A;E5S95!A<F%M<R!T;R!D971E<FUI;F4@(" @("TM/@T*"3QX<VPZ=F%R
M:6%B;&4@;F%M93TB;W9E<G)I9&5/9E5S95!A<F%M<R(^875T;SPO>'-L.G9A
M<FEA8FQE/@T*"3PA+2T@< VAO=6QD4')O9'5C941E8
G5G.@T*"2 @(" @(" @
M('EE<R @(" @(#T@< ')O9'5C92!D96)U9R!I;
F9O<FUA=&EO;@T*"2 @(" @
M(" @(&YO(" @(" @(#T@9&\@;F]T('!R;V1U8V4@9&5B=6<@:6YF;W)M871I
M;VX@(" @(" @(" @(" @(" @(" M+3X-"@D\>'-L.G9A<FEA8FQE(&YA;64]
M(G- H;W5L9%!R;V1U8V5$96)
U9R(^>65S/"]X<VPZ=F%R:6%B;&4^#0H-"@D\
M(2TM($%R96$@;V8@9VQ
O8F%L('9A<FEA8FQE<R!I;FET:6%L:7IA=&EO;G,@
M(" @(" @(" @(" @(" @(" @(" @(" @+2T^#0H)/'AS;#IV87)I86)L92!N
M86UE/2)5<V5087)A;7,B/@T*"0D\>'-L.F-H;V]S93X-"@D)"3QX<VPZ=VAE
M;B!T97-T/2)N;W)M86QI>F4M<W!A8V4H)&]V97)R:61E3V95<V5087)A;7,I
M(#T@)WEE<R<@;W(@*&YO<FUA;&EZ92US<&%C92@D;W9E<G)I9&5/9E5S95!A
M<F%M<RD@/2 G875T;R<@86YD(&YO<FUA;&EZ92US<&%C92@D:6Y?0V%N57-E
M4&%R86US*3TG>65S)RDB/GEE<SPO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@
M=& 5S=#TB;F]R;6%L:7IE+7
-P86-E*"1O=F5R<FED94]F57-E4&%R86US*2 ]
M("=N;W-U8G-E;"<B/FYO<W5B<V5L/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ;W1H
M97)W:7-E/FYO/"]X<VPZ;W1H97)W:7-E/@T*"0D\+WAS;#IC:&]O<V4^#0H)
M/"]X<VPZ=F%R:6%B;&4^#0H)/ 'AS;#IV87)I86)L92!N8
6UE/2)0<F]D=6-E
M1&5B=6<B('-E;&5C=#TB)'- H;W5L9%!R;V1U8V5$96)
U9R(O/@T*"3QX<VPZ
M=F%R:6%B;& 4@;F%M93TB261E;G1I9F
EE<E-T87)T475O=&EN9T-H87)A8W1E
M<B(@<V5L96-T/2)N;W)M86QI>F4M<W!A8V4H)&EN7TED96YT4W1A<G11=6]T
M:6YG0VAA<F%C=&5R*2(O/@T*"3QX<VPZ=F%R:6%B;&4@;F%M93TB261E;G1I
M9FEE<D5N9%%U;W1I;F=#:&%R86-T97(B('-E;& 5C=#TB;F]R;6%L:7IE+7
-P
M86-E*"1I;E])9&5N=$5N9%%U;W1I;F=#:&%R86-T97(I(B\^#0H)/'AS;#IV
M87)I86)L92!N86UE/2)3=')I;F=3=&%R=%%U;W1I;F=#:&%R86-T97(B('-E
M;& 5C=#TB;F]R;6%L:7IE+7
-P86-E*"1I;E]3=')I;F=3=&%R=%%U;W1I;F=#
M:&%R86-T97(I(B\^#0H)/ 'AS;#IV87)I86)L92!N8
6UE/2)3=')I;F=%;F11
M=6]T:6YG0VAA<F%C=&5R(B!S96QE8W0](FYO<FUA;&EZ92US<&%C92@D:6Y?
M4W1R:6YG16YD475O=&EN9T-H87)A8W1E<BDB+SX-"@T*"3PA+2T@1V5N97)A
M=&5D('-T871E;65N="!P86-K86=I;F<@(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&UA=&-H/2(O(CX-
M"@D)/'AS;#IE;&5M96YT(&YA;64](E-T871E;65N="(^#0H-"@D)"3PA+2T@
M1V5N97)A=&4@<75E<GD@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @+2T^#0H)"0D\>'-L. F5L96UE;G0@;F%M93TB5
&5X="(^
M#0H)"0D)/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+U-T871E;65N
M="\J6S%=(B\^#0H)"0D\+WAS;#IE;&5M96YT/@T*#0H)"0D\(2TM($=E;F5R
M871E('!A<F%M971E<G,@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @("TM/@T*"0D)/'AS;#II9B!T97-T/2)C;W5N="@N+U-T871E;65N
M="]087)A;65T97)S+U!A<F%M971E<BDA/3 @86YD("@H;F]R;6%L:7IE+7-P
M86-E*"15<V5087)A;7,I/2=Y97,G*2!O<B H;F]R;6%L:7IE+7-P86-E*"15
M<V5087)A;7,I/2=N;W-U8G-E;"<I*2(^#0H)"0D)/'AS;#IE;&5M96YT(&YA
M;64](E!A<F%M971E<G,B/@T*"0D)"0D\>'-L.F9O<BUE86-H('-E;&5C=#TB
M+B]3=&%T96UE;G0O*ELQ72\O4&%R86UE=&5R(CX-"@D)"0D)"3QX<VPZ96QE
M;65N="!N86UE/2)087)A;65T97(B/@T*"0D)"0D)"3QX<VPZ871T<FEB=71E
M(&YA;64](G)E9B(^#0H)"0D)"0D)"3QX<VPZ=F%L=64M;V8@<V5L96-T/2(N
M+T!R968B+SX-"@D)"0D)" 0D\+WAS;#IA='1R:6)U=
&4^#0H)"0D)"0D\+WAS
M;#IE;&5M96YT/@T*"0D)" 0D\+WAS;#IF;W(M96%C:
#X-"@D)"0D\+WAS;#IE
M;&5M96YT/@T*"0D)/"]X<VPZ:68^#0H-"@D)"3PA+2T@1V5N97)A=&4@9&5B
M=6<@:6YF;R @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M+2T^#0H)"0D\>'-L.FEF('1E<W0](B10<F]D=6-E1&5B=6<])WEE<R<B/@T*
M"0D)"3QX<VPZ96QE;65N="!N86UE/2)M<W-Q;&1B9SI$96)U9TEN9F\B/@T*
M"0D)"0D\>'-L. F5L96UE;G0@;F%M93TB;
7-S<6QD8F<Z1V5N97)A=&5087)A
M;65T<FEC26YF;R(^#0H)"0D)"0D\>'-L.F%T=')I8G5T92!N86UE/2)M<W-Q
M;&1B9SI686QU92(^#0H)"0D)"0D)/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B15
M<V5087)A;7,B+SX-"@D)"0D)"3PO>'-L.F%T=')I8G5T93X-"@D)"0D)"3QX
M<VPZ96QE;65N="!N86UE/2)M<W-Q;&1B9SI%>'1E<FYA;"(^#0H)"0D)"0D)
M/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1I;E]#86Y5<V5087)A;7,B+SX-"@D)
M"0D)"3PO>'-L.F5L96UE;G0^#0H)"0D)"0D\>'-L.F5L96UE;G0@;F%M93TB
M;7-S<6QD8F<Z26YT97)N86PB/@T*"0D)"0D)"3QX<VPZ=F%L=64M;V8@<V5L
M96-T/2(D;W9E<G)I9&5/9E5S95!A<F%M<R(O/@T*"0D)"0D)/"]X<VPZ96QE
M;65N=#X-"@D)"0D)/"]X<VPZ96QE;65N=#X-"@D)"0D\+WAS;#IE;&5M96YT
M/@T*"0D)/"]X<VPZ:68^#0H-"@D)/"]X<VPZ96QE;65N=#X-"@D\+WAS;#IT
M96UP;&%T93X-"@T*"3PA+2T@56YI;VX@<W1A=&5M96YT(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" M+3X-"@D\
M>'-L.G1E;7!L871E(&UA=&-H/2)5;FEO;B(^#0H)"3QX<VPZ:68@=&5S=#TB
M;F%M92@N+BD@(3T@)U-T871E;65N="<@86YD(&YA;64H+BXI("$]("=);G-E
M<G0G(CX-"@D)"2@-"@D)/"]X<VPZ:68^#0H)"0D\>'-L.F-A;&PM=&5M<&QA
M=&4@;F%M93TB<')I;G0M8VAI;&1R96XM;&ES="(^#0H)"0D)/'AS;#IW:71H
M+7!A<F%M(&YA;64](F]P97)A=&]R(B!S96QE8W0](B<@54Y)3TX@)R(O/@T*
M"0D)/"]X<VPZ8V%L;"UT96UP;&%T93X-"@D)/'AS;#II9B!T97-T/2)N86UE
M*"XN*2 A/2 G4W1A=& 5M96YT)R!A;F0@;F%M92
@N+BD@(3T@)TEN<V5R="<B
M/@T*"0D)*0T*"0D\+WAS;#II9CX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA
M+2T@56YI;VX@06QL('-T871E;65N=" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @+2T^#0H)/'AS;#IT96UP;&%T
M92!M871C:#TB56YI;VY
!;&PB/@T*"0D\>'-L.FEF('1E<W0](FYA;64H+BXI
M("$]("=3=&%T96UE;G0G(&%N9"!N86UE*"XN*2 A/2 G26YS97)T)R(^#0H)
M"0DH#0H)"3PO>'-L.FEF/@T*"0D)/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64]
M(G!R:6YT+6-H:6QD<F5N+6QI<W0B/@T*"0D)"3QX<VPZ=VET:"UP87)A;2!N
M86UE/2)O<&5R871O<B(@<V5L96-T/2(G(%5.24].($%,3" G(B\^#0H)"0D\
M+WAS;#IC86QL+71E;7!
L871E/@T*"0D\>'-L.FEF('1E<W0](FYA;64H+BXI
M("$]("=3=&%T96UE;G0G(&%N9"!N86UE*"XN*2 A/2 G26YS97)T)R(^#0H)
M"0DI#0H)"3PO>'-L.FEF/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/"$M+2!4
M;W @8VQA=7-E(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@]
M(E1O<"(^#0H)"51/4" \>'-L.G9A;'5E+6]F('-E;&5C=#TB+B(O/CQX<VPZ
M=&5X=#X@/"]X<VPZ=&5X=#X-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@
M4V5L96-T('-T871E;65N=" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&UA=&-H
M/2)396QE8W0B/@T*"0D\>'-L.F-H;V]S93X-"@D)"3QX<VPZ=VAE;B!T97-T
M/2)C;W5N="@N+T-O;'5M;D5X<')E<W-I;VYS+TES5F%L:61&;W));F1E>&EN
M9RD@(3T@,"(^#0H)"0D)4T5,14-4($]"2D5#5%!23U!%4E19*"!O8FIE8W1?
M:60H)SQX<VPZ87!P;'DM=&5M<&QA=&5S('-E;& 5C=#TB+B]3;W5R8V5S+U
9I
M97< B+SXG*2P@)VES:6YD97A
A8FQE)R I#0H)"0D\+WAS;#IW:&5N/@T*"0D)
M/'AS;#IO=&AE<G=I<V4^#0H)"0D)/'AS;#II9B!T97-T/2)N86UE*"XN*2 A
M/2 G4W1A=& 5M96YT)R!A;F0@;F%M92
@N+BD@(3T@)TEN<V5R="<@86YD(&YA
M;64H+BXI("$]("=5;FEO;B<@86YD(&YA;64H+BXI("$]("=5;FEO;D%L;"<B
M/@T*"0D)"0DH#0H)"0D)/"]X<VPZ:68^#0H)"0D)4T5,14-4(#QX<VPZ87!P
M;'DM=&5M<&QA=&5S('-E;&5C=#TB+B]4;W B+SX-"@D)"0D)/'AS;#IA<'!L
M>2UT96UP;&%T97,@<V5L96-T/2(N+T1I<W1I;F-T(B\^#0H)"0D)"3QX<VPZ
M87!P;'DM=&5M<&QA=&5S('-E;&5C=#TB+B]#;VQU;6Y%>'!R97-S:6]N<R(O
M/@T*"0D)"0D\>'-L.FEF('1E<W0](F-O=6YT*"XN+U!H87-E*2 A/2 P(CXL
M($-/54Y4*"HI($%3(%M#3U5.5%\W-C<S869F-BTR-#0U+31E9C8M831C.2TW
M8F8S9#DS8F0T,F%=(#P
O>'-L.FEF/@T*"0D)"0D\>'-L.F%P<&QY+71E;7!L
M871E<R!S96QE8W0](BXO4V]U<F-E<R(O/@T*"0D)"0D\>'-L.F%P<&QY+71E
M;7!L871E<R!S96QE8W0](BXO5VAE<F4B+SX-"@D)"0D)/'AS;#IA<'!L>2UT
M96UP;&%T97,@<V5L96-T/2(N+T=R;W5P0GDB+SX-"@D)"0D\>'-L.F%P<&QY
M+71E;7!L871E<R!S96QE8W0](BXO2&%V:6YG(B\^#0H)"0D)/'AS;#IA<'!L
M>2UT96UP;&%T97,@<V5L96-T/2(N+T]R9&5R0GDB+SX-"@D)"0D\>'-L.FEF
M('1E<W0](FYA;64H+BXI("$]("=3=&%T96UE;G0G(&%N9"!N86UE*"XN*2 A
M/2 G26YS97)T)R!A;F0@;F%
M92@N+BD@(3T@)U5N:6]
N)R!A;F0@;F%M92@N
M+BD@(3T@)U5N:6]N06Q
L)R(^#0H)"0D)"2D-"@D)"0D\+WAS;#II9CX-"@D)
M"3PO>'-L.F]T:&5R=VES93X-"@D)/"]X<VPZ8VAO;W-E/@T*"3PO>'-L.G1E
M;7!L871E/@T*#0H)/"$M+2!5<&1A=&4@<W1A=&5M96YT(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("TM/@T*"3QX
M<VPZ=&5M<&QA=&4@;6%T8V@](E5P9&%T92(^#0H)"5501$%412 \>'-L.F%P
M<&QY+71E;7!L871E<R!S96QE8W0](BXO5&%R9V5T(B\^#0H)"0D\>'-L.F%P
M<&QY+71E;7!L871E<R!S96QE8W0](BXO5VAE<F4B+SX-"@D\+WAS;#IT96UP
M;&%T93X-"@T*"3PA+2T@26YS97)T('-T871E;65N=" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" M+3X-"@D\>'-L
M.G1E;7!L871E(&UA=&-H/2));G-E<G0B/@T*"0E)3E-%4E0@24Y43R \>'-L
M.F%P<&QY+71E;7!L871E<R!S96QE8W0](BXO5&%R9V5T(B\^#0H)"3QX<VPZ
M87!P;'DM=&5M<&QA=&5S('-E;& 5C=#TB+B]396QE8W0B+S
X-"@D\+WAS;#IT
M96UP;&%T93X-"@T*"3PA+2T@1&5L971E('-T871E;65N=" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" M+3X-"@D\
M>'-L.G1E;7!L871E(&UA=&-H/2)$96QE=&4B/@T*"0E$14Q%5$4@1E)/32 \
M>'-L.F%P<&QY+71E;7!L871E<R!S96QE8W0](BXO5&%R9V5T(B\^#0H)"0D\
M>'-L.F%P<&QY+71E;7!L871E<R!S96QE8W0](BXO5VAE<F4B+SX-"@D\+WAS
M;#IT96UP;&%T93X-"@T*"3PA+2T@1')O<"!S=&%T96UE;G0@(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" M+3X-
M"@D\>'-L.G1E;7!L871E(&UA=&-H/2)$<F]P(CX-"@D)1%)/4" \>'-L.F%P
M<&QY+71E;7!L871E<R!S96QE8W0](BXO*B(O/@T*"3PO>'-L.G1E;7!L871E
M/@T*#0H)/"$M+2!#<F5A=&4@<W1A=&5M96YT(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M
M<&QA=&4@;6%T8V@](D-R96%T92(^#0H)"4-214%412 -"@D)/'AS;#IV87)I
M86)L92!N86UE/2)P:&%S92(^/ 'AS;#IV86QU92UO9B!S9
6QE8W0](BXO4&AA
M< V4B+SX\+WAS;#IV87)I8
6)L93X-"@D)/'AS;#IC:&]O<V4^#0H)"0D\>'-L
M.G=H96X@=&5S=#TB;G5M8F5R*"1P:&%S92D],2(^#0H)"0D)5DE%5R \>'-L
M.F%P<&QY+71E;7!L871E< R!S96QE8W0](BXO5FEE=
R(O/B H(#QX<VPZ87!P
M;'DM=&5M<&QA=&5S('-E;&5C=#TB+B\J6S1=(B\^+"!;0T]53E1?-S8W,V%F
M9C8M,C0T-2TT968V+6$T8SDM-V)F,V0Y,V)D-#)A72 I(%=)5$@@4T-(14U!
M0DE.1$E.1R!!4R \>'-L.F%P<&QY+71E;7!L871E<R!S96QE8W0](BXO*ELU
M72(O/@T*"0D)/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2)N=6UB
M97(H)'!H87-E*3TR(CX-"@D)" 0E53DE1544@0TQ54U1%4
D5$($E.1$58(#QX
M<VPZ87!P;'DM=&5M<&QA=&5S('-E;&5C=#TB+B]);F1E>"(O/B!/3B \>'-L
M.F%P<&QY+71E;7!L871E< R!S96QE8W0](BXO5FEE=
R(O/B H(#QX<VPZ87!P
M;'DM=&5M<&QA=&5S('-E;&5C=#TB+B\J6S1=(B\^("D-"@D)"3PO>'-L.G=H
M96X^#0H)"0D\>'-L.F]T:&5R=VES93X-"@D)"0D\>'-L.F%P<&QY+71E;7!L
M871E< R!S96QE8W0](BXO*ELQ7
2(O/@T*"0D)"3QX<VPZ8VAO;W-E/@T*"0D)
M"0D\>'-L.G=H96X@=& 5S=#TB;F%M92@N+RI;,5
TI(#T@)U1A8FQE)R(^("@@
M/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+RI;,ETB+SX@*3PO>'-L
M.G=H96X^#0H)"0D)/"]X<VPZ8VAO;W-E/@T*"0D)/"]X<VPZ;W1H97)W:7-E
M/@T*"0D\+WAS;#IC:&]O<V4^#0H)/"]X<VPZ=&5M<&QA=&4^#0H-"@D\(2TM
M(%)E;6]T92!Q=65R>2 H3U!%3E)/5U-%5"D@(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @+2T^#0H)/'AS;#IT96UP;&%T92!M871C
M:#TB4F5M;W1E475E<GDB/@T*"0E/4$5.4D]74T54#0H)"2@-"@D)"3QX<VPZ
M8V%L;"UT96UP;&%T92!N86UE/2)Q=6]T92US=')I;F<B/CQX<VPZ=VET:"UP
M87)A;2!N86UE/2)S=')I;F<B('-E;&5C=#TB+B]0<F]V:61E<B(O/CPO>'-L
M.F-A;&PM=&5M<&QA=&4^+ T*"0D)/'AS;#IC:&]O<V4^#0H)"0D)/'AS;#IW
M:&5N('1E<W0](BXO1&%T85-O=7)C92(^#0H)"0D)"3QX<VPZ8V%L;"UT96UP
M;&%T92!N86UE/2)Q=6]T92US=')I;F<B/CQX<VPZ=VET:"UP87)A;2!N86UE
M/2)S=')I;F<B('-E;&5C=#TB+B]$871A4V]U<F-E(B\^/"]X<VPZ8V%L;"UT
M96UP;&%T93X[/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64](G%U;W1E+7-T<FEN
M9R(^/'AS;#IW:71H+7!A<F%M(&YA;64](G-T<FEN9R(@<V5L96-T/2(N+U5S
M97).86UE(B\^/"]X<VPZ8V%L;"UT96UP;&%T93X[/'AS;#IC86QL+71E;7!L
M871E(&YA;64](G%U;W1E+7-T<FEN9R(^/'AS;#IW:71H+7!A<F%M(&YA;64]
M(G-T<FEN9R(@<V5L96-T/2(N+U!A<W-W;W)D(B\^/"]X<VPZ8V%L;"UT96UP
M;&%T93XL#0H)"0D)/"]X<VPZ=VAE;CX-"@D)"0D\>'-L.F]T:&5R=VES93X-
M"@D)"0D)/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64](G%U;W1E+7-T<FEN9R(^
M/'AS;#IW:71H+7!A<F%M(&YA;64](G-T<FEN9R(@<V5L96-T/2(N+T-O;FYE
M8W1I;VY3=')I;F< B+SX\+WAS;#IC86QL+71
E;7!L871E/BP-"@D)"0D\+WAS
M;#IO=&AE<G=I<V4^#0H)"0D\+WAS;#IC:&]O<V4^#0H)"0D\>'-L.F-A;&PM
M=&5M<&QA=&4@;F%M93TB<75O=&4M<W1R:6YG(CX\>'-L.G=I=&@M<&%R86T@
M;F%M93TB< W1R:6YG(B!S96QE8W0](
BXO*EML87-T*"E=(B\^/"]X<VPZ8V%L
M;"UT96UP;&%T93X-"@D)*0T*"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT
M96UP;&%T92!M871C:#TB1&ES=&EN8W0B/@T*"0E$25-424Y#5 T*"3PO>'-L
M.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB07,B/@T*"0D\
M>'-L.F%P<&QY+71E;7!L871E< R!S96QE8W0](BXO*ELQ7
2(O/B!!4R \>'-L
M.F%P<&QY+71E;7!L871E< R!S96QE8W0](BXO*ELR7
2(O/@T*"3PO>'-L.G1E
M;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB4V]U<F-E<R(^#0H)
M"4923TT@/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64](G!R:6YT+6-H:6QD<F5N
M+6QI<W0B+SX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3QX<VPZ=&5M<&QA=&4@
M;6%T8V@](D- O;'5M;D1E9FEN:71I;VY
S(CX-"@D)/'AS;#IC86QL+71E;7!L
M871E(&YA;64](G!R:6YT+6-H:6QD<F5N+6QI<W0B+SX-"@D\+WAS;#IT96UP
M;&%T93X-"@T*"3QX<VPZ=&5M<&QA=& 4@;6%T8V@](D=R;W5P0G
DB/@T*"0E'
M4D]54"!"62 \>'-L.F-A;&PM=&5M<&QA=&4@;F%M93TB<')I;G0M8VAI;&1R
M96XM;&ES="(O/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T
M92!M871C:#TB3W)D97)
">2(^#0H)"4]21$52($)9(#QX<VPZ8V%L;"UT96UP
M;&%T92!N86UE/2)P<FEN="UC:&EL9')E;BUL:7-T(B\^#0H)/"]X<VPZ=&5M
M<&QA=&4^#0H-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)7:&5R92(^#0H)"5=(
M15)%(#QX<VPZ87!P;'DM=&5M<&QA=&5S('-E;&5C=#TB+B\J(B\^#0H)/"]X
M<VPZ=&5M<&QA=&4^#0H-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)(879I;F<B
M/@T*"0E(059)3D<@/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+RHB
M+SX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@]
M(D-O;'5M;D5X<')E<W-I;VYS(CX-"@D)/ 'AS;#IC86QL+71E;7!L8
71E(&YA
M;64](G!R:6YT+6-H:6QD<F5N+6QI<W0B+SX-"@D\+WAS;#IT96UP;&%T93X-
M"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](D-O;'5M;E5P9&%T97,B/@T*"0D\
M>'-L.F-A;&PM=&5M<&QA=&4@;F%M93TB<')I;G0M8VAI;&1R96XM;&ES="(O
M/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB
M07-S:6=N(CX-"@D)/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+RI;
M,5TB+SX]/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+RI;,ETB+SX-
M"@D\+WAS;#IT96UP;&%T93X-"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](DEN
M<V5R="]487)G970B/@T*"0D\>'-L.F%P<&QY+71E;7!L871E<R!S96QE8W0]
M(BXO5&%B;&4B+SX-"@D)* T*"0D)/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64]
M(G!R:6YT+6QI<W0B/@T*"0D)"3QX<VPZ=VET:"UP87)A;2!N86UE/2)V86QU
M92UN;V1E(B!S96QE8W0
](BXO0V]L=6UN57!D871
E<R\J+RI;,5TB+SX-"@D)
M"3PO>'-L.F-A;&PM=&5M<&QA=&4^#0H)"2D-"@D)/'AS;#II9B!T97-T/2(N
M+RI;,ETO07-S:6=N(CX-"@D)"59!3%5%4PT*"0D)* T*"0D)"3QX<VPZ8V%L
M;"UT96UP;&%T92!N86UE/2)P<FEN="UL:7-T(CX-"@D)"0D)/'AS;#IW:71H
M+7!A<F%M(&YA;64](G9A;'5E+6YO9&4B('-E;&5C=#TB+B]#;VQU;6Y5<&1A
M=&5S+RHO*ELR72(O/@T*"0D)"3PO>'-L.F-A;&PM=&5M<&QA=&4^#0H)"0DI
M#0H)"3PO>'-L.FEF/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP
M;& %T92!M871C:#TB57!D87
1E+U1A<F=E="(^#0H)"3QX<VPZ87!P;'DM=&5M
M<&QA=&5S('-E;&5C=#TB+B]486)L92(O/@T*"0E3150@/'AS;#IA<'!L>2UT
M96UP;&%T97,@<V5L96-T/2(N+T-O;'5M;E5P9&%T97,B+SX-"@D\+WAS;#IT
M96UP;&%T93X-"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](D1E;&5T92]487)G
M970B/@T*"0D\>'-L.F%P<&QY+71E;7!L871E<R!S96QE8W0](BXO5&%B;&4B
M+SX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@]
M(DEN<V5R=" ]487)G970O0V]L=6UN57
!D871E<R]!<W-I9VXO4U%,0V]L=6UN
M6S%=(CX-"@D)/"$M+2!4:&4@=&%B;&4@;F%M92!I<R!N;W0@<')I;G1E9"!F
M;W(@3$A3(&]F(&%S<VEG;FUE;G1S(&EN(&EN<V5R=" M+3X-"@D)/'AS;#IA
M<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+T-O;'5M;B(O/@T*"3PO>'-L.G1E
M;7!L871E/@T*#0H)/'AS;#IT96UP;& %T92!M871C:#TB0W)E87
1E+T-O;'5M
M;D1E9FEN:71I;VYS+U-13$-O;'5M;B(^#0H)"3QX<VPZ87!P;'DM=&5M<&QA
M=&5S('-E;& 5C=#TB+B]#;VQU;6XB+S
X-"@D)/'AS;#II9B!T97-T/2)C;W5N
M="@N+B\N+B]0:&%S92D@/2 P(CX-"@D)"3QX<VPZ87!P;'DM=&5M<&QA=&5S
M('-E;&5C=#TB+B]4>7!E(B\^#0H)"0D\>'-L.F%P<&QY+71E;7!L871E<R!S
M96QE8W0](BXO57-A9V4B+SX-"@D)/"]X<VPZ:68^#0H)/"]X<VPZ=&5M<&QA
M=&4^#0H-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)344Q#;VQU;6XB/@T*"0D\
M>'-L.G9A<FEA8FQE(&YA;64](G1A8FQE(CX-"@D)"3QX<VPZ:68@=&5S=#TB
M;F%M92@N+BDA/2=#;W5N="<@;W(@;F%M92@N+T-O;'5M;B\J6S%=*2 A/2 G
M07-T97)I<VLG(CX\>'-L.F%P<&QY+71E;7!L871E<R!S96QE8W0](BXO5&%B
M;&4B+SX\+WAS;#II9CX-"@D)/"]X<VPZ=F%R:6%B;&4^#0H)"3QX<VPZ=F%R
M:6%B;& 4@;F%M93TB8V]L=6UN(C
X-"@D)"3QX<VPZ87!P;'DM=&5M<&QA=&5S
M('-E;& 5C=#TB+B]#;VQU;6XB+S
X-"@D)/"]X<VPZ=F%R:6%B;&4^#0H)"3QX
M<VPZ8VAO;W-E/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T86)L92 ]("<G(CX-
M"@D)"0D\>'-L.G9A;'5E+6]F('-E;&5C=#TB)&-O;'5M;B(O/@T*"0D)/"]X
M<VPZ=VAE;CX-"@D)"3QX<VPZ;W1H97)W:7-E/@T*"0D)"3QX<VPZ=F%L=64M
M;V8@<V5L96-T/ 2)C;VYC870H)'1A8FQE+
"<N)RP@)&-O;'5M;BDB+SX-"@D)
M"3PO>'-L.F]T:&5R=VES93X-"@D)/"]X<VPZ8VAO;W-E/@T*"3PO>'-L.G1E
M;7!L871E/@T*#0H)/'AS;#IT96UP;& %T92!M871C:#TB0W)E87
1E+T1A=&%B
M87-E?$1R;W O1&%T86)A<V4B/@T*"0E$051!0D%312 \>'-L.F%P<&QY+71E
M;7!L871E< R!S96QE8W0](BXO3F%M9
2(O/@T*"3PO>'-L.G1E;7!L871E/@T*
M#0H)/'AS;#IT96UP;&%T92!M871C:#TB5&%B;&4B/@T*"0D\>'-L.F-A;&PM
M=&5M<&QA=&4@;F%M93TB8G5I;&0M<75O=&5D+7-C:&5M82UO8FIE8W0B+SX-
M"@D\+WAS;#IT96UP;&%T93X-"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](D-R
M96%T92]486)L97Q$<F]P+U1A8FQE(CX-"@D)5$%"3$4@/'AS;#IC86QL+71E
M;7!L871E(& YA;64](F)U:6QD+7%U;W
1E9"US8VAE;6$M;V)J96-T(B\^#0H)
M/"]X<VPZ=&5M<&QA=&4^#0H-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)6:65W
M(CX-"@D)/ 'AS;#IC86QL+71E;7!L8
71E(& YA;64](F)U:6QD+7%U;W
1E9"US
M8VAE;6$M;V)J96-T(B\^#0H)/"]X<VPZ=&5M<&QA=&4^#0H-"@D\>'-L.G1E
M;7!L871E(&UA=&-H/2)$<F]P+U9I97<B/@T*"0E62457(#QX<VPZ8V%L;"UT
M96UP;&%T92!N86UE/2)B=6EL9"UQ=6]T960M<V-H96UA+6]B:F5C="(O/@T*
M"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB26YD
M97@B/@T*"0D\>'-L.F%P<&QY+71E;7!L871E< R!S96QE8W0](BXO3F%M9
2(O
M/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB
M1')O<"]);F1E>"(^#0H)"4E.1$58(#QX<VPZ87!P;'DM=&5M<&QA=&5S('-E
M;&5C=#TB+B].86UE(B\^#0H)/"]X<VPZ=&5M<&QA=&4^#0H-"@D\>'-L.G1E
M;7!L871E(&UA=&-H/2)#;VQU;6XB/@T*"0D\>'-L.F%P<&QY+71E;7!L871E
M<R!S96QE8W0](BXO07-T97)I<VLB+SX-"@D)/'AS;#IA<'!L>2UT96UP;&%T
M97,@<V5L96-T/2(N+TYA;64B+SX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3QX
M<VPZ=&5M<&QA=& 4@;6%T8V@](E1A8FQE+T
YA;65\5FEE=R].86UE?$EN9&5X
M+TYA;65\0V]L=6UN+TY
A;65\1&%T86)A<V4O3F%M97Q38VAE;6$B/@T*"0D\
M>'-L.F-A;&PM=&5M<&QA=&4@;F%M93TB<75O=&4M:61E;G1I9FEE<B(O/@T*
M"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB57-A
M9V4B/@T*"0D\>'-L.G9A<FEA8FQE(&YA;64](G5S86=E(CX\>'-L.G9A;'5E
M+6]F('-E;&5C=#TB+B(O/CPO>'-L.G9A<FEA8FQE/@T*"0D\>'-L.F-H;V]S
M93X-"@D)"3QX<VPZ=VAE;B!T97-T/2(D=7-A9V4@/2 G2V5Y)R(^(" @('!R
M:6UA<GD@:V5Y(" @/"]X<VPZ=VAE;CX-"@D)/"]X<VPZ8VAO;W-E/@T*"3PO
M>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB3W!A<75E
M17AP<F5S<VEO;B(^#0H)"3QX<VPZ:68@=&5S=#TB;F%M92@N+BD@/2 G07,G
M(&%N9"!N86UE*"XN+RXN*2 ]("=3;W5R8V5S)R(^#0H)"0DH#0H)"3PO>'-L
M.FEF/@T*"0D\>'-L.G9A;'5E+6]F('-E;&5C=#TB+B(O/@T*"0D\>'-L.FEF
M('1E< W0](FYA;64H+BXI(#T@)
T%S)R!A;F0@;F%M92@N+
B\N+BD@/2 G4V]U
M<F-E<R<B/@T*"0D)*0T*"0D\+WAS;#II9CX-"@D\+WAS;#IT96UP;&%T93X-
M"@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](D]R9&5R17AP<F5S<VEO;B(^#0H)
M"3QX<VPZ87!P;'DM=&5M<&QA=&5S('-E;& 5C=#TB+B\J6S%=(B\^#0
H)"3QX
M<VPZ87!P;'DM=&5M<&QA=&5S('-E;&5C=#TB+B]!<V,B+SX-"@D)/'AS;#IA
M<'!L>2UT96UP;&%T97,@<V5L96-T/2(N+T1E<V,B+SX-"@D\+WAS;#IT96UP
M;&%T93X-"@T*"3QX<VPZ=&5M<&QA=& 4@;6%T8V@](D%S8R(^#0
H)"4%30PT*
M"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T92!M871C:#TB1&5S
M8R(^#0H)"41%4T,-"@D\+WAS;#IT96UP;&%T93X-"@T*#0H)/"$M+2!0<FEN
M=" !V86QU97,Z(#\@9F]R('
!A<F%M971R:6,@<75E<FEE<R!A;F0@8V]N=F5R
M="!E>'!R97-S:6]N<PT*"2 @(" @9F]R(&YO;BUP87)A;65T<FEC('%U97)I
M97,@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" M+3X-
M"@D\>'-L.G1E;7!L871E(&UA=&-H/2)087)A;65T97(B/@T*"0D\>'-L.F-H
M;V]S93X-"@D)"3QX<VPZ=VAE;B!T97-T/2(D57-E4&%R86US(#T@)WEE<R<@
M;W(@)%5S95!A<F%M<R ]("=N;W-U8G-E;"<B/@T*"0D)"3QX<VPZ8VAO;W-E
M/@T*"0D)"0D\>'-L.G=H96X@=&5S=#TB+B] 4&%R86U.86UE(CX-"@D)"0D)
M"4 \>'-L.G9A;'5E+6]F('-E;&5C=#TB+B] 4&%R86U.86UE(B\^#0H)"0D)
M"3PO>'-L.G=H96X^#0H)"0D)"3QX<VPZ;W1H97)W:7-E/@T*"0D)"0D)/PT*
M"0D)"0D\+WAS;#IO=&AE<G=I<V4^#0H)"0D)/"]X<VPZ8VAO;W-E/@T*"0D)
M/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ;W1H97)W:7-E/@T*"0D)"3QX<VPZ8V%L
M;"UT96UP;&%T92!N86UE/2)P<FEN="UN;VXM<& %R86UE=')I8RUP87)A;6
5T
M97(M<F5F(CX-"@D)"0D)/'AS;#IW:71H+7!A<F%M(&YA;64](G!A<F%M971E
M<BUR969E<F5N8V4B('-E;&5C=#TB+B(O/@T*"0D)"3PO>'-L.F-A;&PM=&5M
M<&QA=&4^#0H)"0D\+WAS;#IO=&AE<G=I<V4^#0H)"3PO>'-L.F-H;V]S93X-
M"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@1&%T95!A<G0@(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" M+3X-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)$871E4&%R="(^#0H)"41!
M5$5005)4*" \>'-L.F%P<&QY+71E;7!L871E< R!S96QE8W0](BXO*ELQ7
2(O
M/B L(#QX<VPZ87!P;'DM=&5M<&QA=&5S('-E;&5C=#TB+B\J6S)=(B\^("D-
M"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@1&%T95!A<G13<&5C(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" M+3X-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)$871E4&%R=%-P96,B/@T*
M"0D\>'-L.G9A<FEA8FQE(&YA;64](F1P<RUV86PB/CQX<VPZ=F%L=64M;V8@
M<V5L96-T/2)N;W)M86QI>F4M<W!A8V4H+B]T97AT*"DI(B\^/"]X<VPZ=F%R
M:6%B;&4^#0H)"3QX<VPZ8VAO;W-E/@T*"0D)/'AS;#IW:&5N('1E<W0](B1D
M< ',M=F%L(#T@)UEE87(G(
CX@(" @(" @('EE87(@(" @(" @(#PO>'-L.G=H
M96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1P<RUV86P@/2 G475A<G1E<B<B
M/B @(" @<75A<G1E<B @(" @/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T
M97-T/2(D9'!S+79A;" ]("=-;VYT:"<B/B @(" @("!M;VYT:" @(" @(" \
M+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1D<',M=F%L(#T@)T1A
M>4]F665A<B<B/B @(&1A>6]F>65A<B @(#PO>'-L.G=H96X^#0H)"0D\>'-L
M.G=H96X@=&5S=#TB)&1P<RUV86P@/2 G1&%Y)R(^(" @(" @(" @9&%Y(" @
M(" @(" @/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9'!S+79A
M;" ]("=7965K)R(^(" @(" @("!W965K(" @(" @(" \+WAS;#IW:&5N/@T*
M"0D)/'AS;#IW:&5N('1E<W0](B1D<',M=F%L(#T@)T1A>4]F5V5E:R<B/B @
M('=E96MD87D@(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB
M)&1P<RUV86P@/2 G2&]U<B<B/B @(" @(" @:&]U<B @(" @(" @/"]X<VPZ
M=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9'!S+79A;" ]("=-:6YU=&4G
M(CX@(" @("!M:6YU=&4@(" @(" \+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N
M('1E<W0](B1D<',M=F%L(#T@)U-E8V]N9"<B/B @(" @('-E8V]N9" @(" @
M(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1P<RUV86P@/2 G
M36EL;&ES96-O;F0G(CX@;6EL;&ES96-O;F0@/"]X<VPZ=VAE;CX-"@D)/"]X
M<VPZ8VAO;W-E/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/"$M+2!!<W1E<FES
M:R @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](D%S=&5R
M:7-K(CXJ/"]X<VPZ=&5M<&QA=&4^#0H-"@D\(2TM($-O=6YT+TUI;B]-87@O
M4W5M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @+2T^#0H)/'AS;#IT96UP;&%T92!M871C:#TB36EN?$UA>'Q3=6TB
M/@T*"0D\>'-L.G9A<FEA8FQE(&YA;64](F9U;F-T:6]N(CX-"@D)"3QX<VPZ
M8VAO;W-E/@T*"0D)"3QX<VPZ=VAE;B!T97-T/2)N86UE*"D])TUI;B<B/B!-
M24X@/"]X<VPZ=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S=#TB;F%M92@I/2=-
M87@G(CX@34%8(#PO>'-L.G=H96X^#0H)"0D)/'AS;#IW:&5N('1E<W0](FYA
M;64H*3TG4W5M)R(^(%-532 \+WAS;#IW:&5N/@T*"0D)/"]X<VPZ8VAO;W-E
M/@T*" 0D\+WAS;#IV87)I86)L9
3X-"@D)/ 'AS;#IV86QU92UO9B!S9
6QE8W0]
M(B1F=6YC=&EO;B(O/B@@/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N
M+RI;,5TB+SX@*0T*"3PO>'-L.G1E;7!L871E/@T*#0H)/'AS;#IT96UP;&%T
M92!M871C:#TB0V]U;G0
B/@T*"0E#3U5.5" H(#QX<VPZ87!P;'DM=&5M<&QA
M=&5S('-E;& 5C=#TB+B\J6S%=(B\^(#
QX<VPZ87!P;'DM=&5M<&QA=&5S('-E
M;&5C=#TB+B\J6S)=(B\^("D-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@
M0FEN87)Y(&5X<')E<W-I;VYS(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" M+3X-" @D\(2TM($5Q=6%L+TYO=
$5Q=6%L
M+T=R96%T97(O1W)E871
E<D]R17%U86PO3&5S<R],97-S3W)%<75A;"]);B]!
M;F0O3W(O4&QU<R]-:6YU<R]$:79I9&4O375L=&EP;'D-"@D@(" @(&5X<')E
M<W-I;VYS(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @+2T^#0H)/'AS;#IT96UP;&%T92!M871C:#TB17%U
M86Q\3F]T17%U86Q\1W)
E871E<GQ'<F5A=&5R3W)%<75A;'Q,97-S?$QE<W-/
M<D5Q=6%L?$EN?$%N9'Q/<GQ0;'5S?$UI;G5S?$1I=FED97Q-=6QT:7!L>2(^
M#0H)"3QX<VPZ=F%R:6%B;&4@;F%M93TB;W!E<F%T;W(B/@T*"0D)/'AS;#IC
M:&]O<V4^#0H)"0D)/'AS;#IW:&5N('1E< W0](FYA;64H*3TG17%U8
6PG(CX)
M"0D]"0D\+WAS;#IW:&5N/@T*"0D)"3QX<VPZ=VAE;B!T97-T/2)N86UE*"D]
M)TYO=$5Q=6%L)R(^"0D))FQT.R9G=#L)/"]X<VPZ=VAE;CX-"@D)"0D\>'-L
M.G=H96X@=&5S=#TB;F%M92@I/2='<F5A=&5R)R(^"0D))F=T.PD)/"]X<VPZ
M=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S=#TB;F%M92@I/2='<F5A=&5R3W)%
M<75A;"<B/@DF9W0[/0D)/"]X<VPZ=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S
M=#TB;F%M92@I/2=,97-S)R(^"0D)"29L=#L)/"]X<VPZ=VAE;CX-"@D)"0D\
M>'-L.G=H96X@=&5S=#TB;F%M92@I/2=,97-S3W)%<75A;"<B/@D))FQT.ST)
M/"]X<VPZ=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S=#TB;F%M92@I/2=);B<B
M/@D)"0E)3@D)/"]X<VPZ=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S=#TB;F%M
M92@I/2=!;F0G(CX)"0D)04Y$"0D\+WAS;#IW:&5N/@T*"0D)"3QX<VPZ=VAE
M;B!T97-T/2)N86UE*"D])T]R)R(^"0D)"4]2"0D\+WAS;#IW:&5N/@T*"0D)
M"3QX<VPZ=VAE;B!T97-T/2)N86UE*"D])U!L=7,G(CX)"0D)*PD)/"]X<VPZ
M=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S=#TB;F%M92@I/2=-:6YU<R<B/@D)
M"2T)"3PO>'-L.G=H96X^#0H)"0D)/'AS;#IW:&5N('1E<W0](FYA;64H*3TG
M1&EV:61E)R(^"0D)+PD)/"]X<VPZ=VAE;CX-"@D)"0D\>'-L.G=H96X@=&5S
M=#TB;F%M92@I/2=-=6QT:7!L>2<B/@D)"2H)"3PO>'-L.G=H96X^#0H)"0D\
M+WAS;#IC:&]O<V4^#0H)"3PO>'-L.G9A<FEA8FQE/@T*"0DH#0H)"0D\>'-L
M.F-A;&PM=&5M<&QA=&4@;F%M93TB<')I;G0M8VAI;&1R96XM;&ES="(^#0H)
M"0D)/'AS;#IW:71H+7!A<F%M(&YA;64](F]P97)A=&]R(B!S96QE8W0](B1O
M<&5R871O<B(O/@T*"0D)/"]X<VPZ8V%L;"UT96UP;&%T93X-"@D)*0T*"3PO
M>'-L.G1E;7!L871E/@T*#0H)/"$M+2!0;W-T9FEX('5N87)Y(&5X<')E<W-I
M;VYS(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("TM
M/@T*"3PA+2T@27-.=6QL#0H)(" @("!E>'!R97-S:6]N<R @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("TM
M/@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](DES3G5L;"(^#0H)"3QX<VPZ=F%R
M:6%B;&4@;F%M93TB;W!E<F%T;W(B/@T*"0D)/'AS;#IC:&]O<V4^#0H)"0D)
M/'AS;#IW:&5N('1E<W0](FYA;64H*3TG27-.=6QL)R(^"0D)25,@3E5,3 D)
M/"]X<VPZ=VAE;CX-"@D)"3PO>'-L.F-H;V]S93X-"@D)/"]X<VPZ=F%R:6%B
M;&4^#0H)"2@-"@D)"3QX<VPZ87!P;'DM=&5M<&QA=&5S('-E;&5C=#TB+B\J
M6S%=(B\^#0H)"0D\>'-L.G9A;'5E+6]F('-E;&5C=#TB)&]P97)A=&]R(B\^
M#0H)"2D-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@5'EP97,@(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&UA=&-H/2)4>7!E(CX-"@D)
M/ 'AS;#IV87)I86)L92!N8
6UE/2)T>7!E+79A;"(^/'AS;#IV86QU92UO9B!S
M96QE8W0](FYO<FUA;&EZ92US<&%C92@N+W1E> '0H*2DB+SX\+WAS;#IV8
7)I
M86)L93X-"@D)/'AS;#IC:&]O<V4^#0H)"0D\>'-L.G=H96X@=&5S=#TB)'1Y
M<&4M=F%L(#T@)T1"5%E015]"4U12)R(^(" @(&YV87)C:&%R(" @(" \+WAS
M;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E+79A;" ]("=$0E19
M4$5?5U-44B<B/B @("!N=F%R8VAA<B @(" @/"]X<VPZ=VAE;CX-"@D)"3QX
M<VPZ=VAE;B!T97-T/2(D='EP92UV86P@/2 G1$)465!%7U-44B<B/B @(" @
M=F%R8VAA<B @(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB
M)'1Y<&4M=F%L(#T@)T1"5%E015]"3T],)R(^(" @(&)I=" @(" @(" @(" \
M+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E+79A;" ]("=$
M0E194$5?23$G(CX@(" @("!T:6YY:6YT(" @(" @/"]X<VPZ=VAE;CX-"@D)
M"3QX<VPZ=VAE;B!T97-T/2(D='EP92UV86P@/2 G1$)465!%7TDR)R(^(" @
M(" @<VUA;&QI;G0@(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S
M=#TB)'1Y<&4M=F%L(#T@)T1"5%E015])-"<B/B @(" @(&EN=" @(" @(" @
M(" \+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E+79A;" ]
M("=$0E194$5?23@G(CX@(" @("!B:6=I;G0@(" @(" @/"]X<VPZ=VAE;CX-
M"@D)"3QX<VPZ=VAE;B!T97-T/2(D='EP92UV86P@/2 G1$)465!%7U5),2<B
M/B @(" @=&EN>6EN=" @(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@
M=&5S=#TB)'1Y<&4M=F%L(#T@)T1"5%E015]523(G(CX@(" @('-M86QL:6YT
M(" @(" \+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E+79A
M;" ]("=$0E194$5?54DT)R(^(" @("!I;G0@(" @(" @(" @/"]X<VPZ=VAE
M;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D='EP92UV86P@/2 G1$)465!%7U5)
M."<B/B @(" @8FEG:6YT(" @(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H
M96X@=&5S=#TB)'1Y<&4M=F%L(#T@)T1"5%E015]2-"<B/B @(" @(')E86P@
M(" @(" @(" \+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E
M+79A;" ]("=$0E194$5?4C@G(CX@(" @("!F;&]A=" @(" @(" @/"]X<VPZ
M=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D='EP92UV86P@/2 G1$)465!%
M7T1!5$4G(CX@(" @9&%T971I;64@(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L
M.G=H96X@=&5S=#TB)'1Y<&4M=F%L(#T@)T1"5%E015]$0E1)34535$%-4"<B
M/B @("!D871E=&EM92 @(" @/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T
M97-T/2(D='EP92UV86P@/2 G1$)465!%7T-9)R(^(" @(" @;6]N97D@(" @
M(" @(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)'1Y<&4M=F%L
M(#T@)T1" 5%E015]605))04Y4)R(^
('-Q;%]V87)I86YT(" \+WAS;#IW:&5N
M/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E+79A;" ]("=$0E194$5?1U5)
M1"<B/B!U;FEQ=65I9&5N=&EF97(@(#PO>'-L.G=H96X^#0H)"0D\>'-L.G=H
M96X@=&5S=#TB)'1Y<&4M=F%L(#T@)T1"5%E015]">71E07)R87DG(CX@=F%R
M8FEN87)Y(" \+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1T>7!E
M+79A;" ]("=$0E194$5?1$5#24U!3"<B/B!D96-I;6%L(" @(" @/"]X<VPZ
M=VAE;CX-"@D)/"]X<VPZ8VAO;W-E/@T*"0D\>'-L.F%P<&QY+71E;7!L871E
M< R!S96QE8W0](BXO4VEZ9
2(O/@T*"0D\>'-L.F%P<&QY+71E;7!L871E<R!S
M96QE8W0](BXO4')E8VE
S:6]N(B\^#0H)"3QX<VPZ87!P;'DM=&5M<&QA=&5S
M('-E;&5C=#TB+B]38V%L92(O/@D)#0H)/"]X<VPZ=&5M<&QA=&4^#0H-"@D\
M(2TM(%-I>F4@*&]P=&EO;F%L*2 @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @+2T^#0H)/'AS;#IT96UP;&%T92!M
M871C:#TB4VEZ92(^#0H
)*" \>'-L.G9A;'5E+6]F('-E;&5C=#TB+B]T97AT
M*"DB+SX@*0T*"3PO>'-L.G1E;7!L871E/@T*"0T*"3PA+2T@4')E8VES:6]N
M("AO<'1I;VYA;"D@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M<&QA=&4@;6%T8V@](E!R
M96-I<VEO;B(^#0H)*" \>'-L.G9A;'5E+6]F('-E;&5C=#TB+B]T97AT*"DB
M+SX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@4V-A;&4@*&]P=&EO;F%L
M*2 @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @+2T^#0H)/'AS;#IT96UP;&%T92!M871C:#TB4V-A;&4B/@T*"2P@
M/ 'AS;#IV86QU92UO9B!S9
6QE8W0](BXO=&5X="@I(B\^("D-"@D\+WAS;#IT
M96UP;&%T93X-"@D\(2TM($-A<W0@(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @+2T^#0H)/'AS
M;#IT96UP;&%T92!M871C:#TB0V%S="(^#0H)"4-!4U0H/'AS;#IA<'!L>2UT
M96UP;&%T97,@<V5L96-T/2(N+RI;,5TB+SX@05,@/'AS;#IA<'!L>2UT96UP
M;&%T97,@<V5L96-T/2(N+RI;,ETB+SXI#0H)/"]X<VPZ=&5M<&QA=&4^#0H)
M#0H)/"$M+2!">2!D969A=6QT(&1O;B=T(&1O(&%N>71H:6YG(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M<&QA
M=&4@;6%T8V@](BHB/@T*"3PO>'-L.G1E;7!L871E/@T*#0H)/"$M+2!0<FEN
M="!A('-C:&5M82!O8FIE8W0@(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M<&QA=&4@;F%M93TB
M8G5I;&0M<75O=&5D+7-C:&5M82UO8FIE8W0B/B -"@D)/'AS;#IP87)A;2!N
M86UE/2)S8VAE;6$M;V)J96-T+6YO9&4B('-E;&5C=#TB+B(O/@T*#0H)"3QX
M<VPZ=F%R:6%B;&4@;F%M93TB<V-H96UA(CX-"@D)"3QX<VPZ87!P;'DM=&5M
M<&QA=&5S('-E;&5C=#TB)'-C:& 5M82UO8FIE8W0M;F]D92
]38VAE;6$B+SX-
M"@D)/"]X<VPZ=F%R:6%B;&4^#0H)"3QX<VPZ=F%R:6%B;&4@;F%M93TB=&%B
M;&4B/@T*"0D)/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(D<V-H96UA
M+6]B:F5C="UN;V1E+TYA;64B+SX-"@D)/"]X<VPZ=F%R:6%B;&4^#0H)"3QX
M<VPZ8VAO;W-E/@T*"0D)/'AS;#IW:&5N('1E<W0](B1S8VAE;6$@/2 G)R(^
M#0H)"0D)/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1T86)L92(O/@T*"0D)/"]X
M<VPZ=VAE;CX-"@D)"3QX<VPZ;W1H97)W:7-E/@T*"0D)"3QX<VPZ=F%L=64M
M;V8@<V5L96-T/2)C;VYC870H)'-C:&5M82PG+B<L("1T86)L92DB+SX-"@D)
M"3PO>'-L.F]T:&5R=VES93X-"@D)/"]X<VPZ8VAO;W-E/@T*"3PO>'-L.G1E
M;7!L871E/@T*#0H)/"$M+2!#;VYV97)T(&%N(&ED96YT:69I97(@=&\@=&AE
M($],141"('%U;W1A=&EO;B!F;W)M(" @(" @(" @(" @(" @("TM/@T*"3QX
M<VPZ=&5M<&QA=&4@;F%M93TB<75O=&4M:61E;G1I9FEE<B(^( T*"0D\>'-L
M.G!A<F%M(& YA;64](FED96YT:69I97
(B('-E;&5C=#TB+B(O/@T*#0H)"3QX
M<VPZ=F%L=64M;V8@<V5L96-T/2(D261E;G1I9FEE<E-T87)T475O=&EN9T-H
M87)A8W1E<B(O/@T*"0D\>'-L.F-A;&PM=&5M<&QA=&4@;F%M93TB;F]R;6%L
M:7IE+65N=&ET>2UA=7@B/@T*"0D)/'AS;#IW:71H+7!A<F%M(&YA;64](F5N
M=&ET>2(@<V5L96-T/2(D:61E;G1I9FEE<B(O/@T*"0D)/'AS;#IW:71H+7!A
M<F%M(&YA;64](F5N9"UQ=6]T:6YG+6-H87(B('-E;&5C=#TB)$ED96YT:69I
M97)%;F11=6]T:6YG0VA
A<F%C=&5R(B\^#0H)"3PO>'-L.F-A;&PM=&5M<&QA
M=&4^#0H)"3QX<VPZ=F%L=64M;V8@<V5L96-T/2(D261E;G1I9FEE<D5N9%%U
M;W1I;F=#:&%R86-T97(B+SX-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@
M0V]N=F5R="!A('-T<FEN9R!T;R!T:&4@<W1R:6YG('%U;W1A=&EO;B!F;W)M
M(" @(" @(" @(" @(" @(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&YA;64]
M(G%U;W1E+7-T<FEN9R(^( T*"0D\>'-L.G!A<F%M(&YA;64](G-T<FEN9R(@
M<V5L96-T/2(N(B\^#0H-"@D)/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B13=')I
M;F=3=&%R=%%U;W1I;F=#:&%R86-T97(B+SX-"@D)/'AS;#IC86QL+71E;7!L
M871E(&YA;64](FYO<FUA;& EZ92UE;G1I='DM875X(C
X-"@D)"3QX<VPZ=VET
M:"UP87)A;2!N86UE/2)E;G1I='DB('-E;&5C=#TB)'-T<FEN9R(O/@T*"0D)
M/'AS;#IW:71H+7!A<F%M(&YA;64](F5N9"UQ=6]T:6YG+6-H87(B('-E;&5C
M=#TB)%-T< FEN9T5N9%%U;W1I;F=#:
&%R86-T97(B+SX-"@D)/"]X<VPZ8V%L
M;"UT96UP;&%T93X-"@D)/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B13=')I;F=%
M;F11=6]T:6YG0VAA<F%C=&5R(B\^#0H)/"]X<VPZ=&5M<&QA=&4^#0H-"@D\
M(2TM($-O;G9E< G0@86X@96YT:71Y('1O(
'1H92!Q=6]T871I;VX@9
F]R;2 H
M<F5C=7)S:79E+"!A=7@I("!B>0T*(" @(" @(" @9'5P;&EC871I;F<@=&AE
M(&5N9"!Q=6]T:6YG(&-H87)A8W1E<B @(" @(" @(" @(" @(" @(" @(" @
M(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&YA;64](FYO<FUA;&EZ92UE;G1I
M='DM875X(CX@#0H)"3QX<VPZ<& %R86T@;F%M93TB96YT:7
1Y(B\^#0H)"3QX
M<VPZ<& %R86T@;F%M93TB96YD+7
%U;W1I;F<M8VAA<B(O/@T*#0H)"3QX<VPZ
M8VAO;W-E/@T*"0D)/'AS;#IW:&5N('1E<W0](B1E;F0M<75O=&EN9RUC:&%R
M("$]("<G(&%N9"!C;VYT86EN<R@D96YT:71Y+" D96YD+7%U;W1I;F<M8VAA
M<BDB/@T*/"$M+0D)"0D\>'-L.G=H96X@=&5S=#TB8V]N=&%I;G,H)&5N=&ET
M>2P@)&5N9"UQ=6]T:6YG+6-H87(I(CXM+3X-"@D)"0D\>'-L.G9A;'5E+6]F
M('-E;&5C=#TB<W5B< W1R:6YG+6)E9F]R92@D9
6YT:71Y+" D96YD+7%U;W1I
M;F<M8VAA<BDB+SX-"@D)"0D\>'-L.G9A;'5E+6]F('-E;&5C=#TB)&5N9"UQ
M=6]T:6YG+6-H87(B+SX-"@D)"0D\>'-L.G9A;'5E+6]F('-E;&5C=#TB)&5N
M9"UQ=6]T:6YG+6-H87(B+SX-"@D)"0D\>'-L.F-A;&PM=&5M<&QA=&4@;F%M
M93TB;F]R;6%L:7IE+65
N=&ET>2UA=7@B/@T*"0D)"0D\>'-L.G=I=&@M<&%R
M86T@;F%M93TB96YT:71
Y(B!S96QE8W0](G-U8G-T<FEN9RUA9G1E<B@D96YT
M:71Y+" D96YD+7%U;W1I;F<M8VAA<BDB+SX-"@D)"0D)/'AS;#IW:71H+7!A
M<F%M(&YA;64](F5N9"UQ=6]T:6YG+6-H87(B('-E;&5C=#TB)&5N9"UQ=6]T
M:6YG+6-H87(B+SX-"@D)" 0D\+WAS;#IC86QL+71E;
7!L871E/@T*"0D)/"]X
M<VPZ=VAE;CX-"@D)"3QX<VPZ;W1H97)W:7-E/@T*"0D)"3QX<VPZ=F%L=64M
M;V8@<V5L96-T/2(D96YT:71Y(B\^#0H)"0D\+WAS;#IO=&AE<G=I<V4^#0H)
M"3PO>'-L.F-H;V]S93X-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@4')I
M;G0@=&AE(&-H:6QD<F5N(&QI<W0@(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&YA;64](G!R
M:6YT+6-H:6QD<F5N+6QI<W0B/@T*"0D\>'-L.G!A<F%M(&YA;64](F]P97)A
M=&]R(B!S96QE8W0](B<L)R(O/@T*"0D-"@D)/ 'AS;#IC86QL+71E;7!L8
71E
M(&YA;64](G!R:6YT+6QI<W0B/@T*"0D)/'AS;#IW:71H+7!A<F%M(&YA;64]
M(G9A;'5E+6YO9&4B('-E;&5C=#TB+B\J(B\^#0H)"0D\>'-L.G=I=&@M<&%R
M86T@;F%M93TB;W!E<F%T;W(B('-E;&5C=#TB)&]P97)A=&]R(B\^#0H)"3PO
M>'-L.F-A;&PM=&5M<&QA=&4^#0H)/"]X<VPZ=&5M<&QA=&4^#0H-"@D\(2TM
M(%!R:6YT(&$@;&ES=" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @+2T^#0H)/'AS;#IT96UP;&%T92!N86UE
M/2)P<FEN="UL:7-T(CX-"@D)/'AS;#IP87)A;2!N86UE/2)O<&5R871O<B(@
M<V5L96-T/2(G+"<B+SX-"@D)/'AS;#IP87)A;2!N86UE/2)V86QU92UN;V1E
M(B!S96QE8W0](BXB+SX
-"@T*"0D\>'-L.F9O<BUE86-H('-E;&5C=#TB)'9A
M;'5E+6YO9&4B/@T*"0D)/'AS;#IA<'!L>2UT96UP;&%T97,@<V5L96-T/2(N
M(B\^#0H)"0D\>'-L.FEF('1E<W0](G!O<VET:6]N*"DA/6QA<W0H*2(^#0H)
M"0D)/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1O<&5R871O<B(O/@T*"0D)/"]X
M<VPZ:68^#0H)"3PO>'-L.F9O<BUE86-H/@T*"3PO>'-L.G1E;7!L871E/@T*
M#0H)/"$M+2!'970@=&AE('9A;'5E(&]F(&$@<&%R86UE=&5R(')E9B!F;W(@
M=&AE('%U97)Y(" @(" @(" @(" @(" @(" @("TM/@T*"3QX<VPZ=&5M<&QA
M=&4@;F%M93TB<')I;G0M;F]N+7!A<F%M971R:6,M<&%R86UE=&5R+7)E9B(^
M#0H)"3QX<VPZ<&%R86T@;F%M93TB<&%R86UE=&5R+7)E9F5R96YC92(O/@T*
M#0H)"3QX<VPZ=F%R:6%B;&4@;F%M93TB<F5F97)E;F-E(CX\>'-L.G9A;'5E
M+6]F('-E;&5C=#TB)'!A<F%M971E<BUR969E<F5N8V4O0')E9B(O/CPO>'-L
M.G9A<FEA8FQE/@T*"0D\>'-L.F-A;&PM=&5M<&QA=&4@;F%M93TB<')I;G0M
M;F]N+7!A<F%M971R:6,M<&%R86UE=&5R(CX-"@D)"3QX<VPZ=VET:"UP87)A
M;2!N86UE/2)P87)A;65T97(B('-E;&5C=#TB+U-T871E;65N="]087)A;65T
M97)S+U!A<F%M971E<EM :60])')E9F5R96YC95TB
+SX-"@D)/"]X<VPZ8V%L
M;"UT96UP;&%T93X-"@D\+WAS;#IT96UP;&%T93X-"@T*"3PA+2T@1V5T('1H
M92!V86QU92!O9B!A('!
A<F%M971E< B!R968@9F]R('1H92!Q=
65R>2 @(" @
M(" @(" @(" @(" @(" M+3X-"@D\>'-L.G1E;7!L871E(&YA;64](G!R:6YT
M+6YO;BUP87)A;65T<FEC+7!A<F%M971E<B(^#0H)"3QX<VPZ<&%R86T@;F%M
M93TB<&%R86UE=&5R(B\^#0H-"@D)/ 'AS;#IV87)I86)L92!N8
6UE/2)D8BUT
M>7!E(CX\>'-L.G9A;'5E+6]F('-E;&5C=#TB)'!A<F%M971E<B] 1$)465!%
M(B\^/"]X<VPZ=F%R:6%B;&4^#0H)"3QX<VPZ=F%R:6%B;&4@;F%M93TB=F%L
M=64B/CQX<VPZ=F%L=64M;V8@<V5L96-T/2(D<&%R86UE=&5R+W1E>'0H*2(O
M/CPO>'-L.G9A<FEA8FQE/@T*"0D\>'-L.F-H;V]S93X-"@D)"3QX<VPZ=VAE
M;B!T97-T/2(D9&(M='EP92 ]("=$0E194$5?0E-44B<B/CQX<VPZ8V%L;"UT
M96UP;&%T92!N86UE/2)Q=6]T92US=')I;F<B/CQX<VPZ=VET:"UP87)A;2!N
M86UE/2)S=')I;F<B('-E;&5C=#TB)'9A;'5E(B\^/"]X<VPZ8V%L;"UT96UP
M;&%T93X\+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1D8BUT>7!E
M(#T@)T1"5%E015]74U12)R(^/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64](G%U
M;W1E+7-T<FEN9R(^/'AS;#IW:71H+7!A<F%M(&YA;64](G-T<FEN9R(@<V5L
M96-T/ 2(D=F%L=64B+SX\+WAS;
#IC86QL+71E;7!L871E/CPO>'-L.G=H96X^
M#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G1$)465!%7U-44B<B
M/CQX<VPZ8V%L;"UT96UP;&%T92!N86UE/2)Q=6]T92US=')I;F<B/CQX<VPZ
M=VET:"UP87)A;2!N86UE/2)S=')I;F<B('-E;&5C=#TB)'9A;'5E(B\^/"]X
M<VPZ8V%L;"UT96UP;&%T93X\+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E
M<W0](B1D8BUT>7!E(#T@)T1"5%E015]"3T],)R(^0T%35"@@/'AS;#IC86QL
M+71E;7!L871E(&YA;64](G%U;W1E+7-T<FEN9R(^/'AS;#IW:71H+7!A<F%M
M(&YA;64](G-T<FEN9R(@<V5L96-T/ 2(D=F%L=64B+SX\+WAS;
#IC86QL+71E
M;7!L871E/B!!4R!B:70I/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T
M/2(D9&(M='EP92 ]("=$0E194$5?23$G(CX\>'-L.G9A;'5E+6]F('-E;&5C
M=#TB)'9A;'5E(B\^/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D
M9&(M='EP92 ]("=$0E194$5?23(G(CX\>'-L.G9A;'5E+6]F('-E;&5C=#TB
M)'9A;'5E(B\^/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9&(M
M='EP92 ]("=$0E194$5?230G(CX\>'-L.G9A;'5E+6]F('-E;&5C=#TB)'9A
M;'5E(B\^/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9&(M='EP
M92 ]("=$0E194$5?23@G(CX\>'-L.G9A;'5E+6]F('-E;&5C=#TB)'9A;'5E
M(B\^/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9&(M='EP92 ]
M("=$0E194$5?54DQ)R(^/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1V86QU92(O
M/CPO>'-L.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G
M1$)465!%7U5),B<B/CQX<VPZ=F%L=64M;V8@<V5L96-T/2(D=F%L=64B+SX\
M+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1D8BUT>7!E(#T@)T1"
M5%E015]5230G(CX\>'-L.G9A;'5E+6]F('-E;&5C=#TB)'9A;'5E(B\^/"]X
M<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9&(M='EP92 ]("=$0E19
M4$5?54DX)R(^/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1V86QU92(O/CPO>'-L
M.G=H96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G1$)465!%
M7U(T)R(^/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1V86QU92(O/CPO>'-L.G=H
M96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G1$)465!%7U(X
M)R(^/ 'AS;#IV86QU92UO9B!S9
6QE8W0](B1V86QU92(O/CPO>'-L.G=H96X^
M#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G1$)465!%7T1!5$4G
M(CY#05-4*" \>'-L.F-A;&PM=&5M<&QA=&4@;F%M93TB<75O=&4M<W1R:6YG
M(CX\>'-L.G=I=&@M<&%R86T@;F%M93TB< W1R:6YG(B!S96QE8W0](
B1V86QU
M92(O/CPO>'-L.F-A;&PM=&5M<&QA=&4^($%3(&1A=&5T:6UE*3PO>'-L.G=H
M96X^#0H)"0D\>'-L.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G1$)465!%7T1"
M5$E-15-404U0)R(^0T%35"@@/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64](G%U
M;W1E+7-T<FEN9R(^/'AS;#IW:71H+7!A<F%M(&YA;64](G-T<FEN9R(@<V5L
M96-T/ 2(D=F%L=64B+SX\+WAS;
#IC86QL+71E;7!L871E/B!!4R!D871E=&EM
M92D\+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0](B1D8BUT>7!E(#T@
M)T1"5%E015]#62<B/D-!4U0H(#QX<VPZ8V%L;"UT96UP;&%T92!N86UE/2)Q
M=6]T92US=')I;F<B/CQX<VPZ=VET:"UP87)A;2!N86UE/2)S=')I;F<B('-E
M;&5C=#TB)'9A;'5E(B\^/"]X<VPZ8V%L;"UT96UP;&%T93X@05,@;6]N97DI
M/"]X<VPZ=VAE;CX-"@D)"3QX<VPZ=VAE;B!T97-T/2(D9&(M='EP92 ]("=$
M0E194$5?5D%224%.5"<B/CQX<VPZ8V%L;"UT96UP;&%T92!N86UE/2)Q=6]T
M92US=')I;F<B/CQX<VPZ=VET:"UP87)A;2!N86UE/2)S=')I;F<B('-E;&5C
M=#TB)'9A;'5E(B\^/"]X<VPZ8V%L;"UT96UP;&%T93X\+WAS;#IW:&5N/@T*
M(" @(" @(" @(" @/'AS;#IW:&5N('1E<W0](B1D8BUT>7!E(#T@)T1"5%E0
M15]'54E$)R(^/ 'AS;#IC86QL+71E;7!L8
71E(&YA;64](G%U;W1E+7-T<FEN
M9R(^/'AS;#IW:71H+7!A<F%M(&YA;64](G-T<FEN9R(@<V5L96-T/2(D=F%L
M=64B+SX\+WAS;#IC86Q
L+71E;7!L871E/CPO>'-L.G=H96X^#0H)"0D\>'-L
M.G=H96X@=&5S=#TB)&1B+71Y<&4@/2 G1$)465!%7T)Y=&5!<G)A>2<B/CQX
M<VPZ8V%L;"UT96UP;&%T92!N86UE/2)Q=6]T92US=')I;F<B/CQX<VPZ=VET
M:"UP87)A;2!N86UE/2)S=')I;F<B('-E;&5C=#TB)'9A;'5E(B\^/"]X<VPZ
M8V%L;"UT96UP;&%T93X\+WAS;#IW:&5N/@T*"0D)/'AS;#IW:&5N('1E<W0]
M(B1D8BUT>7!E(#T@)T1"5%E015]$14-)34%,)R(^/'AS;#IV86QU92UO9B!S
M96QE8W0](B1V86QU92(
O/CPO>'-L.G=H96X^#0H)"3PO>'-L.F-H;V]S93X-
D"@D\+WAS;#IT96UP;&%T93X-"CPO>'-L.G-T>6QE<VAE970^
`
end
| |
| Steve G 2005-11-24, 3:23 am |
| Akshai,
Thanks for your reply. We'd like to try this Sybase cartridge out, but
cannot find it. I can't see any attached file. How can I access it ?
"Akshai Mirchandani [MS]" wrote:
> Sybase is not a supported database for AS 2005. However, another Sybase
> customer built a cartridge and I've attached it here -- it may or may not
> work for you and will not be supported.
>
> You can put the attached .xsl file in the <install folder>\cartridges folder
> and re-start the server.
>
> Thanks,
> Akshai
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
> Please do not send email directly to this alias. This alias is for newsgroup
> purposes only.
>
> "Steve G" <Steve G@discussions.microsoft.com> wrote in message
> news:D4594E9A-09A7-4BA7-855F- 2E5072AC1D9D@microso
ft.com...
>
>
>
| |
| Akshai Mirchandani [MS] 2005-11-29, 8:24 pm |
| I've pasted it inline below.
Thanks,
Akshai
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0"
xmlns:mssqlcrt="urn:sql-microsoft-com:sqlcrt"
xmlns:mssqldbg="urn:sql-microsoft-com:sqldbg">
<xsl:output method="xml" indent="yes"/>
<!-- ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!!
This is a generated file. Do not modify this file directly!
-->
<!-- Sybase pluggable cartridge -->
<!-- Area of STANDARD parametrizations: these are externally passed -->
<xsl:param name="in_CanUseParams">yes</xsl:param>
<xsl:param name=" in_IdentStartQuoting
Character"></xsl:param>
<xsl:param name=" in_IdentEndQuotingCh
aracter"></xsl:param>
<xsl:param name=" in_StringStartQuotin
gCharacter">N'</xsl:param>
<xsl:param name=" in_StringEndQuotingC
haracter">'</xsl:param>
<!-- Area of CORE parametrizations: These are externally checked -->
<mssqlcrt:provider type="prefix">Adaptive Server
Anywhere</mssqlcrt:provider>
< mssqlcrt:capabilitie
s>
<mssqlcrt:supports-datepart-year/>
<mssqlcrt:supports-datepart-quarter/>
<mssqlcrt:supports-datepart-month/>
<mssqlcrt:supports-datepart-dayofyear/>
<mssqlcrt:supports-datepart-day/>
<mssqlcrt:supports-datepart-week/>
<mssqlcrt:supports-datepart-dayofweek/>
<mssqlcrt:supports-datepart-hour/>
<mssqlcrt:supports-datepart-minute/>
<mssqlcrt:supports-datepart-second/>
<mssqlcrt:supports-datepart-millisecond/>
<mssqlcrt:supports-multiple-distinct-count/>
<mssqlcrt:supports-update/>
<mssqlcrt:supports-insert/>
<mssqlcrt:supports-subselect/>
<mssqlcrt:supports-table-alias/>
<mssqlcrt:supports-column-alias/>
<mssqlcrt:supports-cast/>
<mssqlcrt:supports-remote-query/>
<mssqlcrt:supports-top-clause/>
<mssqlcrt:supports-union/>
<mssqlcrt:supports-union-all/>
<mssqlcrt:supports-fast-writeback> TABLOCK,FIRE_TRIGGER
S</mssqlcrt:supports-fast-writeback>
<!--
This cartridge is used as the default cartridge for unknown
providers
So even though SQL supports larger aliases (at least 128), we'll
use a smaller
alias for the other providers
-->
<mssqlcrt:limit-table-identifier-length>32</mssqlcrt:limit-table-identifier-length>
<mssqlcrt:limit-column-identifier-length>32</mssqlcrt:limit-column-identifier-length>
<!-- Map from MSDAInitialize connection string to SQLOLEDB connection
string -->
<mssqlcrt:remote-connection-string-mappings>
<mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:datasource-property>Provider</mssqlcrt:datasource-property>
<mssqlcrt:remote-property></mssqlcrt:remote-property>
</mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:datasource-property>Data Source</mssqlcrt:datasource-property>
<mssqlcrt:remote-property>Server</mssqlcrt:remote-property>
</mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:datasource-property>Initial
Catalog</mssqlcrt:datasource-property>
<mssqlcrt:remote-property>Database</mssqlcrt:remote-property>
</mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:datasource-property>User ID</mssqlcrt:datasource-property>
<mssqlcrt:remote-property>UID</mssqlcrt:remote-property>
</mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:datasource-property>Password</mssqlcrt:datasource-property>
<mssqlcrt:remote-property>PWD</mssqlcrt:remote-property>
</mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:remote-connection-string-mapping>
<mssqlcrt:datasource-property>Integrated
Security=SSPI</mssqlcrt:datasource-property>
<mssqlcrt:remote-property> Trusted_Connection=y
es</mssqlcrt:remote-property>
</mssqlcrt:remote-connection-string-mapping>
</mssqlcrt:remote-connection-string-mappings>
</ mssqlcrt:capabilitie
s>
<mssqlcrt:schema-classes>
<mssqlcrt:schema-class>
<mssqlcrt:managed-provider>System.Data.OleDb</mssqlcrt:managed-provider>
<mssqlcrt:type>Microsoft.DataWarehouse.Design.OleDbSchema,
Microsoft.DataWarehouse</mssqlcrt:type>
<mssqlcrt:query-designer>
<mssqlcrt:type>Microsoft.DataWarehouse.Controls.OleDbQueryDesigner,
Microsoft.DataWarehouse</mssqlcrt:type>
</mssqlcrt:query-designer>
</mssqlcrt:schema-class>
<mssqlcrt:schema-class>
<mssqlcrt:managed-provider>System.Data.Odbc</mssqlcrt:managed-provider>
<mssqlcrt:type>Microsoft.DataWarehouse.Design.OdbcSchema,
Microsoft.DataWarehouse</mssqlcrt:type>
</mssqlcrt:schema-class>
</mssqlcrt:schema-classes>
<!-- Area of internal parametrizations -->
<!-- overrideOfUseParams:
yes = use always parametric queries
no = never use parametric queries
nosubsel = use as yes, but not on subselects
auto = use the value of in_CanUseParams to determine -->
<xsl:variable name="overrideOfUseParams">auto</xsl:variable>
<!-- shouldProduceDebug:
yes = produce debug information
no = do not produce debug information -->
<xsl:variable name="shouldProduceDebug">yes</xsl:variable>
<!-- Area of global variables initializations -->
<xsl:variable name="UseParams">
<xsl:choose>
<xsl:when test="normalize- space($overrideOfUse
Params) = 'yes' or
(normalize- space($overrideOfUse
Params) = 'auto' and
normalize- space($in_CanUsePara
ms)='yes')">yes</xsl:when>
<xsl:when test="normalize- space($overrideOfUse
Params) =
'nosubsel'">nosubsel</xsl:when>
<xsl:otherwise>no</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="ProduceDebug" select="$shouldProduceDebug"/>
<xsl:variable name=" IdentifierStartQuoti
ngCharacter"
select="normalize- space($in_IdentStart
QuotingCharacter)"/>
<xsl:variable name=" IdentifierEndQuoting
Character"
select="normalize- space($in_IdentEndQu
otingCharacter)"/>
<xsl:variable name=" StringStartQuotingCh
aracter"
select="normalize- space($in_StringStar
tQuotingCharacter)"/>
<xsl:variable name=" StringEndQuotingChar
acter"
select="normalize- space($in_StringEndQ
uotingCharacter)"/>
<!-- Generated statement packaging -->
<xsl:template match="/">
<xsl:element name="Statement">
<!-- Generate query -->
<xsl:element name="Text">
<xsl:apply-templates select="./Statement/*[1]"/>
</xsl:element>
<!-- Generate parameters -->
<xsl:if test="count(./Statement/Parameters/Parameter)!=0 and
((normalize- space($UseParams)='y
es') or
(normalize- space($UseParams)='n
osubsel'))">
<xsl:element name="Parameters">
<xsl:for-each select="./Statement/*[1]//Parameter">
<xsl:element name="Parameter">
<xsl:attribute name="ref">
<xsl:value-of select="./@ref"/>
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:if>
<!-- Generate debug info -->
<xsl:if test="$ProduceDebug='yes'">
<xsl:element name="mssqldbg:DebugInfo">
<xsl:element name=" mssqldbg:GeneratePar
ametricInfo">
<xsl:attribute name="mssqldbg:Value">
<xsl:value-of select="$UseParams"/>
</xsl:attribute>
<xsl:element name="mssqldbg:External">
<xsl:value-of select="$in_CanUseParams"/>
</xsl:element>
<xsl:element name="mssqldbg:Internal">
<xsl:value-of select=" $overrideOfUseParams
"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:element>
</xsl:template>
<!-- Union statement -->
<xsl:template match="Union">
<xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
(
</xsl:if>
<xsl:call-template name="print-children-list">
<xsl:with-param name="operator" select="' UNION '"/>
</xsl:call-template>
<xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
)
</xsl:if>
</xsl:template>
<!-- Union All
-->
<xsl:template match="UnionAll">
<xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
(
</xsl:if>
<xsl:call-template name="print-children-list">
<xsl:with-param name="operator" select="' UNION ALL '"/>
</xsl:call-template>
<xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
)
</xsl:if>
</xsl:template>
<!-- Top clause -->
<xsl:template match="Top">
TOP <xsl:value-of select="."/><xsl:text> </xsl:text>
</xsl:template>
<!-- Select statement -->
<xsl:template match="Select">
<xsl:choose>
<xsl:when test="count(./ColumnExpressions/IsValidForIndexing) != 0">
SELECT OBJECTPROPERTY( object_id('<xsl:apply-templates
select="./Sources/View"/>'), 'isindexable' )
</xsl:when>
<xsl:otherwise>
<xsl:if test="name(..) != 'Statement' and name(..) != 'Insert' and
name(..) != 'Union' and name(..) != 'UnionAll'">
(
</xsl:if>
SELECT <xsl:apply-templates select="./Top"/>
<xsl:apply-templates select="./Distinct"/>
<xsl:apply-templates select="./ColumnExpressions"/>
<xsl:if test="count(../Phase) != 0">, COUNT(*) AS
[COUNT_7673aff6-2445-4ef6-a4c9-7bf3d93bd42a] </xsl:if>
<xsl:apply-templates select="./Sources"/>
<xsl:apply-templates select="./Where"/>
<xsl:apply-templates select="./GroupBy"/>
<xsl:apply-templates select="./Having"/>
<xsl:apply-templates select="./OrderBy"/>
<xsl:if test="name(..) != 'Statement' and name(..) != 'Insert' and
name(..) != 'Union' and name(..) != 'UnionAll'">
)
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Update statement -->
<xsl:template match="Update">
UPDATE <xsl:apply-templates select="./Target"/>
<xsl:apply-templates select="./Where"/>
</xsl:template>
<!-- Insert statement -->
<xsl:template match="Insert">
INSERT INTO <xsl:apply-templates select="./Target"/>
<xsl:apply-templates select="./Select"/>
</xsl:template>
<!-- Delete statement -->
<xsl:template match="Delete">
DELETE FROM <xsl:apply-templates select="./Target"/>
<xsl:apply-templates select="./Where"/>
</xsl:template>
<!-- Drop statement -->
<xsl:template match="Drop">
DROP <xsl:apply-templates select="./*"/>
</xsl:template>
<!-- Create statement -->
<xsl:template match="Create">
CREATE
<xsl:variable name="phase"><xsl:value-of select="./Phase"/></xsl:variable>
<xsl:choose>
<xsl:when test="number($phase)=1">
VIEW <xsl:apply-templates select="./View"/> ( <xsl:apply-templates
select="./*[4]"/>, [COUNT_7673aff6-2445-4ef6-a4c9-7bf3d93bd42a] ) WITH
SCHEMABINDING AS <xsl:apply-templates select="./*[5]"/>
</xsl:when>
<xsl:when test="number($phase)=2">
UNIQUE CLUSTERED INDEX <xsl:apply-templates select="./Index"/> ON
<xsl:apply-templates select="./View"/> ( <xsl:apply-templates
select="./*[4]"/> )
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="./*[1]"/>
<xsl:choose>
<xsl:when test="name(./*[1]) = 'Table'"> ( <xsl:apply-templates
select="./*[2]"/> )</xsl:when>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Remote query (OPENROWSET) -->
<xsl:template match="RemoteQuery">
OPENROWSET
(
<xsl:call-template name="quote-string"><xsl:with-param name="string"
select="./Provider"/></xsl:call-template>,
<xsl:choose>
<xsl:when test="./DataSource">
<xsl:call-template name="quote-string"><xsl:with-param name="string"
select="./DataSource"/></xsl:call-template>;<xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="./UserName"/></xsl:call-template>;<xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="./Password"/></xsl:call-template>,
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="quote-string"><xsl:with-param name="string"
select="./ConnectionString"/></xsl:call-template>,
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="quote-string"><xsl:with-param name="string"
select="./*[last()]"/></xsl:call-template>
)
</xsl:template>
<xsl:template match="Distinct">
DISTINCT
</xsl:template>
<xsl:template match="As">
<xsl:apply-templates select="./*[1]"/> AS <xsl:apply-templates
select="./*[2]"/>
</xsl:template>
<xsl:template match="Sources">
FROM <xsl:call-template name="print-children-list"/>
</xsl:template>
<xsl:template match="ColumnDefinitions">
<xsl:call-template name="print-children-list"/>
</xsl:template>
<xsl:template match="GroupBy">
GROUP BY <xsl:call-template name="print-children-list"/>
</xsl:template>
<xsl:template match="OrderBy">
ORDER BY <xsl:call-template name="print-children-list"/>
</xsl:template>
<xsl:template match="Where">
WHERE <xsl:apply-templates select="./*"/>
</xsl:template>
<xsl:template match="Having">
HAVING <xsl:apply-templates select="./*"/>
</xsl:template>
<xsl:template match="ColumnExpressions">
<xsl:call-template name="print-children-list"/>
</xsl:template>
<xsl:template match="ColumnUpdates">
<xsl:call-template name="print-children-list"/>
</xsl:template>
<xsl:template match="Assign">
<xsl:apply-templates select="./*[1]"/>=<xsl:apply-templates
select="./*[2]"/>
</xsl:template>
<xsl:template match="Insert/Target">
<xsl:apply-templates select="./Table"/>
(
<xsl:call-template name="print-list">
<xsl:with-param name="value-node" select="./ColumnUpdates/*/*[1]"/>
</xsl:call-template>
)
<xsl:if test="./*[2]/Assign">
VALUES
(
<xsl:call-template name="print-list">
<xsl:with-param name="value-node" select="./ColumnUpdates/*/*[2]"/>
</xsl:call-template>
)
</xsl:if>
</xsl:template>
<xsl:template match="Update/Target">
<xsl:apply-templates select="./Table"/>
SET <xsl:apply-templates select="./ColumnUpdates"/>
</xsl:template>
<xsl:template match="Delete/Target">
<xsl:apply-templates select="./Table"/>
</xsl:template>
<xsl:template match="Insert/Target/ColumnUpdates/Assign/SQLColumn[1]">
<!-- The table name is not printed for LHS of assignments in insert -->
<xsl:apply-templates select="./Column"/>
</xsl:template>
<xsl:template match="Create/ColumnDefinitions/SQLColumn">
<xsl:apply-templates select="./Column"/>
<xsl:if test="count(../../Phase) = 0">
<xsl:apply-templates select="./Type"/>
<xsl:apply-templates select="./Usage"/>
</xsl:if>
</xsl:template>
<xsl:template match="SQLColumn">
<xsl:variable name="table">
<xsl:if test="name(..)!='Count' or name(./Column/*[1]) !=
'Asterisk'"><xsl:apply-templates select="./Table"/></xsl:if>
</xsl:variable>
<xsl:variable name="column">
<xsl:apply-templates select="./Column"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$table = ''">
<xsl:value-of select="$column"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($table,'.', $column)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="Create/Database|Drop/Database">
DATABASE <xsl:apply-templates select="./Name"/>
</xsl:template>
<xsl:template match="Table">
<xsl:call-template name="build-quoted-schema-object"/>
</xsl:template>
<xsl:template match="Create/Table|Drop/Table">
TABLE <xsl:call-template name="build-quoted-schema-object"/>
</xsl:template>
<xsl:template match="View">
<xsl:call-template name="build-quoted-schema-object"/>
</xsl:template>
<xsl:template match="Drop/View">
VIEW <xsl:call-template name="build-quoted-schema-object"/>
</xsl:template>
<xsl:template match="Index">
<xsl:apply-templates select="./Name"/>
</xsl:template>
<xsl:template match="Drop/Index">
INDEX <xsl:apply-templates select="./Name"/>
</xsl:template>
<xsl:template match="Column">
<xsl:apply-templates select="./Asterisk"/>
<xsl:apply-templates select="./Name"/>
</xsl:template>
<xsl:template
match="Table/Name|View/Name|Index/Name|Column/Name|Database/Name|Schema">
<xsl:call-template name="quote-identifier"/>
</xsl:template>
<xsl:template match="Usage">
<xsl:variable name="usage"><xsl:value-of select="."/></xsl:variable>
<xsl:choose>
<xsl:when test="$usage = 'Key'"> primary key </xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="OpaqueExpression">
<xsl:if test="name(..) = 'As' and name(../..) = 'Sources'">
(
</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="name(..) = 'As' and name(../..) = 'Sources'">
)
</xsl:if>
</xsl:template>
<xsl:template match="OrderExpression">
<xsl:apply-templates select="./*[1]"/>
<xsl:apply-templates select="./Asc"/>
<xsl:apply-templates select="./Desc"/>
</xsl:template>
<xsl:template match="Asc">
ASC
</xsl:template>
<xsl:template match="Desc">
DESC
</xsl:template>
<!-- Print values: ? for parametric queries and convert expressions
for non-parametric queries -->
<xsl:template match="Parameter">
<xsl:choose>
<xsl:when test="$UseParams = 'yes' or $UseParams = 'nosubsel'">
<xsl:choose>
<xsl:when test="./@ParamName">
@<xsl:value-of select="./@ParamName"/>
</xsl:when>
<xsl:otherwise>
?
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="print-non-parametric-parameter-ref">
<xsl:with-param name="parameter-reference" select="."/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- DatePart -->
<xsl:template match="DatePart">
DATEPART( <xsl:apply-templates select="./*[1]"/> , <xsl:apply-templates
select="./*[2]"/> )
</xsl:template>
<!-- DatePartSpec -->
<xsl:template match="DatePartSpec">
<xsl:variable name="dps-val"><xsl:value-of
select="normalize-space(./text())"/></xsl:variable>
<xsl:choose>
<xsl:when test="$dps-val = 'Year'"> year </xsl:when>
<xsl:when test="$dps-val = 'Quarter'"> quarter </xsl:when>
<xsl:when test="$dps-val = 'Month'"> month </xsl:when>
<xsl:when test="$dps-val = 'DayOfYear'"> dayofyear </xsl:when>
<xsl:when test="$dps-val = 'Day'"> day </xsl:when>
<xsl:when test="$dps-val = 'Week'"> week </xsl:when>
<xsl:when test="$dps-val = 'DayOfWeek'"> weekday </xsl:when>
<xsl:when test="$dps-val = 'Hour'"> hour </xsl:when>
<xsl:when test="$dps-val = 'Minute'"> minute </xsl:when>
<xsl:when test="$dps-val = 'Second'"> second </xsl:when>
<xsl:when test="$dps-val = 'Millisecond'"> millisecond </xsl:when>
</xsl:choose>
</xsl:template>
<!-- Asterisk -->
<xsl:template match="Asterisk">*</xsl:template>
<!-- Count/Min/Max/Sum -->
<xsl:template match="Min|Max|Sum">
<xsl:variable name="function">
<xsl:choose>
<xsl:when test="name()='Min'"> MIN </xsl:when>
<xsl:when test="name()='Max'"> MAX </xsl:when>
<xsl:when test="name()='Sum'"> SUM </xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="$function"/>( <xsl:apply-templates
select="./*[1]"/> )
</xsl:template>
<xsl:template match="Count">
COUNT ( <xsl:apply-templates select="./*[1]"/> <xsl:apply-templates
select="./*[2]"/> )
</xsl:template>
<!-- Binary expressions -->
<!--
Equal/NotEqual/Greater/GreaterOrEqual/Less/LessOrEqual/In/And/Or/Plus/Minus/Divide/Multiply
expressions -->
<xsl:template
match=" Equal|NotEqual|Great
er|GreaterOrEqual|Le
ss|LessOrEqual|In|An
d|Or|Plus|Minus|Divi
de|Multiply">
<xsl:variable name="operator">
<xsl:choose>
<xsl:when test="name()='Equal'"> = </xsl:when>
<xsl:when test="name()='NotEqual'"> <> </xsl:when>
<xsl:when test="name()='Greater'"> > </xsl:when>
<xsl:when test=" name()='GreaterOrEqu
al'"> >= </xsl:when>
<xsl:when test="name()='Less'"> < </xsl:when>
<xsl:when test=" name()='LessOrEqual'
"> <= </xsl:when>
<xsl:when test="name()='In'"> IN </xsl:when>
<xsl:when test="name()='And'"> AND </xsl:when>
<xsl:when test="name()='Or'"> OR </xsl:when>
<xsl:when test="name()='Plus'"> + </xsl:when>
<xsl:when test="name()='Minus'"> - </xsl:when>
<xsl:when test="name()='Divide'"> / </xsl:when>
<xsl:when test="name()='Multiply'"> * </xsl:when>
</xsl:choose>
</xsl:variable>
(
<xsl:call-template name="print-children-list">
<xsl:with-param name="operator" select="$operator"/>
</xsl:call-template>
)
</xsl:template>
<!-- Postfix unary expressions -->
<!-- IsNull
expressions -->
<xsl:template match="IsNull">
<xsl:variable name="operator">
<xsl:choose>
<xsl:when test="name()='IsNull'"> IS NULL </xsl:when>
</xsl:choose>
</xsl:variable>
(
<xsl:apply-templates select="./*[1]"/>
<xsl:value-of select="$operator"/>
)
</xsl:template>
<!-- Types -->
<xsl:template match="Type">
<xsl:variable name="type-val"><xsl:value-of
select="normalize-space(./text())"/></xsl:variable>
<xsl:choose>
<xsl:when test="$type-val = 'DBTYPE_BSTR'"> nvarchar </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_WSTR'"> nvarchar </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_STR'"> varchar </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_BOOL'"> bit </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_I1'"> tinyint </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_I2'"> smallint </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_I4'"> int </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_I8'"> bigint </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_UI1'"> tinyint </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_UI2'"> smallint </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_UI4'"> int </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_UI8'"> bigint </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_R4'"> real </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_R8'"> float </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_DATE'"> datetime </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_DBTIMESTAMP'
"> datetime
</xsl:when>
<xsl:when test="$type-val = 'DBTYPE_CY'"> money </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_VARIANT'"> sql_variant </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_GUID'"> uniqueidentifer </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_ByteArray'"> varbinary </xsl:when>
<xsl:when test="$type-val = 'DBTYPE_DECIMAL'"> decimal </xsl:when>
</xsl:choose>
<xsl:apply-templates select="./Size"/>
<xsl:apply-templates select="./Precision"/>
<xsl:apply-templates select="./Scale"/>
</xsl:template>
<!-- Size (optional) -->
<xsl:template match="Size">
( <xsl:value-of select="./text()"/> )
</xsl:template>
<!-- Precision
-->
<xsl:template match="Precision">
( <xsl:value-of select="./text()"/>
</xsl:template>
<!-- Scale (optional) -->
<xsl:template match="Scale">
, <xsl:value-of select="./text()"/> )
</xsl:template>
<!-- Cast -->
<xsl:template match="Cast">
CAST(<xsl:apply-templates select="./*[1]"/> AS <xsl:apply-templates
select="./*[2]"/> )
</xsl:template>
<!-- By default don't do anything -->
<xsl:template match="*">
</xsl:template>
<!-- Print a schema
-->
<xsl:template name="build-quoted-schema-object">
<xsl:param name="schema-object-node" select="."/>
<xsl:variable name="schema">
<xsl:apply-templates select="$schema-object-node/Schema"/>
</xsl:variable>
<xsl:variable name="table">
<xsl:apply-templates select="$schema-object-node/Name"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$schema = ''">
<xsl:value-of select="$table"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($schema,'.', $table)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Convert an identifier to the OLEDB quotation form -->
<xsl:template name="quote-identifier">
<xsl:param name="identifier" select="."/>
<xsl:value-of select=" $IdentifierStartQuot
ingCharacter"/>
<xsl:call-template name="normalize-entity-aux">
<xsl:with-param name="entity" select="$identifier"/>
<xsl:with-param name="end-quoting-char"
select=" $IdentifierEndQuotin
gCharacter"/>
</xsl:call-template>
<xsl:value-of select=" $IdentifierEndQuotin
gCharacter"/>
</xsl:template>
<!-- Convert a string to the string quotation form -->
<xsl:template name="quote-string">
<xsl:param name="string" select="."/>
<xsl:value-of select=" $StringStartQuotingC
haracter"/>
<xsl:call-template name="normalize-entity-aux">
<xsl:with-param name="entity" select="$string"/>
<xsl:with-param name="end-quoting-char"
select=" $StringEndQuotingCha
racter"/>
</xsl:call-template>
<xsl:value-of select=" $StringEndQuotingCha
racter"/>
</xsl:template>
<!-- Convert an entity to the quotation form (recursive, aux) by
duplicating the end quoting
-->
<xsl:template name="normalize-entity-aux">
<xsl:param name="entity"/>
<xsl:param name="end-quoting-char"/>
<xsl:choose>
<xsl:when test="$end-quoting-char != '' and contains($entity,
$end-quoting-char)">
<!-- <xsl:when test="contains($entity, $end-quoting-char)">-->
<xsl:value-of select="substring-before($entity, $end-quoting-char)"/>
<xsl:value-of select="$end-quoting-char"/>
<xsl:value-of select="$end-quoting-char"/>
<xsl:call-template name="normalize-entity-aux">
<xsl:with-param name="entity" select="substring-after($entity,
$end-quoting-char)"/>
<xsl:with-param name="end-quoting-char" select="$end-quoting-char"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$entity"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Print the children list -->
<xsl:template name="print-children-list">
<xsl:param name="operator" select="','"/>
<xsl:call-template name="print-list">
<xsl:with-param name="value-node" select="./*"/>
<xsl:with-param name="operator" select="$operator"/>
</xsl:call-template>
</xsl:template>
<!-- Print a list -->
<xsl:template name="print-list">
<xsl:param name="operator" select="','"/>
<xsl:param name="value-node" select="."/>
<xsl:for-each select="$value-node">
<xsl:apply-templates select="."/>
<xsl:if test="position()!=last()">
<xsl:value-of select="$operator"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
<!-- Get the value of a parameter ref for the query -->
<xsl:template name="print-non-parametric-parameter-ref">
<xsl:param name="parameter-reference"/>
<xsl:variable name="reference"><xsl:value-of
select="$parameter-reference/@ref"/></xsl:variable>
<xsl:call-template name="print-non-parametric-parameter">
<xsl:with-param name="parameter"
select="/Statement/Parameters/Parameter[@id=$reference]"/>
</xsl:call-template>
</xsl:template>
<!-- Get the value of a parameter ref for the query -->
<xsl:template name="print-non-parametric-parameter">
<xsl:param name="parameter"/>
<xsl:variable name="db-type"><xsl:value-of
select="$parameter/@DBTYPE"/></xsl:variable>
<xsl:variable name="value"><xsl:value-of
select="$parameter/text()"/></xsl:variable>
<xsl:choose>
<xsl:when test="$db-type = 'DBTYPE_BSTR'"><xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_WSTR'"><xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_STR'"><xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_BOOL'">CAST( <xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template> AS bit)</xsl:when>
<xsl:when test="$db-type = 'DBTYPE_I1'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_I2'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_I4'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_I8'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_UI1'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_UI2'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_UI4'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_UI8'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_R4'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_R8'"><xsl:value-of
select="$value"/></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_DATE'">CAST( <xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template> AS datetime)</xsl:when>
<xsl:when test="$db-type = 'DBTYPE_DBTIMESTAMP'
">CAST( <xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template> AS datetime)</xsl:when>
<xsl:when test="$db-type = 'DBTYPE_CY'">CAST( <xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template> AS money)</xsl:when>
<xsl:when test="$db-type = 'DBTYPE_VARIANT'"><xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_GUID'"><xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_ByteArray'"><xsl:call-template
name="quote-string"><xsl:with-param name="string"
select="$value"/></xsl:call-template></xsl:when>
<xsl:when test="$db-type = 'DBTYPE_DECIMAL'"><xsl:value-of
select="$value"/></xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
--
--
This posting is provided "AS IS" with no warranties, and confers no rights
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.
"Steve G" <SteveG@discussions.microsoft.com> wrote in message
news:305C2835-4033-466F-8ECF- 8275C631C3D9@microso
ft.com...[color=darkred]
> Akshai,
>
> Thanks for your reply. We'd like to try this Sybase cartridge out, but
> cannot find it. I can't see any attached file. How can I access it ?
>
>
>
>
>
> "Akshai Mirchandani [MS]" wrote:
>
| |
| scott_gunn@email.com 2005-11-30, 9:23 am |
| I have an xsl file that works for Sybase IQ. I'm not sure if it would
work with Sybase ASE or not. I know there are some subtle differences
in valid SQL between the two.
| |
| Steve G 2005-12-02, 11:23 am |
| Thanks for the cartridge.
"Akshai Mirchandani [MS]" wrote:
> I've pasted it inline below.
>
> Thanks,
> Akshai
>
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0"
> xmlns:mssqlcrt="urn:sql-microsoft-com:sqlcrt"
> xmlns:mssqldbg="urn:sql-microsoft-com:sqldbg">
> <xsl:output method="xml" indent="yes"/>
>
> <!-- ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!!
> This is a generated file. Do not modify this file directly!
> -->
>
> <!-- Sybase pluggable cartridge -->
>
> <!-- Area of STANDARD parametrizations: these are externally passed -->
> <xsl:param name="in_CanUseParams">yes</xsl:param>
> <xsl:param name=" in_IdentStartQuoting
Character"></xsl:param>
> <xsl:param name=" in_IdentEndQuotingCh
aracter"></xsl:param>
> <xsl:param name=" in_StringStartQuotin
gCharacter">N'</xsl:param>
> <xsl:param name=" in_StringEndQuotingC
haracter">'</xsl:param>
>
> <!-- Area of CORE parametrizations: These are externally checked -->
> <mssqlcrt:provider type="prefix">Adaptive Server
> Anywhere</mssqlcrt:provider>
>
> < mssqlcrt:capabilitie
s>
> <mssqlcrt:supports-datepart-year/>
> <mssqlcrt:supports-datepart-quarter/>
> <mssqlcrt:supports-datepart-month/>
> <mssqlcrt:supports-datepart-dayofyear/>
> <mssqlcrt:supports-datepart-day/>
> <mssqlcrt:supports-datepart-week/>
> <mssqlcrt:supports-datepart-dayofweek/>
> <mssqlcrt:supports-datepart-hour/>
> <mssqlcrt:supports-datepart-minute/>
> <mssqlcrt:supports-datepart-second/>
> <mssqlcrt:supports-datepart-millisecond/>
> <mssqlcrt:supports-multiple-distinct-count/>
> <mssqlcrt:supports-update/>
> <mssqlcrt:supports-insert/>
> <mssqlcrt:supports-subselect/>
> <mssqlcrt:supports-table-alias/>
> <mssqlcrt:supports-column-alias/>
> <mssqlcrt:supports-cast/>
> <mssqlcrt:supports-remote-query/>
> <mssqlcrt:supports-top-clause/>
> <mssqlcrt:supports-union/>
> <mssqlcrt:supports-union-all/>
> <mssqlcrt:supports-fast-writeback> TABLOCK,FIRE_TRIGGER
S</mssqlcrt:supports-fast-writeback>
> <!--
> This cartridge is used as the default cartridge for unknown
> providers
> So even though SQL supports larger aliases (at least 128), we'll
> use a smaller
> alias for the other providers
> -->
> <mssqlcrt:limit-table-identifier-length>32</mssqlcrt:limit-table-identifier-length>
> <mssqlcrt:limit-column-identifier-length>32</mssqlcrt:limit-column-identifier-length>
>
> <!-- Map from MSDAInitialize connection string to SQLOLEDB connection
> string -->
> <mssqlcrt:remote-connection-string-mappings>
> <mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:datasource-property>Provider</mssqlcrt:datasource-property>
> <mssqlcrt:remote-property></mssqlcrt:remote-property>
> </mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:datasource-property>Data Source</mssqlcrt:datasource-property>
> <mssqlcrt:remote-property>Server</mssqlcrt:remote-property>
> </mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:datasource-property>Initial
> Catalog</mssqlcrt:datasource-property>
> <mssqlcrt:remote-property>Database</mssqlcrt:remote-property>
> </mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:datasource-property>User ID</mssqlcrt:datasource-property>
> <mssqlcrt:remote-property>UID</mssqlcrt:remote-property>
> </mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:datasource-property>Password</mssqlcrt:datasource-property>
> <mssqlcrt:remote-property>PWD</mssqlcrt:remote-property>
> </mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:remote-connection-string-mapping>
> <mssqlcrt:datasource-property>Integrated
> Security=SSPI</mssqlcrt:datasource-property>
> <mssqlcrt:remote-property> Trusted_Connection=y
es</mssqlcrt:remote-property>
> </mssqlcrt:remote-connection-string-mapping>
> </mssqlcrt:remote-connection-string-mappings>
> </ mssqlcrt:capabilitie
s>
>
> <mssqlcrt:schema-classes>
> <mssqlcrt:schema-class>
> <mssqlcrt:managed-provider>System.Data.OleDb</mssqlcrt:managed-provider>
> <mssqlcrt:type>Microsoft.DataWarehouse.Design.OleDbSchema,
> Microsoft.DataWarehouse</mssqlcrt:type>
> <mssqlcrt:query-designer>
> <mssqlcrt:type>Microsoft.DataWarehouse.Controls.OleDbQueryDesigner,
> Microsoft.DataWarehouse</mssqlcrt:type>
> </mssqlcrt:query-designer>
> </mssqlcrt:schema-class>
> <mssqlcrt:schema-class>
> <mssqlcrt:managed-provider>System.Data.Odbc</mssqlcrt:managed-provider>
> <mssqlcrt:type>Microsoft.DataWarehouse.Design.OdbcSchema,
> Microsoft.DataWarehouse</mssqlcrt:type>
> </mssqlcrt:schema-class>
> </mssqlcrt:schema-classes>
> <!-- Area of internal parametrizations -->
> <!-- overrideOfUseParams:
> yes = use always parametric queries
> no = never use parametric queries
> nosubsel = use as yes, but not on subselects
> auto = use the value of in_CanUseParams to determine -->
> <xsl:variable name="overrideOfUseParams">auto</xsl:variable>
> <!-- shouldProduceDebug:
> yes = produce debug information
> no = do not produce debug information -->
> <xsl:variable name="shouldProduceDebug">yes</xsl:variable>
>
> <!-- Area of global variables initializations -->
> <xsl:variable name="UseParams">
> <xsl:choose>
> <xsl:when test="normalize- space($overrideOfUse
Params) = 'yes' or
> (normalize- space($overrideOfUse
Params) = 'auto' and
> normalize- space($in_CanUsePara
ms)='yes')">yes</xsl:when>
> <xsl:when test="normalize- space($overrideOfUse
Params) =
> 'nosubsel'">nosubsel</xsl:when>
> <xsl:otherwise>no</xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
> <xsl:variable name="ProduceDebug" select="$shouldProduceDebug"/>
> <xsl:variable name=" IdentifierStartQuoti
ngCharacter"
> select="normalize- space($in_IdentStart
QuotingCharacter)"/>
> <xsl:variable name=" IdentifierEndQuoting
Character"
> select="normalize- space($in_IdentEndQu
otingCharacter)"/>
> <xsl:variable name=" StringStartQuotingCh
aracter"
> select="normalize- space($in_StringStar
tQuotingCharacter)"/>
> <xsl:variable name=" StringEndQuotingChar
acter"
> select="normalize- space($in_StringEndQ
uotingCharacter)"/>
>
> <!-- Generated statement packaging -->
> <xsl:template match="/">
> <xsl:element name="Statement">
>
> <!-- Generate query -->
> <xsl:element name="Text">
> <xsl:apply-templates select="./Statement/*[1]"/>
> </xsl:element>
>
> <!-- Generate parameters -->
> <xsl:if test="count(./Statement/Parameters/Parameter)!=0 and
> ((normalize- space($UseParams)='y
es') or
> (normalize- space($UseParams)='n
osubsel'))">
> <xsl:element name="Parameters">
> <xsl:for-each select="./Statement/*[1]//Parameter">
> <xsl:element name="Parameter">
> <xsl:attribute name="ref">
> <xsl:value-of select="./@ref"/>
> </xsl:attribute>
> </xsl:element>
> </xsl:for-each>
> </xsl:element>
> </xsl:if>
>
> <!-- Generate debug info -->
> <xsl:if test="$ProduceDebug='yes'">
> <xsl:element name="mssqldbg:DebugInfo">
> <xsl:element name=" mssqldbg:GeneratePar
ametricInfo">
> <xsl:attribute name="mssqldbg:Value">
> <xsl:value-of select="$UseParams"/>
> </xsl:attribute>
> <xsl:element name="mssqldbg:External">
> <xsl:value-of select="$in_CanUseParams"/>
> </xsl:element>
> <xsl:element name="mssqldbg:Internal">
> <xsl:value-of select=" $overrideOfUseParams
"/>
> </xsl:element>
> </xsl:element>
> </xsl:element>
> </xsl:if>
>
> </xsl:element>
> </xsl:template>
>
> <!-- Union statement -->
> <xsl:template match="Union">
> <xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
> (
> </xsl:if>
> <xsl:call-template name="print-children-list">
> <xsl:with-param name="operator" select="' UNION '"/>
> </xsl:call-template>
> <xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
> )
> </xsl:if>
> </xsl:template>
>
> <!-- Union All
> -->
> <xsl:template match="UnionAll">
> <xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
> (
> </xsl:if>
> <xsl:call-template name="print-children-list">
> <xsl:with-param name="operator" select="' UNION ALL '"/>
> </xsl:call-template>
> <xsl:if test="name(..) != 'Statement' and name(..) != 'Insert'">
> )
> </xsl:if>
> </xsl:template>
>
> <!-- Top clause -->
> <xsl:template match="Top">
> TOP <xsl:value-of select="."/><xsl:text> </xsl:text>
> </xsl:template>
>
> <!-- Select statement -->
> <xsl:template match="Select">
> <xsl:choose>
> <xsl:when test="count(./ColumnExpressions/IsValidForIndexing) != 0">
> SELECT OBJECTPROPERTY( object_id('<xsl:apply-templates
> select="./Sources/View"/>'), 'isindexable' )
> </xsl:when>
> <xsl:otherwise>
> <xsl:if test="name(..) != 'Statement' and name(..) != 'Insert' and
> name(..) != 'Union' and name(..) != 'UnionAll'">
> (
> </xsl:if>
> SELECT <xsl:apply-templates select="./Top"/>
> <xsl:apply-templates select="./Distinct"/>
> <xsl:apply-templates select="./ColumnExpressions"/>
> <xsl:if test="count(../Phase) != 0">, COUNT(*) AS
> [COUNT_7673aff6-2445-4ef6-a4c9-7bf3d93bd42a] </xsl:if>
> <xsl:apply-templates select="./Sources"/>
> <xsl:apply-templates select="./Where"/>
> <xsl:apply-templates select="./GroupBy"/>
> <xsl:apply-templates select="./Having"/>
> <xsl:apply-templates select="./OrderBy"/>
> <xsl:if test="name(..) != 'Statement' and name(..) != 'Insert' and
> name(..) != 'Union' and name(..) != 'UnionAll'">
> )
> </xsl:if>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <!-- Update statement -->
> <xsl:template match="Update">
> UPDATE <xsl:apply-templates select="./Target"/>
> <xsl:apply-templates select="./Where"/>
> </xsl:template>
>
> <!-- Insert statement -->
> <xsl:template match="Insert">
> INSERT INTO <xsl:apply-templates select="./Target"/>
> <xsl:apply-templates select="./Select"/>
> </xsl:template>
>
> <!-- Delete statement -->
> <xsl:template match="Delete">
> DELETE FROM <xsl:apply-templates select="./Target"/>
> <xsl:apply-templates select="./Where"/>
> </xsl:template>
>
> <!-- Drop statement -->
> <xsl:template match="Drop">
> DROP <xsl:apply-templates select="./*"/>
> </xsl:template>
>
> <!-- Create statement -->
> <xsl:template match="Create">
> CREATE
> <xsl:variable name="phase"><xsl:value-of select="./Phase"/></xsl:variable>
> <xsl:choose>
> <xsl:when test="number($phase)=1">
> VIEW <xsl:apply-templates select="./View"/> ( <xsl:apply-templates
> select="./*[4]"/>, [COUNT_7673aff6-2445-4ef6-a4c9-7bf3d93bd42a] ) WITH
> SCHEMABINDING AS <xsl:apply-templates select="./*[5]"/>
> </xsl:when>
> <xsl:when test="number($phase)=2">
> UNIQUE CLUSTERED INDEX <xsl:apply-templates select="./Index"/> ON
> <xsl:apply-templates select="./View"/> ( <xsl:apply-templates
> select="./*[4]"/> )
> </xsl:when>
> <xsl:otherwise>
> <xsl:apply-templates select="./*[1]"/>
> <xsl:choose>
> <xsl:when test="name(./*[1]) = 'Table'"> ( <xsl:apply-templates
> select="./*[2]"/> )</xsl:when>
> </xsl:choose>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <!-- Remote query (OPENROWSET) -->
> <xsl:template match="RemoteQuery">
| |
|
| hi,
Is Informix not supported for AS2005 ?
I create a informix oledb(2.90TC3) datasource and test connection
successfully, but failed to create a infromix data source view.(More details
errors @ subject: AS2005 data source limitation)
Whould you point me how I could solve this problem?
What is a cartridge and How can I make it?
Thanks.
"Akshai Mirchandani [MS]" <akshaim@online.microsoft.com> 撰寫於郵件新聞:%23bk
CKlJ8FHA.2716@TK2MSFTNGP11.phx.gbl...
Sybase is not a supported database for AS 2005. However, another Sybase
customer built a cartridge and I've attached it here -- it may or may not
work for you and will not be supported.
You can put the attached .xsl file in the <install folder>\cartridges folder
and re-start the server.
Thanks,
Akshai
--
This posting is provided "AS IS" with no warranties, and confers no rights
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.
"Steve G" <Steve G@discussions.microsoft.com> wrote in message
news:D4594E9A-09A7-4BA7-855F- 2E5072AC1D9D@microso
ft.com...
>I use a Sybase (12.5.2) OLEDB datasource for feeding dimension data to our
> SQL Server 2005 Analysis Services Cubes. If I try to process any dimension
> I
> see that the SQL generated by SSAS is something like:
>
>
> SELECT & #91;dbo_o_v_ccy_pair
].[ccy_pair_id] AS
> & #91;dbo_o_v_ccy_pair
ccy_pair_id0_0],& #91;dbo_o_v_ccy_pair
].[ccy_pair_name] AS
> & #91;dbo_o_v_ccy_pair
ccy_pair_name0_1],& #91;dbo_o_v_ccy_pair
].& #91;is_offshore_ccy]
AS
> & #91;dbo_o_v_ccy_pair
is_offshore_ccy0_2],
& #91;dbo_o_v_ccy_pair
].[start_name] AS
> & #91;dbo_o_v_ccy_pair
start_name0_3],& #91;dbo_o_v_ccy_pair
].[region_id] AS
> & #91;dbo_o_v_ccy_pair
region_id0_4],& #91;dbo_o_v_ccy_pair
].[is_emerging] AS
> & #91;dbo_o_v_ccy_pair
is_emerging0_5],& #91;dbo_o_v_ccy_pair
].[bus_region] AS
> & #91;dbo_o_v_ccy_pair
bus_region0_6],& #91;dbo_o_v_ccy_pair
].& #91;is_offshore_ccy_
desc]
> AS
> & #91;dbo_o_v_ccy_pair
is_offshore_ccy_desc
0_7]
> FROM [dbo].[o_v_ccy_pair] AS & #91;dbo_o_v_ccy_pair
]
>
>
> .. the point is that SSAS is inserting its own, rather verbose aliases, as
> in .. "AS & #91;dbo_o_v_ccy_pair
ccy_pair_id0_0]" .. which often results in an
> alias name longer than 30 characters, therefore exceeding the longest that
> Sybase SQL can handle and causing the dimension processing to fail. Is
> there
> any way to prevent these long aliases being created ? If so, how ? If not,
> does that mean than SSAS is not compatible with Sybase ?
>
| |
| Akshai Mirchandani [MS] 2005-12-28, 3:23 am |
| Sorry, no. As mentioned in other threads, you can create a linked server
from the SQL Server relational engine to the Informix database and build
your cube using the SQL Server as a source, but you will probably pay a
performance price during processing.
In brief, a cartridge is a .xsl stylesheet that defines capabilities of a
datasource as well as the rules for converting an abstract XML query into a
valid SQL query for that datasource -- the set of cartridges that AS ships
with includes versions of Jet, SQL 70, SQL 2000, SQL 2005, Oracle, Teradata,
DB2.
Thanks,
Akshai
--
This posting is provided "AS IS" with no warranties, and confers no rights
Please do not send email directly to this alias. This alias is for newsgroup
purposes only.
<Steffi> wrote in message news:egzp6H1CGHA.2436@TK2MSFTNGP15.phx.gbl...
> hi,
> Is Informix not supported for AS2005 ?
> I create a informix oledb(2.90TC3) datasource and test connection
> successfully, but failed to create a infromix data source view.(More
> details
> errors @ subject: AS2005 data source limitation)
> Whould you point me how I could solve this problem?
> What is a cartridge and How can I make it?
> Thanks.
>
> "Akshai Mirchandani [MS]" <akshaim@online.microsoft.com>
> 撰寫於郵件新聞:%23bk
CKlJ8FHA.2716@TK2MSFTNGP11.phx.gbl...
> Sybase is not a supported database for AS 2005. However, another Sybase
> customer built a cartridge and I've attached it here -- it may or may not
> work for you and will not be supported.
>
> You can put the attached .xsl file in the <install folder>\cartridges
> folder
> and re-start the server.
>
> Thanks,
> Akshai
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
> Please do not send email directly to this alias. This alias is for
> newsgroup
> purposes only.
>
> "Steve G" <Steve G@discussions.microsoft.com> wrote in message
> news:D4594E9A-09A7-4BA7-855F- 2E5072AC1D9D@microso
ft.com...
>
>
>
>
| |
|
| Can you post the xsl file for Sysbase IQ?
Best Regards,
Pedro Henriques
"scott_gunn@email.com" wrote:
> I have an xsl file that works for Sybase IQ. I'm not sure if it would
> work with Sybase ASE or not. I know there are some subtle differences
> in valid SQL between the two.
>
>
|
|
|
|
|