/*

This port was made from the FORTRAN code into the NEURON enviroment based on 

	Traub RD, Buhl EH, Gloveli T, Whittington MA. Fast Rhythmic Bursting Can Be Induced in Layer 2/3 Cortical Neurons by Enhancing Persistent Na(+) Conductance or by Blocking BK Channels.J Neurophysiol. 2003 Feb;89(2):909-21.

This port was made by Roger D Traub and Maciej Lazarewicz (mlazarew@seas.upenn.edu)

Thanks to Ashlen P Reid for help with porting a morphology of the cell.

*/

begintemplate pyr3

	public comp, Level1, Level2, Level3,  Level4, Level5, Level6, Level7, Level8, Level9,  Level10, Level11, Level12, Dendrites, Basal, Oblique, Prox, Dist, SD, Soma, Axon, inj1_, injBase_, injOffset_, ihold_, all, set_active, unset_active

	create  comp[75]
	create  aux10to13[4], aux69, aux38, aux2to9[8]

	objref all, Dist, Oblique, Basal, Soma, Axon, Dendrites, SD, Prox
	objref Aux
	objref Level0, Level1, Level2, Level3, Level4, Level5, Level6, Level7, Level8, Level9, Level10, Level11, Level12
	objref inj1_, injBase_, injOffset_, ihold_

	proc init() {
		create  comp[75]
		create  aux10to13[4], aux69, aux38, aux2to9[8]

		comp[0] delete_section()

		objref all, Dist, Oblique, Basal, Soma, Axon, Dendrites, SD, Prox
		objref  Aux
		objref Level0, Level1, Level2, Level3, Level4, Level5, Level6, Level7, Level8, Level9, Level10, Level11, Level12
		objref inj1_, injOffset_, ihold_

		shape()

		geom()
	
		if( name_declared("method") != 5 ) method = 1

		if( method == 1 ) spinecorr()
		
		// for May3 cell: sa 21127
		if ($2==1) {
			forall {diam*=0.888}
			forall {L*=0.888}
			//{sa=0 forall{for(x) sa+=area(x)} print sa}
		}
		
		// for Dec15 cell: sa 18155
		// revised this to: sa 22684
		if ($2==2) {
			forall {diam*=0.724}
			forall {L*=0.724}
			{sa=0 forall{for(x) sa+=area(x)} print sa}
		}
		
		// for Jun24IR2i cell: sa 27232.4 - comes to 27244
		if ($2==3) {
			forall {diam*=0.794}
			forall {L*=0.794}
			{sa=0 forall{for(x) sa+=area(x)} print sa}
		}

		setupIClamp()
		
		// set up an offset current if using Dec15, because in this cell the
		// 0pA recording leads to a positive mem.pot. change, and the -70mV 
		// recording leads to no mem.pot. change, so the injected current is 
		// actually +70pA compared to what is stated...
		
		if ($2==2) {
			//setupOffsetClamp()
		}
		
		//setupSEClamp()
		
		//setupOffset()

		set_active()
		
		// MRFflags 1 2 3 are all setting passive properties
		if ( $1 == 1 || $1 == 2 || $1 == 3 || $1 == 5) { unset_active() }

		if( method == 2 ) spinecorr()
	}

	proc setupIClamp() {

		comp[1] {
			inj1_     = new IClamp(0.5)
			inj1_.dur = 2000
			inj1_.del = 15
			inj1_.amp = -0.15

			dnap = 0
			dkc  = 1.6
		}
		
		comp[1] {
			ihold_		= new IClamp(0.5)
			ihold_.dur	= 2015
			ihold_.del	= -2000
			ihold_.amp	= 0
		}
	}
	
	proc setupOffsetClamp() {
		comp[1] {
			injOffset_     = new IClamp(0.5)
			injOffset_.dur = 2000
			injOffset_.del = 15
			injOffset_.amp = -0.07
		}
	}

	// SE Clamp is an IClamp that holds the resting potential of the 
	// cell at a specific value - i.e. the resting potential of the 
	// cell is not actually -70mV, but it is held there by some 
	// mystery current injection.
	// I'm using OffsetClamp for the moment, because I'm assuming that the 
	// resting potential is actually -70mV, and I don't have the SEClamp set up
	// to do what it is supposed to do, and all I want to do is alter the amount
	// of current being injected by +70mV, without having to change the 
	// configuration in the setupGenerators stage... anyway...
	proc setupSEClamp() {
		comp[1] {
			injBase_     = new IClamp(0.5)
			injBase_.dur = 7015
			injBase_.del = -2000
			injBase_.amp = -0.070
		}
	}

	proc setupOffset() {
		comp[1] {
			insert offst
			Vraise_offst 	= -70.0	
			on_offst 		= 15
			W_offst 		= 5
			we_offst 		= 5
		}
	}

	proc spinecorr() {

		forsec Dendrites {
			if (method == 1) {
				L  = L * 2
				Ra = Ra / 2
			}

			if (method == 2) {
				g_pas	  = g_pas     * 2 
				cm   	  = cm        * 2
				phi_cad   = phi_cad   / 2

				gbar_naf  = gbar_naf  * 2
				gbar_nap  = gbar_nap  * 2
				gbar_kdr  = gbar_kdr  * 2
				gbar_ka   = gbar_ka   * 2
				gbar_kc   = gbar_kc   * 2
				gbar_kahp = gbar_kahp * 2
				gbar_k2   = gbar_k2   * 2
				gbar_km   = gbar_km   * 2
				gbar_cat  = gbar_cat  * 2
				gbar_cal  = gbar_cal  * 2
				gbar_ar   = gbar_ar   * 2
			}
		}

		print "Spine correction with method: ", method
	}

	proc set_active() {

		forsec Dendrites {
			insert cad
			insert naf 
			insert nap 
			insert kdr 
			insert ka 
			insert kc
			insert kahp 
			insert k2 
			insert km 
			insert cat 
			insert cal 
			insert ar
		}

		forsec Soma {
			insert cad
			insert naf 
			insert nap 
			insert kdr 
			insert ka 
			insert kc
			insert kahp 
			insert k2 
			insert km 
			insert cat 
			insert cal 
			insert ar
		}

		forsec Axon {
			insert naf 
			insert kdr 
			insert ka 
			insert k2 

			gbar_naf  = 400e-3 
			gbar_kdr  = 400e-3
			gbar_ka   = 2e-3
			gbar_k2   = 0.1e-3
		}
		
		comp[1] ceiling_cad = 1000

		forsec Soma {
			phi_cad   = 52 / 2e-3
			beta_cad  = 1 / 100	// in the paper beta = 50 [ms]

			gbar_naf  = 150e-3 * 1.25
			gbar_nap  = dnap * 0.0032 * gbar_naf 
			gbar_kdr  = 125e-3
			gbar_ka   = 30e-3
			gbar_kc   = dkc * 7.5e-3 // in tha paper 'dkc * 12e-3'
			gbar_kahp = 0.1e-3
			gbar_k2   = 0.1e-3
			gbar_km   = 2.5 * 1.5e-3 * 2
			gbar_cat  = 0.1e-3
			gbar_cal  = 0.5e-3
			gbar_ar   = 0.25e-3
		}

		forsec Dendrites {
			phi_cad   = 52 / 2e-3
			beta_cad  = 1 / 20

			gbar_naf  = 6.25e-3 
			gbar_nap  = dnap * 0.0032 * gbar_naf 
			gbar_kdr  = 0
			gbar_ka   = 2e-3
			gbar_kc   = 0
			gbar_kahp = 0.1e-3
			gbar_k2   = 0.1e-3
			gbar_km   = 2.5 * 1.5e-3 * 2
			gbar_cat  = 0.1e-3
			gbar_cal  = 0.5e-3
			gbar_ar   = 0.25e-3
		}

		forsec Prox {
			gbar_naf  = 75e-3 * 1.25
			gbar_nap  = dnap * 0.0032 * gbar_naf 
			gbar_kdr  = 75e-3 * 1.25
			gbar_kc   = dkc * 7.5e-3 // in tha paper 'dkc * 12e-3'
		}

		forsec Dist {
			gbar_cal  = 3e-3
		}

		comp[38] {
			gbar_ka   = 30e-3
			gbar_naf  = 125e-3 
			gbar_nap  = dnap * 0.0032 * gbar_naf // in the FORTRAN code 0.004
			gbar_kdr  = 125e-3       // in tha paper '75e-3 * 1.25'
			gbar_kc   = dkc * 7.5e-3 // in tha paper 'dkc * 12e-3'
		}

		forsec Axon {
			ena = 50
			ek  = -95
		}

		forsec Dendrites {
			ena = 50
			ek  = -95
			eca = 125
		}

		forsec Soma {
			ena = 50
			ek  = -95
			eca = 125
		}

	}
	
	proc unset_active() {
		forsec Dendrites {
			//gbar_cad = 0
			gbar_naf = 0
			gbar_nap = 0
			gbar_kdr = 0
			gbar_ka = 0
			gbar_kc = 0
			gbar_kahp = 0
			gbar_k2 = 0
			gbar_km = 0
			gbar_cat = 0
			gbar_cal = 0
			gbar_ar = 0
		}

		forsec Soma {
			//gbar_cad = 0
			gbar_naf = 0
			gbar_nap = 0
			gbar_kdr = 0
			gbar_ka = 0
			gbar_kc = 0
			gbar_kahp = 0
			gbar_k2 = 0
			gbar_km = 0
			gbar_cat = 0
			gbar_cal = 0
			gbar_ar = 0
		}

		forsec Axon {
			gbar_naf = 0
			gbar_kdr = 0
			gbar_ka = 0
			gbar_k2 = 0
		}
	}

	proc geom() {

		//Apical

		for i=61,68 connect comp[i](0),      comp[i-8](1)
		for i=53,60 connect comp[i](0),      comp[i-8](1)
		for i=49,52 connect comp[i](0),      comp[44](1)
		for i=45,48 connect comp[i](0),      comp[43](1)
		for i=43,44 connect comp[i](0),      comp[i-2](1)
		for i=41,42 connect comp[i](0),      comp[40](1)

		connect             comp[40](0),     comp[39](1)
		connect 	    comp[39](0),     comp[38](1)
//		connect 	    comp[38](0),     comp[1](1)
		connect 	    comp[38](0),     aux38(1)
		connect		    aux38(0),        comp[1](0.5)

		// Oblique apical

		for i=0,3 connect   aux10to13[i](0), comp[38](0.5)
		for i=0,3 connect   comp[i+10](0),   aux10to13[i](1)
//		for i=0,3 connect   comp[i+10](0),   comp[38](0.5)
		for i=0,3 connect   comp[i+22](0),   comp[i+10](1)
		for i=0,3 connect   comp[i+34](0),   comp[i+22](1)

		// Basal

		for i=0,7 connect   aux2to9[i](0),   comp[1](0.5)
		for i=0,7 connect   comp[i+2](0),    aux2to9[i](1)
//		for i=0,7 connect   comp[i+2](0),    comp[1](0)
		for i=0,7 connect   comp[i+14](0),   comp[i+2](1)
		for i=0,7 connect   comp[i+26](0),   comp[i+14](1)

		// Axon
		connect             aux69(0),        comp[1](0.5)
		connect             comp[69](0),     aux69(1)
//		connect             comp[69](0),     comp[1](0.5)
		connect             comp[70](0),     comp[69](1)
		for i=0,1 connect   comp[71+i*2](0), comp[70](1)
		for i=0,1 connect   comp[72+i*2](0), comp[71+i*2](1)

		Level0 = new SectionList()
		 for i=69,74 comp[i] Level0.append()    

		Level1 = new SectionList()
		comp[1] Level1.append()    

		Level2 = new SectionList()
		 for i=2,13 comp[i] Level2.append()    

		Level3 = new SectionList()
		 for i=14,25 comp[i] Level3.append()

		Level4 = new SectionList()
		 for i=26,37 comp[i] Level4.append()

		Level5 = new SectionList()
		 comp[38] Level5.append()

		Level6 = new SectionList()
		 comp[39] Level6.append()

		Level7 = new SectionList()
		 comp[40] Level7.append()

		Level8 = new SectionList()
		 for i=41,42 comp[i] Level8.append()

		Level9 = new SectionList()
		 for i=43,44 comp[i] Level9.append()

		Level10 = new SectionList()
		 for i=45,52 comp[i] Level10.append()

		Level11 = new SectionList()
		 for i=53,60 comp[i] Level11.append()

		Level12 = new SectionList()
		 for i=60,68 comp[i] Level12.append()

		all = new SectionList()
		 for i=1,74 comp[i] all.append()

		Axon = new SectionList()
		 for i=69,74 comp[i] Axon.append()

		Dendrites = new SectionList()
		 for i=2,68 comp[i] Dendrites.append()

		SD = new SectionList()
		 for i=1,68 comp[i] SD.append()

		Dist = new SectionList()
		 forsec Level10 Dist.append()
		 forsec Level11 Dist.append()
		 forsec Level12 Dist.append()

		Basal = new SectionList()
		 for i=2,9 comp[i] Basal.append()
		 for i=14,21 comp[i] Basal.append()
		 for i=26,33 comp[i] Basal.append()

		Oblique = new SectionList()
		 for i=10,13 comp[i] Oblique.append()
		 for i=22,25 comp[i] Oblique.append()
		 for i=34,37 comp[i] Oblique.append()

		Prox = new SectionList()
		 forsec Level2 Prox.append()
		 forsec Level6 Prox.append()

		Soma = new SectionList()
		 comp[1] Soma.append()

		Aux = new SectionList()
		 for i=0,3 aux10to13[i] Aux.append()
		 aux69 Aux.append()
		 aux38 Aux.append()
		 for i=0,7 aux2to9[i] Aux.append()

		forsec Dist 		{  		diam = 1.6  	}
		forsec Oblique 		{  		diam = 1  	}
		forsec Basal 		{  		diam = 1  	}
		forsec Soma 		{  L = 15  	diam = 16  	}
		forsec Dendrites 	{  L = 50  			}
		forsec Aux 	 	{  L = 15 / 2  	diam = 16 	}
		for i=0,3 aux10to13[i]	{  L = 50 / 2  	diam = 8 	}

		comp[38]    		{ 		diam = 8  	}
		comp[39] 		{  		diam = 8 * 0.9 	}
		comp[40] 		{  		diam = 8 * 0.8 	}
		forsec Level8 		{  		diam = 4  	}
		forsec Level9 		{  		diam = 4  	}

		comp[69]    		{  L = 25  	diam = 1.8 	}
		comp[70]    		{  L = 50  	diam = 1.4 	}
		for i=71,74 comp[i] 	{  L = 50  	diam = 1  	}

		forsec Aux {
			Ra = 250
			cm = 0
		}	

		forsec Soma {
		  Ra = 250
		  cm = 0.9
		  insert pas
		    g_pas = 2e-05
		    e_pas = -70
		}

		forsec Axon {
		  Ra = 100
		  cm = 0.9
		  insert pas
		    g_pas = 0.001
		    e_pas = -70
		}

		forsec Dendrites {
		  Ra = 250
		  cm = 0.9
		  insert pas
		    g_pas = 2e-05
		    e_pas = -70
		}

		access comp[1]
	}

	proc shape() {

		aux10to13[0] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux10to13[1] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux10to13[2] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux10to13[3] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux69		{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux38		{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[0]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[1]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[2]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[3]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[4]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[5]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[6]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[7]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}

		comp[1] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		comp[38] {pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		comp[39] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-74, -14, 0, 1)}
		comp[40] {pt3dclear() pt3dadd(-74, -14, 0, 1) pt3dadd(-44, -14, 0, 1)}

		comp[41] {pt3dclear() pt3dadd(-44, -14, 0, 1) pt3dadd(-14, 30, 0, 1)}
		comp[43] {pt3dclear() pt3dadd(-14, 30, 0, 1) pt3dadd(0, 45, 0, 1)}

		comp[45] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 75, 0, 1)}
		comp[46] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 60, 0, 1)}
		comp[47] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 30, 0, 1)}
		comp[48] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 15, 0, 1)}

		comp[53] {pt3dclear() pt3dadd(45, 75, 0, 1) pt3dadd(75, 75, 0, 1)}
		comp[54] {pt3dclear() pt3dadd(45, 60, 0, 1) pt3dadd(75, 60, 0, 1)}
		comp[55] {pt3dclear() pt3dadd(45, 30, 0, 1) pt3dadd(75, 30, 0, 1)}
		comp[56] {pt3dclear() pt3dadd(45, 15, 0, 1) pt3dadd(75, 15, 0, 1)}

		comp[61] {pt3dclear() pt3dadd(75, 75, 0, 1) pt3dadd(90, 90, 0, 1)}
		comp[62] {pt3dclear() pt3dadd(75, 60, 0, 1) pt3dadd(90, 75, 0, 1)}
		comp[63] {pt3dclear() pt3dadd(75, 30, 0, 1) pt3dadd(90, 15, 0, 1)}
		comp[64] {pt3dclear() pt3dadd(75, 15, 0, 1) pt3dadd(90, 0, 0, 1)}

		comp[42] {pt3dclear() pt3dadd(-44, -14, 0, 1) pt3dadd(-14, -59, 0, 1)}
		comp[44] {pt3dclear() pt3dadd(-14, -59, 0, 1) pt3dadd(0, -74, 0, 1)}

		comp[49] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -44, 0, 1)}
		comp[50] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -59, 0, 1)}
		comp[51] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -89, 0, 1)}
		comp[52] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -104, 0, 1)}

		comp[57] {pt3dclear() pt3dadd(45, -44, 0, 1) pt3dadd(75, -44, 0, 1)}
		comp[58] {pt3dclear() pt3dadd(45, -59, 0, 1) pt3dadd(75, -59, 0, 1)}
		comp[59] {pt3dclear() pt3dadd(45, -89, 0, 1) pt3dadd(75, -89, 0, 1)}
		comp[60] {pt3dclear() pt3dadd(45, -104, 0, 1) pt3dadd(75, -104, 0, 1)}

		comp[65] {pt3dclear() pt3dadd(75, -44, 0, 1) pt3dadd(90, -29, 0, 1)}
		comp[66] {pt3dclear() pt3dadd(75, -59, 0, 1) pt3dadd(90, -44, 0, 1)}
		comp[67] {pt3dclear() pt3dadd(75, -89, 0, 1) pt3dadd(90, -104, 0, 1)}
		comp[68] {pt3dclear() pt3dadd(75, -104, 0, 1) pt3dadd(90, -119, 0, 1)}

		comp[10] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-119, 0, 0, 1)}
		comp[22] {pt3dclear() pt3dadd(-119, 0, 0, 1) pt3dadd(-119, 30, 0, 1)}
		comp[34] {pt3dclear() pt3dadd(-119, 30, 0, 1) pt3dadd(-119, 60, 0, 1)}
		comp[11] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-89, 0, 0, 1)}
		comp[23] {pt3dclear() pt3dadd(-89, 0, 0, 1) pt3dadd(-89, 30, 0, 1)}
		comp[35] {pt3dclear() pt3dadd(-89, 30, 0, 1) pt3dadd(-89, 60, 0, 1)}
		comp[12] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-119, -29, 0, 1)}
		comp[24] {pt3dclear() pt3dadd(-119, -29, 0, 1) pt3dadd(-119, -59, 0, 1)}
		comp[36] {pt3dclear() pt3dadd(-119, -59, 0, 1) pt3dadd(-119, -89, 0, 1)}
		comp[13] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-89, -29, 0, 1)}
		comp[25] {pt3dclear() pt3dadd(-89, -29, 0, 1) pt3dadd(-89, -59, 0, 1)}
		comp[37] {pt3dclear() pt3dadd(-89, -59, 0, 1) pt3dadd(-89, -89, 0, 1)}
		comp[2] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-164, 30, 0, 1)}
		comp[14] {pt3dclear() pt3dadd(-164, 30, 0, 1) pt3dadd(-179, 45, 0, 1)}
		comp[26] {pt3dclear() pt3dadd(-179, 45, 0, 1) pt3dadd(-194, 60, 0, 1)}
		comp[3] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-179, 30, 0, 1)}
		comp[15] {pt3dclear() pt3dadd(-179, 30, 0, 1) pt3dadd(-194, 45, 0, 1)}
		comp[27] {pt3dclear() pt3dadd(-194, 45, 0, 1) pt3dadd(-209, 60, 0, 1)}
		comp[4] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, 15, 0, 1)}
		comp[16] {pt3dclear() pt3dadd(-194, 15, 0, 1) pt3dadd(-209, 30, 0, 1)}
		comp[28] {pt3dclear() pt3dadd(-209, 30, 0, 1) pt3dadd(-224, 45, 0, 1)}
		comp[5] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, 0, 0, 1)}
		comp[17] {pt3dclear() pt3dadd(-194, 0, 0, 1) pt3dadd(-209, 15, 0, 1)}
		comp[29] {pt3dclear() pt3dadd(-209, 15, 0, 1) pt3dadd(-224, 30, 0, 1)}
		comp[6] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, -29, 0, 1)}
		comp[18] {pt3dclear() pt3dadd(-194, -29, 0, 1) pt3dadd(-209, -44, 0, 1)}
		comp[30] {pt3dclear() pt3dadd(-209, -44, 0, 1) pt3dadd(-224, -59, 0, 1)}
		comp[7] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-164, -59, 0, 1)}
		comp[19] {pt3dclear() pt3dadd(-164, -59, 0, 1) pt3dadd(-179, -74, 0, 1)}
		comp[31] {pt3dclear() pt3dadd(-179, -74, 0, 1) pt3dadd(-194, -89, 0, 1)}
		comp[8] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, -44, 0, 1)}
		comp[20] {pt3dclear() pt3dadd(-194, -44, 0, 1) pt3dadd(-209, -59, 0, 1)}
		comp[32] {pt3dclear() pt3dadd(-209, -59, 0, 1) pt3dadd(-224, -74, 0, 1)}
		comp[9] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-179, -59, 0, 1)}
		comp[21] {pt3dclear() pt3dadd(-179, -59, 0, 1) pt3dadd(-194, -74, 0, 1)}
		comp[33] {pt3dclear() pt3dadd(-194, -74, 0, 1) pt3dadd(-209, -89, 0, 1)}
		comp[69] {pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-134, -44, 0, 1)}
		comp[70] {pt3dclear() pt3dadd(-134, -44, 0, 1) pt3dadd(-134, -74, 0, 1)}
		comp[71] {pt3dclear() pt3dadd(-134, -74, 0, 1) pt3dadd(-149, -89, 0, 1)}
		comp[72] {pt3dclear() pt3dadd(-149, -89, 0, 1) pt3dadd(-149, -129, 0, 1)}
		comp[73] {pt3dclear() pt3dadd(-134, -74, 0, 1) pt3dadd(-134, -104, 0, 1)}
		comp[74] {pt3dclear() pt3dadd(-134, -104, 0, 1) pt3dadd(-134, -134, 0, 1)}
	}

endtemplate pyr3