This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: text/plain; charset="iso-8859-1" Here, I hope, is Meek. Bruce <> <> <> <> <> <> <> <> <> <> <> <> <> <> ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="MEEK.COM" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="MEEK.COM" 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 ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-8.H-W" Content-Disposition: attachment; filename="STV-8.H-W" 10 3 10 1 2 3 4 5 6 7 8 9 10 0 10 2 3 4 6 7 1 5 8 9 10 0 10 3 4 5 6 7 1 2 8 9 10 0 10 4 5 1 2 3 6 7 8 9 10 0 10 5 6 7 1 2 3 4 8 9 10 0 10 6 1 2 3 4 5 7 8 9 10 0 10 7 1 2 3 4 5 6 8 9 10 0 23 8 10 9 7 6 4 5 3 2 1 0 23 9 10 8 7 6 1 2 3 4 5 0 23 10 9 8 7 6 1 5 4 3 2 0 0 "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "STV-8" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-4.H-W" Content-Disposition: attachment; filename="STV-4.H-W" 9 7 3 1 9 2 3 4 5 6 7 8 0 3 2 9 3 4 5 6 7 8 1 0 3 3 9 4 5 6 7 8 2 1 0 3 4 9 5 6 7 8 3 2 1 0 3 5 9 4 3 2 1 6 7 8 0 3 6 9 5 4 3 2 1 7 8 0 3 7 9 6 5 4 3 2 1 8 0 3 8 9 7 6 5 4 3 2 1 0 1 9 1 2 3 4 5 6 7 8 0 1 9 8 7 6 5 4 3 2 1 0 0 "A" "B" "C" "D" "E" "F" "G" "H" "I" "STV-4" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-6.H-W" Content-Disposition: attachment; filename="STV-6.H-W" 4 3 40 1 2 3 4 0 20 2 1 3 4 0 50 3 4 2 1 0 10 4 3 2 1 0 0 "A" "B" "C" "D" "STV-6" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-5.H-W" Content-Disposition: attachment; filename="STV-5.H-W" 5 3 20 1 2 3 4 5 0 10 2 1 3 4 5 0 30 3 1 2 4 5 0 30 4 1 2 3 5 0 30 5 1 2 3 4 0 0 "A" "B" "C" "D" "E" "STV-5" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-3.H-W" Content-Disposition: attachment; filename="STV-3.H-W" 8 6 3 1 2 3 4 8 5 6 7 0 3 2 3 4 8 1 5 6 7 0 3 3 2 4 8 1 5 6 7 0 3 4 8 5 6 7 3 2 1 0 3 5 6 4 8 7 3 2 1 0 3 6 5 4 8 7 3 2 1 0 3 7 6 5 4 8 3 2 1 0 1 8 1 2 3 4 5 6 7 0 1 8 7 6 5 4 3 2 1 0 0 "A" "B" "C" "D" "E" "F" "G" "H" "STV-3" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-2.H-W" Content-Disposition: attachment; filename="STV-2.H-W" 11 7 4 1 2 3 4 5 6 7 9 10 11 8 0 4 2 3 1 4 5 6 7 9 10 11 8 0 4 3 1 2 5 6 7 4 9 10 11 8 0 4 9 8 11 10 7 6 5 3 2 1 4 0 4 10 8 11 9 6 7 5 3 2 1 4 0 4 11 8 10 9 7 6 5 3 2 1 4 0 0 "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "STV-2" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-1.H-W" Content-Disposition: attachment; filename="STV-1.H-W" 11 7 4 1 2 3 4 7 6 5 8 9 10 11 0 4 2 3 4 1 7 6 5 8 9 10 11 0 4 3 4 1 2 7 6 5 8 9 10 11 0 4 4 1 2 3 6 5 8 7 9 10 11 0 4 10 9 11 8 5 6 4 3 2 1 7 0 4 11 9 10 8 5 6 4 3 2 1 7 0 0 "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "STV-1" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="STV-7.H-W" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="STV-7.H-W" NSAgMw0KMzMgIDEgIDIgIDMgIDQgIDUgIDANCjI2ICAxICAzICAyICA0ICA1ICAwDQozNyAgMiAg MyAgMSAgNCAgNSAgMA0KMzYgIDMgIDIgIDEgIDQgIDUgIDANCjI0ICA0ICA1ICAzICAyICAxICAw DQoyNCAgNSAgNCAgMyAgMiAgMSAgMA0KMA0KIkEiDQoiQiINCiJDIg0KIkQiDQoiRSINCiJTVFYt NyINCgBAlwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCXAQAAAAAAAAAAAAAAAAAAAAAA AAAA ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="NB.HF" Content-Disposition: attachment; filename="NB.HF" 11 6 105 2 0 91 3 0 90 4 0 81 5 0 55 8 0 11 1 0 9 1 2 0 3 1 3 0 14 1 4 0 34 1 5 0 1 1 8 0 64 6 0 2 11 2 0 4 11 3 0 1 11 4 0 10 11 8 0 1 11 0 1 1 11 5 0 1 1 11 0 3 9 3 0 2 10 3 0 2 9 4 0 2 10 4 0 2 9 6 0 1 10 6 0 2 9 8 0 1 10 8 0 1 10 0 3 1 9 3 0 4 1 10 3 0 3 1 9 4 0 5 1 10 4 0 3 1 9 6 0 3 1 10 6 0 4 1 9 8 0 6 1 10 8 0 9 1 9 0 10 1 10 0 2 9 5 3 0 1 9 5 4 0 2 10 5 6 0 2 10 5 8 0 15 9 5 0 11 10 5 0 4 1 7 0 1 10 7 4 0 3 1 9 7 0 3 1 10 7 0 1 10 5 7 6 0 11 7 6 0 5 11 7 8 0 36 7 8 0 12 7 0 0 "Smith" "Duke" "Prince" "Freeman" "Carpenter" "Baron" "Abbot" "Vicar" "Wright" "Glazier" "Monk" "ERS Model" ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="NB.OUT" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="NB.OUT" Number of Candidates =3D 11 Number of Seats =3D 5 ERS Model =20 Table: 1 Quota: 125.50 Candidate Retain Transfer Votes Smith 100.0% 0.0% 134.00 Newly Elected Duke 100.0% 0.0% 105.00 =20 Prince 100.0% 0.0% 91.00 =20 Freeman 100.0% 0.0% 90.00 =20 Carpenter 100.0% 0.0% 81.00 =20 Baron 100.0% 0.0% 64.00 =20 Abbot 100.0% 0.0% 59.00 =20 Vicar 100.0% 0.0% 55.00 =20 Wright 100.0% 0.0% 27.00 =20 Glazier 100.0% 0.0% 24.00 =20 Monk 100.0% 0.0% 23.00 =20 Excess 0.00 Total 753.00 ERS Model =20 Table: 2 Quota: 125.38 Candidate Retain Transfer Votes Smith 93.6% 6.4% 125.38 Elected Duke 100.0% 0.0% 105.58 =20 Prince 100.0% 0.0% 91.19 =20 Freeman 100.0% 0.0% 90.90 =20 Carpenter 100.0% 0.0% 83.19 =20 Baron 100.0% 0.0% 64.00 =20 Abbot 100.0% 0.0% 59.26 =20 Vicar 100.0% 0.0% 55.06 =20 Wright 100.0% 0.0% 28.61 =20 Glazier 100.0% 0.0% 25.99 =20 Monk 100.0% 0.0% 23.13 =20 Excess 0.71 Total 753.00 ERS Model =20 Table: 3 Quota: 125.38 Candidate Retain Transfer Votes Smith 93.6% 6.4% 125.38 Elected Duke 100.0% 0.0% 105.58 =20 Prince 100.0% 0.0% 91.19 =20 Freeman 100.0% 0.0% 90.90 =20 Carpenter 100.0% 0.0% 83.19 =20 Baron 100.0% 0.0% 64.00 =20 Abbot 100.0% 0.0% 59.26 =20 Vicar 100.0% 0.0% 55.06 =20 Wright 100.0% 0.0% 28.61 =20 Glazier 100.0% 0.0% 25.99 =20 Monk 100.0% 0.0% 23.13 To be Excluded Excess 0.71 Total 753.00 ERS Model =20 Table: 4 Quota: 125.20 Candidate Retain Transfer Votes Smith 93.4% 6.6% 125.20 Elected Duke 100.0% 0.0% 107.59 =20 Prince 100.0% 0.0% 95.20 =20 Freeman 100.0% 0.0% 91.92 =20 Carpenter 100.0% 0.0% 83.30 =20 Baron 100.0% 0.0% 64.00 =20 Abbot 100.0% 0.0% 64.26 =20 Vicar 100.0% 0.0% 65.07 =20 Wright 100.0% 0.0% 28.64 =20 Glazier 100.0% 0.0% 26.04 =20 Monk 0.0% 100.0% 0.00 Excluded Excess 1.79 Total 753.00 ERS Model =20 Table: 5 Quota: 125.20 Candidate Retain Transfer Votes Smith 93.4% 6.6% 125.20 Elected Duke 100.0% 0.0% 107.59 =20 Prince 100.0% 0.0% 95.20 =20 Freeman 100.0% 0.0% 91.92 =20 Carpenter 100.0% 0.0% 83.30 =20 Baron 100.0% 0.0% 64.00 =20 Abbot 100.0% 0.0% 64.26 =20 Vicar 100.0% 0.0% 65.07 =20 Wright 100.0% 0.0% 28.64 =20 Glazier 100.0% 0.0% 26.04 To be Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 1.79 Total 753.00 ERS Model =20 Table: 6 Quota: 124.92 Candidate Retain Transfer Votes Smith 93.2% 6.8% 124.92 Elected Duke 100.0% 0.0% 107.61 =20 Prince 100.0% 0.0% 97.47 =20 Freeman 100.0% 0.0% 94.29 =20 Carpenter 100.0% 0.0% 99.37 =20 Baron 100.0% 0.0% 65.20 =20 Abbot 100.0% 0.0% 65.47 =20 Vicar 100.0% 0.0% 66.47 =20 Wright 100.0% 0.0% 28.69 =20 Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 3.49 Total 753.00 ERS Model =20 Table: 7 Quota: 124.92 Candidate Retain Transfer Votes Smith 93.2% 6.8% 124.92 Elected Duke 100.0% 0.0% 107.61 =20 Prince 100.0% 0.0% 97.47 =20 Freeman 100.0% 0.0% 94.29 =20 Carpenter 100.0% 0.0% 99.37 =20 Baron 100.0% 0.0% 65.20 =20 Abbot 100.0% 0.0% 65.47 =20 Vicar 100.0% 0.0% 66.47 =20 Wright 100.0% 0.0% 28.69 To be Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 3.49 Total 753.00 ERS Model =20 Table: 8 Quota: 124.81 Candidate Retain Transfer Votes Smith 93.1% 6.9% 124.81 Elected Duke 100.0% 0.0% 107.62 =20 Prince 100.0% 0.0% 100.69 =20 Freeman 100.0% 0.0% 96.51 =20 Carpenter 100.0% 0.0% 117.40 =20 Baron 100.0% 0.0% 67.41 =20 Abbot 100.0% 0.0% 65.69 =20 Vicar 100.0% 0.0% 68.75 =20 Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 4.13 Total 753.00 ERS Model =20 Table: 9 Quota: 124.81 Candidate Retain Transfer Votes Smith 93.1% 6.9% 124.81 Elected Duke 100.0% 0.0% 107.62 =20 Prince 100.0% 0.0% 100.69 =20 Freeman 100.0% 0.0% 96.51 =20 Carpenter 100.0% 0.0% 117.40 =20 Baron 100.0% 0.0% 67.41 =20 Abbot 100.0% 0.0% 65.69 To be Excluded Vicar 100.0% 0.0% 68.75 =20 Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 4.13 Total 753.00 ERS Model =20 Table: 10 Quota: 122.58 Candidate Retain Transfer Votes Smith 91.5% 8.5% 122.58 Elected Duke 100.0% 0.0% 107.77 =20 Prince 100.0% 0.0% 100.85 =20 Freeman 100.0% 0.0% 97.87 =20 Carpenter 100.0% 0.0% 117.98 =20 Baron 100.0% 0.0% 78.51 =20 Abbot 0.0% 100.0% 0.00 Excluded Vicar 100.0% 0.0% 109.94 =20 Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 17.49 Total 753.00 ERS Model =20 Table: 11 Quota: 122.58 Candidate Retain Transfer Votes Smith 91.5% 8.5% 122.58 Elected Duke 100.0% 0.0% 107.77 =20 Prince 100.0% 0.0% 100.85 =20 Freeman 100.0% 0.0% 97.87 =20 Carpenter 100.0% 0.0% 117.98 =20 Baron 100.0% 0.0% 78.51 To be Excluded Abbot 0.0% 100.0% 0.00 Excluded Vicar 100.0% 0.0% 109.94 =20 Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 17.49 Total 753.00 ERS Model =20 Table: 12 Quota: 108.69 Candidate Retain Transfer Votes Smith 81.1% 18.9% 108.69 Elected Duke 100.0% 0.0% 108.70 Newly Elected Prince 100.0% 0.0% 101.89 =20 Freeman 100.0% 0.0% 100.16 =20 Carpenter 100.0% 0.0% 121.61 Newly Elected Baron 0.0% 100.0% 0.00 Excluded Abbot 0.0% 100.0% 0.00 Excluded Vicar 100.0% 0.0% 111.08 Newly Elected Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 100.88 Total 753.00 ERS Model =20 Table: 13 Quota: 102.07 Candidate Retain Transfer Votes Smith 76.2% 23.8% 102.07 Elected Duke 93.5% 6.5% 102.07 Elected Prince 100.0% 0.0% 102.73 Newly Elected Freeman 100.0% 0.0% 101.41 =20 Carpenter 82.8% 17.2% 102.07 Elected Baron 0.0% 100.0% 0.00 Excluded Abbot 0.0% 100.0% 0.00 Excluded Vicar 91.2% 8.8% 102.07 Elected Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 140.57 Total 753.00 ERS Model =20 Table: 14 Quota: 102.07 Candidate Retain Transfer Votes Smith 76.2% 23.8% 102.07 Elected Duke 93.5% 6.5% 102.07 Elected Prince 100.0% 0.0% 102.73 Elected Freeman 100.0% 0.0% 101.41 To be Excluded Carpenter 82.8% 17.2% 102.07 Elected Baron 0.0% 100.0% 0.00 Excluded Abbot 0.0% 100.0% 0.00 Excluded Vicar 91.2% 8.8% 102.07 Elected Wright 0.0% 100.0% 0.00 Excluded Glazier 0.0% 100.0% 0.00 Excluded Monk 0.0% 100.0% 0.00 Excluded Excess 140.57 Total 753.00 ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="MEEK.MAN" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="MEEK.MAN" rk1ETk2vACAgIA0KICAgDQogICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgTWFudWFsIGZv ciB0aGUgTWVlayBQcm9ncmFtDQogICANCiAgICAgICBNRUVLIGlzIGEgcHJvZ3JhbSB3cml0dGVu IGJ5IERhdmlkIEhpbGwgYW5kIEJyaWFuIFdpY2htYW4sIHRvDQogICBpbXBsZW1lbnQgdGhlIFNU ViB2b3RlIGNvdW50aW5nIHByb2NlZHVyZSBwcm9wb3NlZCBieSBCcmlhbiBNZWVrLiAgVGhlDQog ICBwcm9ncmFtIGlzIHB1Ymxpc2hlZCBpbiBJLiBELiBIaWxsLCBCLiBBLiBXaWNobWFubiBhbmQg RC4gUi4gV29vZGFsbCwNCiAgICJUaGUgU2luZ2xlIFRyYW5zZmVyYWJsZSBWb3RlIGJ5IE1lZWsn cyBNZXRob2QsIiBDb21wdXRlciBKb3VybmFsIDMwIE5vLg0KICAgMywgMTk4NywgMjc3/zJEODEu ICBTbGlnaHQgbW9kaWZpY2F0aW9ucyB3ZXJlIG1hZGUgYnkgTmljb2xhdXMgVGlkZW1hbiwgdG8N CiAgIHNwZWVkIHRoZSBwcm9jZXNzaW5nIGFuZCB0byBhbGxvdyB0aGUgaW5wdXQgZmlsZSB0byBi ZSBlbnRlcmVkIGFzIGENCiAgIG1hbnVhbCBpbnB1dCByYXRoZXIgdGhhbiBzcGVjaWZpZWQgaW4g YWR2YW5jZS4NCiAgIA0KICAgICAgVGhlIHByb2dyYW0gYWxsb3dzIGZvciB1cCB0byA0MCBjYW5k aWRhdGVzIGFuZCBhbiB1bnNwZWNpZmllZCBudW1iZXINCiAgIG9mIHZvdGVycywgYXMgbG9uZyBh cyB0aGUgcHJvZHVjdCBvZiB0aGUgbnVtYmVyIG9mIGNhbmRpYXRlcyBhbmQgKDEgcGx1cw0KICAg dGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIHByZWZlcmVuY2VzIHNwZWNpZmllZCBieSB2b3RlcnMpIGlz IGxlc3MgdGhhbg0KICAgMjAsMDAwLg0KICAgDQogICAgICBXaGVuIHRoZSB1c2VyIGVudGVycyB0 aGUgY29tbWFuZCAiTUVFSyIsIHRoZSBjb21wdXRlciByZXNwb25kcyB3aXRoIGENCiAgIHJlcXVl c3QgZm9yIGEgZGF0YWZpbGUuICBUaGUgZGF0YSBtdXN0IGJlIGluIHRoZSBmb3JtYXQgc3BlY2lm aWVkIGJ5IEhpbGwNCiAgIGFuZCBXaWNobWFuLiAgSW4gdGhpcyBmb3JtYXQsIHRoZSBmaXJzdCBs aW5lIGNvbnNpc3RzIG9mIHRoZSBudW1iZXIgb2YNCiAgIGNhbmRpZGF0ZXMsIHRoZSBudW1iZXIg dG8gYmUgZWxlY3RlZCwgYW5kLCBpZiBhbnkgY2FuZGlkYXRlcyBoYXZlDQogICB3aXRoZHJhd24s IGEgbmVnYXRpdmUgaW50ZWdlciBmb3IgZWFjaCBzdWNoIGNhbmRpZGF0ZS4gIFN1YnNlcXVlbnQg bGluZXMNCiAgIGV4cHJlc3MgcmFua2luZ3MuICBJbiBlYWNoIHN1Y2ggbGluZSwgdGhlIGZpcnN0 IG51bWJlciBpcyB0aGUgbnVtYmVyIG9mDQogICBjb3BpZXMgb2YgdGhlIHJhbmtpbmcgdGhhdCBm b2xsb3dzLiAgTmV4dCBjb21lcyB0aGUgcmFua2luZywgcmVwb3J0ZWQgYXMNCiAgIHRoZSBjYW5k aWRhdGUgd2hvIGlzIHJhbmtlZCBmaXJzdCwgdGhlIGNhbmRpZGF0ZSB3aG8gaXMgcmFua2VkIHNl Y29uZCwNCiAgIGFuZCBzbyBvbi4gIFRoZSBsaW5lIGVuZHMgd2l0aCBhIHplcm8uICBGb3IgZXhh bXBsZSwgdGhlIGxpbmUgIjMgMiAzIDEgMCINCiAgIHdvdWxkIGRlbm90ZSB0aHJlZSByYW5raW5n cyB0aGF0IHBsYWNlIGNhbmRpZGF0ZSAyIGZpcnN0LCBjYW5kaWRhdGUgMw0KICAgc2Vjb25kIGFu ZCBjYW5kaWRhdGUgMSB0aGlyZC4gIEEgbGluZSBjb25zaXN0aW5nIG9mIG9ubHkgYSB6ZXJvIHNp Z25hbHMNCiAgIHRoZSBlbmQgb2YgdGhlIHJhbmtpbmcgZGF0YS4gIFN1YnNlcXVlbnQgbGluZXMg bGlzdCB0aGUgbmFtZXMgb2YgdGhlDQogICBjYW5kaWRhdGVzIGluIHRoZSBvcmRlciwgdGhlIGNh bmRpZGF0ZSB3aG9zZSBjb2RlIGlzIDEsIHRoZSBjYW5kaWRhdGUNCiAgIHdob3NlIGNvZGUgaXMg MiwgYW5kIHNvIG9uLCBlYWNoIGluIHF1b3RhdGlvbiBtYXJrcywgZm9sbG93ZWQgYnkgYSBuYW1l DQogICB0byBiZSBnaXZlbiB0byB0aGUgZWxlY3Rpb24sIGFnYWluIGluIHF1b3RhdGlvbiBtYXJr cy4NCiAgIFRoZSBmaWxlIE5CLkhGIGlzIHByb3ZpZGVkIHdpdGggdGhlIHByb2dyYW0gaW4gdGhl IG5lY2Vzc2FyeSBmb3JtYXQuDQogICANCiAgICAgIFRoZSBjb21wdXRlciBjb3VudHMgdGhlIGVs ZWN0aW9uIGFuZCBjcmVhdGVzIGEgZmlsZSBjYWxsZWQgTUVFS09VVC5EQVQNCiAgIGluIHdoaWNo IHRoZSBjb3VudCBpcyByZXBvcnRlZCBpbiBkZXRhaWwuDQoa ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="MEEKOUT.DAT" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="MEEKOUT.DAT" Number of Candidates =3D 10 Number of Seats =3D 3 STV-8 =20 Table: 1 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 10.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 100.0% 0.0% 10.00 =20 E 100.0% 0.0% 10.00 =20 F 100.0% 0.0% 10.00 =20 G 100.0% 0.0% 10.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 Random choice used to exclude F =20 STV-8 =20 Table: 2 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 10.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 100.0% 0.0% 10.00 =20 E 100.0% 0.0% 10.00 =20 F 100.0% 0.0% 10.00 To be Excluded G 100.0% 0.0% 10.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 3 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 20.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 100.0% 0.0% 10.00 =20 E 100.0% 0.0% 10.00 =20 F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 10.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 Random choice used to exclude E =20 STV-8 =20 Table: 4 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 20.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 100.0% 0.0% 10.00 =20 E 100.0% 0.0% 10.00 To be Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 10.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 5 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 20.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 100.0% 0.0% 10.00 =20 E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 20.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 Random choice used to exclude D =20 STV-8 =20 Table: 6 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 20.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 100.0% 0.0% 10.00 To be Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 20.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 7 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 30.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 =20 D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 20.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 Random choice used to exclude C =20 STV-8 =20 Table: 8 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 30.00 =20 B 100.0% 0.0% 10.00 =20 C 100.0% 0.0% 10.00 To be Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 20.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 9 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 30.00 =20 B 100.0% 0.0% 10.00 =20 C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 30.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 10 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 30.00 =20 B 100.0% 0.0% 10.00 To be Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 30.00 =20 H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 11 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 30.00 =20 B 0.0% 100.0% 0.00 Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 100.0% 0.0% 40.00 Newly Elected H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 12 Quota: 34.75 Candidate Retain Transfer Votes A 100.0% 0.0% 35.25 Newly Elected B 0.0% 100.0% 0.00 Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 86.9% 13.1% 34.75 Elected H 100.0% 0.0% 23.00 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 13 Quota: 34.75 Candidate Retain Transfer Votes A 95.5% 4.5% 34.75 Elected B 0.0% 100.0% 0.00 Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 84.1% 15.9% 34.75 Elected H 100.0% 0.0% 23.50 =20 I 100.0% 0.0% 23.00 =20 J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 Random choice used to exclude I =20 STV-8 =20 Table: 14 Quota: 34.75 Candidate Retain Transfer Votes A 95.5% 4.5% 34.75 Elected B 0.0% 100.0% 0.00 Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 84.1% 15.9% 34.75 Elected H 100.0% 0.0% 23.50 =20 I 100.0% 0.0% 23.00 To be Excluded J 100.0% 0.0% 23.00 =20 Excess 0.00 Total 139.00 STV-8 =20 Table: 15 Quota: 34.75 Candidate Retain Transfer Votes A 95.5% 4.5% 34.75 Elected B 0.0% 100.0% 0.00 Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 84.1% 15.9% 34.75 Elected H 100.0% 0.0% 23.50 =20 I 0.0% 100.0% 0.00 Excluded J 100.0% 0.0% 46.00 Newly Elected Excess 0.00 Total 139.00 STV-8 =20 Table: 16 Quota: 34.75 Candidate Retain Transfer Votes A 95.5% 4.5% 34.75 Elected B 0.0% 100.0% 0.00 Excluded C 0.0% 100.0% 0.00 Excluded D 0.0% 100.0% 0.00 Excluded E 0.0% 100.0% 0.00 Excluded F 0.0% 100.0% 0.00 Excluded G 84.1% 15.9% 34.75 Elected H 100.0% 0.0% 23.50 To be Excluded I 0.0% 100.0% 0.00 Excluded J 100.0% 0.0% 46.00 Elected Excess 0.00 Total 139.00 ------_=_NextPart_000_01BF78E0.DE064E20 Content-Type: application/octet-stream; name="MEEK.PAS" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="MEEK.PAS" PROGRAM stvpas; CONST MaxCandidates =3D 40; NameLength =3D 20; SpaceRange =3D 21000; TYPE Candidates =3D 1 .. MaxCandidates; CandRange =3D 0 .. MaxCandidates; name =3D PACKED ARRAY [1 .. NameLength] OF char; VAR NumCandidates, NumSeats : = Candidates; candidate, NumElected, NumExcluded, multiplier, ignored: = CandRange; Droop, excess, quota, total : real; faulty, SomeoneElected, RandomUsed : Boolean; FracDigits : 1 .. 4; table, seed1, seed2, seed3 : integer; datafile : text; title : name; votes, weight : ARRAY [Candidates] OF real; status : ARRAY [Candidates] OF (Hopeful, Elected, NewlyElected, Almost, Excluded, ToBeExcluded, NotUsed, Used); names : ARRAY [Candidates] OF name; outfile : text; filename : string [NameLength]; dataspace : array [1..SpaceRange] of = integer; datapoint : integer; procedure StoreData; var i, k : integer; begin for k :=3D 1 to SpaceRange do dataspace[k] :=3D 0; i :=3D 1; read (datafile, dataspace[i]); repeat i :=3D i +1; read (datafile, dataspace[i]); until (dataspace[i-1] =3D 0) and (dataspace[i] =3D 0); datapoint :=3D 0; end; FUNCTION InInteger: integer; {Reads the next integer from datafile and returns = its value} VAR i: integer; BEGIN datapoint :=3D datapoint +1; InInteger :=3D dataspace[datapoint]; END; {InInteger} PROCEDURE PrintOut; {Updates the table number and prints out the current = results} VAR arg: real; cand: Candidates; BEGIN table :=3D table + 1; writeln(outfile); writeln(outfile, ' ': 20, title); writeln(outfile); write(outfile, 'Table: ', table: 1); writeln(outfile, ' Quota: ', quota: 1: FracDigits); writeln(outfile); {The numbers of blanks following Candidate, Retain and Transfer are 12, 3 and 3 respectively} writeln(outfile, 'Candidate Retain Transfer = Votes'); writeln(outfile); FOR cand :=3D 1 TO NumCandidates DO BEGIN write(outfile, names[cand]); IF status[cand] =3D ToBeExcluded THEN arg :=3D 100.0 ELSE arg :=3D 100.0 * weight[cand]; write(outfile, arg: 6: 1, '%'); write(outfile, 100.0 - arg: 8: 1, '%'); {If it is valid to do so, print quota instead of = votes[cand] because the latter might have a small rounding error that would confuse unsophisticated users} IF status[cand] =3D Elected THEN arg :=3D votes[cand] / quota ELSE arg :=3D 0.0; IF (arg >=3D 0.99999) AND (arg <=3D 1.00001) THEN arg :=3D = quota ELSE arg :=3D votes[cand]; write(outfile, arg: 10: FracDigits, ' '); IF status[cand] =3D Excluded THEN write(outfile, 'Excluded') ELSE IF status[cand] =3D Elected THEN write(outfile, 'Elected') ELSE IF status[cand] =3D NewlyElected THEN write(outfile, 'Newly Elected') ELSE IF status[cand] =3D ToBeExcluded THEN BEGIN write(outfile, 'To be Excluded'); status[cand] :=3D Excluded END; writeln(outfile); IF (NumCandidates > 9) AND (cand MOD 5 =3D 0) AND (cand <> NumCandidates) THEN writeln(outfile) END; { for } writeln(outfile); writeln(outfile, 'Excess', excess: 40: FracDigits); writeln(outfile); writeln(outfile, 'Total ', total: 40: FracDigits); writeln(outfile); writeln(outfile) END; {PrintOut} PROCEDURE elect(cand: Candidates); BEGIN status[cand] :=3D NewlyElected; NumElected :=3D NumElected + 1 END; {elect} PROCEDURE exclude(cand: Candidates); BEGIN status[cand] :=3D ToBeExcluded; weight[cand] :=3D 0.0; NumExcluded :=3D NumExcluded + 1; IF RandomUsed THEN BEGIN writeln(outfile); writeln(outfile); writeln(outfile, 'Random choice used to exclude ', names[cand]) END END; {exclude} FUNCTION LowestCandidate: CandRange; {Returns the candidate number of the candidate who currently = has the lowest number of votes. If two or more are equal lowest, = then a pseudo-random choice is made between them} VAR cand : Candidates; LowCand : CandRange; FUNCTION random: real; {Returns a pseudo-random number, rectangularly = distributed between 0 and 1. Based on Wichmann and Hill, = Algorithm AS 183, Appl. Statist. (1982) 31, 188 - 190} VAR rndm: real; BEGIN {If seeds have not been set, then set them} IF seed1 =3D 0 THEN BEGIN seed1 :=3D NumCandidates; seed2 :=3D NumSeats + 10000; rndm :=3D total + 20000.0; WHILE rndm > 30322.5 DO rndm :=3D rndm - 30322.0; seed3 :=3D trunc(rndm + 0.5) END; seed1 :=3D 171 * (seed1 MOD 177) - 2 * (seed1 DIV 177); seed2 :=3D 172 * (seed2 MOD 176) - 35 * (seed2 DIV 176); seed3 :=3D 170 * (seed3 MOD 178) - 63 * (seed3 DIV 178); IF seed1 < 0 THEN seed1 :=3D seed1 + 30269; IF seed2 < 0 THEN seed2 :=3D seed2 + 30307; IF seed3 < 0 THEN seed3 :=3D seed3 + 30323; rndm :=3D seed1 / 30269.0 + seed2 / 30307.0 + seed3 / 30323.0; random :=3D rndm - trunc(rndm) END; {random} FUNCTION lower(cand, lowest: CandRange): Boolean; {Finds whether cand has fewer votes than lowest, and = also reports whether a random choice had to be made} VAR lowly: Boolean; BEGIN IF lowest =3D 0 THEN BEGIN RandomUsed :=3D false; lower :=3D true END ELSE IF votes[cand] =3D votes[lowest] THEN BEGIN RandomUsed :=3D true; {Multiplier is used to make all equally-lowest = candidates equally likely to be chosen, even though they = are considered serially and not simultaneously} lower :=3D (multiplier * random < 1.0) END ELSE BEGIN lowly :=3D (votes[cand] < votes[lowest]); lower :=3D lowly; IF lowly THEN RandomUsed :=3D false END; IF RandomUsed THEN multiplier :=3D multiplier + 1 ELSE multiplier :=3D 2 END; {lower} BEGIN LowCand :=3D 0; FOR cand :=3D 1 TO NumCandidates DO IF (status[cand] =3D Hopeful) OR (status[cand] =3D Almost) THEN IF lower(cand, LowCand) THEN LowCand :=3D cand; LowestCandidate :=3D LowCand END; {LowestCandidate} PROCEDURE compute; {This is the heart of the program, which counts the votes, = taking the current weights into account, and adjusts the weights = and the quota iteratively to attain the required solution} {MaxIterations is the maximum number of iterations allowed in calculating the weights. It is unlikely that so many will ever be used, but its value may be increased if desired} CONST MaxIterations =3D 500; VAR temp, value : real; count, iteration : integer; cand : CandRange; converged, ended : Boolean; PROCEDURE Rewind; {Returns to the beginning of datafile, and ignores the = first two numbers on it. These are the number of candidates and = the number of seats, whose values are not needed again. = Numbers indicating withdrawn candidates are also ignored} VAR ig, ignore: integer; BEGIN datapoint :=3D 0; FOR ig :=3D -1 TO ignored DO ignore :=3D InInteger END; {Rewind} BEGIN iteration :=3D 1; REPEAT Rewind; excess :=3D 0.0; FOR cand :=3D 1 TO NumCandidates DO votes[cand] :=3D 0.0; count :=3D InInteger; WHILE count > 0 DO BEGIN value :=3D count; cand :=3D InInteger; ended :=3D false; WHILE cand>0 DO BEGIN IF NOT ended AND (weight[cand] > 0.0) THEN BEGIN ended :=3D (status[cand] =3D Hopeful); IF ended THEN BEGIN votes[cand] :=3D votes[cand] + value; value :=3D 0.0 END ELSE BEGIN votes[cand] :=3D votes[cand] + value * = weight[cand]; value :=3D value * (1.0 - weight[cand]) END END; cand :=3D InInteger END; excess :=3D excess + value; count :=3D InInteger END; quota :=3D (total - excess) * Droop; {The next statement is unlikely ever to be used, but is a safeguard against certain pathological test data} IF quota < 0.0001 THEN quota :=3D 0.0001; converged :=3D true; FOR cand :=3D 1 TO NumCandidates DO IF status[cand] =3D Elected THEN BEGIN temp :=3D quota / votes[cand]; IF (temp > 1.00001) OR (temp < 0.99999) THEN converged :=3D false; temp :=3D weight[cand] * temp; weight[cand] :=3D temp; {The next statement is unlikely ever to be used, but is a safeguard against certain pathological test data} IF temp > 1.0 THEN weight[cand] :=3D 1.0 END; iteration :=3D iteration + 1 UNTIL (iteration =3D MaxIterations) OR converged; IF NOT converged THEN BEGIN {The "Failure to converge" message is unlikely ever to appear. If it does, increasing MaxIterations will probably cure it} writeln(outfile); writeln(outfile); writeln(outfile, 'Failure to converge'); writeln(outfile); END; count :=3D 0; FOR cand :=3D 1 TO NumCandidates DO IF (status[cand] =3D Hopeful) AND (votes[cand] >=3D quota) THEN BEGIN status[cand] :=3D Almost; count :=3D count + 1 END; {Allow for the special case where there is a multi-way tie and too many candidates reach the quota simultaneously} WHILE NumElected + count > NumSeats DO BEGIN PrintOut; RandomUsed :=3D false; FOR cand :=3D 1 TO NumCandidates DO IF status[cand] =3D Hopeful THEN exclude(cand); exclude(LowestCandidate); count :=3D count - 1 END; SomeoneElected :=3D false; FOR cand :=3D 1 TO NumCandidates DO IF status[cand] =3D Almost THEN BEGIN elect(cand); SomeoneElected :=3D true END; IF SomeoneElected THEN PrintOut; FOR cand :=3D 1 TO NumCandidates DO IF status[cand] =3D NewlyElected THEN BEGIN IF NumElected < NumSeats THEN weight[cand] :=3D quota / votes[cand]; status[cand] :=3D Elected END END; {compute} PROCEDURE complete; {Used to elect all remaining candidates if the = number remaining equals the number of seats remaining} VAR cand: Candidates; BEGIN FOR cand :=3D 1 TO NumCandidates DO IF status[cand] =3D Hopeful THEN elect(cand) END; {complete} PROCEDURE Preliminaries; {Checks datafile for errors and sets initial values of = variables} VAR cand, count, LineNo: integer; PROCEDURE error(cand: integer; TooBig: Boolean); BEGIN writeln(outfile); write(outfile, 'On line ', LineNo: 1, ', Candidate ', cand: 1); IF TooBig THEN write (outfile, ' exceeds maximum') ELSE write (outfile, ' is repeated'); writeln(outfile); faulty :=3D true END; {error} PROCEDURE ReadName(VAR n: name); {Reads the name of a candidate, or reads a title, and = stores it for later use. If the name has more than NameLength characters the excess ones will be disregarded. If it has fewer than NameLength characters blanks will be used to extend it} VAR i : integer; ch : char; BEGIN REPEAT read(datafile, ch) UNTIL ch =3D '"'; i :=3D 0; read(datafile, ch); WHILE ch <> '"' DO BEGIN IF i < NameLength THEN BEGIN i :=3D i + 1; n[i] :=3D ch END; read(datafile, ch) END; WHILE i < NameLength DO BEGIN i :=3D i + 1; n[i] :=3D ' ' END END; {ReadName} BEGIN Droop :=3D 1.0 / (NumSeats + 1); LineNo :=3D 1; seed1 :=3D 0; total :=3D 0.0; table :=3D 0; NumElected :=3D 0; NumExcluded :=3D 0; ignored :=3D 0; FOR cand :=3D 1 TO NumCandidates DO weight[cand] :=3D 1.0; count :=3D InInteger; {Deal with withdrawals, if any} WHILE count < 0 DO BEGIN weight[-count] :=3D 0.0; count :=3D InInteger END; WHILE count > 0 DO BEGIN LineNo :=3D LineNo + 1; total :=3D total + count; FOR cand :=3D 1 TO NumCandidates DO status[cand] :=3D NotUsed; cand :=3D InInteger; WHILE cand > 0 DO BEGIN IF cand > NumCandidates THEN error(cand, true) ELSE IF status[cand] =3D Used THEN error(cand, false) ELSE status[cand] :=3D Used; cand :=3D InInteger END; count :=3D InInteger END; FOR cand :=3D 1 TO NumCandidates DO BEGIN ReadName(names[cand]); status[cand] :=3D Hopeful; IF weight[cand] < 0.5 THEN BEGIN status[cand] :=3D Excluded; NumExcluded :=3D NumExcluded + 1; ignored :=3D ignored + 1 END END; ReadName(title); IF NOT faulty THEN BEGIN {FracDigits controls the number of digits beyond the decimal point that will be printed in the output tables} FracDigits :=3D 4; IF total > 999.5 THEN FracDigits :=3D FracDigits - 1; IF total > 99.5 THEN FracDigits :=3D FracDigits - 1; IF total > 9.5 THEN FracDigits :=3D FracDigits - 1 END END; {Preliminaries} {Start of main program} BEGIN writeln ('Give the datafile name:'); readln (filename); assign (datafile, filename); reset(datafile); assign (outfile, 'meekout.dat'); rewrite (outfile); StoreData; NumCandidates :=3D InInteger; NumSeats :=3D InInteger; writeln(outfile); writeln(outfile); writeln(outfile, 'Number of Candidates =3D ', NumCandidates: 1); writeln(outfile, 'Number of Seats =3D ', NumSeats: 1); IF NumCandidates <=3D NumSeats THEN writeln(outfile, 'All candidates = elected') ELSE BEGIN faulty :=3D false; Preliminaries; IF NumCandidates <=3D NumSeats + NumExcluded THEN writeln(outfile, 'All non-withdrawn candidates elected') ELSE BEGIN {The Preliminaries procedure will have reset faulty to = true if the data contain errors} IF NOT faulty THEN BEGIN REPEAT {Count votes and elect candidates, transferring surpluses until no more can be done or all seats are filled} REPEAT compute UNTIL NOT SomeoneElected OR (NumElected >=3D NumSeats); {Unless the election is finished, someone must now be excluded} IF NumElected < NumSeats THEN BEGIN PrintOut; exclude(LowestCandidate); IF NumCandidates - NumExcluded =3D NumSeats THEN complete ELSE PrintOut END UNTIL NumElected =3D NumSeats; {Now that all seats are filled, exclude any = candidates not already elected, and print out the final table} RandomUsed :=3D false; FOR candidate :=3D 1 TO NumCandidates DO IF status[candidate] =3D Hopeful THEN = exclude(candidate); PrintOut END END END; close (datafile); close (outfile); END. =1A ------_=_NextPart_000_01BF78E0.DE064E20--