proc capture
	filen	capture.icn
	local	0,001000,p
	local	1,001000,x
	local	2,000020,keepxi
	local	3,000020,xi
	local	4,000020,y
	local	5,000040,f
	local	6,000000,type
	local	7,000000,runerr
	local	8,000000,put
	local	9,000000,push
	local	10,000000,write
	local	11,000000,write_capture_
	local	12,000000,writes
	local	13,000000,writes_capture_
	local	14,000000,stop
	local	15,000000,stop_capture_
	con	0,010000,9,160,162,157,143,145,144,165,162,145
	con	1,002000,3,500
	con	2,002000,1,1
	con	3,010000,4,146,151,154,145
	con	4,002000,1,0
	con	5,010000,4,156,165,154,154
	declend
	line	89
	colm	11
	mark	L1
	mark0
	var	6
	var	0
	line	97
	colm	10
	invoke	1
	eret
	mark	L3
	ccase
	str	0
	line	99
	colm	16
	eqv
	unmark
	pop
	mark	L4
	var	7
	pnull
	var	5
	line	103
	colm	14
	null
	pop
	int	1
	line	103
	colm	13
	invoke	1
	unmark
lab L4
	mark	L5
	pnull
	var	2
	int	2
	line	105
	colm	14
	asgn
	unmark
lab L5
	mark	L6
	pnull
	var	4
	pnull
	line	106
	colm	12
	llist	0
	line	106
	colm	9
	asgn
	unmark
lab L6
	mark	L7
	mark0
	pnull
	var	3
	pnull
	var	1
	line	108
	colm	19
	bang
	line	108
	colm	16
	asgn
	pop
	mark0
	mark	L10
	pnull
	var	3
	line	110
	colm	20
	keywd	output
	line	110
	colm	16
	eqv
	unmark
	pnull
	var	2
	int	2
	line	111
	colm	20
	asgn
	goto	L11
lab L10
	mark	L12
	pnull
	var	6
	var	3
	line	113
	colm	20
	invoke	1
	str	3
	line	113
	colm	25
	lexeq
	unmark
	pnull
	var	2
	line	114
	colm	26
	keywd	null
	line	114
	colm	23
	asgn
	goto	L13
lab L12
	mark0
	pnull
	var	2
	line	116
	colm	19
	nonnull
	unmark
	var	8
	var	4
	var	3
	line	117
	colm	22
	invoke	2
lab L13
lab L11
	unmark
lab L8
	efail
lab L9
	unmark
lab L7
	mark0
	mark	L14
	pnull
	pnull
	var	4
	line	120
	colm	12
	size
	int	4
	line	120
	colm	15
	numgt
	esusp
	goto	L15
lab L14
	pnull
	pnull
	var	1
	line	120
	colm	25
	size
	int	4
	line	120
	colm	28
	numeq
lab L15
	unmark
	mark	L16
	var	9
	var	4
	var	5
	line	122
	colm	14
	invoke	2
	unmark
lab L16
	mark	L17
	int	2
	var	0
	var	4
	invoke	-1
	pnull
	var	4
	line	123
	colm	30
	keywd	null
	line	123
	colm	27
	asgn
	line	123
	colm	18
	invoke	2
	line	123
	colm	10
	pret
lab L17
	pfail
	goto	L2
lab L3
	mark	L18
	ccase
	str	5
	line	127
	colm	13
	eqv
	unmark
	pop
	mark	L19
	pnull
	var	5
	line	131
	colm	10
	null
	unmark
	line	132
	colm	10
	pfail
	goto	L20
lab L19
	mark	L21
	pnull
	line	134
	colm	10
	pret
lab L21
	pfail
lab L20
	goto	L2
lab L18
	mark	L22
	ccase
	str	3
	line	138
	colm	11
	eqv
	unmark
	pop
	mark	L23
	mark0
	pnull
	var	5
	line	145
	colm	10
	null
	unmark
	mark	L24
	pnull
	var	10
	var	11
	line	147
	colm	17
	swap
	unmark
lab L24
	mark	L25
	pnull
	var	12
	var	13
	line	148
	colm	17
	swap
	unmark
lab L25
	pnull
	var	14
	var	15
	line	149
	colm	17
	swap
	unmark
lab L23
	mark	L26
	pnull
	var	5
	var	0
	line	151
	colm	16
	asgn
	line	151
	colm	7
	pret
lab L26
	pfail
	goto	L2
lab L22
	efail
lab L2
	unmark
lab L1
	pnull
	line	154
	colm	1
	pfail
	end
proc write_capture_
	local	0,001000,x
	local	1,000020,tr
	local	2,000000,capture
	local	3,000000,write_capture_
	con	0,002000,1,0
	con	1,002000,1,1
	declend
	line	159
	colm	11
	mark	L1
	pnull
	var	1
	line	162
	colm	7
	keywd	trace
	line	162
	colm	4
	asgn
	unmark
lab L1
	mark	L2
	pnull
	line	162
	colm	16
	keywd	trace
	int	0
	line	162
	colm	23
	asgn
	unmark
lab L2
	mark	L3
	var	2
	var	3
	var	0
	line	163
	colm	8
	invoke	2
	unmark
lab L3
	mark	L4
	mark	L5
	int	1
	var	3
	var	0
	invoke	-1
	pnull
	line	164
	colm	29
	keywd	trace
	var	1
	line	164
	colm	36
	asgn
	line	164
	colm	9
	invoke	2
	line	164
	colm	1
	pret
lab L5
	pfail
	unmark
lab L4
	pnull
	line	165
	colm	1
	pfail
	end
