Sunteți pe pagina 1din 12

unit Source;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, EtCtrls;
type
!"G# $ record
#,G," % &yte;
end;
'"G# $ (!"G#Scan;
!"G#Scan $ array )*++*, of !"G#;
!-omple.s $ record
"eal,/mag % etended ;
end;
!-omple.sMatri.s $ array of array of !-omple.s;
!-omple.s0rray $ array of !-omple.s;
!Effect $ record
Scale,1ffset % &yte;
'ola % array )*++2,*++2, of real;
end;
!3isto $ record
n % longint;
'r,4'r % real;
r,s % &yte;
end;
!!a&el $ array of !3isto;
!Data $ array of array of !"G#;
procedure Gray5e6el76ar /mage%!/mage8;
procedure 3istogram76ar /mage%!/mage8;
procedure 9egati6e76ar /mage%!/mage8;
procedure ContrastStretching76ar /mage%!/mage8;
procedure More#right76ar /mage%!/mage8;
procedure findwidth76ar /mage%!/mage8;
procedure 5ess#right76ar /mage%!/mage8;
procedure Motion#lur76ar /mage%!/mage8;
procedure Median76ar /mage%!/mage8;
procedure Effects76ar /mage%!/mage; Filter%!Effect8;
procedure !ransForm76ar Data%!-omple.s0rray; 9%Word8;
procedure De!ransForm76ar Data%!-omple.s0rray; 9%Word8;
procedure Flip3ori:ontal76ar /mage%!/mage8;
procedure Flip;ertical76ar /mage%!/mage8;
procedure Show/mage76ar /mage;%!/mage; /mage/%!/mage8;
const
!wo'/ % Etended $ <+2=>?=@>*A?AB@=<CA<B2@2=<A<<@@B*?;
!Sharp % !Effect $ 7Scale%?; 1ffset%*; 'ola%77*,D?,*8,7D?,@,D?8,
7*,D?,*888;
!#lur % !Effect $ 7Scale%B; 1ffset%*; 'ola%77?,?,?8,7?,?,?8,
7?,?,?888;
!5ap? % !Effect $ 7Scale%?; 1ffset%*; 'ola%77*,D?,*8,7D?,C,D?8,
7*,D?,*888;
!5ap2 % !Effect $ 7Scale%?; 1ffset%*; 'ola%77D?,D?,D?8,7D?,=,D?8,
7D?,D?,D?888;
!5ap> % !Effect $ 7Scale%?; 1ffset%*; 'ola%77?,D2,?8,7D2,C,D28,
7?,D2,?888;
!;ertical2 % !Effect $ 7Scale%?; 1ffset%*; 'ola%77*,*,*8,7D?,2,D?8,
7*,*,*888;
!'rewitt3 % !Effect $ 7Scale%?; 1ffset%*; 'ola%77D?,D?,D?8,7*,*,*8,
7?,?,?888;
!'rewitt; % !Effect $ 7Scale%?; 1ffset%*; 'ola%77D?,*,?8,7D?,*,?8,7D
?,*,?888;
!So&el3 % !Effect $ 7Scale%?; 1ffset%*; 'ola%77D?,D2,D?8,7*,*,*8,
7?,2,?888;
!So&el; % !Effect $ 7Scale%?; 1ffset%*; 'ola%77D?,*,?8,7D2,*,28,7D
?,*,?888;
implementation
uses Unit?, Unit2;
procedure Gray5e6el;
6ar i,E,!empd % integer;
Scan % '"G#;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
!empd%$*;
!empd%$!empdF#;
!empd%$!empdFG;
!empd%$!empdF";
!empd%$"ound7!empdG>8;
if !empd HI * then tempd %$ 2@@;
#%$!empd;
G%$!empd;
"%$!empd;
end;
end;
end;
end;
end;
procedure 3istogram;
6ar !a&el",!a&elG,!a&el# % !!a&el;
i,E % integer;
Scan % '"G#;
Jumlah % longint;
&egin
Setlength7!a&el",2@<8; Setlength7!a&elG,2@<8; Setlength7!a&el#,2@<8;
with /mage+'icture+#itmap do
&egin
Jumlah%$*;
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
/nc7!a&el#)Scan()i,+#,+n8;
/nc7!a&elG)Scan()i,+G,+n8;
/nc7!a&el")Scan()i,+",+n8;
/nc7Jumlah8;
end;
end;
end;
for i%$ * to 2@@ do
&egin
!a&el#)i,+r%$i;
!a&el#)i,+'r%$!a&el#)i,+nGJumlah;
if 7iHI*8 then !a&el#)i,+4'r%$!a&el#)iD?,+4'rF!a&el#)i,+'r
else !a&el#)i,+4'r%$!a&el#)i,+'r;
!a&elG)i,+r%$i;
!a&elG)i,+'r%$!a&elG)i,+nGJumlah;
if 7iHI*8 then !a&elG)i,+4'r%$!a&elG)iD?,+4'rF!a&elG)i,+'r
else !a&elG)i,+4'r%$!a&elG)i,+'r;
!a&el")i,+r%$i;
!a&el")i,+'r%$!a&el")i,+nGJumlah;
if 7iHI*8 then !a&el")i,+4'r%$!a&el")iD?,+4'rF!a&el")i,+'r
else !a&el")i,+4'r%$!a&el")i,+'r;
end;
for i%$ * to 2@@ do
&egin
E%$?;
while 7!a&el#)i,+4'rIEG2@<8 and 7EH$2@<8 do
&egin
inc7E8;
end;
!a&el#)i,+s%$!a&el#)ED?,+r;
E%$?;
while 7!a&elG)i,+4'rIEG2@<8 and 7EH$2@<8 do
&egin
inc7E8;
end;
!a&elG)i,+s%$!a&elG)ED?,+r;
E%$?;
while 7!a&el")i,+4'rIEG2@<8 and 7EH$2@<8 do
&egin
inc7E8;
end;
!a&el")i,+s%$!a&el")ED?,+r;
end;
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
Scan()E,+#%$!a&el#)Scan()E,+#,+s;
Scan()E,+G%$!a&elG)Scan()E,+G,+s;
Scan()E,+"%$!a&el")Scan()E,+",+s;
end;
end;
end;
!a&el#%$nil; !a&elG%$nil; !a&el"%$nil;
end;
procedure 9egati6e;
6ar i,E % integer;
Scan % '"G#;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
#%$2@@D#;
G%$2@@DG;
"%$2@@D";
end;
end;
end;
end;
end;
procedure ContrastStretching;
6ar i,E % integer;
Scan % '"G#;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
if 7# in )*++<>,8 then
&egin
#%$round7C*G<>K#8;
end else if 7# in )<C++?B?,8 then
&egin
#%$round77?A@K#D<?2*8G?2A8;
end else &egin
#%$round77C*K#F@=<@8G<>8;
end;
if 7G in )*++<>,8 then
&egin
G%$round7C*G<>KG8;
end else if 7G in )<C++?B?,8 then
&egin
G%$round77?A@KGD<?2*8G?2A8;
end else &egin
G%$round77C*KGF@=<@8G<>8;
end;
if 7" in )*++<>,8 then
&egin
"%$round7C*G<>K"8;
end else if 7" in )<C++?B?,8 then
&egin
"%$round77?A@K"D<?2*8G?2A8;
end else &egin
"%$round77C*K"F@=<@8G<>8;
end;
end;
end;
end;
end;
end;
procedure More#right;
6ar i,E % integer;
Scan % '"G#;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
#%$2@@Dround7sLr772@@D#8G2@@8K2@@8;
G%$2@@Dround7sLr772@@DG8G2@@8K2@@8;
"%$2@@Dround7sLr772@@D"8G2@@8K2@@8;
end;
end;
end;
end;
end;
procedure findwidth;
6ar i,E % integer;
Scan % '"G#;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
#%$2@@Dround7sLr772@@D#8G2@@8K2@@8;
G%$2@@Dround7sLr772@@DG8G2@@8K2@@8;
"%$2@@Dround7sLr772@@D"8G2@@8K2@@8;
end;
end;
end;
end;
end;
procedure 5ess#right;
6ar i,E % integer;
Scan % '"G#;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
#%$round7sLr7#G2@@8K2@@8;
G%$round7sLr7GG2@@8K2@@8;
"%$round7sLr7"G2@@8K2@@8;
end;
end;
end;
end;
end;
procedure Motion#lur;
6ar Scan?,Scan2 % '"G#;
i,,y % integer;
p % &yte;
!emp, !emp? % !#itmap;
&egin
p%$@?;
!emp%$!#itmap+Create;
!emp+Width%$/mage+'icture+#itmap+Width;
!emp+3eight%$/mage+'icture+#itmap+3eight;
!emp+'ielFormat%$pf2C&it;
!emp?%$!#itmap+Create;
!emp?+Width%$/mage+'icture+#itmap+Width;
!emp?+3eight%$/mage+'icture+#itmap+3eight;
!emp?+'ielFormat%$pf2C&it;
!emp%$/mage+'icture+#itmap;
for i%$ ? to p do
&egin
if 7i mod 2 HI *8 then
&egin
for y%$ * to !emp+3eightD? do
&egin
Scan?%$!emp+Scan5ine)y,;
Scan2%$!emp?+Scan5ine)y,;
for %$? to !emp+WidthD? do
&egin
Scan2(),+#%$7Scan2()D?,+#FScan?(),+#8 di6 2;
Scan2(),+G%$7Scan2()D?,+GFScan?(),+G8 di6 2;
Scan2(),+"%$7Scan2()D?,+"FScan?(),+"8 di6 2;
end;
end;
end
else
&egin
for y%$ * to !emp+3eightD? do
&egin
Scan?%$!emp?+Scan5ine)y,;
Scan2%$!emp+Scan5ine)y,;
for %$ !emp+WidthD2 downto * do
&egin
Scan2(),+#%$7Scan2()F?,+#FScan?(),+#8 di6 2;
Scan2(),+G%$7Scan2()F?,+GFScan?(),+G8 di6 2;
Scan2(),+"%$7Scan2()F?,+"FScan?(),+"8 di6 2;
end;
end;
end;
end;
if p mod 2 $ * then
/mage+'icture+#itmap%$!emp
else /mage+'icture+#itmap%$!emp?;
end;
procedure Median;
6ar i,E,.,l % integer;
Scan?,Scan2,Scan> % '"G#;
!empd % array )?++B, of &yte;
Min % &yte;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ ? to 3eightD2 do
&egin
Scan?%$scanline)iD?,;
Scan2%$scanline)i,;
Scan>%$scanline)iF?,;
for E%$ ? to WidthD2 do
&egin
!empd)?,%$Scan?()ED?,+#;
!empd)2,%$Scan?()E,+#;
!empd)>,%$Scan?()EF?,+#;
!empd)C,%$Scan2()ED?,+#;
!empd)@,%$Scan2()E,+#;
!empd)<,%$Scan2()EF?,+#;
!empd)A,%$Scan>()ED?,+#;
!empd)=,%$Scan>()E,+#;
!empd)B,%$Scan>()EF?,+#;
for .%$ ? to = do
&egin
for l%$ .F? to B do
&egin
/f 7!empd)l,H!empd).,8 then &egin
Min%$!empd).,;
!empd).,%$!empd)l,;
!empd)l,%$Min;
end;
end;
end;
Scan2()E,+#%$!empd)@,;
!empd)?,%$Scan?()ED?,+G;
!empd)2,%$Scan?()E,+G;
!empd)>,%$Scan?()EF?,+G;
!empd)C,%$Scan2()ED?,+G;
!empd)@,%$Scan2()E,+G;
!empd)<,%$Scan2()EF?,+G;
!empd)A,%$Scan>()ED?,+G;
!empd)=,%$Scan>()E,+G;
!empd)B,%$Scan>()EF?,+G;
for .%$ ? to = do
&egin
for l%$ .F? to B do
&egin
/f 7!empd)l,H!empd).,8 then &egin
Min%$!empd).,;
!empd).,%$!empd)l,;
!empd)l,%$Min;
end;
end;
end;
Scan2()E,+G%$!empd)@,;
!empd)?,%$Scan?()ED?,+";
!empd)2,%$Scan?()E,+";
!empd)>,%$Scan?()EF?,+";
!empd)C,%$Scan2()ED?,+";
!empd)@,%$Scan2()E,+";
!empd)<,%$Scan2()EF?,+";
!empd)A,%$Scan>()ED?,+";
!empd)=,%$Scan>()E,+";
!empd)B,%$Scan>()EF?,+";
for .%$ ? to = do
&egin
for l%$ .F? to B do
&egin
/f 7!empd)l,H!empd).,8 then &egin
Min%$!empd).,;
!empd).,%$!empd)l,;
!empd)l,%$Min;
end;
end;
end;
Scan2()E,+"%$!empd)@,;
end;
end;
end;
end;
procedure Effects;
6ar i,E % integer;
Scan % '"G#;
!empd % real;
!emp % !#itmap;
Data % array of array of !"G#;
&egin
Setlength7Data,/mage+'icture+#itmap+3eightF2,/mage+'icture+#itmap+WidthF2
8;
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to WidthD? do
&egin
with Scan()E, do
&egin
Data)iF?,EF?,+#%$#;
Data)iF?,EF?,+G%$G;
Data)iF?,EF?,+"%$";
end;
end;
end;
end;
!emp%$!#itmap+Create;
!emp+'ielFormat%$pf2C&it;
!emp+3eight%$/mage+'icture+#itmap+3eight;
!emp+Width%$/mage+'icture+#itmap+Width;
for i%$ ? to /mage+'icture+#itmap+3eight do
&egin
Scan%$!emp+Scanline)iD?,;
for E%$ ? to /mage+'icture+#itmap+Width do
&egin
!empd%$Data)iD?,ED?,+#KFilter+'ola)*,*,FData)iD
?,E,+#KFilter+'ola)*,?,FData)iD?,EF?,+#KFilter+'ola)*,2,F
Data)i,ED
?,+#KFilter+'ola)?,*,FData)i,E,+#KFilter+'ola)?,?,FData)i,EF?,+#KFilter+'ol
a)?,2,F
Data)iF?,ED
?,+#KFilter+'ola)2,*,FData)iF?,E,+#KFilter+'ola)2,?,FData)iF?,EF?,+#KFilter
+'ola)2,2,;
!empd%$!empdGFilter+ScaleFFilter+1ffset;
if 7!empdI2@@8 then Scan()ED?,+#%$2@@ else
if 7!empdH*8 then Scan()ED?,+#%$* else Scan()ED?,+#%$round7!empd8;
!empd%$Data)iD?,ED?,+GKFilter+'ola)*,*,FData)iD
?,E,+GKFilter+'ola)*,?,FData)iD?,EF?,+GKFilter+'ola)*,2,F
Data)i,ED
?,+GKFilter+'ola)?,*,FData)i,E,+GKFilter+'ola)?,?,FData)i,EF?,+GKFilter+'ol
a)?,2,F
Data)iF?,ED
?,+GKFilter+'ola)2,*,FData)iF?,E,+GKFilter+'ola)2,?,FData)iF?,EF?,+GKFilter
+'ola)2,2,;
!empd%$!empdGFilter+ScaleFFilter+1ffset;
if 7!empdI2@@8 then Scan()ED?,+G%$2@@ else
if 7!empdH*8 then Scan()ED?,+G%$* else Scan()ED?,+G%$round7!empd8;
!empd%$Data)iD?,ED?,+"KFilter+'ola)*,*,FData)iD
?,E,+"KFilter+'ola)*,?,FData)iD?,EF?,+"KFilter+'ola)*,2,F
Data)i,ED
?,+"KFilter+'ola)?,*,FData)i,E,+"KFilter+'ola)?,?,FData)i,EF?,+"KFilter+'ol
a)?,2,F
Data)iF?,ED
?,+"KFilter+'ola)2,*,FData)iF?,E,+"KFilter+'ola)2,?,FData)iF?,EF?,+"KFilter
+'ola)2,2,;
!empd%$!empdGFilter+ScaleFFilter+1ffset;
if 7!empdI2@@8 then Scan()ED?,+"%$2@@ else
if 7!empdH*8 then Scan()ED?,+"%$* else Scan()ED?,+"%$round7!empd8;
end;
end;
/mage+'icture+#itmap%$!emp; Data%$nil;
end;
procedure !ransForm;
6ar i,E,3alf,1ddM,E6enM % word;
!wo'/'er3alf,!empSin,!empCos,!emp0ngle % etended;
FreLuency % !-omple.s0rray;
F1dd,FE6en,1dd-omple.s % !-omple.s;
&egin
3alf%$9 shr ?;
!wo'/'er3alf%$!wo'iG3alf;
Set5ength7FreLuency,98;
for i%$* to 3alfD? do
&egin
F1dd+"eal%$*; F1dd+/mag%$*;
FE6en+"eal%$*;FE6en+/mag%$*;
for E%$* to 3alfD? do
&egin
!emp0ngle%$!wo'/'er3alfKiKE;
!empSin%$Dsin7!emp0ngle8;
!empCos%$cos7!emp0ngle8;
E6enM%$2KE;
FE6en+"eal%$FE6en+"ealFData)E6enM,+"ealK!empCosD
Data)E6enM,+/magK!empSin;
FE6en+/mag%$FE6en+/magFData)E6enM,+"ealK!empSinFData)E6enM,+/magK!emp
Cos;
1ddM%$E6enMF?;
F1dd+"eal%$F1dd+"ealFData)1ddM,+"ealK!empCosDData)1ddM,+/magK!empSin;
F1dd+/mag%$F1dd+/magFData)1ddM,+"ealK!empSinFData)1ddM,+/magK!empCos;
end;
!emp0ngle%$!wo'/KiG9;
!empSin%$DSin7!emp0ngle8;
!empCos%$Cos7!emp0ngle8;
1dd-omple.s+"eal%$F1dd+"ealK!empCosDF1dd+/magK!empSin;
1dd-omple.s+/mag%$F1dd+"ealK!empSinFF1dd+/magK!empCos;
FreLuency)i,+"eal%$7FE6en+"ealF1dd-omple.s+"eal8G9;
FreLuency)i,+/mag%$7FE6en+/magF1dd-omple.s+/mag8G9;
FreLuency)iF3alf,+"eal%$7FE6en+"ealD1dd-omple.s+"eal8G9;
FreLuency)iF3alf,+/mag%$7FE6en+/magD1dd-omple.s+/mag8G9;
end;
for i%$* to 9D? do Data)i,%$FreLuency)i,;
end;
procedure De!ransForm;
6ar i,E,3alf,1ddM,E6enM % word;
!wo'/'er3alf,!empSin,!empCos,!emp0ngle % etended;
FreLuency % !-omple.s0rray;
F1dd,FE6en,1dd-omple.s % !-omple.s;
&egin
3alf%$9 shr ?;
!wo'/'er3alf%$!wo'iG3alf;
Set5ength7FreLuency,98;
for i%$* to 3alfD? do
&egin
F1dd+"eal%$*; F1dd+/mag%$*;
FE6en+"eal%$*; FE6en+/mag%$*;
for E%$* to 3alfD? do
&egin
!emp0ngle%$!wo'/'er3alfKiKE;
!empSin%$DSin7!emp0ngle8;
!empCos%$Cos7!emp0ngle8;
E6enM%$2KE;
FE6en+"eal%$FE6en+"ealFData)E6enM,+"ealK!empCosD
Data)E6enM,+/magK!empSin;
FE6en+/mag%$FE6en+/magFData)E6enM,+"ealK!empSinFData)E6enM,+/magK!emp
Cos;
1ddM%$E6enMF?;
F1dd+"eal%$F1dd+"ealFData)1ddM,+"ealK!empCosDData)1ddM,+/magK!empSin;
F1dd+/mag%$F1dd+/magFData)1ddM,+"ealK!empSinFData)1ddM,+/magK!empCos;
end;
!emp0ngle%$!wo'/KiG9;
!empSin%$DSin7!emp0ngle8;
!empCos%$Cos7!emp0ngle8;
1dd-omple.s+"eal%$F1dd+"ealK!empCosDF1dd+/magK!empSin;
1dd-omple.s+/mag%$F1dd+"ealK!empSinFF1dd+/magK!empCos;
FreLuency)i,+"eal%$7FE6en+"ealF1dd-omple.s+"eal8;
FreLuency)i,+/mag%$7FE6en+/magF1dd-omple.s+/mag8;
FreLuency)iF3alf,+"eal%$7FE6en+"ealD1dd-omple.s+"eal8;
FreLuency)iF3alf,+/mag%$7FE6en+/magD1dd-omple.s+/mag8;
end;
for i%$* to 9D? do Data)i,%$FreLuency)i,;
end;
procedure Flip3ori:ontal;
6ar i,E % integer;
Scan % '"G#;
!empd % &yte;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan%$scanline)i,;
for E%$ * to 7Width di6 2D?8 do
&egin
!empd%$Scan()E,+#; Scan()E,+#%$Scan()WidthD?DE,+#; Scan()WidthD?D
E,+#%$!empd;
!empd%$Scan()E,+G; Scan()E,+G%$Scan()WidthD?DE,+G; Scan()WidthD?D
E,+G%$!empd;
!empd%$Scan()E,+"; Scan()E,+"%$Scan()WidthD?DE,+"; Scan()WidthD?D
E,+"%$!empd;
end;
end;
end;
end;
procedure Flip;ertical;
6ar i,E % integer;
Scan?,Scan2 % '"G#;
!empd % &yte;
&egin
with /mage+'icture+#itmap do
&egin
for i%$ * to 73eight di6 2D?8 do
&egin
Scan?%$scanline)i,;
Scan2%$scanline)3eightD?Di,;
for E%$ * to WidthD? do
&egin
!empd%$Scan?()E,+#; Scan?()E,+#%$Scan2()E,+#; Scan2()E,+#%$!empd;
!empd%$Scan?()E,+G; Scan?()E,+G%$Scan2()E,+G; Scan2()E,+G%$!empd;
!empd%$Scan?()E,+"; Scan?()E,+"%$Scan2()E,+"; Scan2()E,+"%$!empd;
end;
end;
end;
end;
procedure Show/mage;
6ar i,E % integer;
Scan;,Scan/ % '"G#;
&egin
/mage;+'icture+#itmap+'ielFormat%$pf2C&it;
/mage;+'icture+#itmap+3eight%$/mage/+'icture+#itmap+3eight;
/mage;+'icture+#itmap+Width%$/mage/+'icture+#itmap+Width;
with /mage/+'icture+#itmap do
&egin
for i%$ * to 3eightD? do
&egin
Scan/%$scanline)i,;
Scan;%$/mage;+'icture+#itmap+Scan5ine)i,;
for E%$ * to WidthD? do
N &egin
if MainForm+Statuswarna# then Scan;()E,+#%$Scan/()E,+# else
Scan;()E,+#%$*;
if MainForm+StatuswarnaG then Scan;()E,+G%$Scan/()E,+G else
Scan;()E,+G%$*;
if MainForm+Statuswarna" then Scan;()E,+"%$Scan/()E,+" else
Scan;()E,+"%$*;
end;O
end;
end;
end;
end+

S-ar putea să vă placă și