(sqrt2) 2. .5 .exp .def 
(sqrt3/2) 3. .5 .exp 2. .div .def 
(k1) 8 sqrt2 .sub .def 

(loadski)
((v3ops.jam) .run (circlepatches.jam) .run (borders.jam)  .run)
.cvx .def

(white)(0 0 255 .color 0 .texture).cvx .def
(black)(0 0 0 .color -1 .texture).cvx .def

(k)
(.startpath
1 0 .enterpoint
0 2 .enterpoint
0 10 .enterpoint
2 10 .enterpoint
3 8.5 .enterpoint
4.5 10 .enterpoint
7 10  .enterpoint
3 6  .enterpoint
7 2 .enterpoint
6 1 .enterpoint
5 1 .enterpoint
2 4 .enterpoint
2 2 .enterpoint
3 0 .enterpoint
.drawarea).cvx .def

(sdivot)
(.startpath 
0 10 .enterpoint
2.5 10 .enterpoint
1 8.5 .enterpoint 
.drawarea) .cvx .def

(i)
(.startpath
0 0 .enterpoint
2 2  .enterpoint
2 4 .enterpoint
0 6 .enterpoint
0 7 .enterpoint
1 8 .enterpoint
2 7 .enterpoint
4 7 .enterpoint 
4 2 .enterpoint
5 0 .enterpoint
2.5 0 .enterpoint
1 -1.5 .enterpoint
.drawarea
.startpath
2 10 .enterpoint
4 10 .enterpoint
4 9 .enterpoint
3 8 .enterpoint
.drawarea) .cvx .def

(s)
(.startpath
1 0 .enterpoint
0 2 .enterpoint
0 4 .enterpoint
3 1 .enterpoint 
4 1 .enterpoint
5 2 .enterpoint
1 6 .enterpoint
5 10 .enterpoint
7 10 .enterpoint
8 8 .enterpoint
9 9 .enterpoint
9 7 .enterpoint
7 7 .enterpoint
6 8 .enterpoint
5 7 .enterpoint
5 6 .enterpoint
7 4 .enterpoint
7 2 .enterpoint
5 0 .enterpoint
 .drawarea) .cvx .def


(ski)
(.pushdc -10 0 .translate s 9 0 .translate k 7 0 .translate i .popdc).cvx .def

(skip)
(.pushdc -10 -10 .translate s 9 0 .translate k 7 0 .translate i .popdc).cvx .def

(skif)
(.pushdc -10 0 .translate s sdivot 9 0 .translate k  7 0 .translate i .popdc).cvx .def



(skis)
(.pushdc .pushdc 9 (ski 22 0 .translate).cvx .rept .popdc  6 10 .translate 
4 (.pushdc 9 (ski 22 0 .translate).cvx .rept .popdc 6 10 .translate).cvx .rept 
.pushdc 9 (ski 22 0 .translate).cvx .rept .popdc  6 10 .translate 
4 (.pushdc 9 (ski 22 0 .translate).cvx .rept .popdc 6 10 .translate) .cvx .rept .popdc).cvx .def

(sc)  36 10. .div  .def

(sskis)
(replace .paint 
.pushdc
black
skiborder
sbclip
1.75 72 .mul  6.75 72 .mul  .translate
sc sc .scale .pushdc 
black
0 0 1000 -1000 .drawboxarea
black
ski1
.popdc
.pushdc
white
ski2
.popdc
.pushdc
white
(sl) 1 .def
(sd) 1. 8 .div .def
(tl) -30 .def
.pushdc 59 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load sd .sub .def
.pushdc 50 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load sd .sub .def
.pushdc 44 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load sd .sub .def
.pushdc 51 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load sd .sub .def
.pushdc 59 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load sd .sub .def
.pushdc 65 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 9.6 sl .mul .sub .def
(sl) .dup .load sd .sub .def
.pushdc 71 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 75 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 77 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 79 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 79 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 78 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 77 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 75 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 73 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 71 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 69 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 67 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 65 tl .translate sl sl .scale twoskis .popdc 
(tl) .dup .load 10. sl .mul .sub .def
(sl) .dup .load .94 .mul .def
.pushdc 63 tl .translate sl sl .scale twoskis .popdc 
.popdc
.popdc 
240 93 .translate
skier).cvx .def

(tskis)
(replace .paint 
150 150 .translate 
.3 .3 .scale
skiborder
1.75 72 .mul  6.75 72 .mul  .translate
sc sc .scale .pushdc 0 0 0 .color -1 .texture
0 0 1000 1000 .drawboxarea
0 0 255 .color 0 .texture
ski1
.popdc
.pushdc
0 0 0 .color -1 .texture
ski2
.popdc).cvx .def

(ski1)
((sks) .85 .def
.pushdc .pushdc 7 (ski 22 0 .translate).cvx .rept .popdc 
-38 10 .translate 
.pushdc 7 (ski 22 0 .translate).cvx .rept .popdc 
6 20 .translate
4 (.pushdc 7 (.pushdc sks sks .scale skip .popdc 22 0 .translate).cvx .rept .popdc 6 10 .translate (sks) .dup .load sks .mul .def).cvx .rept .popdc).cvx .def

(ski2)
((sks) .85 .def
.pushdc -61 -10 .translate 
.pushdc 8 (skif 22 0 .translate).cvx .rept .popdc 
16 -10 .translate
.pushdc 7 (ski 22 0 .translate).cvx .rept .popdc 
16 -10 .translate
.pushdc 
44 0 .translate 
2 (.pushdc sks sks .scale ski .popdc 22 0 .translate).cvx .rept .popdc 
16 -10 .translate (sks) .dup .load sks  .mul .def
.pushdc 
44 0 .translate 
1 (.pushdc sks sks .scale ski .popdc 22 0 .translate).cvx .rept .popdc 
.popdc).cvx .def
 
(skg) .85 .def

(twoskis)
(.pushdc smski 22 0 .translate smski .popdc).cvx .def
 
(smski)
(.pushdc skg skg .scale ski .popdc).cvx .def
 
(llsbx) 1.75 72. .mul .def
 (llsby)  .5 72 .mul .def
 (ursbx) 6.75 72 .mul .def
 (ursby) 10.5 72 .mul .def
 (sbrad) .5 72 .mul .def
 (sbthick) 6 .def
 (sbthickd) sbthick .001 .sub .def

(skiborder)
(sbrad sbthick startclosedborder
llsbx llsby borderpoint
llsbx ursby borderpoint
ursbx ursby borderpoint
ursbx llsby borderpoint
endborder
).cvx .def


(sbclip)
(.startpath
.pushdc
llsbx sbrad .add llsby sbrad .add .translate
180 270 sbrad sbthick 2. .div .sub 18 (.enterpoint).cvx narc
.popdc
.pushdc
llsbx sbrad .add ursby sbrad .sub .translate
90 180 sbrad sbthick 2. .div .sub 18 (.enterpoint).cvx narc
.popdc
.pushdc
ursbx sbrad .sub ursby sbrad .sub .translate
0 90  sbrad sbthick 2. .div .sub 18 (.enterpoint).cvx narc
.popdc
.pushdc
ursbx sbrad .sub llsby sbrad .add .translate
270 360  sbrad sbthick 2. .div .sub 18 (.enterpoint).cvx narc
.popdc .cliparea
).cvx .def