proc writes_capture_
	local	0,001000,x
	local	1,000020,tr
	local	2,000000,capture
	local	3,000000,writes_capture_
	con	0,002000,1,0
	con	1,002000,1,1
	declend
	line	167
	colm	11
	mark	L1
	pnull
	var	1
	line	170
	colm	7
	keywd	trace
	line	170
	colm	4
	asgn
	unmark
lab L1
	mark	L2
	pnull
	line	170
	colm	16
	keywd	trace
	int	0
	line	170
	colm	23
	asgn
	unmark
lab L2
	mark	L3
	var	2
	var	3
	var	0
	line	171
	colm	8
	invoke	2
	unmark
lab L3
	mark	L4
	mark	L5
	int	1
	var	3
	var	0
	invoke	-1
	pnull
	line	172
	colm	30
	keywd	trace
	var	1
	line	172
	colm	37
	asgn
	line	172
	colm	9
	invoke	2
	line	172
	colm	1
	pret
lab L5
	pfail
	unmark
lab L4
	pnull
	line	173
	colm	1
	pfail
	end
proc stop_capture_
	local	0,001000,x
	local	1,000020,tr
	local	2,000000,capture
	local	3,000000,write_capture_
	local	4,000000,stop_capture_
	con	0,002000,1,0
	con	1,002000,1,1
	declend
	line	175
	colm	11
	mark	L1
	pnull
	var	1
	line	178
	colm	7
	keywd	trace
	line	178
	colm	4
	asgn
	unmark
lab L1
	mark	L2
	pnull
	line	178
	colm	16
	keywd	trace
	int	0
	line	178
	colm	23
	asgn
	unmark
lab L2
	mark	L3
	var	2
	var	3
	var	0
	line	179
	colm	8
	invoke	2
	unmark
lab L3
	mark	L4
	mark	L5
	int	1
	var	4
	var	0
	invoke	-1
	pnull
	line	180
	colm	28
	keywd	trace
	var	1
	line	180
	colm	35
	asgn
	line	180
	colm	9
	invoke	2
	line	180
	colm	1
	pret
lab L5
	pfail
	unmark
lab L4
	pnull
	line	181
	colm	1
	pfail
	end
proc uncaptured_write
	local	0,001000,x
	local	1,000020,tr
	local	2,000000,capture
	local	3,000000,write_capture_
	local	4,000000,write
	con	0,002000,1,0
	con	1,002000,1,1
	declend
	line	183
	colm	11
	mark	L1
	pnull
	var	1
	line	186
	colm	7
	keywd	trace
	line	186
	colm	4
	asgn
	unmark
lab L1
	mark	L2
	pnull
	line	186
	colm	16
	keywd	trace
	int	0
	line	186
	colm	23
	asgn
	unmark
lab L2
	mark	L3
	mark	L4
	int	1
	mark	L5
	var	2
	line	187
	colm	20
	invoke	0
	pop
	var	3
	esusp
	goto	L6
lab L5
	var	4
lab L6
	var	0
	invoke	-1
	pnull
	line	187
	colm	53
	keywd	trace
	var	1
	line	187
	colm	60
	asgn
	line	187
	colm	9
	invoke	2
	line	187
	colm	1
	pret
lab L4
	pfail
	unmark
lab L3
	pnull
	line	188
	colm	1
	pfail
	end
proc uncaptured_writes
	local	0,001000,x
	local	1,000020,tr
	local	2,000000,capture
	local	3,000000,writes_capture_
	local	4,000000,writes
	con	0,002000,1,0
	con	1,002000,1,1
	declend
	line	190
	colm	11
	mark	L1
	pnull
	var	1
	line	193
	colm	7
	keywd	trace
	line	193
	colm	4
	asgn
	unmark
lab L1
	mark	L2
	pnull
	line	193
	colm	16
	keywd	trace
	int	0
	line	193
	colm	23
	asgn
	unmark
lab L2
	mark	L3
	mark	L4
	int	1
	mark	L5
	var	2
	line	194
	colm	20
	invoke	0
	pop
	var	3
	esusp
	goto	L6
lab L5
	var	4
lab L6
	var	0
	invoke	-1
	pnull
	line	194
	colm	55
	keywd	trace
	var	1
	line	194
	colm	62
	asgn
	line	194
	colm	9
	invoke	2
	line	194
	colm	1
	pret
lab L4
	pfail
	unmark
lab L3
	pnull
	line	195
	colm	1
	pfail
	end
proc uncaptured_stop
	local	0,001000,x
	local	1,000020,tr
	local	2,000000,capture
	local	3,000000,stop_capture_
	local	4,000000,stop
	con	0,002000,1,0
	con	1,002000,1,1
	declend
	line	197
	colm	11
	mark	L1
	pnull
	var	1
	line	200
	colm	7
	keywd	trace
	line	200
	colm	4
	asgn
	unmark
lab L1
	mark	L2
	pnull
	line	200
	colm	16
	keywd	trace
	int	0
	line	200
	colm	23
	asgn
	unmark
lab L2
	mark	L3
	mark	L4
	int	1
	mark	L5
	var	2
	line	201
	colm	20
	invoke	0
	pop
	var	3
	esusp
	goto	L6
lab L5
	var	4
lab L6
	var	0
	invoke	-1
	pnull
	line	201
	colm	51
	keywd	trace
	var	1
	line	201
	colm	58
	asgn
	line	201
	colm	9
	invoke	2
	line	201
	colm	1
	pret
lab L4
	pfail
	unmark
lab L3
	pnull
	line	202
	colm	1
	pfail
	end
